教师学生模型、伪标签、半监督学习和图像分类
使用 Noisy Student 进行自训练改进 ImageNet 分类是一篇由 Google Research、Brain Team 和Carnegie Mellon大学发表在2020 CVPR的论文
Noisy Student在训练时使用相等或更大的学生模型和在学习期间添加噪声(Dropout, Stochastic Depth,和数据增强)扩展了自训练和蒸馏方法。
- 一个 EfficientNet 模型首先作为教师模型在标记图像上进行训练,为 300M 未标记图像生成伪标签。
- 然后将更大的 EfficientNet 作为学生模型并结合标记图像和伪标签图像进行训练。
- 学生网络训练完成后变为教师再次训练下一个学生网络,并迭代重复此过程。
Noisy Student的训练过程
标记图像 {(x1, y1), (x2, y2), ..., (xn, yn)},未标记的图像 {~x1; ~x2, ..., ~xm} 第 1 步:学习教师模型 θ t*,它可以最大限度地减少标记图像上的交叉熵损失:
第 2 步:使用正常(即无噪声)教师模型为干净(即无失真)未标记图像生成伪标签:
经过测试软伪标签(每个类的概率而不是具体分类)效果更好。
第 3 步:学习一个相等或更大的学生模型 θ s*,它可以最大限度地减少标记图像和未标记图像上的交叉熵损失,并将噪声添加到学生模型中:
步骤 4:学生网络作为老师,从第2步开始进行迭代训练。
噪声
噪声由两种类型:输入噪声和模型噪声。
- 对于输入噪声,使用 RandAugment [18] 进行数据增强。简而言之,RandAugment 包括增强:亮度、对比度和清晰度。
- 对于模型噪声,使用 Dropout [76] 和 Stochastic Depth [37]。
噪声具有在标记和未标记数据的决策函数中强制执行不变性的重要好处。
数据增强是Noisy Student训练中的一种重要方法,因为它迫使学生确保图像增强版本之间的预测一致性。
教师模型通过干净的图像来生成高质量的伪标签,而学生则需要使用增强图像作为输入来重现这些标签。
当 Dropout 和 Stochastic Depth 函数用作噪声时,教师模型在推理时表现得像一个集成(当它生成伪标签时),而学生模型表现得像一个单一的模型。换句话说,学生*模仿更强大的集成模型。
完整文章
https://www.overfit.cn/post/894964adab5c4c14b5cba4564f12a93f