GPT1论文笔记
- 0、GPT系列
- 1、研究背景
- 2、半监督学习和辅助训练目标Auxiliary training objectives
- 3、架构
- 3.1架构图解释
- 3.2公式解释
- 无监督预训练(Unsupervised pre - training)
- 有监督微调(Supervised fine - tuning)
- 最大似然(补数学)
- 4、实验设置
- 5、模型分析
- 5.1迁移层数影响
- 5.2零样本行为分析
- 5.3消融实验
- 6、半监督学习、迁移学习、预训练微调区别
- 一、核心区别总结
- 1. **半监督学习 (Semi-supervised Learning)**
- 目标:
- 数据需求:
- 关键技术:
- 应用场景:
- 2. **迁移学习 (Transfer Learning)**
- 目标:
- 数据需求:
- 关键技术:
- 应用场景:
- 3. **预训练微调 (Pretraining and Fine-tuning)**
- 目标:
- 数据需求:
- 关键技术:
- 应用场景:
- 总结:
- 二、NLP半监督学习
- 三、无监督预训练
- 无监督预训练的核心方法
- 1. **语言建模(Language Modeling)**
- 2. **词嵌入(Word Embeddings)**
- 3. **生成模型(Generative Models)**
- 4. **对比学习(Contrastive Learning)**
- 无监督预训练的应用
- 1. **预训练语言模型(Pretrained Language Models)**
- 2. **无监督文本表示学习**
- 3. **无监督文本生成**
- 4. **无监督学习与多任务学习**
- 四、辅助训练目标Auxiliary training objectives (半监督学习)
通过生成式预训练提高语言理解
论文:gpt1: Improving Language Understanding by Generative Pre-Training (Generative Pre-Train Model 就是GPT模型的名字由来)
链接:
https://link.zhihu.com/?target=https%3A//cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
https://www.semanticscholar.org/paper/Improving-Language-Understanding-by-Generative-Radford-Narasimhan/cd18800a0fe0b668a1cc19f2ec95b5003d0a5035
https://paperswithcode.com/paper/improving-language-understanding-by
0、GPT系列
GPT系列背景:
2018年6月,OpenAI发表了一篇论文:Improving Language Understanding by Generative Pre-Training(通过生成性预训练提高语言理解能力)(点击下载论文)。
2019年2月,OpenAI又发表了一篇论文:Language Models are Unsupervised Multitask Learners (语言模型是无监督的多任务学习者)(点击下载论文),该论文介绍了 GPT 的升级版本GPT-2。
2020年5月,OpenAI发表了一篇论文:Language Models are Few-Shot Learners (语言模型是小样本学习者)(点击下载论文)。
OpenAI公司
2015年,创业孵化器Y Combinator总裁山姆·阿尔特曼、PayPal联合创始人彼得·蒂尔、Linkedin创始人里德·霍夫曼、特斯拉CEO埃隆·马斯克等人出资10亿美元创立OpenAI,旨在实现安全的通用人工智能(AGI)并造福人类。OpenAI起初是一个非营利组织,但在2019年成立OpenAI LP子公司,目标是盈利和商业化,并引入了微软的10亿美元投资。OpenAI诞生的初衷,部分原因就是为了避免谷歌在人工智能领域形成垄断。OpenAI的主要成就有:
本文后续即将重点介绍的在NLP领域大放异彩的GPT系列;
研发和比较强化学习算法的OpenAI Gym工具包;
在游戏领域击败Dota2世界冠军的OpenAI Five;
连接文本和图像的神经网络CLIP;
从文本生成图像的神经网络DALL·E& DALL·E2等。
1、研究背景
- 研究背景
- 自然语言处理中的数据依赖问题:深度学习方法在自然语言处理(NLP)中常依赖大量手动标注数据,但标注资源稀缺,限制了模型在许多领域的应用。利用未标注数据学习语言表示,对减轻监督学习的依赖至关重要。
- 半监督学习的挑战:从非监督文本中学习有效的语言表示面临优化目标不明确和表示转移方式不确定的问题,使得开发有效的半监督学习方法困难。
- 研究方法
- 总体框架:采用两阶段训练过程,包括无监督预训练和有监督微调。预训练阶段在大规模无标签语料上训练语言模型,微调阶段将模型参数适应于有监督目标任务。
- 无监督预训练:使用多层Transformer解码器进行语言建模,通过最大化文本序列的似然性来学习模型参数,训练过程采用随机梯度下降优化。
- 有监督微调:在预训练模型基础上,为目标任务添加线性输出层,通过最大化监督目标任务的似然性进行微调。同时,将语言建模作为辅助目标,有助于提高模型泛化能力和加速收敛。
- 任务特定输入转换:针对不同结构输入的任务(如文本蕴含、相似性判断、问答等),采用遍历式方法将结构化输入转换为连续的标记序列,以便预训练模型处理,避免对模型架构进行大规模修改。
- 实验设置与结果
- 实验设置
- 无监督预训练:使用BooksCorpus数据集,包含多种体裁的未出版书籍,提供长文本以学习长距离依赖。模型为12层Transformer解码器,采用Adam优化器、特定超参数设置,并使用字节对编码(BPE)词汇表和多种正则化方法。
- 微调细节:多数任务复用预训练超参数,添加0.1的随机失活率(dropout),调整学习率、批量大小和训练轮数,采用线性学习率衰减和预热策略,辅助目标权重λ设为0.5。
- 实验结果
- 自然语言推理(NLI):在五个不同来源的数据集上评估,模型在四个数据集上显著优于基线方法,证明了处理多句推理和语言歧义的能力。
- 问答和常识推理:使用RACE和Story Cloze Test数据集,模型在处理长距离上下文的问答任务中表现出色,超越先前最佳结果。
- 语义相似性:在三个数据集上进行实验,在两个数据集上取得了领先的结果,尤其在处理概念重述、否定和句法歧义方面表现良好。
- 文本分类:在CoLA和SST - 2数据集上评估,模型在CoLA上的表现大幅提升,展示了对语言内在偏见的学习能力,在SST - 2上的准确率也具有竞争力,在GLUE基准测试中整体得分显著提高。
- 实验设置
- 模型分析
- 迁移层数影响:实验表明,迁移预训练模型的层数越多,对目标任务性能提升越大,证明预训练模型每层都包含解决目标任务的有用功能。
- 零样本行为分析:通过设计启发式解决方案,在无监督微调情况下利用生成模型执行任务,发现预训练过程中模型学习到多种任务相关功能,且Transformer架构的归纳偏差有助于迁移学习,相比LSTM,其零样本性能更稳定且方差更低。
- 消融实验:对比有无辅助语言模型目标、Transformer与LSTM架构、有无预训练的模型,发现辅助目标对大数据集有益,Transformer架构在多数任务上表现优于LSTM,预训练对模型性能提升显著。
- 研究结论
- 提出的框架通过生成式预训练和判别式微调,使单个通用模型在多种自然语言理解任务上取得优异成绩,改进了多个数据集上的当前最优结果。
- 预训练模型能获取世界知识和处理长距离依赖的能力,并成功迁移到不同判别任务中,为无监督学习在自然语言理解及其他领域的研究提供了参考,提示了模型(如Transformer)和数据集(具有长距离依赖的文本)在该方法中的有效性。
2、半监督学习和辅助训练目标Auxiliary training objectives
-
半监督学习
- 半监督学习(Semi-supervised Learning, SSL)是一种机器学习方法,旨在结合少量的标注数据和大量的无标签数据进行训练,从而提高模型的学习能力。与传统的监督学习(Supervised Learning)需要大量标注数据以及无监督学习(Unsupervised Learning)处理全无标签数据的情况不同,半监督学习通过利用无标签数据的潜在信息来弥补标注数据的不足,是解决数据标签稀缺问题的有效方法。
-
辅助训练目
- 在半监督学习中,辅助训练目标是除了主要的预测目标(如分类或回归任务的目标标签)之外的其他目标。这些目标可以帮助模型更好地利用未标记数据,提升模型的性能和泛化能力。半监督学习的主要挑战是如何有效地结合少量的标记数据和大量的未标记数据进行学习。辅助训练目标的设定就是为了更好地挖掘未标记数据中的信息。
3、架构
3.1架构图解释
图 1:Transformer - 模型架构。(本文用到该架构的解码器部分,并进行了改进)
图 2:(左)本研究中使用的 Transformer 架构和训练目标。(右)用于对不同任务进行微调的输入转换。我们将所有结构化输入转换为标记序列,由我们的预训练模型处理,然后是线性 + softmax 层。
-
左侧模块(图2),模型结构
输入层:
Text & Position Embed:文本和位置嵌入层,用于将输入文本转换为向量表示,并加入位置信息。
中间层:
有 12 层相同的结构,每层包含:
Masked Multi - Self Attention:掩蔽多头自注意力机制,用于对输入文本进行自注意力计算,同时处理掩蔽操作。
Layer Norm:层归一化,用于对每层的输出进行归一化处理。
Feed Forward:前馈神经网络,用于进一步处理经过归一化的数据。
输出层:
Text Prediction:文本预测,用于预测文本。
Task Classifier:任务分类器,用于对任务进行分类。 -
右侧模块(图2),输入系列化
本文采用一种遍历式方法,将结构化输入转换为预训练模型可以处理的有序序列。这些输入转换使我们能够避免在不同任务间对架构进行大量修改。所有转换都包括随机初始化添加开始和结束标记(〈s〉, 〈e〉)。- 文本蕴含(Textual entailment)
对于蕴含任务,将前提(premise)和假设(hypothesis)的词元序列连接起来,中间用一个分隔符(delimiter)隔开。 - 相似度(Similarity)
对于相似度任务,被比较的两个句子没有内在的顺序。为了反映这一点,修改输入序列,使其包含两种可能的句子顺序(中间有分隔符),并分别对它们进行处理,产生两个序列表示,在输入线性输出层之前按元素相加。 - 问答和常识推理(Question Answering and Commonsense Reasoning)
对于这些任务,给定一个上下文文档、一个问题和一组可能的答案。将文档上下文和问题与每个可能的答案连接起来,中间添加一个分隔符得到。这些序列中的每一个都用模型独立处理,然后通过 softmax 层进行归一化,以产生可能答案上的输出分布。
- 文本蕴含(Textual entailment)
3.2公式解释
参数 | 说明 |
---|---|
U U U | 上下文向量 |
n | 层数 |
W e W_e We | token embedding词元嵌入矩阵 |
W p W_p Wp | 位置嵌入矩阵 |
h 0 h_0 h0 | 隐藏层0 |
h l h_l hl | 最后一层隐藏层 |
P ( u ) P(u) P(u) | 预测概率 |
无监督预训练(Unsupervised pre - training)
- 目标函数
- 给定一个无监督的语料库 U = { u 1 , … , u n } U=\{u_1,\ldots,u_n\} U={u1,…,un},目标是最大化以下似然函数:
- L 1 ( U ) = ∑ i log P ( u i ∣ u i − k , … , u i − 1 ; Θ ) L_1(U)=\sum_{i}\log P(u_i|u_{i - k},\ldots,u_{i - 1};\Theta) L1(U)=∑ilogP(ui∣ui−k,…,ui−1;Θ)
- 这里 k k k 是上下文窗口的大小,条件概率 P P P 由具有参数 Θ \Theta Θ 的神经网络建模。这些参数通过随机梯度下降(SGD)进行训练。
- 给定一个无监督的语料库 U = { u 1 , … , u n } U=\{u_1,\ldots,u_n\} U={u1,…,un},目标是最大化以下似然函数:
- 模型架构
- 在实验中,使用多层 Transformer 解码器作为语言模型。该模型是 Transformer 的一个变体。
- 具体操作如下:
- 首先,初始化隐藏状态 h 0 = U W e + W p h_0 = U W_e+W_p h0=UWe+Wp,其中 U = ( u − k , … , u − 1 ) U=(u_{-k},\ldots,u_{-1}) U=(u−k,…,u−1) 是词元的上下文向量, W e W_e We 是词元嵌入矩阵, W p W_p Wp 是位置嵌入矩阵。
- 然后,对于 i ∈ [ 1 , n ] i\in[1,n] i∈[1,n], h l = transformer block ( h l − 1 ) h_l=\text{transformer}_\text{block}(h_{l - 1}) hl=transformerblock(hl−1),即通过多层 Transformer 块进行处理。
- 最后,预测概率 P ( u ) = softmax ( h n W e T ) P(u)=\text{softmax}(h_nW_e^T) P(u)=softmax(hnWeT),得到目标词元的输出分布。
有监督微调(Supervised fine - tuning)
- 基本思想
- 在使用无监督目标(公式 1)训练模型后,将参数适应到有监督的目标任务。
- 假设有一个标记数据集 C C C,每个实例包含输入词元序列 x 1 , … , x m x_1,\ldots,x_m x1,…,xm 和一个标签 y y y。
- 微调过程
- 输入通过预训练模型得到最后一个 Transformer 块的激活 h m l h_m^l hml,然后将其输入到一个添加的线性输出层(参数为 W y W_y Wy)来预测 y y y:
- P ( y ∣ x 1 , … , x m ) = softmax ( h m l W y ) P(y|x_1,\ldots,x_m)=\text{softmax}(h_m^lW_y) P(y∣x1,…,xm)=softmax(hmlWy)
- 目标是最大化以下函数:
- L 2 ( C ) = ∑ ( x , y ) log P ( y ∣ x 1 , … , x m ) L_2(C)=\sum_{(x,y)}\log P(y|x_1,\ldots,x_m) L2(C)=∑(x,y)logP(y∣x1,…,xm)
- 输入通过预训练模型得到最后一个 Transformer 块的激活 h m l h_m^l hml,然后将其输入到一个添加的线性输出层(参数为 W y W_y Wy)来预测 y y y:
- 辅助目标
- 发现将语言建模作为微调的辅助目标有助于学习,原因如下:
- (a) 提高有监督模型的泛化能力;
- (b) 加速收敛。
- 具体优化以下目标(权重为 λ \lambda λ):
- L 3 ( C ) = L 2 ( C ) + λ ∗ L 1 ( C ) L_3(C)=L_2(C)+\lambda*L_1(C) L3(C)=L2(C)+λ∗L1(C)
- 在微调过程中,唯一需要的额外参数是 W y W_y Wy 和分隔符词元的嵌入(在 3.3 节中描述)。
- 发现将语言建模作为微调的辅助目标有助于学习,原因如下:
这种预训练和微调的方法通过在大规模无监督数据上进行预训练学习通用的语言表示,然后在有监督数据上进行微调以适应特定任务,同时使用辅助目标来提高微调效果。
最大似然(补数学)
- 定义
- 最大似然估计(Maximum Likelihood Estimation,MLE)是一种统计方法,用于根据样本数据来估计概率分布的参数。它的基本思想是:找到一组参数值,使得在这组参数下,观察到的样本数据出现的概率(即似然函数的值)最大。
- 直接对其进行求导等操作会很复杂。而对数函数具有良好的性质,它可以将乘法运算转化为加法运算。因为 ln ( a b ) = ln a + ln b \ln(ab)=\ln a+\ln b ln(ab)=lna+lnb,所以对数似然函数 ln L ( θ ; X ) = ∑ i = 1 n ln f ( x i ; θ ) \ln L(\theta;X)=\sum_{i = 1}^{n}\ln f(x_i;\theta) lnL(θ;X)=∑i=1nlnf(xi;θ),这样在求导等计算过程中会更加方便。
- 假设我们有一个样本 X = { x 1 , x 2 , ⋯ , x n } X = \{x_1,x_2,\cdots,x_n\} X={x1,x2,⋯,xn},这些样本是独立同分布(i.i.d)的,来自于一个概率分布 f ( x ; θ ) f(x;\theta) f(x;θ),其中 θ \theta θ 是未知参数。似然函数 L ( θ ; X ) L(\theta;X) L(θ;X) 定义为样本 X X X 在参数 θ \theta θ 下的联合概率密度(或概率质量)函数,即 L ( θ ; X ) = ∏ i = 1 n f ( x i ; θ ) L(\theta;X)=\prod_{i = 1}^{n}f(x_i;\theta) L(θ;X)=∏i=1nf(xi;θ)。
- 举例说明
- 例如,考虑一个简单的情况,有一个装有大量硬币的盒子,我们想估计硬币正面朝上的概率 p p p。我们从中抽取了 n = 10 n = 10 n=10 次硬币,得到的结果是 x = { H , T , H , H , T , H , T , H , H , T } x=\{H,T,H,H,T,H,T,H,H,T\} x={H,T,H,H,T,H,T,H,H,T},其中 H H H 表示正面, T T T 表示反面。
- 假设硬币正面朝上的概率为 p p p,那么一次投掷硬币正面朝上的概率是 p p p,反面朝上的概率是 1 − p 1 - p 1−p。由于每次投掷是独立的,这 10 10 10 次投掷的似然函数为 L ( p ; x ) = p × ( 1 − p ) × p × p × ( 1 − p ) × p × ( 1 − p ) × p × p × ( 1 − p ) = p 6 ( 1 − p ) 4 L(p;x)=p\times(1 - p)\times p\times p\times(1 - p)\times p\times(1 - p)\times p\times p\times(1 - p)=p^{6}(1 - p)^{4} L(p;x)=p×(1−p)×p×p×(1−p)×p×(1−p)×p×p×(1−p)=p6(1−p)4。
- 我们要找到 p p p 的值,使得 L ( p ; x ) L(p;x) L(p;x) 最大。通过求导等方法可以得到,当 p = 6 10 = 0.6 p=\frac{6}{10} = 0.6 p=106=0.6 时,似然函数取得最大值。所以最大似然估计得到硬币正面朝上的概率为 0.6 0.6 0.6。
- 计算步骤(以连续型分布为例)
- 步骤一:写出似然函数
- 设样本 X = ( x 1 , x 2 , ⋯ , x n ) X=(x_1,x_2,\cdots,x_n) X=(x1,x2,⋯,xn) 来自正态分布 N ( μ , σ 2 ) N(\mu,\sigma^{2}) N(μ,σ2),其中 μ \mu μ 和 σ 2 \sigma^{2} σ2 是未知参数。正态分布的概率密度函数为 f ( x ; μ , σ 2 ) = 1 2 π σ 2 exp ( − ( x − μ ) 2 2 σ 2 ) f(x;\mu,\sigma^{2})=\frac{1}{\sqrt{2\pi\sigma^{2}}}\exp\left(-\frac{(x - \mu)^{2}}{2\sigma^{2}}\right) f(x;μ,σ2)=2πσ21exp(−2σ2(x−μ)2)。
- 则似然函数 L ( μ , σ 2 ; X ) = ∏ i = 1 n 1 2 π σ 2 exp ( − ( x i − μ ) 2 2 σ 2 ) L(\mu,\sigma^{2};X)=\prod_{i = 1}^{n}\frac{1}{\sqrt{2\pi\sigma^{2}}}\exp\left(-\frac{(x_i - \mu)^{2}}{2\sigma^{2}}\right) L(μ,σ2;X)=∏i=1n2πσ21exp(−2σ2(xi−μ)2)。
- 步骤二:对似然函数取对数(对数似然函数)
- 对数似然函数 ln L ( μ , σ 2 ; X ) = − n 2 ln ( 2 π ) − n 2 ln ( σ 2 ) − 1 2 σ 2 ∑ i = 1 n ( x i − μ ) 2 \ln L(\mu,\sigma^{2};X)=-\frac{n}{2}\ln(2\pi)-\frac{n}{2}\ln(\sigma^{2})-\frac{1}{2\sigma^{2}}\sum_{i = 1}^{n}(x_i - \mu)^{2} lnL(μ,σ2;X)=−2nln(2π)−2nln(σ2)−2σ21∑i=1n(xi−μ)2。
- 步骤三:分别对参数求偏导数并令其为 0,求解参数
- 对 μ \mu μ 求偏导: ∂ ln L ∂ μ = 1 σ 2 ∑ i = 1 n ( x i − μ ) = 0 \frac{\partial\ln L}{\partial\mu}=\frac{1}{\sigma^{2}}\sum_{i = 1}^{n}(x_i - \mu)=0 ∂μ∂lnL=σ21∑i=1n(xi−μ)=0,解得 μ = 1 n ∑ i = 1 n x i = x ˉ \mu=\frac{1}{n}\sum_{i = 1}^{n}x_i=\bar{x} μ=n1∑i=1nxi=xˉ。
- 对 σ 2 \sigma^{2} σ2 求偏导并经过一系列计算可以得到 σ 2 = 1 n ∑ i = 1 n ( x i − x ˉ ) 2 \sigma^{2}=\frac{1}{n}\sum_{i = 1}^{n}(x_i - \bar{x})^{2} σ2=n1∑i=1n(xi−xˉ)2。
- 步骤一:写出似然函数
4、实验设置
每个头的状态维度为 768 维,一共有 12 个注意力头。
对于逐位置前馈网络(position - wise feed - forward networks),其内部状态维度为 3072 维。未明确提及前馈网络的输入维度,但根据描述可知其内部状态维度(可理解为隐藏层维度)为 3072。
输入输出维度
在 Transformer 架构中,前馈网络的输入通常与多头自注意力层的输出维度相同。文中指出多头自注意力头的状态维度为 768 维,因此可以推测前馈网络的输入维度大概率为 768 维。在 Transformer 架构中,前馈网络的输入维度通常与多头自注意力层的输出维度一致,即 768 维(在这个模型里)。
- 实验设置与结果
- 实验设置
- 无监督预训练:使用BooksCorpus数据集,包含多种体裁的未出版书籍,提供长文本以学习长距离依赖。模型为12层Transformer解码器,采用Adam优化器、特定超参数设置,并使用字节对编码(BPE)词汇表和多种正则化方法。
- 微调细节:多数任务复用预训练超参数,添加0.1的随机失活率(dropout),调整学习率、批量大小和训练轮数,采用线性学习率衰减和预热策略,辅助目标权重λ设为0.5。
- 实验结果
- 自然语言推理(NLI):在五个不同来源的数据集上评估,模型在四个数据集上显著优于基线方法,证明了处理多句推理和语言歧义的能力。
- 问答和常识推理:使用RACE和Story Cloze Test数据集,模型在处理长距离上下文的问答任务中表现出色,超越先前最佳结果。
- 语义相似性:在三个数据集上进行实验,在两个数据集上取得了领先的结果,尤其在处理概念重述、否定和句法歧义方面表现良好。
- 文本分类:在CoLA和SST - 2数据集上评估,模型在CoLA上的表现大幅提升,展示了对语言内在偏见的学习能力,在SST - 2上的准确率也具有竞争力,在GLUE基准测试中整体得分显著提高。
- 实验设置
5、模型分析
图 2:(左)从预训练语言模型中转移越来越多的层对 RACE 和 MultiNLI 的影响。 (右)该图显示了不同任务上的零样本性能,随 LM 预训练更新的变化。每个任务的性能在随机猜测基线和当前最先进的单个模型之间进行归一化。
说明:
- “# of layers transferred” :是指从预训练模型中迁移到目标任务模型中的层数。在将预训练模型应用于特定任务的微调阶段,并不总是将整个预训练模型的所有层都用于微调。有时会选择将预训练模型中的部分层 “迁移” 过来用于特定任务的训练,这就是 “layers transferred” 的含义。
- of pre - training updates:“预训练更新次数” 指的是在预训练阶段,模型参数被更新(优化)的次数。每次更新通常是基于一个批次(batch)的数据,通过反向传播算法来调整模型的权重,使得模型的预测结果与目标结果之间的误差最小化。
- Relative Task Performance :”相对任务性能“通常用于衡量模型在特定任务上相对于某个基准或其他模型的表现情况。它不是一个绝对的性能指标,而是一种比较性的度量。
5.1迁移层数影响
实验表明,迁移预训练模型的层数越多,对目标任务性能提升越大,证明预训练模型每层都包含解决目标任务的有用功能。
左侧图表
标题:RACE Dev Accuracy(用于评估的 RACE 数据集)
纵轴:准确率(Accuracy),范围从 0 到 100
横轴:迁移层数(# of layers transferred),范围从 0 到 12
5.2零样本行为分析
通过设计启发式解决方案,在无监督微调情况下利用生成模型执行任务,发现预训练过程中模型学习到多种任务相关功能,且Transformer架构的归纳偏差有助于迁移学习,相比LSTM,其零样本性能更稳定且方差更低。
右侧图表
标题:Relative Task Performance (相对任务性能)
纵轴:相对任务性能,范围从 0 到 1
横轴:预训练更新次数(# of pre - training updates),范围从 10³ 到 10⁶
5.3消融实验
对比有无辅助语言模型目标、Transformer与LSTM架构、有无预训练的模型,发现辅助目标对大数据集有益,Transformer架构在多数任务上表现优于LSTM,预训练对模型性能提升显著。
表 5:不同任务下各种模型消融的分析。平均分数是所有结果的未加权平均值。(mc= 马修斯相关,acc = 准确性,pc = 皮尔逊相关)
表格中的 “w/o” 是 “without” 的缩写,表示 “没有” 或 “不使用”。
表格中的“w/”表示 “with”,即 “带有” 或 “使用”。
aux:辅助训练目标Auxiliary training objectives
1.Transformer w/ aux LM (full):使用 Transformer 架构并带有辅助语言模型(auxiliary Language Model,aux LM)目标的完整模型。
2.Transformer w/o pre-training:没有经过预训练的 Transformer 模型。
3.Transformer w/o aux LM:使用 Transformer 架构但不使用辅助语言模型目标的模型。
4.LSTM w/ aux LM:使用长短期记忆网络(Long Short - Term Memory,LSTM)架构并带有辅助语言模型目标的模型。
6、半监督学习、迁移学习、预训练微调区别
一、核心区别总结
特征 | 半监督学习 | 迁移学习 | 预训练微调 |
---|---|---|---|
目标 | 利用未标注数据改善学习性能,主要用于标签稀缺的场景 | 将源任务知识迁移到目标任务,尤其在目标任务数据不足时 | 对大规模模型进行预训练,然后在小规模目标任务上微调 |
数据需求 | 少量标签数据 + 大量未标签数据 | 大量标注数据(源任务),目标任务数据稀缺 | 预训练时大量数据,微调时小规模目标数据 |
数据来源 | 同一任务或领域,利用无标签数据 | 不同任务或领域,源任务和目标任务可能不同 | 无监督/自监督大规模数据(预训练) + 小规模目标任务数据(微调) |
关键技术 | 自训练、一致性正则化、图算法等 | 微调、特征提取、对抗训练等 | 预训练(无监督学习)+ 微调(监督学习) |
应用场景 | 图像分类、文本分类、医学影像等 | 计算机视觉、自然语言处理、语音识别等 | BERT、GPT等预训练模型在情感分析、机器翻译等任务中微调 |
总结区别:
半监督学习:同时使用标注和未标注数据,主要解决数据标注困难的问题。
迁移学习:将源任务的知识迁移到目标任务,适用于任务之间有相似性或者需要数据较少的场景。
预训练微调:一种迁移学习的方法,首先在大规模数据上预训练模型,再通过少量标注数据进行微调,特别适合自然语言处理和计算机视觉领域。
半监督学习、迁移学习和预训练微调是三种在机器学习中常用的技术,它们虽然有一定的相似性,但在目标、数据使用方式、技术实现等方面存在显著差异。下面我会详细说明它们之间的区别:
1. 半监督学习 (Semi-supervised Learning)
目标:
半监督学习的目标是在标注数据稀缺的情况下,通过利用大量未标注数据来提升学习性能。它试图通过少量标注数据和大量未标注数据的结合,克服标注数据不足的问题。
数据需求:
- 需要少量的标注数据和大量的未标注数据。未标注数据没有明确的标签,但它们通常提供了丰富的结构信息。
关键技术:
- 自训练 (Self-training):用初始模型对未标注数据进行预测,将高置信度的预测作为伪标签加入训练集。
- 一致性正则化 (Consistency Regularization):使得模型对相同数据的不同扰动保持一致。
- 图算法 (Graph-based methods):将相似的数据点连接起来,通过图的结构信息来增强学习。
应用场景:
- 图像分类:有些图像的标签很少,而未标注图像数据却非常丰富。
- 文本分类:大量的文本数据未标注,标签稀缺。
- 医学影像:手动标注数据非常昂贵,但可以获取大量未标注的图像数据。
2. 迁移学习 (Transfer Learning)
目标:
迁移学习的目标是将从源任务或源领域学到的知识迁移到目标任务或目标领域。特别是当目标任务数据不足时,迁移学习能够利用源任务上训练好的模型来帮助目标任务的学习。
数据需求:
- 迁移学习需要在源任务上有充足的标注数据,以训练一个模型,然后将该模型迁移到目标任务上。
- 目标任务的数据可能是稀缺的,迁移学习的关键在于源任务与目标任务之间的相似性。
关键技术:
- 微调 (Fine-tuning):在源任务上预训练模型,然后在目标任务上对模型的部分层或整个模型进行微调,使其适应目标任务。
- 特征提取 (Feature extraction):使用在源任务上训练好的模型来提取特征,然后用这些特征训练目标任务的分类器。
- 对抗训练 (Adversarial training):通过训练对抗网络来减少源任务和目标任务之间的分布差异。
应用场景:
- 计算机视觉:利用在大规模数据集(如ImageNet)上训练的模型迁移到新的图像分类任务。
- 自然语言处理:如BERT、GPT等预训练模型迁移到情感分析、问答系统等下游任务。
- 语音识别:从语音识别任务迁移到其他语言或方言的识别。
3. 预训练微调 (Pretraining and Fine-tuning)
目标:
预训练微调是迁移学习的一种特殊形式,尤其在大规模语言模型(如BERT、GPT)和计算机视觉模型中应用广泛。它的核心是首先对模型进行大规模预训练,然后通过微调使其适应特定的目标任务。
数据需求:
- 预训练阶段:模型通常在大量的数据集上进行预训练,任务不特定,可以是无监督或自监督的。
- 微调阶段:在特定的任务和小规模的数据集上进行微调。
关键技术:
- 预训练 (Pretraining):通常是通过无监督学习(如自监督学习)或大量的标注数据训练一个大规模的基础模型。
- 微调 (Fine-tuning):在目标任务上对预训练的模型进行少量的训练,通常是调整模型的最后几层或所有层,以便模型能够适应特定任务。
应用场景:
- 自然语言处理:BERT、GPT、T5等模型首先在大规模文本数据上进行预训练,然后在情感分析、问答、翻译等任务上进行微调。
- 计算机视觉:在大规模图像数据集(如ImageNet)上预训练的卷积神经网络(CNN)模型,然后应用于特定任务(如疾病诊断、面部识别)上。
总结:
- 半监督学习适用于标签稀缺但未标注数据丰富的情况,目的是通过未标注数据来增强模型的学习能力。
- 迁移学习适用于源任务和目标任务之间存在相似性且目标任务数据稀缺的场景,目标是通过借用源任务的知识提高目标任务学习的效率。
- 预训练微调是迁移学习的一种形式,特别适合大规模模型,通过大规模预训练后再进行针对目标任务的微调,广泛应用于自然语言处理和计算机视觉领域。
二、NLP半监督学习
在 NLP 中,半监督学习的常用方法包括:
-
自训练(Self-training):模型首先使用标注数据进行训练,然后用训练好的模型来预测未标注数据的标签。模型将高置信度的预测结果加入训练集中,再进行迭代训练。
-
协同训练(Co-training):通过不同视角(例如不同的特征集)对数据进行训练。两个(或多个)学习器各自使用不同的特征集训练模型,互相提供标签,进一步提高模型的泛化能力。
-
图形模型(Graph-based Methods):通过将数据点建模为图的节点,节点之间的边表示样本间的相似度。通过标签传播(Label Propagation)等算法将标签信息从标注样本传播到未标注样本。
-
生成式模型(Generative Models):例如变分自编码器(VAE)或生成对抗网络(GANs)等模型,可以通过学习数据的生成过程来进行半监督学习。
-
一致性正则化(Consistency Regularization):这是近年来在深度学习中非常流行的方法。该方法基于假设:在数据的某些扰动下(例如数据增强),模型的预测应该保持不变。通过最小化这种不一致性来优化模型。
无监督预训练(Unsupervised Pretraining)是一种基于未标注数据的预训练策略,在自然语言处理(NLP)和其他领域中得到了广泛应用。其核心思想是通过大规模未标注数据训练模型,使其学习到有用的特征表示,这些表示可以在后续的有监督任务中进行微调,从而提升任务性能。
无监督预训练的关键优势是能够利用海量的未标注数据,这对于标注数据稀缺的任务尤其重要。
三、无监督预训练
-
无监督预训练阶段:
- 使用大量未标注的数据,通过特定的无监督任务(如语言建模、词嵌入、生成任务等)训练模型,学习数据的内在结构或表示。
-
微调阶段(Fine-tuning):
- 通过少量标注数据对预训练模型进行微调,使其更适应特定的任务。这一步通常是针对特定的下游任务(如文本分类、命名实体识别、机器翻译等)进行的。
无监督预训练的核心方法
1. 语言建模(Language Modeling)
- 自回归语言建模(Autoregressive Language Modeling):
- 通过预测下一个词来训练模型,使其逐步学习上下文之间的关系。典型的代表是 GPT(Generative Pre-trained Transformer)。GPT通过自回归方式(即条件生成)对输入文本进行建模,逐个预测单词。
- 自编码语言建模(Masked Language Modeling):
- 在输入文本中随机掩蔽一些词,模型的目标是根据上下文预测这些被掩蔽的词。BERT(Bidirectional Encoder Representations from Transformers)是基于这种方式训练的,能够有效捕捉上下文信息。
2. 词嵌入(Word Embeddings)
- Word2Vec:通过上下文预测词或根据词预测上下文,训练出词向量表示。该模型的目标是将语义相似的词映射到向量空间中的相近位置。
- GloVe:通过统计词与词之间的共现频率来训练词向量,旨在学习词与词之间的全局关系。
3. 生成模型(Generative Models)
- 自编码器(Autoencoder):通过编码和解码过程来学习数据的潜在表示,自编码器可以在无监督学习中用来学习低维空间的有用特征。
- 生成对抗网络(GANs):通过生成器和判别器的对抗训练,生成模型能够从未标注的数据中学习复杂的结构和特征。虽然GANs更多用于生成任务,但它们也可以用于文本生成和生成伪标签。
4. 对比学习(Contrastive Learning)
- 对比学习通过构造正负样本对,使模型学习相似样本在特征空间中靠得更近,非相似样本则远离。这种方法能够帮助模型学习到高质量的表示。
- SimCLR(Simple Framework for Contrastive Learning of Visual Representations)是计算机视觉中的对比学习方法,但也有类似的对比学习方法应用于NLP任务,如 SimCSE,它利用句子对比来学习句子表示。
无监督预训练的应用
无监督预训练的主要应用领域包括以下几类:
1. 预训练语言模型(Pretrained Language Models)
- BERT(Bidirectional Encoder Representations from Transformers):BERT是通过掩蔽语言模型(MLM)进行预训练的,它能够在双向上下文中学习语言特征。BERT的强大之处在于它可以适应多种NLP任务(如文本分类、命名实体识别、问答等),通过简单的微调即可进行任务适应。
- GPT(Generative Pre-trained Transformer):GPT通过自回归语言建模的方式进行预训练,具有强大的文本生成能力。GPT在多个生成任务(如文本生成、对话生成等)中表现出色。
- T5(Text-to-Text Transfer Transformer):T5将所有NLP任务转化为统一的“文本到文本”格式,因此预训练后可以在许多不同的任务中进行微调,包括文本摘要、翻译、情感分析等。
2. 无监督文本表示学习
- Word2Vec和GloVe:通过无监督学习训练出的词向量能够有效捕捉词汇间的语义关系,广泛应用于词义消歧、情感分析、信息检索等任务。
- 句子表示学习:例如,InferSent和SBERT(Sentence-BERT)等通过无监督学习句子或文本的表示,可以在文本匹配、语义搜索等任务中获得优越表现。
3. 无监督文本生成
- GPT系列:GPT模型,尤其是GPT-3及其后续版本,在无监督生成文本方面具有卓越的能力,广泛用于自动文本生成、对话系统、内容创作等场景。
- BART(Bidirectional and Auto-Regressive Transformers):BART结合了BERT和GPT的优点,既能进行生成任务,也能进行理解任务,广泛用于文本生成、摘要生成等任务。
4. 无监督学习与多任务学习
- 通过无监督预训练模型,可以将多种任务的学习过程结合在一起,通过共享预训练的表示来增强模型的泛化能力。例如,T5将不同的NLP任务统一为文本到文本的转换任务,能够在多个任务之间进行迁移学习。
四、辅助训练目标Auxiliary training objectives (半监督学习)
- 半监督学习中的辅助训练目标概念
- 在半监督学习中,辅助训练目标是除了主要的预测目标(如分类或回归任务的目标标签)之外的其他目标。这些目标可以帮助模型更好地利用未标记数据,提升模型的性能和泛化能力。半监督学习的主要挑战是如何有效地结合少量的标记数据和大量的未标记数据进行学习。辅助训练目标的设定就是为了更好地挖掘未标记数据中的信息。
- 辅助训练目标的作用原理
- 特征学习增强:通过辅助训练目标,模型可以学习到数据更丰富的特征表示。例如,在图像分类任务中,除了预测图像所属的类别这个主要目标外,辅助目标可以是学习图像的纹理特征、颜色分布等低层次特征。这样,模型在利用未标记数据时,可以通过这些辅助目标来提炼更有价值的特征信息,使得最终的特征表示对于主要的分类任务也更有效。
- 数据分布估计:辅助训练目标可以帮助模型更好地估计数据的分布。在半监督学习中,未标记数据的分布包含了很多有用的信息。例如,在自然语言处理中的文本分类任务中,辅助目标可以是预测文本的主题分布或词频分布等。通过学习这些辅助目标,模型能够更好地理解文本数据的整体分布情况,从而在主要的分类任务中能够更准确地判断文本所属的类别。
- 常见的辅助训练目标类型及应用场景
- 生成式辅助目标:
- 以生成对抗网络(GAN)在半监督学习中的应用为例。在这种情况下,生成器的目标是生成与真实数据相似的数据,鉴别器的主要目标是区分真实数据和生成的数据。而在半监督学习的框架下,生成器和鉴别器可以有一个辅助目标,即利用生成的数据和鉴别器的判别信息来帮助对未标记数据进行分类。例如,在图像生成任务中,生成器生成新的图像,鉴别器判断图像的真假,同时这个过程可以辅助对未标记的图像数据进行分类,比如判断图像是否属于某一特定的物体类别。
- 基于聚类的辅助目标:
- 在半监督聚类任务中,主要目标是将数据分成不同的类别。辅助目标可以是学习数据点之间的相似度度量。例如,在客户细分任务中,主要目标是根据客户的消费行为等特征将客户划分到不同的细分市场。辅助目标可以是学习客户特征之间的相似性,如年龄、消费频率、购买产品种类等因素之间的相似性。通过这种辅助目标,模型可以更好地利用未标记的客户数据,更准确地进行客户细分。
- 多任务学习辅助目标:
- 考虑一个同时进行文本情感分类和文本主题分类的半监督任务。文本情感分类(如正面、负面、中性)是主要目标,而文本主题分类(如体育、娱乐、科技等)可以作为辅助目标。模型在学习过程中,通过同时考虑这两个目标,能够从未标记数据中提取出对两个任务都有用的特征。例如,在分析社交媒体文本时,未标记的文本数据可以通过主题分类辅助目标来更好地理解文本的大致内容,进而有助于对文本情感的判断,提升了整个半监督学习过程的性能。
- 生成式辅助目标:
以下是几种常见的半监督学习中的辅助训练目标:
- 一致性正则化(Consistency Regularization)
- 伪标签(Pseudo-labeling)
- 自训练(Self-training)
- 生成模型作为辅助目标
- 熵最小化(Entropy Minimization)
- 对抗训练(Adversarial Training)
- 表示学习(Representation Learning)
- 数据增强的交叉熵损失
- 多任务学习(Multi-task Learning)