文献阅读——Understanding the Role of Mixup in Knowledge Distillation: An Empirical Study

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文献阅读——Understanding the Role of Mixup in Knowledge Distillation: An Empirical Study相关的知识,希望对你有一定的参考价值。

探究mixup与蒸馏结合原理的一篇小工作

Hongjun Choi, Eun Som Jeon, Ankita Shukla, Pavan Turaga; Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision (WACV), 2023, pp. 2319-2328

WACV 2023 Open Access Repository

WACV 2023,亚利桑那州立大学

这篇文章以“smoothness”为纽带分析了mixup与KD各个层面的兼容性。没有引入特别的结构和数学证明

mixup和KD都涉及到label smoothing的操作,KD是student模仿teacher的soft label,而mixDA是通过线性组合label人为引入“smoothness”。对于KD,较高的蒸馏温度一方面带来更为丰富的信息,另一方面却削弱了supervision的强度(蒸馏温度升高相当于抹匀了概率)。

Introduction

为了研究mixup和KD如何改变每个类间的feature representation,作者从CIFAR100数据集中选出五个class (baby, boy, girl, man, and woman),进行(或不进行)mixup操作后,扔进ResNet110(或ResNet56)训练,之后再在不同温度下进行蒸馏。然后作者把ResNet倒数第二层的feature用t-sne降维到二维进行可视化操作,如figure 1所示。

作者用V-Score表征聚类的效果,发现mixup会导致feature更加分散,聚类效果变差,但是同时也增强了模型的泛化性能和再测试集上的表现。同时也注意到,较高温度的蒸馏也会导致feature的分散,但也可以一定程度上提高泛化性能

因此作者在寻求一种思路,希望可以不影响学生泛化性能的同时,增强教师网络的监督信号,使得feature聚类效果不那么松散

因此,作者设想,如果teacher使用mixup平滑后的数据训练,其产生的logit会更加自然,不需要较高温度来蒸馏,因此保证了stronger supervisory signals,且同时可以享受到soft label带来的更多信息。

Mixup and KD interplay

作者在本节通过实验详细观察了mixup和KD相互作用的情况,探究了为什么直接对教师mixup会减弱KD的效果

首先用对照试验描述了如下图的四种情况,并且在不同的网络上进行了实验。

可以直接观察到的是:

  1. 经过mixup正则的教师网络的性能比直接训练的标准教师要强,但是蒸馏出的学生却不如未经mixup的标准教师蒸馏出的学生好。
  2. 复杂的教师训练出的学生性能更好,即使较简单的教师,训练出的学生也比不蒸馏要好

作者将在本节探究为什么mixup的教师会损害KD效果,然后在下一节提出解决思路

为了更加详细地探究效果,作者在CIFAR100上选取了一些类,并且这些类可以被分成两组,语义差异较大的类(海狸、苹果、水族鱼、火箭和乌龟)和 语义相似的类(婴儿、男孩、女孩、男人和女人),然后作者像之前一样进行了特征可视化,计算聚类程度指标V-Score和准确度,结果如下图3,可以观察到:

  1. mix与原始数据直接训练:如图中红圈1所示,经过mixup后特征聚类明显更加分散,不过还基本保持原结构
  2. 低准确度教师:如红圈2所示,准确度低的教师明显特征更分散,导致学生效果明显下降。这意味着更好的学生是在高能力教师在给予可识别的特征的帮助下提炼出的
  3. mix训练下的教师的蒸馏:会发现很重要的点,就是mix训练后的教师进行蒸馏会导致同一类的特征过于分散,然后相似语义的类混在一起。因此学生难以更好学习知识。(我感觉可以理解为原先清晰的界限模糊了,所以一下子准确率就下来了)

  1. mix后的教师同样温度下会产生更软更平滑的logit(这里作者用logit的熵来表征其分布的平滑性),较高温度会使其过于平滑,导致mix后的教师效果变差
  2. 低准确度教师产生的劣质信息传递给学生会导致学生的准确度显著降低,这意味着良好正确的knowledge是关键

  1. 根据观察4,作者思考,如果温度降低,是否可以让蒸馏的知识质量变好呢?如上图图5,不难发现,低温可以让mix后的教师的logit不过于平滑,从而提高蒸馏的知识的质量。

Effective learning strategies for Mix-KD

由上面的分析,我们已经可以理解,这是一个有关平滑性的trade-off了。过于平滑,可能意味着混在一起不易分辨的特征影响知识的质量,而过低的温度则可能会导致提供的类内和类间信息不足。

Partial mixup

就是不全部采用mixup,每个batch只采用一部分的mixup数据,mixup数据占比被称为PMU

Rescaled logits

这里作者建议采用logit的标准差作为参数,这样可以对logit进行合理的缩放,约束老师和学生两者的统计特征达到相近的范围,并且这样一来蒸馏温度就不是超参数了

更具体一些,之所以这样做是因为由于混合 \\(\\lambda\\) 随机取的原因,不同输入的logit分布的统计量可能差异极大。修改损失函数为:

\\[\\mathcalL_k d \\_r\\left(\\tildef^T, \\tildef^S\\right)=\\frac1n \\sum_i=1^n K L\\left(\\mathrm~S\\left(\\fracf^S\\left(x_i\\right)\\sigma\\left(f^S\\left(x_i\\right)\\right)\\right), \\mathrmS\\left(\\fracf^T\\left(x_i\\right)\\sigma\\left(f^T\\left(x_i\\right)\\right)\\right)\\right) \\]

其中 \\(\\tildef=f / \\sigma(f)\\) ,S表示softmax,KL使KL散度, \\(\\sigma(\\cdot)\\) 是输入logit的标准差。学生最终蒸馏的目标是:

\\[\\min \\mathbbE_(x, y) \\sim \\mathcalD \\mathbbE_\\lambda \\sim P_\\lambda\\left[\\gamma_k d \\mathcalL_m i x\\left(\\tildef^S\\right)+\\alpha_k d \\mathcalL_k d \\_r\\left(\\tildef^T, \\tildef^S\\right)\\right], \\]

下面是作者修改不同超参数的的打表

Experiments

Conclusions

各种基于混合的增强已经证明了它们对特定任务的有效性。然而,这些增强可能会产生不合理的训练样本,因为它混合了随机图像,这可能会扭曲类别之间合理的相对结构。因此,这可能会在蒸馏过程中对logit产生不利的平滑影响。因此,开发一种能够自动选择更合理的参数,保证最佳拟合平滑度的增强方法,将进一步推动精馏领域的进展。

文献阅读:Improving Language Understanding by Generative Pre-Training

1. 文章简介

这篇文章是OpenAI在18年发表的一篇古早文章了,在这篇文章里面,OpenAI第一次提出了GPT模型。

因此,这篇文章放到如今,其实已经完全没有新东西了,里面的东西基本也早就被用烂了,除了OpenAI自己在此基础上引申出的GPT2,GPT3,InstructGPT以及传闻中即将放出的GPT4之外,Google也放出过大规模的LM像是PaLM之类的。到如今,做NLP相关工作的,不知道这篇文章的大概反而是少数了吧,就算没完整地读过,估摸着也知道这文章具体是做了啥的。

但是现在既然工作中涉及到了GPT相关的内容,就打算趁此机会回来把整个GPT系列的模型完整的整理一下。

2. 模型介绍

模型方面,其实就是一个Transformer Decoder模型,不过说Decoder也有点不太对,毕竟相较于原版的Transformer Decoder,这里没有cross attention layer,算是一个单向的transformer encoder吧,具体结构以及数据构造方式可以参考下图:

这一版本的GPT模型走的还是相对较为传统的预训练 + finetune的范式,或者说,在当时,印象中这是最早的一批开始走自监督模型预训练的工作之一了。

3. 实验考察

1. 训练数据

首先,我们来看一下模型训练所使用的数据集。

在预训练的部分,模型使用BooksCorpus数据,而在finetune阶段,文中使用了如下数据集进行了考察:

2. 实验结果

下面,我们来看一下GPT模型在上述各类任务当中的效果:

  1. NLI任务
  2. QA任务
  3. Sentence Similarity
  4. 分类任务

得到结果如下:

可以看到:

  • GPT在几乎全部的任务当中都获得了SOTA的结果。

3. 消解实验

除了上述基础实验之外,文中还做了一些进阶考察,具体包括:

  1. 考察了层数对模型效果的影响;
  2. 比较了Transformer与LSTM的效果;
  3. 考察了预训练模型在zero-shot下的效果;

具体如下两图所示:

可以看到:

  • 随着层数的增加,模型效果确实是持续提升的;
  • Transformer模型(Fig2中右图实线)的效果是显著由于LSTM模型(Fig2中右图虚线)的;
  • GPT预训练模型如果不经过finetune事实上也是可以呈现出不错的结果的。

4. 总结 & 思考

综上,这篇文章提出了GPT模型,主要就是提出了自回归模型的预训练模型范式,并且发现:

  1. 基于Transformer的预训练LM的效果是优于LSTM的,且效果可以随着层数和参数量的增大而持续提升;
  2. 预训练后得到的LLM即使不经过finetune,其效果也是可以的。

基于这两点,后续OpenAI发布的GPT2,GPT3乃至传闻中即将发布的GPT4,基本上都是在上述基础上不断地优化,因此虽然这篇古早到现在已经没啥值得一提的新东西了,但是意义上来说真心是开创性的牛逼工作了……

以上是关于文献阅读——Understanding the Role of Mixup in Knowledge Distillation: An Empirical Study的主要内容,如果未能解决你的问题,请参考以下文章

文献阅读:Improving Language Understanding by Generative Pre-Training

文献阅读:The YouTube video recommendation system

StoryFlow: Tracking the Evolution of Stories-1.可视化文献阅读

Understanding the Router

Understanding the JVM

文献阅读——The Augmented Image Prior Distilling 1000 Classes by Extrapolating from a Single Image