前言
算法、算力、数据是深度学习的三架马车。深度学习是数据驱动式方法,目前的从业基本者都有一个共识就是:数据是非常重要的且不可或缺的。在实际环境中对数据标注又是一个耗时和昂贵的过程。但是受束于资源的限制,可能你有很多的图片,但是只有一部分可以进行人工标注。
例如工业频繁更换型号的场景,花费更多时间标注意味着上线运行时间的 delay,会严重影响效率和产能。在这样的情况下,如何利用大量未标注的图像以及部分已标注的图像来提高模型的性能呢?答案是 semi-supervised 半监督学习。
半监督学习(SSL)这个领域近年来得到飞速的发展,方法也有很多,但很多都是使用较为复杂的方法,标注降低了,但是训练复杂度等其他方面的代价上来了。本文提出 FixMatch,是一种对现有 SSL 方法进行显著简化的算法。FixMatch 使用模型的预测生成伪标签进行无标签数据的训练。
本文贡献:利用一致性正则化( Consistency regularization)和伪标签(pseudo-labeling)技术进行无监督训练。SOTA 精度,其中 CIFAR-10 有 250 个标注,准确率为 94.93%。甚至仅使用10张带有标注的图在 CIFAR-10 上达到 78% 精度。
论文标题:
FixMatch: Simplifying Semi-Supervised Learning with Consistency and Confidence
论文链接:
https://arxiv.org/abs/2001.0768
官方代码:
https://github.com/google-research/fixmatch
核心思想
![](https://i-blog.csdnimg.cn/blog_migrate/89f08c8fa4be4283d8897932f91a2318.png)
如上图所示,训练过程包括两个部分,有监督训练和无监督训练。有 label 的数据,执行有监督训练,和普通分类任务训练没有区别。没有 label 的数据,经过首先经过弱增强获取伪标签。然后利用该伪标签去监督强增强的输出值,只有大于一定阈值条件才执行伪标签的生成。无监督的训练过程包含两种思想在里面,即一致性正则化和伪标签训练。
一致性正则化是当前半监督 SOTA 工作中一个重要的组件,其建立在一个基本假设:相同图片经过不同扰动(增强)经过网络会输出相同预测结果,因此对这二者进行 loss 计算便可以对网络进行监督训练,又被称为自监督训练。loss 计算如下:
![](https://i-blog.csdnimg.cn/blog_migrate/eece1b64af3431d58392c058b6bfde14.png)
伪标签是利用模型本身为未标记数据获取人工标签的思想。通常是使用“hard”标签,也就是 argmax 获取的 onehot 标签,仅保留最大类概率超过阈值的标签。计算 loss 的时如下:
其中