现实应用中,数据易得,而有标签的数据少有。
一般而言,当监督学习任务面临标签数据不足问题时,可以考虑以下四种解决办法:
1.预训练+微调:首先在一个大规模无监督数据语料库上对一个强大的任务无关模型进行预训练(例如通过自监督学习在自由文本上对语言模型进行预训练,或者在无标签图像上对视觉模型进行预训练),之后再使用一小组标签样本在下游任务上对该模型进行微调。
2.半监督学习:同时从标签样本和无标签样本中学习,研究者使用该方法在视觉任务上进行了大量研究。
3.主动学习:标注成本高,即便成本预算有限,也希望尽可能收集更多的标签数据。主动学习学习选择最有价值的无标签样本,并在接下来的收集过程中收集此类数据,在预算有限的情况下,帮助模型尽可能达到预期效果。
4.预训练+数据集自动生成:给定一个功能强大的预训练模型,可以利用该模型来自动生成更多得多的标签样本。受小样本学习大获成功的驱动,该方法在语言领域的应用尤其普遍。
符号
含义
@@##@@
唯一标签的数量。
标签数据集,其中@@##@@是真实标签的独热表示。
无标签数据集。
整个数据集,包括标签样本和无标签样本。
可以表示无标签样本,也可以表示标签样本。
经过增强处理的无标签样本或标签样本。
第i个样本。
分别表示损失,监督损失,无监督损失
无监督损失权重,随着训练步数增加而增加。
给定输入情况下,标签数据集的条件概率。
使用加权θ生成的神经网络,即期望训练出的模型。
逻辑函数f的输出值的向量。
预测的标签分布。
两个分布间的距离函数,例如均方误差、交叉熵、KL散度等。
Teacher模型权重的移动平均线加权超参数。
α为混合样本的系数,@@##@@
锐化预测分布的温度。
选择合格的预测结果的置信度阈值。
在已有研究文献中,讨论了以下几种假设来支撑对半监督学习方法中的某些设计进行决策。
假设1:平滑度假设(SmoothnessAssumptions)
如果两个数据样本在特征空间的高密度区域接近,它们的标签应该会相同或非常相似。
假设2:聚类假设(ClusterAssumptions)
特征空间既有密集区域,也有稀疏区域。密集分组的数据点很自然地形成聚类。同一聚类中的样本应具有相同的标签。这是对假设1的一个小扩展。
假设3:低密度分离假设(Low-densitySeparationAssumptions)
类之间的决策边界往往位于稀疏的低密度区域,因为如果不这样的话,决策边界就会将高密度聚类分割为分别对应两个聚类的两个类,这就会导致假设1和假设2都失效。
假设4:流形假设(ManifoldAssumptions)
时序集成模型将追踪每一个训练样本的标签预测的指数移动平均值作为学习目标。然而,这种标签预测仅在每一次迭代中发生变化,当训练数据集很大时,这种方法就显得冗杂。为了克服目标更新速度慢的问题,Tarvaninen、Valpola在2017年发表的论文《均值教师模型是表现更好的模范模型:加权平均一致性目标优化半监督深度学习结果》(Meanteachersarebetterrolemodels:Weight-averagedconsistencytargetsimprovesemi-superviseddeeplearningresults)中,提出了MeanTeacher算法,该算法通过跟踪模型权值的移动平均值而不是模型输出来更新目标。权重为θ的原始模型叫做Student模型,将权重为连续多个Student模型的移动平均权重θ′的模型,称为MeanTeacher模型:
一致性正则化损失是Student模型和Teacher模型的预测之间的距离,并且该差距应该最小化。MeanTeacher模型能够提供比Student模型更准确的预测。该结论在实证实验中得到了证实,如图4所示。
根据其消融研究:
最近的几种一致性训练方法学习将原始的无标签样本与其相应的增强版本之间的预测差异最小化。这种思路与Π模型非常相似,但其一致性正则化损失仅适用于无标签数据。
图5:使用噪声样本的一致性训练
在Goodfellow等人于2014年发表的论文《解释和利用对抗性样本》(ExplainingandHarnessingAdversarialExamples)中,对抗性训练(AdversarialTraining)将对抗性噪声应用到输入上,并训练模型使其对此类对抗性攻击具有鲁棒性。
该方法在监督学习的应用公式如下:
VAT损失既适用于标签样本,也适用于无标签样本。它计算的是当前模型在每个数据点的预测流形的负平滑度。对这种损失进行优化能够让预测流形更加平滑。Verma等人在2019年论文《半监督学习的插值一致性训练》(InterpolationConsistencyTrainingforSemi-SupervisedLearning)中提出插值一致性训练(InterpolationConsistencyTraining,ICT),通过添加更多数据点的插值来强化数据集,让模型预测和对应标签的插值尽可能一致。HongyiZhang等人在2018年的论文《Mixup:超越经验风险最小化》(Mixup:BeyondEmpiricalRiskMinimization)中提出MixUp方法,即通过简单的加权和来将两个图像进行混合处理。插值一致性训练即根据这一思路,让预测模型为一个混合样本生成标签,来匹配对应输入的预测插值:
由于两个随机选择的无标签样本属于不同类别的概率很高(例如ImageNet中就有1000个目标类别),因此在两个随机无标签样本之间应用Mixup方法,就很可能生成在决策边界附近的插值。根据低密度分离(Low-densitySeparation)假设,决策边界往往位于低密度区域。
针对图像领域,UDA采用的是RandAugment方法,该方法由Cubuk等人在2019年的论文《RandAugment:减少搜索空间的实用型自动数据增强方法》(RandAugment:Practicalautomateddataaugmentationwithareducedsearchspace)中提出。它对Python图像处理库PIL中可用的增强操作进行统一采样,无需学习或优化,因此比使用AutoAugment方法,成本要便宜得多。
图7:CIFAR-10分类中各种半监督学习方法的比较。在未经过RandAugment处理的50000个样本进行训练时,Wide-ResNet-28-2和PyramidNet+ShakeDrop在完全监督下,错误率分别为**5.4**和**2.7**。
Lee等人在2013年的论文《伪标签:深度神经网络的简单而高效的半监督学习方法》(Pseudo-Label:TheSimpleandEfficientSemi-SupervisedLearningMethodforDeepNeuralNetworks)中提出伪标签,它基于当前模型预测的最大的softmax概率,将伪标签分配给无标签样本,然后在完全监督设置下,同时在标签样本和无标签样本上训练模型。
为什么伪标签能起作用?伪标签实际上相当于熵正则化,它将无标签数据的类概率的条件熵(conditionalentropy)最小化,从而实现类之间的低密度分离。换句话说,预测的类概率实际上是计算类重叠,最小化熵相当于减少类重叠,从而降低密度分离。
使用伪标签进行训练自然是一个迭代过程。这里将生成伪标签的模型叫做Teacher模型,将使用伪标签学习的模型称作Student模型。
Iscen等人在2019年发表的论文《深度半监督学习的标签传播》(LabelPropagationforDeepSemi-supervisedLearning)中提出标签传播概念,是一种基于特征嵌入在样本之间构建相似图的思想。接着将伪标签从已知样本“扩散”到传播权重与图中成对相似性得分成正比的无标签样本。从概念上来看,它类似于k-NN分类器,两者都存在无法很好地扩展到大型数据集上的问题。
自训练不是一个新概念,Scudder等人在1965年发表的论文《自适应模式识别机器的错误概率》(Probabilityoferrorofsomeadaptivepattern-recognitionmachines)、Nigram&Ghani等人在CIKM2000上发表的论文《分析协同训练的有效性和适用性》(AnalyzingtheEffectivenessandApplicabilityofCo-trainin)都涉及到这个概念。它是一种迭代算法,轮番进行以下两步操作,直到每个无标签样本都匹配到一个标签:
Xie等人在2020年发表的论文《使用噪声学生进行自训练来优化ImageNet分类》(Self-trainingwithNoisyStudentimprovesImageNetclassification)中,将自训练应用于深度学习,并取得了巨大成果。在ImageNet分类任务中,研究者首先训练了一个EfficientNet模型作为Teacher模型,为3亿张无标签图像生成伪标签,然后训练了一个更大的EfficientNet模型作为Student模型,以学习真实标签图像和伪标签图像。在他们的实验设置中,一个关键的元素是在Student模型训练期间加入噪声,而Teacher模型生成伪标签过程则不加入噪声来。因此,他们的方法被称为“噪声学生(NoisyStudent)”,即使用随机深度、dropout和RandAugment方法给Student模型加入噪声。Student模型表现得比Teacher模型更好,很大程度上就是加入噪声带来的好处。添加的噪声具有复合效应,可以促使模型在标签数据和无标签数据上产生的决策边界变得平滑。Student模型自训练还有其他几个重要的技术设置,包括:
加入噪声的Student模型还提高了防御FGSM(快速梯度符号攻击,其使用输入数据的损失梯度,并调整输入数据从而最大化损失)的对抗鲁棒性,即便该模型未针对对抗鲁棒性进行优化。
Du等人在2020年的论文《自训练优化自然语言理解的预训练》(Self-trainingImprovesPre-trainingforNaturalLanguageUnderstanding)中提出SentAugment方法,旨在解决语言领域进行自训练时,域内无标签数据不足的问题。它依靠句向量从大型语料库中找到无标签的域内样本,并使用检索到的句子进行自训练。
确认偏误是由于Teacher模型还不够成熟导致提供错误的伪标签的问题。对错误标签进行过拟合可能并不会产生更好的Student模型。
为了减小确认偏误,EricArazo等人在论文《深度半监督学习中的伪标签和确认偏误》(Pseudo-LabelingandConfirmationBiasinDeepSemi-SupervisedLearning)中提出了两种新方法。
如果标签样本太少,使用Mixup方法还不够。因此论文作者通过对标签样本进行过采样,从而对每个小批量中的标签样本设置最小数量。这比对标签样本进行权重补偿效果更好,因为它会更频繁地更新,而不是频次少的更大幅度的更新——这种更新其实更不稳定。
与一致性正则化一样,数据增强和dropout方法对于发挥伪标签的作用,也很重要。
HieuPham等人在2021年论文《元伪标签》(MetaPseudoLabels)中提出元伪标签,根据Student模型对在标签数据集上表现的反馈,不断调整Teacher模型。Teacher模型和Student模型同步进行训练,Teacher模型学习生成更好的伪标签,Student模型从伪标签中学习。
由于使用的是软伪标签,上述目标函数是可微函数。但是如果使用硬伪标签,则是不可微函数,因此需要用到REINFORCE等强化学习方法。
优化过程是在两个模型之间的交替进行的:
可以将一致性正则化、伪标签两种方法结合起来,应用到半监督学习。
Berthelot等人在2019年的论文《MixMatch:一种面向半监督学习的整体性方法》(MixMatch:AHolisticApproachtoSemi-SupervisedLearning)中提出的MixMatch方法,是一种应用于半监督学习的整体性方法,它通过整合以下方法来使用无标签数据:
根据该论文的消融研究,对无标签数据进行MixUp增强尤其重要。去除伪标签分布上的温度锐化会严重影响性能。对于标签猜测,计算无标签数据多个增强版本的平均值也是必不可少的。Berthelot等人在2020年的论文《ReMixMatch:使用分布对齐和增强锚定进行半监督学习》(ReMixMatch:Semi-SupervisedLearningwithDistributionAlignmentandAugmentationAnchoring)中,进一步提出ReMixMatch方法,通过引入以下两种新机制来改进MixMatch方法:
需要注意的是,如果边际分布不一致,熵最小化则不是一个有用的目标。并且,有标签和无标签数据上的类分布相互匹配的假设确实太绝对了,在现实环境中不一定是正确的。
2.增强锚定(AugmentationAnchoring)。给定一个无标签样本,首先会生成一个弱增强的“锚定”版本,接着使用CTAugment(控制理论增强,ControlTheoryAugment)方法对K个强增强版本计算平均值。CTAugment仅仅对讲模型预测保持在网络容差范围内的增强版本进行采样。
ReMixMatch损失由以下几个项组成:
JunnanLi等人在2020年论文《DivideMix:使用噪声标签学习来实现半监督学习》(DivideMix:LearningwithNoisyLabelsasSemi-supervisedLearning)中提出DivideMix方法,它将半监督学习与使用噪声标签的学习(Learningwithnoisylabels,LNL)相结合。它通过高斯混合模型(GMM)对每个样本损失分布进行建模,将训练数据动态划分为含有干净样本的标签数据集和含有噪声样本的无标签数据集。
数据进行聚类的过程叫做协同划分(co-divide)。为了避免确认偏误,DividImax方法同时训练两个交叉的网络,其中每个网络都使用来自另一个网络的数据集分离出来的部分,类似于双Q学习(DoubleQ-Learning)的工作原理。
标签协同猜测(Labelco-guessing):它对两个模型对无标签数据样本的预测进行平均。
Sohn等人在2020年的论文《FixMatch:使用一致性和置信度简化半监督学习》(FixMatch:SimplifyingSemi-SupervisedLearningwithConsistencyandConfidence)中提出的FixMatch方法,通过弱增强方法在无标签样本上生成伪标签,并且只保持高置信度的预测。在这里,弱增强和高置信度过滤都有助于生成高质量的可信伪标签目标。然后,FixMatch在给定一个经过大幅增强的样本情况下,预测这些伪标签。
根据FixMatch的消融研究,
该方法通过自监督学习在大型无监督数据语料库上对与任务无关的模型进行预训练,然后使用小型标签数据集在下游任务上对该模型进行微调,这是一种常见的范式,尤其是在语言任务中。研究表明,如果将半监督学习与预训练相结合,模型可以获得额外的收益。
Zoph等人在2020年的论文《重新思考预训练和自训练》(RethinkingPre-trainingandSelf-training),研究了自训练比预训练更有效多少。他们的实验设置是使用ImageNet进行预训练或自训练,从而改进COCO结果。需要注意的是,在使用ImageNet进行自训练时,它会丢弃标签,仅将ImageNet样本用作无标签的数据点。何恺明等人在2018年的论文《重新思考ImageNet预训练》(RethinkingImageNetPre-training)中已经证明,如果下游任务(例如目标检测)非常不同,ImageNet分类预训练的效果就不是很好。
该实验获得了一系列有趣的发现:
TingChen等人在2020年的论文《大型自监督模型是强大的半监督学习者》(BigSelf-SupervisedModelsareStrongSemi-SupervisedLearners)中,提出了一个三步程序(three-stepprocedure)方法,将自监督预训练、有监督微调以及自训练的优势都结合在一起:
1.使用无监督或子监督方法对一个大模型进行训练;
2.在一些标签示例上对该模型进行有监督微调,其中使用大型(深且宽)的神经网络至关重要,因为使用更少的标签样本下,模型越大,性能更佳。
3.在自训练中采用伪标签,对无标签示例进行蒸馏。
a.可以将一个大模型的知识蒸馏到一个小模型中,因为这种特定任务的用法并不需要学到的表示的额外容量。
论文作者在ImageNet分类任务上进行了实验。自监督预训练使用SimCLRv2,SimCLR的直接改进版本。他们在实证研究中的观察结果,证实了Zoph等人在2020年提出的一些成果:
通过对最近半监督学习方法的总结,我们可以发现不少方法都旨在减少确认偏误: