现实应用中,数据易得,而有标签的数据少有。一般而言,当监督学习任务面临标签数据不足问题时,可以考虑以下四种解决办法:1.预训练+微调:首先在一个大规模无监督数据语料库上对一个强大的任务无关模型进行预训练(例如通过自监督学习在自由文本上对语言模型进行预训练,或者在无标签图像上对视觉模型进行预训练),之后再使用一小组标签样本在下游任务上对该模型进行微调。2.半监督学习:同时从标签样本和无标签样本中学习,研究者使用该方法在视觉任务上进行了大量研究。3.主动学习:标注成本高,即便成本预算有限,也希望尽可能收集更多的标签数据。主动学习学习选择最有价值的无标签样本,并在接下来的收集过程中收集此类数据,在预算有限的情况下,帮助模型尽可能达到预期效果。4.预训练+数据集自动生成:给定一个功能强大的预训练模型,可以利用该模型来自动生成更多得多的标签样本。受小样本学习大获成功的驱动,该方法在语言领域的应用尤其普遍。本文全面介绍半监督学习这一方法,作者为OpenAI研究员Lilian Weng,博客地址:https://lilianweng.github.io/1什么是半监督学习?半监督学习同时使用标签数据和无标签数据来训练模型。有趣的是,现有关于半监督学习的文献大多集中在视觉任务上。而预训练+微调方法才是语言任务中更常见的范式。本文所提到的所有方法的损失,都由两部分构成:。其中监督损失在样本全部为标签样本的情况下非常容易计算出来。我们需要重点关注如何设计无监督损失。加权项通常选择使用斜坡函数,其中t是训练步数,随着训练次数的增加,的占比提升。声明:此文并不覆盖所有半监督方法,仅聚焦于模型架构调优方面的。关于在半监督学习中,如何使用生成模型和基于图的方法,可以参考《深度半监督学习全览》(An Overview of Deep Semi-Supervised Learning)这篇论文。2符号说明表
Sajjadi 等人在2016年发表的论文《深度半监督学习的随机变换和扰动正则化》(Regularization With Stochastic Transformations and Perturbations for Deep Semi-Supervised Learning)中,提出了一种无监督学习损失,它能够将同一数据点经过随机变换(例如dropout、随机最大池化)产生两个版本,并在通过网络后输出的两个结果之间的差异最小化。由于其标签没有被明确使用,所以该损失可以应用到无标签数据集。Laine 、Aila 后来在2017年发表的论文《半监督学习的时序集成》(Temporal Ensembling for Semi-Supervised Learning)中,为这种处理方式取了一个名字,叫做 Π模型。其中,指同一个神经网络应用不同的随机增强或dropout掩膜的取值。该损失使用整个数据集。2.时序集成(Temporal ensembling)
图5:使用噪声样本的一致性训练在Goodfellow等人于2014年发表的论文《解释和利用对抗性样本》(Explaining and Harnessing Adversarial Examples)中,对抗性训练(Adversarial Training)将对抗性噪声应用到输入上,并训练模型使其对此类对抗性攻击具有鲁棒性。该方法在监督学习的应用公式如下:其中是真实分布,近似于真值标签的独热编码,是模型预测,是计算两个分布之间差异的距离函数。Miyato 等人在2018年发表的论文《虚拟对抗性训练:对监督和半监督方法都适用的正则化方法》(Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning)中提出虚拟对抗性训练(Virtual Adversarial Training,VAT),该方法是对抗性训练思想在半监督学习领域的一个延伸。由于是未知的,VAT 将该未知项替换为当前权重设定为时,当前模型对原始输入的预测。需要注意的是,是模型权重的的固定值,因而在上不会进行梯度更新。VAT 损失既适用于标签样本,也适用于无标签样本。它计算的是当前模型在每个数据点的预测流形的负平滑度。对这种损失进行优化能够让预测流形更加平滑。Verma等人在2019年论文《半监督学习的插值一致性训练》(Interpolation Consistency Training for Semi-Supervised Learning)中提出插值一致性训练(Interpolation Consistency Training,ICT),通过添加更多数据点的插值来强化数据集,让模型预测和对应标签的插值尽可能一致。Hongyi Zhang等人在2018年的论文《Mixup:超越经验风险最小化》(Mixup: Beyond Empirical Risk Minimization)中提出MixUp方法,即通过简单的加权和来将两个图像进行混合处理。插值一致性训练即根据这一思路,让预测模型为一个混合样本生成标签,来匹配对应输入的预测插值:其中表示Mean Teacher 模型的θ的移动平均值。
图6:插值一致性训练概览。使用MixUp方法生成更多以插值标签作为学习目标的插值样本。(图片来源:Verma等人在2019年论文《半监督学习的插值一致性训练》)由于两个随机选择的无标签样本属于不同类别的概率很高(例如ImageNet中就有1000个目标类别),因此在两个随机无标签样本之间应用Mixup方法,就很可能生成在决策边界附近的插值。根据低密度分离(Low-density Separation)假设,决策边界往往位于低密度区域。其中表示θ的移动平均值。与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方法,成本要便宜得多。
域内数据过滤(In-Domain Data Filtration):为了从大的域外数据集中提取更多的域内数据 ,研究人员训练一个分类器来预测域内标签,然后保留具有高置信度预测的样本作为域内候选样本。
其中,是模型权重的固定值,与VAT中的一样,因而没有梯度更新,是经过增强的数据点,是预测置信度阈值,是分布锐化温度。5伪标签(Pseudo Labeling)Lee等人在2013年的论文《伪标签:深度神经网络的简单而高效的半监督学习方法》(Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks)中提出伪标签,它基于当前模型预测的最大的softmax概率,将伪标签分配给无标签样本,然后在完全监督设置下,同时在标签样本和无标签样本上训练模型。为什么伪标签能起作用?伪标签实际上相当于熵正则化,它将无标签数据的类概率的条件熵( conditional entropy )最小化,从而实现类之间的低密度分离。换句话说,预测的类概率实际上是计算类重叠,最小化熵相当于减少类重叠,从而降低密度分离。
图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分类器,两者都存在无法很好地扩展到大型数据集上的问题。
图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)都涉及到这个概念。它是一种迭代算法,轮番进行以下两步操作,直到每个无标签样本都匹配到一个标签:
图12:MixMatch中的“标签猜测”过程:K 个增强无标签样本的平均值,修正预测的边际分布,最终使分布锐化锐。(图片来源:Berthelot等人在2019年的论文《MixMatch: 一种面向半监督学习的整体性方法》)根据该论文的消融研究,对无标签数据进行 MixUp增强尤其重要。去除伪标签分布上的温度锐化会严重影响性能。对于标签猜测,计算无标签数据多个增强版本的平均值也是必不可少的。Berthelot等人在2020年的论文《ReMixMatch:使用分布对齐和增强锚定进行半监督学习》(ReMixMatch: Semi-Supervised Learning with Distribution Alignment and Augmentation Anchoring)中,进一步提出ReMixMatch方法,通过引入以下两种新机制来改进MixMatch方法:
图13:ReMixMatch 方法对MixMatch方法的两项改进的图示。(图片来源:Berthelot等人在2020年的论文《ReMixMatch:使用分布对齐和增强锚定进行半监督学习》)1.分布对齐(Distribution alignment)。该方法让边缘分布与真值标签的边缘分布相近。设定为真值标签的类分布,是无标签数据上的预测类分布的移动平均。模型对无标签样本的预测经过归一化处理为以匹配真实边缘分布。需要注意的是,如果边际分布不一致,熵最小化则不是一个有用的目标。并且,有标签和无标签数据上的类分布相互匹配的假设确实太绝对了,在现实环境中不一定是正确的。2.增强锚定(Augmentation Anchoring)。给定一个无标签样本,首先会生成一个弱增强的“锚定”版本,接着使用 CTAugment (控制理论增强,Control Theory Augment)方法对K个强增强版本计算平均值。CTAugment仅仅对讲模型预测保持在网络容差范围内的增强版本进行采样。ReMixMatch损失由以下几个项组成:
应用了数据增强和Mixup方法的监督损失
应用了数据增强和Mixup方法却使用伪标签作为目标的无监督损失
不使用Mixup方法情况下,单个强增强的无标签图像的交叉熵损失
自监督学习中的旋转损失( rotation loss)。
2.DivideMixJunnan 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。如果高斯混合模型的后验概率(即样本属于干净样本集的概率)大于阈值,则该样本被视为干净样本,否则被视为噪声样本。数据进行聚类的过程叫做协同划分(co-divide)。为了避免确认偏误,DividImax方法同时训练两个交叉的网络,其中每个网络都使用来自另一个网络的数据集分离出来的部分,类似于双 Q 学习 (Double Q-Learning) 的工作原理。图14:DivideMix独立训练两个网络,以减少确认偏误。两个网络同时运行协同划分,、协同细化 和协同猜测。(图片来源:Junnan Li 等人在2020年论文《DivideMix:使用噪声标签学习来实现半监督学习》)与MixMatch相比,DivideMix有一个额外的用于处理噪音样本的co-divide步骤,并在训练期间做了如下改进:标签协同细化(Label co-refinement:):它将真值标签与网络预测进行线性组合,其中是另一个网络产生干净数据集概率 条件下,多个增强版本的平均值。标签协同猜测(Label co-guessing):它对两个模型对无标签数据样本的预测进行平均。
图15:DivideMix算法。(图片来源:Junnan Li 等人在2020年论文《DivideMix:使用噪声标签学习来实现半监督学习》) 3.FixMatchSohn等人在2020年的论文《FixMatch: 使用一致性和置信度简化半监督学习》(FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence)中提出的FixMatch方法,通过弱增强方法在无标签样本上生成伪标签,并且只保持高置信度的预测。在这里,弱增强和高置信度过滤都有助于生成高质量的可信伪标签目标。然后,FixMatch在给定一个经过大幅增强的样本情况下,预测这些伪标签。
在处理图像时,MixUp 是一种有效的数据增强方法。该方法同样可用于语言任务,实现较小的增量优化((Guo et al. 2019)。
设置阈值,并去掉置信度低的伪标签。
设置每个小批量中的标签样本的最少数量。
锐化伪标签分布来减少类重叠。
如需引用,请注明:
@article{weng2021semi, title = "Learning with not Enough Data Part 1: Semi-Supervised Learning", author = "Weng, Lilian", journal = "lilianweng.github.io", year = "2021", url = "https://lilianweng.github.io/posts/2021-12-05-semi-supervised/"}
参考文献:[1] Ouali, Hudelot & Tami. “An Overview of Deep Semi-Supervised Learning” arXiv preprint arXiv:2006.05278 (2020).[2] Sajjadi, Javanmardi & Tasdizen “Regularization With Stochastic Transformations and Perturbations for Deep Semi-Supervised Learning.” arXiv preprint arXiv:1606.04586 (2016).[3] Pham et al. “Meta Pseudo Labels.” CVPR 2021.[4] Laine & Aila. “Temporal Ensembling for Semi-Supervised Learning” ICLR 2017.[5] Tarvaninen & Valpola. “Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results.” NeuriPS 2017[6] Xie et al. “Unsupervised Data Augmentation for Consistency Training.” NeuriPS 2020.[7] Miyato et al. “Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning.” IEEE transactions on pattern analysis and machine intelligence 41.8 (2018).[8]Ian J. Goodfellowet al.”Explaining and Harnessing Adversarial Examples“,2014[9] Verma et al. “Interpolation consistency training for semi-supervised learning.” IJCAI 2019[10] Lee. “Pseudo-label: The simple and efficient semi-supervised learning method for deep neural networks.” ICML 2013 Workshop: Challenges in Representation Learning.[11] Iscen et al. “Label propagation for deep semi-supervised learning.” CVPR 2019.[12] Xie et al. “Self-training with Noisy Student improves ImageNet classification” CVPR 2020.[13] Jingfei Du et al. “Self-training Improves Pre-training for Natural Language Understanding.” 2020[14 Iscen et al. “Label propagation for deep semi-supervised learning.” CVPR 2019[15] Arazo et al. “Pseudo-labeling and confirmation bias in deep semi-supervised learning.” IJCNN 2020.[16] Berthelot et al. “MixMatch: A holistic approach to semi-supervised learning.” NeuriPS 2019[17] Berthelot et al. “ReMixMatch: Semi-supervised learning with distribution alignment and augmentation anchoring.” ICLR 2020[18] Eric Arazo et al. Unsupervised Label Noise Modeling and Loss Correction,2019[19] Sohn et al. “FixMatch: Simplifying semi-supervised learning with consistency and confidence.” CVPR 2020[20] Junnan Li et al. “DivideMix: Learning with Noisy Labels as Semi-supervised Learning.” 2020 [code][21] Zoph et al. “Rethinking pre-training and self-training.” 2020.[22] Chen et al. “Big Self-Supervised Models are Strong Semi-Supervised Learners” 2020