Noisy Student Training:一种半监督图像分类方法.
- paper:Self-training with Noisy Student improves ImageNet classification
- arXiv:link
模型
作者提出了一种半监督图像分类方法,主要包括$4$个步骤:
- 使用标记数据训练教师网络;
- 使用训练好的教师网络对大量无标签数据分类,制造伪标签;
- 训练一个模型容量相等或更大的学生网络学习原标记数据和伪标签数据,同时引入噪声干扰,包括:
- 数据增强:引入data noise;
- Dropout:引入model noise;
- 随机深度 Stochastic depth :引入model noise。
- 将训练好的学生网络作为新的教师网络重复上述过程。
算法
记标记数据为\(\{(x_1,y_1),...,(x_n,y_n)\}\),无标签数据为\(\{\tilde{x}_1,...,\tilde{x}_m\}\),通常\(n<m\);
1: 使用标记数据训练教师网络$θ^t$,在训练中引入noise;
\[\frac{1}{n} \sum_{i=1}^{n} {l(y_i,f^{noised}(x_i,θ^t))}\]2: 使用无noise的教师网络$θ^t$预测无标签数据的标签:
\[\tilde{y}_i = f(\tilde{x}_i,θ^t)\]3: 训练一个模型容量相等或更大的学生网络$θ^s$,在标记数据和无标签数据上进行:
\[\frac{1}{n} \sum_{i=1}^{n} {l(y_i,f^{noised}(x_i,θ^s))} + \frac{1}{m} \sum_{i=1}^{m} {l(\tilde{y}_i,f^{noised}(\tilde{x}_i,θ^s))}\]4: 将训练好的学生网络作为新的教师网络重复上述过程。
实验
作者共训练了三轮,使用ImageNet作为标记数据集,每轮的设置如下:
- 教师网络:EfficientNet-B7;学生网络:EfficientNet-L2;batch size ratio:(无标签数据:有标签数据)\(14:1\);
- 教师网络:EfficientNet-L2;学生网络:EfficientNet-L2;batch size ratio:(无标签数据:有标签数据)\(14:1\);
- 教师网络:EfficientNet-L2;学生网络:EfficientNet-L2;batch size ratio:(无标签数据:有标签数据)\(28:1\).
作者进行了大量消融实验,得到以下结论:
- 使用更大的教师网络可以得到更好的结果;
- 大量的无标签数据是必须的;
- soft伪标签比hard伪标签表现好;
- 使用更大的学生网络能够增强模型能力;
- 对于小模型,数据平衡是有用的(对无标签数据进行过滤);
- 训练学生网络时,在无标签数据上预训练,在标记数据上微调;
- 使用更大的无标签数据与有标签数据的batch size ratio得到更高的准确率;
- 从头开始训练学生网络比使用教师网络初始化学生网络效果更好。