ckeditor缺少图像源文件地址_FixMatch:通过图像增强就能实现半监督学习

1131ed1d4ce43d68b67411a5f37e9ad5.png

前言

算法、算力、数据是深度学习的三架马车。深度学习是数据驱动式方法,目前的从业基本者都有一个共识就是:数据是非常重要的且不可或缺的。在实际环境中对数据标注又是一个耗时和昂贵的过程。但是受束于资源的限制,可能你有很多的图片,但是只有一部分可以进行人工标注。例如工业频繁更换型号的场景,花费更多时间标注意味着上线运行时间的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.07685
  • 官方代码:https://github.com/google-research/fixmatch

核心思想

e6c62cd2c1faa65d1c3118c1d17db4aa.png

如上图所示,训练过程包括两个部分,有监督训练和无监督训练。有label的数据,执行有监督训练,和普通分类任务训练没有区别。没有label的数据,经过首先经过弱增强获取伪标签。然后利用该伪标签去监督强增强的输出值,只有大于一定阈值条件才执行伪标签的生成。无监督的训练过程包含两种思想在里面,即一致性正则化和伪标签训练。

一致性正则化是当前半监督SOTA工作中一个重要的组件,其建立在一个基本假设:相同图片经过不同扰动(增强)经过网络会输出相同预测结果,因此对这二者进行loss计算便可以对网络进行监督训练,又被称为自监督训练。loss计算如下:

3d2ea09e546d9aca58d9065daef52529.png

伪标签是利用模型本身为未标记数据获取人工标签的思想。通常是使用“hard”标签,也就是argmax获取的onehot标签,仅保留最大类概率超过阈值的标签。计算loss的时如下:

c8865c0c6fe1b7616a47da452a85f42c.png

其中

equation?tex=%5Chat%7Bq_b%7D+%3Dargmax%EF%BC%88q_b%EF%BC%89 ,
equation?tex=%5Ctau 为阈值。我们假设argmax一个概率分布产生一个有效的onehot概率分布。

这种机制为什么work?无监督训练过程实际上是一个孪生网络,可以提取到图片的有用特征。弱增强不至于图像失真,再加上输出伪标签阈值的设置,极大程度上降低了引入错误标签噪声的可能性。而仅仅使用弱增强可能会导致训练过拟合,无法提取到本质的特征,所以使用强增强。强增强带来图片的严重失真,但是依然是保留足够可以辨认类别的特征。有监督和无监督混合训练,逐步提高模型的表达能力。

算法流程图

8a23c8ddf408cf86c92cf565dd5e16a3.png
  1. 输入的数据包括两个部分,有标注的数据和没有标注的数据,另外需要设定置信度阈值、采样比例、loss权重等超参。
  2. 对有标注的部分执行有监督训练,使用传统的CE loss。
  3. 遍历无标注的数据,利用弱增强获取伪标签。
  4. 对无标注的数据,利用获取的伪标签进行训练,同样利用CE loss。
  5. 根据一定的loss权重融合二者的loss。

loss计算

loss包括两部分,标注有监督分类任务loss和无监督为标签训练loss分别如下。其中

equation?tex=%5Calpha%28.%29 表示弱增强,一般为flip、平移;
equation?tex=%5CAlpha%28.%29 表示强增强,一般为色彩变换、对比度增强、旋转等,下面会细说。

589b64b7d3ca7def3e4c5e5a457e9340.png

15897c27c2bbea08202feeca561be111.png

数据增强

上文提到了该方法应用到了两种数据增强,分别是weak Augmentation和strong Augmentation。weak Augmentation为标准的flip-and-shift增强策略,50%的概率进行flip和12.5%的概率进行shift,包括水平和竖直方向。对于strong Augmentation,论文主要应用RandAugment和CTAugment两种策略,都是为提高模型表现而提出的增强策略。首先进行严重失真的增强,然后再应用CutOut增强。增强函数来自PIL库。以前的SSL使用的是AutoAugment,这个工具训练了一个强化学习算法来寻找最佳准确率的增强方法。本文FixMatch使用了AutoAugment的两个变体之一,采用的是随机采样策略,减少网络对增强之间耦合程度的依赖。对于RandAugment:

  • 收集有一个包含数十种增强的列表,以及一系列增强幅度大小。
  • 从这个列表里随机选出N个增强,例如N为2。
  • 然后选择一个随机的幅度M,例如50%之类的。
  • 将所选的增强应用于图像,每种增强都有50%的可能性被应用。

3da7446fde41d9e8de04ceccc988a526.png

上表为RandAugment涉及到的所有的增强和参数区间。对于CTAugment同理,主要有Autocontrast 、Brightness、Color、Contrast、Cutout、Equalize、Invert、Identity、Posterize、Rescale、Rotate、Sharpness、Shear_x、Shear_y、Smooth、Solarize、Translate_x、Translate_y,不再叙述。

实验效果

作者分别在CIFAR和SVHM等数据集上进行了训练测试,模型表现超过之前的网络。具体如下:

90688db611dbcca1b72dc7a641bacc72.png

对于极端缺少标注的场景,仅仅使用每个类别1张共10张标注的图片就可以达到78%的最大accuracy,当然这种做法和挑选的样本质量有关,作者也做了相关实验论证。不过也证明本文的方法的确work。

44d743783452bb483f1e526bb68757a7.png

另外,作者做了很多实验消融实验,包括一些训练超参调节的,不再叙述,有兴趣的可以阅读原文。

结语

本文介绍了一篇半监督领域经典论文,其做法简单有效,使用图像增强技术进行伪标签学习和一致性正则化训练,在CIFAR等多个数据集上仅仅利用少量的标注图片就可以达到一个不错的效果,这对于获取标注困难的场景非常有意义。例如在工业应用领域,可能会有海量数据,但是现实限制可能无法都进行人工标注,因此可以尝试利用半监督训练的方法,非常值得借鉴。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值