更少的标签,更好的学习,谷歌半监督学习算法FixMatch
本文向大家推荐谷歌前段时间发布的论文 FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence ,该文提出了新的简单又有效的半监督学习算法FixMatch,结合伪标签(pseudo labeling)和一致性正则化(Consistency regularization)两种半监督学习方法,取得了显著的效果提升。
该文作者信息:
作者均来自谷歌研究院。
半监督学习算法,即利用少量有标签数据和大量无标签数据的机器学习算法,最近获得了大量关注。
如何利用无标签数据是半监督学习的关键,一种常见的学习策略,使用在少量有标签数据中训练的模型对大量无标签数据进行预测,使用预测的结果标签重新训练模型。该类方法被称为伪标签。
该文提出的方法,用下面这张图即可完全概括:
首先,使用有标签数据训练Model;
然后,对于无标签数据,将其进行弱数据增广(比如反转、拉伸、缩放等),然后交给Model预测,对于置信度高过某阈值的样本,使用one-hot编码打上伪标签;
最后,使用上述伪标签数据训练Model,此时对数据进行强数据增广(无监督数据增广UDA、Mixup等),使得训练后的模型对强数据增广的数据作出的预测与伪标签匹配,使用标准的交叉熵损失函数。
下表为FixMatch方法与其他半监督学习算法的比较:
下图为作者在CIFAR-10、CIFAR-100、SVHN数据上半监督学习分类结果:
相比以往的State-of-the-art,FixMatch取得了显著的精度提升,在仅使用40个标签数据(每类4个样本)时于CIFAR-10数据集上 取得了88.61%正确率,在使用250个标签数据(每类25个样本)时取得了94.93%正确率。
在STL-10数据集上,同样取得了精度提升:
作者又做了一个极端的实验,CIFAR-10数据集每类仅用 1 个标签样本,仍然取得了78%正确率。
作者针对学习策略、数据增广策略等做了很多消融实验,欢迎阅读原论文。
总之,该文提出的方法简单又有效,将有助于半监督学习投入更多实用场景,代码已开源,欢迎大家继续研究。
论文地址:
https://arxiv.org/abs/2001.07685
代码地址:
https://github.com/google-research/fixmatch (官方)
https://github.com/kekmodel/FixMatch-pytorch (非官方)