首发于论智
一文概览能生成代理标签的半监督学习算法

一文概览能生成代理标签的半监督学习算法

作者:Sebastian Ruder

编译:Bot

编者按:监督学习、无监督学习是机器学习的入门基础。所谓监督学习,指的是给定完整标签,让模型从数据和标签中学习关系;而所谓无监督学习则是不给标签,让模型从数据中学习它本身的结构。无监督学习是当前机器学习领域面临的主要挑战之一,也是AI发展进程中缺失的关键一环。虽然我们现在还无法实现它,但研究人员已经在将无监督学习与监督学习相结合方面取得了很大进展。这一分支领域就是半监督学习。

本文改编自Sebastian Ruder和Barbara Plank的ACL 2018入选论文:Strong Baselines for Neural Semi-supervised Learning under Domain Shift,将细数半监督学习领域的重要进展。

目录

  • Self-training
  • Multi-view training
    Co-training
    Democratic Co-learning
    Tri-training
    Tri-training with disagreement
    Asymmetric tri-training
    Multi-task tri-training
  • Self-ensembling
    Ladder networks
    Virtual Adversarial Training
    Π model
    Temporal Ensembling
    Mean Teacher
  • 相关工具和领域
    Distillation
    Learning from weak supervision
    Learning with noisy labels
    Data augmentation
    Ensembling a single model

半监督学习结合了监督学习和无监督学习方法,能在有标签但标签不完整的数据中使用机器学习算法。就机器学习的发展历程来看,它称得上历史悠久,早在2005年,朱晓进教授就在《Semi-Supervised Learning Literature Survey》一文中系统介绍了半监督学习的演进史,而发展至今,它也在科研领域取得了不少成功,大大降低了重要基准的错误率。在工业应用层面,亚马逊曾在写给股东的报告中透露,半监督学习帮助他们把数据标记效率提高了40倍,同时精度仍保持在高水平。

在这篇文章中,我们将重点介绍半监督学习算法中一类特殊算法,它们能在未标记数据上生成代理标签(proxy-label),并将其与已经标记好的数据共同使用。这些标签是模型本身或其变体生成的,无需额外监督——这意味着它们可能并不能反映事实,是嘈杂的、微弱的,但我们还是能从中提取到一些有用的学习信号。

注:本文不介绍CNN。

Self-training(自训练算法)

1995年,Yarowsky等人提出Self-training算法,被视为半监督学习的基本雏形,它也是把自身预测结果融入自身训练的一个直观示例。Self-training,顾名思义,就是在已有标签基础上,让模型对无标签数据进行分类,然后再把分类预测用于训练,并从中获取额外信息。

形式上,Self-training有一个模型 m 、一个含标签训练数据集 L 和一个不含标签数据集 U 。每次迭代中,模型 m 会基于标签集 C ,为 U 中的样本 x 生成一个标签概率 m(x) 。如果 m(x) 大于阈值 τ ,我们就用 p(x)=argmaxm(x) 为样本x生成一个伪标签(pseudo-label),然后把它归入训练集 L 中。

这个过程通常要重复固定次数的迭代,直到为所有“没有把握”的样本确定一个靠谱的伪标签。它的用途非常广泛,以下是伪代码:

自提出后,经典的Self-training算法在之后的二十几年中收获了大量关注。2009年,Reichart等人在论文中证明这种算法在小型数据集中效果显著[6,13];而在这之前的2006年和2008年,两拨研究人员先后证实模型生成的伪标签确实在训练过程中能发挥积极作用[7];Petrov等人也在2012年测试了Self-training算法发挥作用的场景[8]。

Self-training的主要缺点是模型无法纠正自己的错误。如果模型对自己的分类结果很有“自信”,但这是盲目自信,分类结果是错的,那它就会在训练中放大误差。此外,如果数据集 U 和数据集 L 的重合度很低,标签集 C 并不能覆盖U的所有类别,这种不良影响就更严重了。在这种情况下,模型的性能注定会很差。

Multi-view training(多视图训练算法)

“横看成岭侧成峰,远近高低各不同”。既然Self-training算法存在难以自查的缺点,那我们可以从不同数据的视角出发,构建不同的模型。理想情况下,这些多角度信息应该是互补的,因此模型也能通过合作来获得更好的性能。这里的多角度只是一个泛指,它可以是不同特征,也可以是不同的模型架构和不同数据集。

Co-training(协同训练)

1998年,CMU的Blum和Mitchell在论文Combining Labeled and Unlabeled Data with Co-Training中首次提出Co-training概念。这是多角度训练的一个经典算法,也提出了相对较强的假设:数据 L 可以被两个条件独立的特征集 L^1L^2 表示,且每个特征集都能够训练出一个强学习器。

Co-training有 m_1m_2 两个模型,它们分别在不同的特征集上训练。每轮迭代中,如果两个模型里的一个,比如模型 m_1 认为自己对样本 x 的分类是可信的,置信度高,分类概率大于阈值 τ ,那 m_1 会为它生成伪标签,然后把它放入 m_2 的训练集。简而言之,一个模型会为另一个模型的输入提供标签。以下是它的伪代码:

在Blum和Mitchell的那篇论文里,Co-training的实验场景是网页分类,他们把网页文本作为一个视角,把指向网页的超链接信息作为第二个视角,成功完成了分类任务。但现实任务中往往不存在这么多条件独立视图,为了弥补这一缺陷,Chen等人在2011年提出了一种伪多视图正则化(pseudo-multiview regularization)的方法[19],能把特征分成两个互斥的角度,从而保证Co-training的有效性。

所谓伪多视图正则化,指的是在众多模型中,至少有一个对每个特征的权重为0。它类似近年来非常常见的正交约束,鼓励分享和私有空间[20]。它的第二个约束条件是要求模型对不含标签的数据集 U 的不同子集有置信度。对于这个方法的有效性,Chen等人已经在论文中做了实验测试[18]。

Democratic Co-learning(民主协同训练)

不同于把不同特征集作为视角,2004年,Zhou和Goldman提出了一种新算法——Democratic Co-learning[21],他们认为基于不同的归纳偏差建模会是个更合适的选择。这意味着这些模型不是固定不变的,它们在不同神经网络里可能有不同的架构,也可能是看起来完全不一样的算法。

Democratic Co-learning首先会在数据集L上单独训练各模型,之后它再用这些模型对数据集U中的样本进行分类预测。如果大多数模型对样本的分类给出了可信度较高的结果,那它会给样本生成标签,并放入数据集 L 中。这个置信度的判断标准是对于标签分类结果,赞同模型的置信度平均值 w 之和是否大于不赞同模型的置信度的均值总和。

重复这个过程,直到所有样本都已生成标签。为了保障“民主”,最终预测会引入加权系数,完整的算法伪代码如下所示:

Tri-training(三体训练法)

这是周志华等人于2005提出的一种算法,也是迄今为止所有多视图训练算法中知名度最高的一种。从某种意义上来说,Tri-training可以被视为Democratic Co-learning的一个特例,它会训练三个独立模型,然后用三者的一致性减少对不含标签数据的预测偏差。

Tri-training的一个主要前提是初始模型必须是多样的,这和Democratic Co-learning一样,但后者实现的方法是使用不同的的架构,而前者则是从原始训练数据L中用Bootstrap采样机制获得不同变体 S_i 。在这些采样变体上分别训练出 m_1m_2m_3 三个模型后,它们无需计算置信度,只需按照“少数服从多数”的做法筛选出标签。例如对于预测标签,模型 m_jm_k 表示强烈同意,但模型 m_i 不置可否,那么算法会为样本生成多数同意的伪标签,然后把它放入 m_i 的训练集。

Tri-training with disagreement

这也是一个典型的Co-learning算法,它背后的思想是:模型只要在薄弱点有所提升就可以了,并且带标签的数据不该被简单的数据点歪曲信息。为了达到这个目的,Tri-training with disagreement在原算法基础上做了个小调整(算法2Co-training中的第8行),要求对于模型 m_jm_k 置信度较高的样本,第三个模型 m_i 应该拒绝预测,也就是disagreement。这种带分歧的三体训练往往比一般三体训练更具效率,而且它已经在词性标注上取得了不可小觑的成果。

Asymmetric tri-training

2017年,Saito等人在Tri-training基础上进行扩展,发现半监督学习在计算机视觉领域同样效果喜人,这个算法就是Asymmetric tri-training。对于无监督域适应来说,不同于带标签数据,测试数据和无标签数据拥有不同的源域。为了使Tri-training算法适应这种转变,Asymmetric tri-training让三个模型中的一个只在代理标签上训练,而不是已有标签集(算法4中的第10行),并且这个模型只会在测试期间完全对目标域样本进行分类。这就是它非对称(Asymmetric)的原因——三个模型的作用是不一样的。此外,三个模型使用的相同的特征提取器。

Multi-task tri-training

如果说Tri-training有什么缺点,那应该就是它有三个独立模型要训练,所以必须依赖大量训练数据,这在实践中的代价昂贵的。为了缓解这一问题,2018年,Ruder和Plank把迁移学习思想引入半监督学习,提出Multi-task tri-training算法[23],旨在减少三体训练过程中的时间、空间复杂度,实现跨模型知识共享和加速训练。正如Multi-task这个词所显示的,Multi-task tri-training不再单独训练模型,而是共享参数,并用多任务学习(MTL)机制对它们进行联合训练。需要注意的是,这里的三个模型还是作用相同的,所以这只是个伪MTL。

如下图伪代码所示,和经典Tri-training算法相比,Multi-task tri-training可以联合训练多任务模型及其三个特定模型的输出,而且因为正交约束强制模型 m_1m_2 之间的不同表示,算法不用对带标签的源域数据进行bootstrap采样直至收敛。第三个模型 m_3 只在生成了伪标签的目标样本上训练,最后算法会依据“多数投票”机制决定最终预测结果。

Self-ensembling

Self-ensembling其实和上一节的Multi-view training存在诸多相似之处,因为它们都结合了模型的不同变体,如Multi-task tri-training就可以被看作是一种Self-ensembling,它用三个不同的模型创建了一个更强的预测器。

但两者也有不同,和Multi-view training相比,Self-ensembling对模型的多样性看得更重。这类算法通常会在不同配置下训练单个模型,以保证预测结果更稳健。下面所列的算法都是近几年提出的,其中一些已经在计算机视觉上取得了state-of-the-art的成果。

Ladder networks

Ladder Networks出自Semi-Supervised Learning with Ladder Networks,这篇由Rasmus等人撰写的文章被誉为2015年深度学习领域“五大佳文”之一。它的目的是让模型对噪声更具鲁棒性。对于每个不含标签的样本,在干净样本中训练好的模型会先给出一个代理标签,然后在加噪样本中训练好的模型会对这个结果进行预测。这样模型就能学会在嘈杂环境中准确提取特征,并在带标签数据集中进行预测。

Ladder Networks在计算机视觉中应用广泛,它也提供了许多数据扰动和数据增强的思路。

Virtual Adversarial Training

如果扰动原始样本是不可能的或是不可期待的,那我们可以转而去扰动特征空间里的样本。这里的扰动不是随机的,比如添加dropout,Virtual Adversarial Training使用的方法更“糟糕”:将输入转换为对抗样本。传统意义上来说,对抗训练需要利用原始样本的标签才能生成扰动,但在2017年,Miyato等人在论文中首次提出Virtual Adversarial Training,指出无需标签,模型也能生成对抗样本,这就为它在半监督学习领域的使用打开了渠道。

Virtual Adversarial Training能在模型最敏感的方向生成扰动,从而提高它的鲁棒性。目前,这种方法已经在文本分类数据集上取得了令人满意的结果。

Π model

这是Laine和Aila在2017年提出的一种新型伪标签提升方法。它不再基于已有干净标签生成伪标签,而是通过对输入数据添加两种不同的扰动和两个不同的正则条件(dropout) z\tilde{z} ,来让模型学习其中的不变性。

在伪代码中, g(x) 是针对输入的数据增强函数。其中第一个损失项旨在鼓励模型在两种不同噪声环境下输出同一个预测, λ 确定贡献;而第二个损失项则是关于标签y的标准交叉熵损失 H 。和之前几种方法不同,这里我们把无监督损失分量同时用在带标签样本和不带标签样本上。

Temporal Ensembling

Temporal Ensembling和Π model来自同一篇论文,不同的是后者关注的是数据增强和正则化,而前者关心的是模型在不同迭代期的表现集成。它背后的思想是:因为单独训练模型代价过大,我们可以利用不同的时间步长来集成模型预测。

这个算法先把整体预测的代理标签 Z 视为模型过去的移动平均值,当我们把代理标签初始化为0时,它们就偏向0。这就意味着随着模型迭代,我们可以根据当前迭代期 t 像Adam一样纠正偏差,从而获得校正偏差后的目标向量 z

Mean Teacher

既然Laine和Aila可以对时序进行移动平均,那Tarvainen和Valpola也可以围绕模型参数的移动平均展开探索。于是2017年,他们的论文发表了。这篇论文的贡献是提出Mean Teacher算法,它先把模型参数的移动平均值放进Teache模型中,然后对于每个样本,它再生成代理标签 \tilde{z} ,最后计算整体的一致性损失和监督损失(supervised loss)。

就目前的成果而言,Mean Teacher的成绩是最好的,它在带有10%标签的ImageNet上的分类错误率只9.11。而如果是全部带有标签的ImageNet,最先进的模型的错误率也有3.79。但是最近,Oliver等人对这些方法的适用性提出了质疑[39],他们发现比起适当调整监督基线,这些方法在性能上的差异没有论文中显示的那么大,相反地,利用迁移学习先在带标签数据上训练好的模型倒是表现更优,但它的缺点是如果涉及其他类别,模型性能就一落千丈了。

对于后者,一些人正在尝试用Tri-training和Asymmetric tri-training的方法进行弥补,他们的具体效果还有待观察,但对于研究人员来说,未来,迁移学习和半监督学习的结合会是一个比较有前途的科研方向

相关工具和领域

Distillation

上述各种生成代理标签的方法其实可以被看作是不同形式的distillation,这是Hinton大神在2015年提出的方法。distillation一开始的设想是一种在较小模型中压缩大型模型或集成信息的方法,但在实际论文中,它有一个教师模型和一个学生模型,由大型且经过充分训练的教师模型为更小、更快的学生模型提供指导。

对于Multi-view training这类算法,不同的模型可以交替作为教师和学生,一起相互教导。最后,算法就有了一个能承担教师和学生的双重角色的模型:作为一名教师,它产生新的目标;然后作为学生,它会朝着目标不断学习。

Learning from weak supervision

顾名思义,从弱监督中学习可以被看作是用一种较弱的监督学习形式,或者是一种较强的半监督学习形式:监督学习会为我们提供已知的所有正确标签,而半监督学习只能提供部分有标签的样本——而弱监督能使我们获得标签,我们知道这些标签对于未标记样本来说是不完全正确的,是嘈杂的,但仍可作为进一步的学习信号。

Learning with noisy labels

这一条和上一条类似,在这两种情况下,我们都会遇到可信度不高的标签。对于带有噪声标签的学习,我们通常假设标签是以固定的随机排列顺序排列的,虽然代理标签中存在错误标签,但在使用噪声标签学习时,标签是数据的一部分,类似弱监督学习,我们可以对整体标签进行建模,从而评估标签质量。类似的方法在Self-ensembling中多有提及,它们一般被用来强化模型预测能力,用添加噪声事先提高模型的预测一致性。

Data augmentation

一些Self-ensembling算法也提到了数据增强,这个概念在计算机视觉中多有出现,而且效果优秀,但事实上就像Π model中描述的那样,它也可以被应用于模型参数,Zolna等人[28]也证实了它在LSTM中的适用性。Virtual Adversarial Training算法的对抗样本看起来比较棘手,但它确实也已经在词性标注中大获成功[26]。

Ensembling a single model

这一条可以涵盖所有Self-ensembling算法,它不仅使预测更加稳健,而且可以作为模型在自我强化循环的训练期间自我改进的反馈。在监督环境下,这种反馈可能是不必要的;但和同时训练多个模型相比,模型集成至少也能凭借加快训练效率占据一定话语权。

结论

希望这篇文章文章能为你深入半监督学习领域提供帮助,它对于提升模型性能还是很有效的。虽然我们在现实中几乎遇不到完全没有标签的训练数据,但如果你手里只有一个含标签的小型数据集,这时大量可用的未标记数据就能在模型性能提升上助你一臂之力。上述的大多数算法都是有效的,因为它们把模型看做黑盒子,可以被用于任何现有的监督学习模型。

如果发现内容有误,欢迎在评论中指出~

参考文献

  1. Zhu, X. (2005). Semi-Supervised Learning Literature Survey.
  2. Chapelle, O., Schölkopf, B., & Zien, A. (2006). Semi-Supervised Learning. Interdisciplinary sciences computational life sciences (Vol. 1).
  3. Kipf, T. N., & Welling, M. (2017). Semi-Supervised Classification with Graph Convolutional Networks. Proceedings of ICLR 2017.
  4. Yarowsky, D. (1995). Unsupervised word sense disambiguation rivaling supervised methods. In Proceedings of the 33rd annual meeting on Association for Computational Linguistics (pp. 189-196). Association for Computational Linguistics.
  5. McClosky, D., Charniak, E., & Johnson, M. (2006). Effective self-training for parsing. Proceedings of the Main Conference on Human Language Technology Conference of the North American Chapter of the Association of Computational Linguistics, 152–159.
  6. Reichart, R., & Rappoport, A. (2007). Self-training for enhancement and domain adaptation of statistical parsers trained on small datasets. In Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics (pp. 616-623)
  7. Suzuki, J., & Isozaki, H. (2008). Semi-supervised sequential labeling and segmentation using giga-word scale unlabeled data. Proceedings of ACL-08: HLT, 665-673.
  8. Petrov, S., & McDonald, R. (2012). Overview of the 2012 shared task on parsing the web. In Notes of the first workshop on syntactic analysis of non-canonical language (sancl) (Vol. 59).
  9. He, Y., & Zhou, D. (2011). Self-training from labeled features for sentiment analysis. Information Processing & Management, 47(4), 606-616.
  10. Plank, B. (2011). Domain adaptation for parsing. University Library Groniongen][Host].
  11. Van Asch, V., & Daelemans, W. (2016). Predicting the Effectiveness of Self-Training: Application to Sentiment Classification. ↩
  12. van der Goot, R., Plank, B., & Nissim, M. (2017). To normalize, or not to normalize: The impact of normalization on part-of-speech tagging.
  13. Huang, Z., & Harper, M. (2009). Self-training PCFG grammars with latent annotations across languages. In Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 2-Volume 2 (pp. 832-841). Association for Computational Linguistics.
  14. Zhou, Z.-H., & Li, M. (2005). Tri-Training: Exploiting Unlabled Data Using Three Classifiers. IEEE Trans.Data Eng., 17(11), 1529–1541.
  15. Søgaard, A. (2010). Simple semi-supervised training of part-of-speech taggers. Proceedings of the ACL 2010 Conference Short Papers.
  16. Saito, K., Ushiku, Y., & Harada, T. (2017). Asymmetric Tri-training for Unsupervised Domain Adaptation. In ICML 2017.
  17. Blum, A., & Mitchell, T. (1998). Combining labeled and unlabeled data with co-training. In Proceedings of the eleventh annual conference on Computational learning theory (pp. 92-100). ACM.
  18. Chen, M., Weinberger, K. Q., & Blitzer, J. C. (2011). Co-Training for Domain Adaptation. In Advances in Neural Information Processing Systems.
  19. Chen, M., Weinberger, K. Q., & Chen, Y. (2011). Automatic Feature Decomposition for Single View Co-training. Proceedings of the 28th International Conference on Machine Learning (ICML-11), 953–960.
  20. Bousmalis, K., Trigeorgis, G., Silberman, N., Krishnan, D., & Erhan, D. (2016). Domain Separation Networks. In Advances in Neural Information Processing Systems.
  21. Zhou, Y., & Goldman, S. (2004). Democratic Co-Learning. In 16th IEEE International Conference on Tools with Artificial Intelligence, ICTAI 2004.
  22. Ruder, S., & Plank, B. (2018). Strong Baselines for Neural Semi-supervised Learning under Domain Shift. In Proceedings of ACL 2018.
  23. Caruana, R. (1993). Multitask learning: A knowledge-based source of inductive bias. In Proceedings of the Tenth International Conference on Machine Learning.
  24. Rasmus, A., Valpola, H., Honkala, M., Berglund, M., & Raiko, T. (2015). Semi-Supervised Learning with Ladder Network.
  25. Miyato, T., Dai, A. M., & Goodfellow, I. (2017). Adversarial Training Methods for Semi-supervised Text Classification. In Proceedings of ICLR 2017.
  26. Yasunaga, M., Kasai, J., & Radev, D. (2018). Robust Multilingual Part-of-Speech Tagging via Adversarial Training. In Proceedings of NAACL 2018.
  27. Laine, S., & Aila, T. (2017). Temporal Ensembling for Semi-Supervised Learning. In Proceedings of ICLR 2017.
  28. Kingma, D. P., & Ba, J. L. (2015). Adam: a Method for Stochastic Optimization. International Conference on Learning Representations.
  29. Tarvainen, A., & Valpola, H. (2017). Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results. In Advances in Neural Information Processing Systems.
  30. Hinton, G., Vinyals, O., & Dean, J. (2015). Distilling the Knowledge in a Neural Network.
  31. Sennrich, R., Haddow, B., & Birch, A. (2016). Edinburgh neural machine translation systems for WMT
  32. Huang, G., Li, Y., Pleiss, G., Liu, Z., Hopcroft, J. E., & Weinberger, K. Q. (2017). Snapshot Ensembles: Train 1, get M for free. In Proceedings of ICLR 2017.
  33. Polyak, B. T., & Juditsky, A. B. (1992). Acceleration of stochastic approximation by averaging. SIAM Journal on Control and Optimization, 30(4), 838-855.
  34. Dehghani, M., Mehrjou, A., Gouws, S., Kamps, J., & Schölkopf, B. (2018). Fidelity-Weighted Learning. In Proceedings of ICLR 2018.
  35. Kiritchenko, S., Zhu, X., & Mohammad, S. M. (2014). Sentiment analysis of short informal texts. Journal of Artificial Intelligence Research, 50, 723-762.
  36. Reed, S., Lee, H., Anguelov, D., Szegedy, C., Erhan, D., & Rabinovich, A. (2015). Training Deep Neural Networks on Noisy Labels with Bootstrapping. ICLR 2015 Workshop Track.
  37. Sukhbaatar, S., Bruna, J., Paluri, M., Bourdev, L., & Fergus, R. (2015). Training Convolutional Networks with Noisy Labels. Workshop Track - ICLR 2015.
  38. Zolna, K., Arpit, D., Suhubdy, D., & Bengio, Y. (2018). Fraternal Dropout. In Proceedings of ICLR 2018.
  39. Oliver, A., Odena, A., Raffel, C., Cubuk, E. D., & Goodfellow, I. J. (2018). Realistic Evaluation of Semi-Supervised Learning Algorithms.
发布于 2018-06-06 11:02