Self-training with Noisy Student

2023-11-02 08:50
文章标签 self student training noisy

本文主要是介绍Self-training with Noisy Student,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • Self-training with Noisy Student improves ImageNet classification
    • 1、数据集简介
    • 2、性能
    • 3、模型策略
    • 4、实验策略
    • 5、Other

Self-training with Noisy Student improves ImageNet classification

该篇论文作者之一 Quoc Le 11.13 日在 twitter 上说到,
【图 1】

想要提高模型的精度和鲁棒性,尝试考虑使用无标注数据!他们在无标数据数据上使用自学习机制将 ImageNet Top-1 的识别结果调高到 87.4%,这比之前最先进最牛逼的模型提高了约 1%,在 Image-A/C/P 较难的基准数据集上较之前结果有质的突破。

实际在普通的 ImageNet 数据集上,近年来的模型不断在刷新 Top-1 识别率,幅度不高,趋近于饱和,但是该模型在一些鲁棒性测试数据集上的提高确实惊人的。

1、数据集简介

Image-A/C/P 是三种不同的鲁棒性测试数据集。

Image-A1: A 是 Adversarial,对抗的意思。从真实世界搜集了 7500 张未经修改、完全自然生成的图片作为对抗样本测试常规 ImageNet 下训练的模型鲁棒性,以 DenseNet-121 为例,其测试准确率仅为 2%,准确率下降了约 90%,由此可知该数据集的难度。
【图 2】

其中红色的是标签是 ResNet-50 模型给出的,黑色的标签是实际真实标签,而且以很高的信任度识别错误,要注意虽然这些样本是对抗样本,但都是来自真实世界未加对抗调整的自然图片。

Image-C/P2:C 是 Corruption 腐蚀、污染的意思,即在图片中引入 75 种不同的噪音形式,测试模型的抗击能力。
【图 3】

这里给出 15 种不同类型的算法干扰,如引入噪声,模糊处理,模仿天气因素干扰以及基于色彩空间数字化干扰等;P 是 Perturbations 扰动的意思,它与 C 差不多,但是会在一个连续的时间步内连续对一个干净的原始图像做处理,且每一次处理都是微小的扰动,比如平移像素点,旋转,缩放以及 C 中使用的干扰模糊等扰动。


2、性能

【图 4】

上图在 P 数据集上主要是尺度缩放和旋转,该模型保持稳定性,而之前的模型则预测结果多次翻转,很不稳定。
【图 5】

上图是该模型与以往的 ImageNet 常规模型对比,从模型大小上看,似乎没有什么优势,毕竟现在轻量化是一个很重要的趋势,识别精度上提高了一个百分点。因此,这篇论文的主要看点在于鲁棒性测试以及噪音自学习机制的证明。

3、模型策略

【图 6】

方法真的超级 Easy:

对于一些有标签数据集 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x n , y n ) } \{(x_1, y_1), (x_2, y_2), \cdots, (x_n, y_n)\} {(x1,y1),(x2,y2),,(xn,yn)} 和一些无标注数据集 { x ~ 1 , x ~ 2 , ⋯ x ~ m } \{\tilde x_1, \tilde x_2,\cdots \tilde x_m\} {x~1,x~2,x~m}

第一步:在有标签数据集上训练一个模型,称为 teacher,模型的参数为 θ \theta θ,模型使用交叉熵损失:

1 n ∑ i = 1 n l ( y i , f ( x i , θ ) ) \frac{1}{n}\sum^n_{i=1}l(y_i, f(x_i, \theta)) n1i=1nl(yi,f(xi,θ))

这里论文给出的是 f n o i s e d f^{noised} fnoised 是不准确的,在训练 teacher 模型中仅仅是基于有标签数据集训练的,没有引入噪声,噪声的引入只发生在训练 student 模型阶段

第二步:利用第一步得到的模型 f f f 在未标注数据集上进行标签预测,预测最后一层 softmax 给出的是概率分布,我们称为软标签,因为它只给出每个类别的信任度而非指定为具体某个类别,而硬标签就是 one-hot 形式的 max 后的结果便签,实验证明软标签更好一些。

y ~ = f ( x ~ i , θ ) , ∀ i = 1 , … m \tilde y = f(\tilde x_i, \theta), \forall_i=1,\dots m y~=f(x~i,θ),i=1,m

你不需要关心每个 y ~ \tilde y y~ 都被预测成什么了,ImageNet 才 1000 个类别,而随便的无标注图片类别都指不定是什么,此处我们假定 y ~ \tilde y y~ 就是准确的就好了,因为接下来的目的是让学生模型也要预测成这个结果。

第三步:训练一个新的模型称为 student 模型,将有标注数据集和无标注数据集(带有伪标签了现在),然后基于这个大数据集进行训练,仍然使用的是交叉熵损失,

1 n ∑ i = 1 n l ( y i , f n o i s e d ( x i , θ ′ ) ) + 1 m ∑ i = 1 m l ( y ~ i , f n o i s e d ( x ~ i , θ ′ ) ) \frac{1}{n}\sum^n_{i=1}l(y_i, f^{noised}(x_i, \theta'))+\frac{1}{m}\sum^m_{i=1}l(\tilde y_i, f^{noised}(\tilde x_i, \theta')) n1i=1nl(yi,fnoised(xi,θ))+m1i=1ml(y~i,fnoised(x~i,θ))

第四步:将学到的 student 当做 teacher 重新对无标注数据集进行打标签,回到第二步中,迭代即可。

4、实验策略

对于标准数据集,仍使用 ImageNet 2012 基准数据集,其中未标注数据集来自于 JFT 数据集,它实际含有大约 3 亿张图片,尽管这些图片实际有真实标签,但我们此处不需要,只当做无标记图片数据集即可。为了实现无标签图片类别的平衡,作者拿在 ImageNet 上训练的 EfficientNet-B0 对 JFT 数据集打标签,并剔除了标签信任度低于 0.3 的图片,对于每个类别,挑选具有最高信任度的 13 万张图片,对于不足 13万张的类别,随机再复制一些,这样总量在 1.3 张照片的级别。

问题:

1、为什么要大于 0.3,拿 ImageNet 训练的模型在别的数据集上打标签,为什么要求伪标签信任度大于0.3?应该是让 teacher 具有标签稳定性吧,如果标签信任度过于均匀,这种照片会很难识别。

2、JFT 实际标签类别有 18291 个,此处根据结果可知是选了 1K 个类别应该?

teacher 和 student 模型架构可以相同也可以不同,但是要想使噪音学生模型学习的好,模型容量必须足够大,以拟合大量的无标注数据集,因此推荐使用 EfficientNet 家族模型。这里使用的是基准模型是 EfficentNet-B7,即第一次老师和学生模型均使用的 EfficentNet-B7,而后迭代分别训练了 L0、L1和 L2 模型,L0 在 B7 的基础上加宽加深但分辨率低,L1 在 L0 基础上进一步加宽,L2 在所有维度上拓展。

在训练阶段,作者提到 batch 大小设置为 512、1024、2048 在性能上没啥区别,对于大模型,在无标注数据集上的 batch 是有标准数据集的 3 倍,在小模型上则是一样的,最后引入了一个固定训练集-测试集分辨率差异性的技术3,首先在小分辨率图片下正常训练 350 个周期,然后基于未进行数据增强的大分辨率图片下微调训练1.5 个周期,微调阶段浅层被固定。

训练阶段被引入的噪音主要有三种:

  • 随机深度:幸存概率因子为 0.8
  • dropout:分类层引入 0.5 的丢弃率
  • 随机增强:应用两个随机运算,其震级设置为 27

5、Other

首先这是基于 Self-training 框架训练的,主要区别在于验证了噪声的重要性,噪声的引入可以使 student 更好。另外与知识蒸馏的区别在于知识蒸馏没有考虑到无标注数据的使用,其目标也不是为了提高 student 模型的。

TODO

  • mean corruption error
  • mean flip rate
  • 随机深度4
  • 随机增强5
  • FGSM 对抗攻击
  • EfficientNet 家族模型

  1. Dan Hendrycks, Kevin Zhao, Steven Basart, Jacob Steinhardt, and Dawn Song. Natural adversarial examples. arXiv preprint arXiv:1907.07174, 2019. ↩︎

  2. Dan Hendrycks and Thomas G Dietterich. Benchmarking neural network robustness to common corruptions and perturbations. In International Conference on Learning Representations, 2019. 1 ↩︎

  3. Hugo Touvron, Andrea Vedaldi, Matthijs Douze, and Herve´ Jegou. Fixing the train-test resolution discrepancy. ´ arXiv preprint arXiv:1906.06423, 2019 ↩︎

  4. Gao Huang, Yu Sun, Zhuang Liu, Daniel Sedra, and Kilian Q Weinberger. Deep networks with stochastic depth. In European conference on computer vision, pages 646–661. Springer, 2016. ↩︎

  5. Ekin D Cubuk, Barret Zoph, Jonathon Shlens, and Quoc V Le. Randaugment: Practical data augmentation with no separate search. arXiv preprint arXiv:1909.13719, 2019. ↩︎

这篇关于Self-training with Noisy Student的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329481

相关文章

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

Post-Training有多重要?一文带你了解全部细节

1. 简介 随着LLM学界和工业界日新月异的发展,不仅预训练所用的算力和数据正在疯狂内卷,后训练(post-training)的对齐和微调方法也在不断更新。InstructGPT、WebGPT等较早发布的模型使用标准RLHF方法,其中的数据管理风格和规模似乎已经过时。近来,Meta、谷歌和英伟达等AI巨头纷纷发布开源模型,附带发布详尽的论文或报告,包括Llama 3.1、Nemotron 340

leetcode#551. Student Attendance Record I

题目 You are given a string representing an attendance record for a student. The record only contains the following three characters: ‘A’ : Absent. ‘L’ : Late. ‘P’ : Present. A student could be rew

[LeetCode] 238. Product of Array Except Self

题:https://leetcode.com/problems/product-of-array-except-self/description/ 题目 Given an array nums of n integers where n > 1, return an array output such that output[i] is equal to the product of all

2015 Multi-University Training Contest 5 1009 MZL#39;s Border

MZL's Border  Problem's Link:  http://acm.hdu.edu.cn/showproblem.php?pid=5351   Mean:  给出一个类似斐波那契数列的字符串序列,要你求给出的f[n]字符串中截取前m位的字符串s中s[1...i] = s[s.size()-i+1....s.size()]的最大长度。 analyse:   过计算

【Live Archive】6393 Self-Assembly【强连通】

传送门:【Live Archive】6393 Self-Assembly 题目分析: 假设我们只用到向上或者向右的块,这样我们只要找到一个回路使得某个块可以和第一个块一样,那么我们就相当于找到了一个循环,这样就可以无限循环了。 但是我们要怎样去找这么一个环?考虑到必须是对应字母 X+,X− X^+,X^-才能建边,然后一个环中一定是多个一对一对的这样的对应字母组成的。 可以发现块的数量那么

[论文解读]Genre Separation Network with Adversarial Training for Cross-genre Relation Extraction

论文地址:https://www.aclweb.org/anthology/D18-1125.pdf发表会议:EMNLP2019 本论文的主要任务是跨领域的关系抽取,具体来说,利用某个领域的数据训练好的关系抽取模型,很难去直接抽取另一个领域中的关系,比如我们拿某个领域训练好的模型,把另一个领域的数据直接输入整个模型,很难抽取出来正确的实体关系。这主要是因为源领域和目标领域特征表达的不同,在源

2014 Multi-University Training Contest 1/HDU4861_Couple doubi(数论/规律)

解题报告 两人轮流取球,大的人赢,,, 贴官方题解,,,反正我看不懂,,,先留着理解 关于费马小定理 关于原根 找规律找到的,,,sad,,, 很容易找到循环节为p-1,每一个循环节中有一个非零的球,所以只要判断有多少完整循环节,在判断奇偶,,, #include <iostream>#include <cstdio>#include <cstring>