天天看点

Noisy Student自训练方法

作者:商业网络

原文:Xie, Qizhe, Eduard H. Hovy, Minh-Thang Luong and Quoc V. Le. “Self-Training With Noisy Student Improves ImageNet Classification.” 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) (2020): 10684-10695.

源码:https://github.com/google-research/noisystudent

我们提出了一种简单的自训练方法Noisy Student,在ImageNet上实现了88.4%的Top-1精度,比之前的SOTA模型提高了2.0%。在稳健性测试集上,它将ImageNet-A的Top-1精度从61.0%提高到了83.7%,将ImageNet-C的平均损坏误差从45.7降低到了28.3,并将ImageNet-P的平均翻转率从27.8降低到了12.2。

为了实现这一结果,我们首先在有标签的ImageNet图像上训练了一个EfficientNet模型,并将其作为教师模型给300M无标签图像打上伪标签。然后,我们使用上述有标签图像和伪标签图像训练了一个更大的EfficientNet作为学生模型。接着,我们让学生模型成为新的教师模型来迭代这个过程。在生成伪标签的过程中,教师模型不受干扰,使伪标签尽可能准确。而在学生模型的学习过程中,我们通过RandAugment引入dropout、random depth、data augmentation等噪声,使学生模型的泛化能力优于教师模型。

Noisy Student自训练方法

表1:Noisy Student与之前的SOTA模型结果的比较。

★ 背景知识

计算机视觉中的半监督学习

SimCLR v2:大型自监督模型是强大的半监督学习者

★ 模型方法

首先,我们基于有标签图像,使用标准交叉熵损失训练一个教师模型。然后,我们使用教师模型在无标签的图像上生成伪标签,伪标签可以是软的(连续分布),也可以是硬的(独热分布)。然后,我们基于上述有标签和伪标签图像,使用标准交叉熵损失训练一个学生模型。最后,我们迭代这个过程,将学生模型作为新的教师模型,以生成新的伪标签并训练新的学生模型。

图1:NoisyStudent的方法。

Noisy Student自训练方法

算法1:NoisyStudent的算法。

★ 实验结果

Noisy Student自训练方法

表2:NoisyStudent和之前的SOTA模型在ImageNet上的Top-1和Top-5精度。

Noisy Student自训练方法

图2:NoisyStudent使所有型号的EfficientNet都有了显著的改进。

Noisy Student自训练方法

表3:在ImageNet-A上的鲁棒性结果。

Noisy Student自训练方法

表4:在ImageNet-C上的鲁棒性结果。

Noisy Student自训练方法

表5:在ImageNet-P上的鲁棒性结果。

Noisy Student自训练方法

图3:从ImageNet-A、C和P中选择的图像示例。在ImageNet-A和C上,带NoisyStudent的EfficientNet生成了正确的Top-1预测(黑色),而不带NoisyStudent的EfficientNet生成了错误的Top-1预测(红色)。在ImageNet-P上,不带NoisyStudent的EfficientNet经常改变预测。

Noisy Student自训练方法

图4:NoisyStudent提高了对FGSM攻击的对抗鲁棒性,尽管该模型未针对对抗鲁棒性进行优化。

Noisy Student自训练方法

表6:关于噪声的消融研究。

Noisy Student自训练方法

表7:迭代训练提高了精度,其中Batch Size Ratio表示无标签数据和有标签数据之间的批量大小比率。

Noisy Student自训练方法

表8:本文中使用的EfficientNets的架构规范。

Noisy Student自训练方法

表9:使用我们的最佳模型(Top-1精度为88.4%)作为教师模型可以带来更多的性能提升。

Noisy Student自训练方法

表10:Noisy Student训练的性能随着无标签数据量的增加而提高。

Noisy Student自训练方法

图5:对于低置信度数据(域外数据),软伪标签可以带来更好的性能。

Noisy Student自训练方法

表11:使用更大的学生模型可以提高性能。

Noisy Student自训练方法

表12:对于小型模型,数据平衡会产生更好的结果。

Noisy Student自训练方法

表13:联合训练比预训练和微调的效果更好。

Noisy Student自训练方法

表14:对于固定的有标签数据的批量大小,增大无标签数据的批量大小可以提高EfficientNet-L2的性能,其中Batch Size Ratio表示无标签数据和有标签数据之间的批量大小比率。

Noisy Student自训练方法

表15:由教师模型初始化的学生模型仍然需要至少140个epoch才能表现良好。

Noisy Student自训练方法

表16:在ResNet-50上的实验。

Noisy Student自训练方法

表17:在SVHN上的结果。

Noisy Student自训练方法

表18:使用YFCC100M和JFT作为无标签数据集的结果。

★ 总结讨论

以前关于弱监督学习的工作需要大量的弱标记数据来改进SOTA ImageNet模型。在这项工作中,我们证明了使用无标签图像可以显著提高SOTA ImageNet模型的精度和鲁棒性。我们发现,自训练是一种简单有效的算法,可以大规模利用无标签数据。我们通过给学生模型增加噪声(因此得名NoisyStudent)来改进它,使其可以学到超出教师模型的知识。

我们的实验表明,带NoisyStudent的EfficientNet可以达到88.4%的精度,比不带NoisyStudent时提高了2.9%,这一结果达到了新的SOTA水平,比之前使用弱标记数据的最佳方法提高了2.0%。

我们工作的一个重要贡献是证明NoisyStudent增强了计算机视觉模型的鲁棒性。实验表明,我们的模型在ImageNet-A、C和P上的性能都有显著提高。

多模态人工智能

为人类文明进步而努力奋斗^_^↑

50篇原创内容

欢迎关注“多模态人工智能”公众号,一起进步^_^↑