首页 >科技周边 >人工智能 >OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

王林
王林转载
2023-04-12 08:58:091153浏览

本文转自雷锋网,如需转载请至雷锋网官网申请授权。

现实应用中,数据易得,而有标签的数据少有。

一般而言,当监督学习任务面临标签数据不足问题时,可以考虑以下四种解决办法:

1.预训练+微调:首先在一个大规模无监督数据语料库上对一个强大的任务无关模型进行预训练(例如通过自监督学习在自由文本上对语言模型进行预训练,或者在无标签图像上对视觉模型进行预训练),之后再使用一小组标签样本在下游任务上对该模型进行微调。

2.半监督学习:同时从标签样本和无标签样本中学习,研究者使用该方法在视觉任务上进行了大量研究。

3.主动学习:标注成本高,即便成本预算有限,也希望尽可能收集更多的标签数据。主动学习学习选择最有价值的无标签样本,并在接下来的收集过程中收集此类数据,在预算有限的情况下,帮助模型尽可能达到预期效果。

4.预训练+数据集自动生成:给定一个功能强大的预训练模型,可以利用该模型来自动生成更多得多的标签样本。受小样本学习大获成功的驱动,该方法在语言领域的应用尤其普遍。

本文全面介绍半监督学习这一方法,作者为OpenAI研究员Lilian Weng,博客地址:https://lilianweng.github.io/

1 什么是半监督学习?

半监督学习同时使用标签数据和无标签数据来训练模型。有趣的是,现有关于半监督学习的文献大多集中在视觉任务上。而预训练+微调方法才是语言任务中更常见的范式。本文所提到的所有方法的损失,都由两部分构成:OpenAI 研究员:数据不足时,如何实现监督学习。其中监督损失OpenAI 研究员:数据不足时,如何实现监督学习在样本全部为标签样本的情况下非常容易计算出来。我们需要重点关注如何设计无监督损失OpenAI 研究员:数据不足时,如何实现监督学习。加权项OpenAI 研究员:数据不足时,如何实现监督学习通常选择使用斜坡函数,其中t是训练步数,随着训练次数的增加,OpenAI 研究员:数据不足时,如何实现监督学习的占比提升。声明:此文并不覆盖所有半监督方法,仅聚焦于模型架构调优方面的。关于在半监督学习中,如何使用生成模型和基于图的方法,可以参考《深度半监督学习全览》(An Overview of Deep Semi-Supervised Learning)这篇论文。

2 符号说明表

符号

含义

OpenAI 研究员:数据不足时,如何实现监督学习

唯一标签的数量。

OpenAI 研究员:数据不足时,如何实现监督学习

标签数据集,其中OpenAI 研究员:数据不足时,如何实现监督学习是真实标签的独热表示。

OpenAI 研究员:数据不足时,如何实现监督学习

无标签数据集。

OpenAI 研究员:数据不足时,如何实现监督学习

整个数据集,包括标签样本和无标签样本。

OpenAI 研究员:数据不足时,如何实现监督学习

可以表示无标签样本, 也可以表示标签样本。

OpenAI 研究员:数据不足时,如何实现监督学习

经过增强处理的无标签样本或标签样本。

OpenAI 研究员:数据不足时,如何实现监督学习

第i个样本。

OpenAI 研究员:数据不足时,如何实现监督学习

分别表示损失,监督损失,无监督损失

OpenAI 研究员:数据不足时,如何实现监督学习

无监督损失权重,随着训练步数增加而增加。

OpenAI 研究员:数据不足时,如何实现监督学习

给定输入情况下,标签数据集的条件概率。

OpenAI 研究员:数据不足时,如何实现监督学习

使用加权θ生成的神经网络,即期望训练出的模型。

OpenAI 研究员:数据不足时,如何实现监督学习

逻辑函数f的输出值的向量。

OpenAI 研究员:数据不足时,如何实现监督学习

预测的标签分布。

OpenAI 研究员:数据不足时,如何实现监督学习

两个分布间的距离函数,例如均方误差、交叉熵、KL散度等。

OpenAI 研究员:数据不足时,如何实现监督学习

Teacher 模型权重的移动平均线加权超参数。

OpenAI 研究员:数据不足时,如何实现监督学习

α为混合样本的系数 ,OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

锐化预测分布的温度。

OpenAI 研究员:数据不足时,如何实现监督学习

选择合格的预测结果的置信度阈值。

3 假设

在已有研究文献中,讨论了以下几种假设来支撑对半监督学习方法中的某些设计进行决策。

假设1:平滑度假设(Smoothness Assumptions)

如果两个数据样本在特征空间的高密度区域接近,它们的标签应该会相同或非常相似。

假设2:聚类假设(Cluster Assumptions)

特征空间既有密集区域,也有稀疏区域。密集分组的数据点很自然地形成聚类。同一聚类中的样本应具有相同的标签。这是对假设1的一个小扩展。

假设3:低密度分离假设(Low-density Separation Assumptions)

类之间的决策边界往往位于稀疏的低密度区域,因为如果不这样的话,决策边界就会将高密度聚类分割为分别对应两个聚类的两个类,这就会导致假设1和假设2都失效。

假设4:流形假设(Manifold Assumptions)

高维数据往往位于低维流形上。尽管现实世界的数据可能是在非常高的维度上被观察到的(例如,真实世界的物体/场景的图像),但它们实际上可以被更低维的流形捕获,这种低维流形上会捕获数据的某些属性,并将一些相似的数据点进行紧密组合(例如真实世界的物体/场景的图像,并不是源自于所有像素组合的均匀分布)。这就使得模型能够学习一种更有效的表征方法去发现和评估无标签数据点之间的相似性。这也是表征学习的基础。关于此假设,更详细的阐述可参考《如何理解半监督学习中的流行假设》这篇文章。

链接:https://stats.stackexchange.com/questions/66939/what-is-the-manifold-assumption-in-semi-supervised-learning

4 一致性正则化(Consistency Regularization)

一致性正则化,也叫一致性训练,假设给定相同输入,神经网络中的随机性(例如使用 Dropout算法)或数据增强转换不会更改模型预测。本节中的每个方法都有一个一致性正则化损失:OpenAI 研究员:数据不足时,如何实现监督学习。SimCLR、BYOL、SimCSE 等多个自监督学习方法都采用了这一思想。相同样本的不同增强版本,产生的表征都相同。语言建模中的交叉视图训练(Cross-view training )和自监督学习中的多视图学习(Multi-view learning)的研究动机相同。

(1).Π模型

OpenAI 研究员:数据不足时,如何实现监督学习

图1:Π-模型概览。同一个输入经过不同的随机增强和 dropout掩膜的扰动产生两个版本,通过网络得到两个输出,Π-模型预测这两个输出是一致的。(图片来源:Laine 、 Aila  2017发表的论文《半监督学习的时序集成》 )

Sajjadi 等人在2016年发表的论文《深度半监督学习的随机变换和扰动正则化》(Regularization With Stochastic Transformations and Perturbations for Deep Semi-Supervised Learning)中,提出了一种无监督学习损失,它能够将同一数据点经过随机变换(例如dropout、随机最大池化)产生两个版本,并在通过网络后输出的两个结果之间的差异最小化。由于其标签没有被明确使用,所以该损失可以应用到无标签数据集。Laine 、Aila 后来在2017年发表的论文《半监督学习的时序集成》(Temporal Ensembling for Semi-Supervised Learning)中,为这种处理方式取了一个名字,叫做 Π模型。OpenAI 研究员:数据不足时,如何实现监督学习其中,OpenAI 研究员:数据不足时,如何实现监督学习指同一个神经网络应用不同的随机增强或dropout掩膜的取值。该损失使用整个数据集。

(2)时序集成(Temporal ensembling)

OpenAI 研究员:数据不足时,如何实现监督学习

图2:时序集成概览。其学习目标是对每个样本的指数移动平均值( EMA)做出标签预测。(图片来源:Laine 、 Aila  2017发表的论文《半监督学习的时序集成》)

Π模型需要每个样本通过神经网络两次,这就使得计算成本增加一倍。为了减少成本,时序集成模型持续将每个训练样本OpenAI 研究员:数据不足时,如何实现监督学习的实时模型预测的指数移动平均值(EMA)作为学习目标,EMA 在每轮迭代中仅需计算和更新一次。由于时序集成模型的输出OpenAI 研究员:数据不足时,如何实现监督学习被初始化为0,因而除以OpenAI 研究员:数据不足时,如何实现监督学习进行归一化来纠正这一启动偏差。出于同一原因,Adam 优化器也有这样的偏差纠正项。OpenAI 研究员:数据不足时,如何实现监督学习其中OpenAI 研究员:数据不足时,如何实现监督学习是在第t轮迭代中的集成预测,OpenAI 研究员:数据不足时,如何实现监督学习是在当前回合的模型预测。需要注意的是,由于OpenAI 研究员:数据不足时,如何实现监督学习=0,进行偏差纠正后,OpenAI 研究员:数据不足时,如何实现监督学习就完全等于在第1轮迭代中的模型预测值OpenAI 研究员:数据不足时,如何实现监督学习

(3)均值教师(Mean teachers)

OpenAI 研究员:数据不足时,如何实现监督学习

图3:Mean Teacher 框架概览(图片来源:Tarvaninen、 Valpola在2017年发表的论文《均值教师模型是表现更好的模范模型:加权平均一致性目标优化半监督深度学习结果》)

时序集成模型将追踪每一个训练样本的标签预测的指数移动平均值作为学习目标。然而,这种标签预测仅在每一次迭代中发生变化,当训练数据集很大时,这种方法就显得冗杂。为了克服目标更新速度慢的问题,Tarvaninen、 Valpola在2017年发表的论文《均值教师模型是表现更好的模范模型:加权平均一致性目标优化半监督深度学习结果》(Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results)中,提出了Mean Teacher算法,该算法通过跟踪模型权值的移动平均值而不是模型输出来更新目标。权重为θ的原始模型叫做Student模型,将权重为连续多个Student模型的移动平均权重θ′的模型,称为Mean Teacher模型:

OpenAI 研究员:数据不足时,如何实现监督学习

一致性正则化损失是Student模型和Teacher 模型的预测之间的距离,并且该差距应该最小化。Mean Teacher 模型能够提供比Student模型更准确的预测。该结论在实证实验中得到了证实,如图 4 所示。

OpenAI 研究员:数据不足时,如何实现监督学习

图4:Π 模型和 Mean Teacher模型在 SVHN 数据集上的分类误差。Mean Teacher模型(用橙线表示)比Student模型(用蓝线表示)的表现更好。(图片来源:Tarvaninen、 Valpola在2017年发表的论文《均值教师模型是表现更好的模范模型:加权平均一致性目标优化半监督深度学习结果》)

根据其消融研究:

  • 输入增强方法(例如,输入图像的随机翻转、高斯噪声)或对Student模型进行dropout处理对于模型实现良好的性能是必要的。Teacher模式不需要进行dropout处理。
  • 性能对指数移动平均值的衰减超参数β敏感。一个比较好的策略是在增长阶段使用较小的β=0.99,在后期Student模型改进放缓时使用较大的β=0.999。
  • 结果发现,一致性成本函数的均方误差(MSE)比KL发散等其他成本函数的表现更好。

(4)将噪声样本作为学习目标

最近的几种一致性训练方法学习将原始的无标签样本与其相应的增强版本之间的预测差异最小化。这种思路与 Π 模型非常相似,但其一致性正则化损失仅适用于无标签数据。

OpenAI 研究员:数据不足时,如何实现监督学习

图5:使用噪声样本的一致性训练

在Goodfellow等人于2014年发表的论文《解释和利用对抗性样本》(Explaining and Harnessing Adversarial Examples)中,对抗性训练(Adversarial Training)将对抗性噪声应用到输入上,并训练模型使其对此类对抗性攻击具有鲁棒性。

该方法在监督学习的应用公式如下:

OpenAI 研究员:数据不足时,如何实现监督学习

其中OpenAI 研究员:数据不足时,如何实现监督学习是真实分布,近似于真值标签的独热编码,OpenAI 研究员:数据不足时,如何实现监督学习是模型预测,OpenAI 研究员:数据不足时,如何实现监督学习是计算两个分布之间差异的距离函数。Miyato 等人在2018年发表的论文《虚拟对抗性训练:对监督和半监督方法都适用的正则化方法》(Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning)中提出虚拟对抗性训练(Virtual Adversarial Training,VAT),该方法是对抗性训练思想在半监督学习领域的一个延伸。由于OpenAI 研究员:数据不足时,如何实现监督学习是未知的,VAT 将该未知项替换为当前权重设定为OpenAI 研究员:数据不足时,如何实现监督学习时,当前模型对原始输入的预测。需要注意的是,OpenAI 研究员:数据不足时,如何实现监督学习是模型权重的的固定值,因而在OpenAI 研究员:数据不足时,如何实现监督学习上不会进行梯度更新。

OpenAI 研究员:数据不足时,如何实现监督学习

VAT 损失既适用于标签样本,也适用于无标签样本。它计算的是当前模型在每个数据点的预测流形的负平滑度。对这种损失进行优化能够让预测流形更加平滑。Verma等人在2019年论文《半监督学习的插值一致性训练》(Interpolation Consistency Training for Semi-Supervised Learning)中提出插值一致性训练(Interpolation Consistency Training,ICT),通过添加更多数据点的插值来强化数据集,让模型预测和对应标签的插值尽可能一致。Hongyi Zhang等人在2018年的论文《Mixup:超越经验风险最小化》(Mixup: Beyond Empirical Risk Minimization)中提出MixUp方法,即通过简单的加权和来将两个图像进行混合处理。插值一致性训练即根据这一思路,让预测模型为一个混合样本生成标签,来匹配对应输入的预测插值:

OpenAI 研究员:数据不足时,如何实现监督学习

其中OpenAI 研究员:数据不足时,如何实现监督学习表示Mean Teacher 模型的θ的移动平均值。

OpenAI 研究员:数据不足时,如何实现监督学习

图6:插值一致性训练概览。使用MixUp方法生成更多以插值标签作为学习目标的插值样本。(图片来源:Verma等人在2019年论文《半监督学习的插值一致性训练》)

由于两个随机选择的无标签样本属于不同类别的概率很高(例如ImageNet中就有1000个目标类别),因此在两个随机无标签样本之间应用Mixup方法,就很可能生成在决策边界附近的插值。根据低密度分离(Low-density Separation)假设,决策边界往往位于低密度区域。

OpenAI 研究员:数据不足时,如何实现监督学习

其中OpenAI 研究员:数据不足时,如何实现监督学习表示θ的移动平均值。与VAT类似,Xie 等人在2020年的论文《一致性训练的无监督数据增强》(Unsupervised Data Augmentation for Consistency Training)中提出的无监督数据增强(Unsupervised Data Augmentation,UDA),学习给无标签样本和增强样本预测相同的输出。UDA特别聚焦于研究噪声的“质量”如何通过一致性训练来影响半监督学习的性能。要想生成有意义和有效的噪声样本,使用先进的数据增强方法至关重要。良好的数据增强方法应该能够产生有效的(即不改变标签)和多样的噪声,并带有有针对性的归纳偏置(Inductive Biases)。

针对图像领域,UDA 采用的是RandAugment方法,该方法由Cubuk 等人在2019年的论文《RandAugment: 减少搜索空间的实用型自动数据增强方法》(RandAugment: Practical automated data augmentation with a reduced search space)中提出。它对Python图像处理库PIL中可用的增强操作进行统一采样,无需学习或优化,因此比使用AutoAugment方法,成本要便宜得多。

OpenAI 研究员:数据不足时,如何实现监督学习

图7:CIFAR-10分类中各种半监督学习方法的比较。在未经过RandAugment处理的50000个样本进行训练时,Wide-ResNet-28-2和PyramidNet+ShakeDrop 在完全监督下,错误率分别为**5.4**和**2.7**。

针对语言领域,UDA结合使用回译( back-translation)和基于TF-IDF的词替换(word replacement)两种方法。回译保留了高层次意义,但是不保留某些词本身,而基于TF-IDF的词替换则去掉TF-IDF分数较低的无信息性词。在语言任务的实验中,研究者发现发现UDA与迁移学习和表征学习是互补的;例如,在域内无标签数据上对BERT模型进行微调(即图8中的OpenAI 研究员:数据不足时,如何实现监督学习),能进一步提升性能。

OpenAI 研究员:数据不足时,如何实现监督学习

图8:不同文本分类任务上,无监督数据增强方法采用不同初始化设置的比较。(图片来源:Xie 等人在2020年的论文《一致性训练的无监督数据增强》)

在计算 OpenAI 研究员:数据不足时,如何实现监督学习 时,UDA可以通过使用以下三种训练技巧来优化结果:

  • 低置信度掩膜(Low confidence masking):如果样本的预测置信度低于阈值OpenAI 研究员:数据不足时,如何实现监督学习,则对其进行掩膜处理。
  • 锐化预测分布(Sharpening Prediction Distribution):在Softmax中使用低温OpenAI 研究员:数据不足时,如何实现监督学习来对预测概率分布进行锐化。
  • 域内数据过滤(In-Domain Data Filtration):为了从大的域外数据集中提取更多的域内数据 ,研究人员训练一个分类器来预测域内标签,然后保留具有高置信度预测的样本作为域内候选样本。

OpenAI 研究员:数据不足时,如何实现监督学习

其中,OpenAI 研究员:数据不足时,如何实现监督学习是模型权重的固定值,与VAT中的OpenAI 研究员:数据不足时,如何实现监督学习一样,因而没有梯度更新,OpenAI 研究员:数据不足时,如何实现监督学习是经过增强的数据点,OpenAI 研究员:数据不足时,如何实现监督学习是预测置信度阈值,OpenAI 研究员:数据不足时,如何实现监督学习是分布锐化温度。

5 伪标签(Pseudo Labeling)

Lee等人在2013年的论文《伪标签:深度神经网络的简单而高效的半监督学习方法》(Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks)中提出伪标签,它基于当前模型预测的最大的softmax概率,将伪标签分配给无标签样本,然后在完全监督设置下,同时在标签样本和无标签样本上训练模型。

为什么伪标签能起作用?伪标签实际上相当于熵正则化,它将无标签数据的类概率的条件熵( conditional entropy )最小化,从而实现类之间的低密度分离。换句话说,预测的类概率实际上是计算类重叠,最小化熵相当于减少类重叠,从而降低密度分离。

OpenAI 研究员:数据不足时,如何实现监督学习

图9:(a )表示仅使用600 个标签数据对模型训练后,在MINIST 测试集上进行测试输出的t-SNE可视化结果,(b)表示使用600 个标签数据以及60000 个无标签数据的伪标签对模型进行训练后,在MINIST 测试集上进行测试输出的t-SNE可视化结果。伪标签能够使学到的嵌入空间实现更好的分离效果。(图片来源:Lee等人在2013年的论文《伪标签:深度神经网络的简单而高效的半监督学习方法》)

使用伪标签进行训练自然是一个迭代过程。这里将生成伪标签的模型叫做Teacher 模型,将使用伪标签学习的模型称作Student 模型。

(1)标签传播(Label propagation)

Iscen等人在2019年发表的论文《深度半监督学习的标签传播》(Label Propagation for Deep Semi-supervised Learning)中提出标签传播概念,是一种基于特征嵌入在样本之间构建相似图的思想。接着将伪标签从已知样本“扩散”到传播权重与图中成对相似性得分成正比的无标签样本。从概念上来看,它类似于k-NN分类器,两者都存在无法很好地扩展到大型数据集上的问题。

OpenAI 研究员:数据不足时,如何实现监督学习

图10:标签传播工作原理示意图。(图片来源:Iscen等人在2019年发表的论文《深度半监督学习的标签传播》)

(2)自训练(Self-Training)

自训练不是一个新概念,Scudder等人在1965年发表的论文《自适应模式识别机器的错误概率》(Probability of error of some adaptive pattern-recognition machines)、 Nigram & Ghani等人在CIKM 2000 上发表的论文《分析协同训练的有效性和适用性》(Analyzing the Effectiveness and Applicability of Co-trainin)都涉及到这个概念。它是一种迭代算法,轮番进行以下两步操作,直到每个无标签样本都匹配到一个标签:

  • 首先,它在标签数据上构建分类器。
  • 接着,它使用该分类器预测无标签数据的标签,并将置信度最高的标签转换为标签样本。

Xie 等人在2020年发表的论文《使用噪声学生进行自训练来优化 ImageNet 分类》(Self-training with Noisy Student improves ImageNet classification)中,将自训练应用于深度学习,并取得了巨大成果。在ImageNet分类任务中,研究者首先训练了一个EfficientNet模型作为Teacher模型,为3亿张无标签图像生成伪标签,然后训练了一个更大的EfficientNet模型作为Student 模型,以学习真实标签图像和伪标签图像。在他们的实验设置中,一个关键的元素是在Student模型训练期间加入噪声,而Teacher模型生成伪标签过程则不加入噪声来。因此,他们的方法被称为“噪声学生(Noisy Student )”,即使用随机深度、dropout和RandAugment方法给Student 模型加入噪声。Student 模型表现得比Teacher 模型更好,很大程度上就是加入噪声带来的好处。添加的噪声具有复合效应,可以促使模型在标签数据和无标签数据上产生的决策边界变得平滑。Student 模型自训练还有其他几个重要的技术设置,包括:

  • Student 模型加应该足够大(即比Teacher 模型大),以适用于更多数据。
  • 加入噪声的Student 模型应该结合数据平衡方法,这对于平衡每个类重的伪标签图像的数量尤其重要。
  • 软伪标签比硬标签效果更好。

加入噪声的Student 模型还提高了防御 FGSM(快速梯度符号攻击,其使用输入数据的损失梯度,并调整输入数据从而最大化损失)的对抗鲁棒性,即便该模型未针对对抗鲁棒性进行优化。

Du 等人在2020年的论文《自训练优化自然语言理解的预训练》(Self-training Improves Pre-training for Natural Language Understanding)中提出SentAugment 方法,旨在解决语言领域进行自训练时,域内无标签数据不足的问题。它依靠句向量从大型语料库中找到无标签的域内样本,并使用检索到的句子进行自训练。

(3)减小确认偏误(Confirmation Bias)

确认偏误是由于Teacher模型还不够成熟导致提供错误的伪标签的问题。对错误标签进行过拟合可能并不会产生更好的Student模型。

为了减小确认偏误,Eric Arazo等人在论文《深度半监督学习中的伪标签和确认偏误》(Pseudo-Labeling and Confirmation Bias in Deep Semi-Supervised Learning)中提出了两种新方法。

一种是采用软标签的Mixup方法,给定OpenAI 研究员:数据不足时,如何实现监督学习两个样本和它们对应的真标签和伪标签OpenAI 研究员:数据不足时,如何实现监督学习,插值标签方程可以转化为softmax输出的交叉熵损失:

OpenAI 研究员:数据不足时,如何实现监督学习

如果标签样本太少,使用Mixup方法还不够。因此论文作者通过对标签样本进行过采样,从而对每个小批量中的标签样本设置最小数量。这比对标签样本进行权重补偿效果更好,因为它会更频繁地更新,而不是频次少的更大幅度的更新——这种更新其实更不稳定。

与一致性正则化一样,数据增强和dropout方法对于发挥伪标签的作用,也很重要。

Hieu Pham等人在2021年论文《元伪标签》(Meta Pseudo Labels)中提出元伪标签,根据Student模型对在标签数据集上表现的反馈,不断调整Teacher模型。Teacher模型和Student模型同步进行训练,Teacher模型学习生成更好的伪标签,Student模型从伪标签中学习。

将Teacher模型和Student模型的权重分别设为OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习,Student模型在标签样本上的损失定义为OpenAI 研究员:数据不足时,如何实现监督学习的函数OpenAI 研究员:数据不足时,如何实现监督学习,并倾向于通过优化Teacher模型来相应地最小化这一损失。

OpenAI 研究员:数据不足时,如何实现监督学习

然而,优化上述方程并非易事。借用MAML (模型无关的元学习, Model-Agnostic Meta-Learnin)的思路,它近似于在进行多步OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习计算的同时,对OpenAI 研究员:数据不足时,如何实现监督学习进行一步梯度更新。

OpenAI 研究员:数据不足时,如何实现监督学习

由于使用的是软伪标签,上述目标函数是可微函数。但是如果使用硬伪标签,则是不可微函数,因此需要用到REINFORCE等强化学习方法。

优化过程是在两个模型之间的交替进行的:

  • Student模型更新:给定一批无标签样本OpenAI 研究员:数据不足时,如何实现监督学习,我们可以通过函数OpenAI 研究员:数据不足时,如何实现监督学习生成伪标签,并使用一步随机梯度下降优化OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习
  • Teacher模型更新:给定一批标签样本OpenAI 研究员:数据不足时,如何实现监督学习,我们重复使用Student模型的更新来优化OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习。此外,还将UDA对象应用于Teacher模型以兼并一致性正则化。

OpenAI 研究员:数据不足时,如何实现监督学习

图11:元伪标签与其他半监督或自监督学习方法在图像分类任务中的性能比较。(图片来源:Hieu Pham等人在2021年论文《元伪标签》)

6 一致性正则化+伪标签

可以将一致性正则化、伪标签两种方法结合起来,应用到半监督学习。 

(1)MixMatch

Berthelot等人在2019年的论文《MixMatch: 一种面向半监督学习的整体性方法》(MixMatch: A Holistic Approach to Semi-Supervised Learning)中提出的MixMatch 方法,是一种应用于半监督学习的整体性方法,它通过整合以下方法来使用无标签数据:

  • 一致性正则化(Consistency regularization):让模型对受到扰动的无标签样本输出相同的预测。
  • 熵最小化(Entropy minimization):让模型对无标签数据输出置信预测。
  • MixUp 增强:让模型在样本之间进行线性行为。

给定一批标签数据OpenAI 研究员:数据不足时,如何实现监督学习和无标签数据OpenAI 研究员:数据不足时,如何实现监督学习,通过OpenAI 研究员:数据不足时,如何实现监督学习运算得到其增强版本,OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习分别表示增强样本和给无标签样本预测到的标签。

 OpenAI 研究员:数据不足时,如何实现监督学习

其中OpenAI 研究员:数据不足时,如何实现监督学习是锐化温度,用来减少猜测到的标签重叠;K 是每一个无标签样本生成的增强版本个数;OpenAI 研究员:数据不足时,如何实现监督学习是MixMatch 函数中的参数。对于每一个OpenAI 研究员:数据不足时,如何实现监督学习,MixMatch都会生成K个增强版本,OpenAI 研究员:数据不足时,如何实现监督学习等于k分别为1,....,K的OpenAI 研究员:数据不足时,如何实现监督学习的增强版本,模型基于平均值OpenAI 研究员:数据不足时,如何实现监督学习来猜测伪标签。

OpenAI 研究员:数据不足时,如何实现监督学习

图12:MixMatch中的“标签猜测”过程:K 个增强无标签样本的平均值,修正预测的边际分布,最终使分布锐化锐。(图片来源:Berthelot等人在2019年的论文《MixMatch: 一种面向半监督学习的整体性方法》)

根据该论文的消融研究,对无标签数据进行 MixUp增强尤其重要。去除伪标签分布上的温度锐化会严重影响性能。对于标签猜测,计算无标签数据多个增强版本的平均值也是必不可少的。Berthelot等人在2020年的论文《ReMixMatch:使用分布对齐和增强锚定进行半监督学习》(ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring)中,进一步提出ReMixMatch方法,通过引入以下两种新机制来改进MixMatch方法:

OpenAI 研究员:数据不足时,如何实现监督学习

图13:ReMixMatch 方法对MixMatch方法的两项改进的图示。(图片来源:Berthelot等人在2020年的论文《ReMixMatch:使用分布对齐和增强锚定进行半监督学习》)

1.分布对齐(Distribution alignment)。该方法让边缘分布OpenAI 研究员:数据不足时,如何实现监督学习与真值标签的边缘分布相近。设定OpenAI 研究员:数据不足时,如何实现监督学习为真值标签的类分布,OpenAI 研究员:数据不足时,如何实现监督学习是无标签数据上的预测类分布的移动平均。模型对无标签样本的预测OpenAI 研究员:数据不足时,如何实现监督学习经过归一化处理为OpenAI 研究员:数据不足时,如何实现监督学习以匹配真实边缘分布。

需要注意的是,如果边际分布不一致,熵最小化则不是一个有用的目标。并且,有标签和无标签数据上的类分布相互匹配的假设确实太绝对了,在现实环境中不一定是正确的。

2.增强锚定(Augmentation Anchoring)。给定一个无标签样本,首先会生成一个弱增强的“锚定”版本,接着使用 CTAugment (控制理论增强,Control Theory Augment)方法对K个强增强版本计算平均值。CTAugment仅仅对讲模型预测保持在网络容差范围内的增强版本进行采样。

ReMixMatch损失由以下几个项组成:

  • 应用了数据增强和Mixup方法的监督损失
  • 应用了数据增强和Mixup方法却使用伪标签作为目标的无监督损失
  • 不使用Mixup方法情况下,单个强增强的无标签图像的交叉熵损失
  • 自监督学习中的旋转损失( rotation loss)。

(2)DivideMix

Junnan Li 等人在2020年论文《DivideMix:使用噪声标签学习来实现半监督学习》(DivideMix: Learning with Noisy Labels as Semi-supervised Learning)中提出DivideMix方法,它将半监督学习与使用噪声标签的学习(Learning with noisy labels,LNL)相结合。它通过高斯混合模型(GMM)对每个样本损失分布进行建模,将训练数据动态划分为含有干净样本的标签数据集和含有噪声样本的无标签数据集。

按照Arazo等人在2019年论文《无监督标签噪声建模和损失修正》(Unsupervised Label Noise Modeling and Loss Correction)中提出的想法,他们在每个样本交叉熵损失上拟合了一个二元高斯混合模型。干净样本期望比噪声样本更快得到更低的损失。更小均值的高斯混合模型对应干净标签的聚类,这里将其表示为c。如果高斯混合模型的后验概率OpenAI 研究员:数据不足时,如何实现监督学习(即样本属于干净样本集的概率)大于阈值,则该样本被视为干净样本,否则被视为噪声样本。

数据进行聚类的过程叫做协同划分(co-divide)。为了避免确认偏误,DividImax方法同时训练两个交叉的网络,其中每个网络都使用来自另一个网络的数据集分离出来的部分,类似于双 Q 学习 (Double Q-Learning) 的工作原理。

OpenAI 研究员:数据不足时,如何实现监督学习

图14:DivideMix独立训练两个网络,以减少确认偏误。两个网络同时运行‎协同划分,、协同细化 和协同猜测。(图片来源:Junnan Li 等人在2020年论文《DivideMix:使用噪声标签学习来实现半监督学习》)

与MixMatch相比,DivideMix有一个额外的用于处理噪音样本的‎co-divide步骤,并在训练期间做了如下改进:标签协同细化(Label co-refinement:):它将真值标签OpenAI 研究员:数据不足时,如何实现监督学习与网络预测OpenAI 研究员:数据不足时,如何实现监督学习进行线性组合,其中OpenAI 研究员:数据不足时,如何实现监督学习是另一个网络产生干净数据集概率 OpenAI 研究员:数据不足时,如何实现监督学习条件下,OpenAI 研究员:数据不足时,如何实现监督学习多个增强版本的平均值。

标签协同猜测(Label co-guessing):它对两个模型对无标签数据样本的预测进行平均。

OpenAI 研究员:数据不足时,如何实现监督学习

图15:DivideMix算法。(图片来源:Junnan Li 等人在2020年论文《DivideMix:使用噪声标签学习来实现半监督学习》) 

(3)FixMatch

Sohn等人在2020年的论文《FixMatch: 使用一致性和置信度简化半监督学习》(FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence)中提出的FixMatch方法,通过弱增强方法在无标签样本上生成伪标签,并且只保持高置信度的预测。在这里,弱增强和高置信度过滤都有助于生成高质量的可信伪标签目标。然后,FixMatch在给定一个经过大幅增强的样本情况下,预测这些伪标签。

OpenAI 研究员:数据不足时,如何实现监督学习

图16:FixMatch方法的工作原理图示。(图片来源:Sohn等人在2020年的论文《FixMatch: 使用一致性和置信度简化半监督学习》) 

OpenAI 研究员:数据不足时,如何实现监督学习

其中OpenAI 研究员:数据不足时,如何实现监督学习是无标签样本的伪标签;OpenAI 研究员:数据不足时,如何实现监督学习是决定OpenAI 研究员:数据不足时,如何实现监督学习OpenAI 研究员:数据不足时,如何实现监督学习的相对大小的超参数。弱增强OpenAI 研究员:数据不足时,如何实现监督学习:标准的平移和变换增强。强增强OpenAI 研究员:数据不足时,如何实现监督学习:AutoAugment、 Cutout、 RandAugment和 CTAugment等数据增强方法。

OpenAI 研究员:数据不足时,如何实现监督学习

图17:FixMatch和其他几种半监督学习方法在图像分类任务上的性能。(图片来源:Sohn等人在2020年的论文《FixMatch: 使用一致性和置信度简化半监督学习》) 

根据FixMatch的消融研究,

  • 当使用阈值τ时,使用温度参数T对锐化预测分布不会产生显著影响。
  • Cutout和CTAugment是强增强方法,对模型达到良好的性能“功不可没”。
  • 当标签猜测使用强增强来取代弱增强时,模型在训练早期就发散了。如果舍弃弱增强,模型就会过度拟合猜测的标签。
  • 使用弱增强而不是强增强进行伪标签预测,会导致模型性能不稳定。强数据增强,对于模型性能的稳定性而言,至关重要。

7 结合强大的预训练

该方法通过自监督学习在大型无监督数据语料库上对与任务无关的模型进行预训练,然后使用小型标签数据集在下游任务上对该模型进行微调,这是一种常见的范式,尤其是在语言任务中。研究表明,如果将半监督学习与预训练相结合,模型可以获得额外的收益。

Zoph 等人在2020年的论文《重新思考预训练和自训练》(Rethinking Pre-training and Self-training),研究了自训练比预训练更有效多少。他们的实验设置是使用ImageNet 进行预训练或自训练,从而改进 COCO结果。需要注意的是,在使用 ImageNet 进行自训练时,它会丢弃标签,仅将 ImageNet 样本用作无标签的数据点。何恺明等人在2018年的论文《重新思考ImageNet 预训练》(Rethinking ImageNet Pre-training)中已经证明,如果下游任务(例如目标检测)非常不同,ImageNet 分类预训练的效果就不是很好。

OpenAI 研究员:数据不足时,如何实现监督学习

图18:(a) 数据增强(从弱到强)的结果和 (b) 标签数据集大小对目标检测性能的影响。在图例中:“Rand Init”表示经过随机权重初始化的模型;`ImageNet` 使用在ImageNet数据集上Top-1准确率为84.5%的预训练模型进行初始化;`ImageNet++`使用在 ImageNet数据集上Top-1准确率为86.9%的预训练模型进行初始化。(图片来源:Zoph 等人在2020年的论文《重新思考预训练和自训练》)

该实验获得了一系列有趣的发现:

  • 可用于下游任务的标签样本越多,预训练的有效性就越低。预训练在低数据模式(20%)下是有帮助的,但在高数据情况下是中性的或起反作用的。
  • 在高数据/强增强模式下,即便预训练会起反作用,自训练也是有帮助的。
  • 即使使用相同的数据源,自训练也可以在预训练的基础上带来额外的改进。
  • 自监督预训练(例如通过 SimCLR进行预训练)会损害模型在高数据模式下的性能,跟监督预训练差不多。
  • 联合训练监督和自监督学习目标有助于解决预训练和下游任务之间的不匹配问题。预训练、联合训练和自训练都是加性的。
  • 噪声标签或非目标标签(即预训练标签未与下游任务标签对齐)比目标的伪标签更差。
  • 自训练在计算上比在预训练模型上进行微调,更昂贵。

Ting Chen等人在2020年的论文《大型自监督模型是强大的半监督学习者》(Big Self-Supervised Models are Strong Semi-Supervised Learners)中,提出了一个三步程序(three-step procedure)方法,将自监督预训练、有监督微调以及自训练的优势都结合在一起:

1.使用无监督或子监督方法对一个大模型进行训练;

2.在一些标签示例上对该模型进行有监督微调,其中使用大型(深且宽)的神经网络至关重要,因为使用更少的标签样本下,模型越大,性能更佳。

3.在自训练中采用伪标签,对无标签示例进行蒸馏。

a.可以将一个大模型的知识蒸馏到一个小模型中,因为这种特定任务的用法并不需要学到的表示的额外容量。

b.蒸馏损失公式如下,其中Teacher网络是固定的,权重为OpenAI 研究员:数据不足时,如何实现监督学习

 OpenAI 研究员:数据不足时,如何实现监督学习

OpenAI 研究员:数据不足时,如何实现监督学习

图19:半监督学习框架通过与任务无关的无监督预训练(左)和特定任务的自训练和蒸馏(右)来使用无标签的数据语料库。(图片来源:Ting Chen等人在2020年的论文《大型自监督模型是强大的半监督学习者》) 

论文作者在 ImageNet 分类任务上进行了实验。自监督预训练使用 SimCLRv2,SimCLR 的直接改进版本。他们在实证研究中的观察结果,证实了Zoph 等人在2020年提出的一些成果:

  • 更大模型的标签学习更加高效;
  • SimCLR 中更大/更深的project heads可以改善表征学习;
  • 使用无标签数据进行蒸馏,能优化半监督学习。

OpenAI 研究员:数据不足时,如何实现监督学习

图20:SimCLRv2 + 半监督蒸馏在 ImageNet 分类上的性能对比。(图片来源:Ting Chen等人在2020年的论文《大型自监督模型是强大的半监督学习者》)

通过对最近半监督学习方法的总结,我们可以发现不少方法都旨在减少确认偏误:

  • 通过先进的数据增强方法将有效且多样化的噪声应用于样本。
  • 在处理图像时,MixUp 是一种有效的数据增强方法。该方法同样可用于语言任务,实现较小的增量优化((Guo et al. 2019)。
  • 设置阈值,并去掉置信度低的伪标签。
  • 设置每个小批量中的标签样本的最少数量。
  • 锐化伪标签分布来减少类重叠。

如需引用,请注明:

<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">@</span><span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">article</span>{<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">weng2021semi</span>,<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">title</span> <span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"Learning with not Enough Data Part 1: Semi-Supervised Learning"</span>,<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">author</span><span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">=</span> <span style="color: rgb(102, 153, 0); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">"Weng, Lilian"</span>,


以上是OpenAI 研究员:数据不足时,如何实现监督学习的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:51cto.com。如有侵权,请联系admin@php.cn删除