Self-training with Noisy Student improves ImageNet classification阅读笔记

论文地址:https://arxiv.org/pdf/1911.04252v1.pdf

这篇文章实现了自训练方法,使用部分带标签数据进行训练,在ImageNet上top-1为87.4%。

方法

1. 为有标签和无标签的图片。

2. 使用有标签的数据、标准交叉熵损失训练了一个EfficientNet作为教师网络。

3. 用这个教师网络,在无标签数据上生成伪标签,伪标签可以是soft label(持续分布),或者hard label(one-hot分布)。文章说软标签效果更好。

4. 在有标签和无标签数据下,使用交叉熵训练一个学生网络。

5. 通过把学生网络视为教师网络,迭代以上步骤,生成新的伪标签,并训练学生网络。

 

软标签和硬标签,举个例子,比如图片A,输入一个分5类的网络。软标签[0.7, 0.3, 0, 0, 0],硬标签[1, 0, 0, 0, 0]。

 

算法如下:

算法基于半监督学习,主要的困难在于:训练学生网络的时候添加更多的噪声,在教师网络生成标签时把这些噪声移除。使用的噪声有:dropout,随机深度,数据增广。如果使用数据增广,学生必须保证被转换的图片和未转换的图片有相同的标签。如果使用dropout,教师表现更像模型集成(生成伪标签时不使用dropout),学生表现更像单一模型。

对于Noisy Student,为了更好的效果,学生模型必须足够大以适应更多的数据(有标签和伪标签),因此文章使用了EfficientNet(比ResNet大)。此外,为了让学生学一个更高效的模型,使学生网络比教师网络大,这和模型压缩里的教师-学生网络不一样,因为模型压缩的目标是压缩。

作者还发现,数据平衡(data balancing)效果好。因为ImageNet里的标签基本是平衡的,因此需要让无标签的数据也基本平衡。对于数据不够多的类别,复制。对于数据很多的类别,取置信度最高的。

 

实验:

有标签数据集:ImageNet 2012ILSVRC。无标签数据集:JFT dataset。虽然这个数据集实际上是有标签的,但是无视标签。

数据清洗:先跑EfficiNet-B0,对JFT数据集的每个数据预测一个标签,然后挑选置信度高于0.3的图片。对每类的图片,得到了置信度最高的130k的图片。对于不到130k的类,随机复制。

架构:EfficientNets

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值