NeurIPS 2022 | 通过统计学视角度量知识蒸馏中不同数据增强方法的优劣

2023-03-07 21:22 594 阅读 ID:853
将门
将门

论文链接:

https://arxiv.org/abs/2012.02909

代码链接:

https://github.com/MingSun-Tse/Good-DA-in-KD

项目主页:

http://huanwang.tech/Good-DA-in-KD/

一、 研究背景与动机

知识蒸馏(knowledge distillation,KD)是一种通用神经网络训练方法,它使用大的teacher模型来 “教” student模型,在各种AI任务上有着广泛应用。数据增强(data augmentation,DA) 更是神经网络训练的标配技巧。

知识蒸馏按照蒸馏的位置通常分为

  • 基于网络中间特征图的蒸馏
  • 基于网络输出的蒸馏

对于后者来说,近几年分类任务上KD的发展主要集中在新的损失函数,譬如ICLR’20的CRD和ECCV’20的SSKD将对比学习引入损失函数,可以从teacher模型中提取到更丰富的信息,供student模型学习,实现了当时的SOTA。

本文没有探索损失函数、蒸馏位置等传统研究问题上, 我们延用了最原始版本的KD loss (也就是Hinton等人在NIPS’14 workshop上提出KD的时候用的Cross-Entropy + KL divergence )。我们重点关注网络的输入端:如何度量不同数据增强方法在KD中的好坏?(相比之下,之前的KD paper大多关注网络的中间特征,或者输出端)。系统框图如下所示,本文的核心目标是要提出一种指标去度量图中 “Stronger DA” 的强弱程度。

这一切起源于一个偶然的实验发现:在KD中延长迭代次数,通常可以非常明显地提升KD的性能。 譬如KD实验中常用的ResNet34/ResNet18 pair, 在ImageNet-1K上,将迭代次数从100 epochs增加到200 epochs,可以将top1/top5准确率从70.66/89.88提升到71.38/90.59, 达到当时的SOTA方法CRD的性能(71.38/90.49)。这显得很迷,将最baseline的方法训练久一点就可以SOTA?经过很多实验分析我们最终发现,是数据增强在背后起作用。

直觉上的解释是:每次迭代,数据增强是随机的,得到的样本都不一样。那么,迭代次数变多,student见到的不一样的样本就越多,这可以从teacher模型中提取到更丰富的信息(跟对比学习loss似乎有着异曲同工之妙),帮助student模型学习。

很自然我们可以进一步推想:不同数据增强方法引入的数据“多样性”应该是不同的,譬如我们期待基于强化学习搜出来的AutoAugment应该要比简单的随机翻转要更具有多样性。简单地说,这篇paper就是在回答:具体怎么度量这种多样性,以及度量完之后我们怎么在实际中应用。

为什么这个问题重要?

1. 理论意义:帮助我们更深地理解KD和DA。

2. 实际意义:实验表明在KD中使用更强的DA总能提高性能,如果我们知道了什么因素在控制这种“强弱”,那么我们就可以缔造出更强的DA,从而坐享KD性能的提升。

二、主要贡献和内容

文章的主要贡献是三点:

(1)我们提出了一个定理来严格回答什么样的数据增强是好的,结论是:好的数据增强方法应该降低teacher-student交叉熵的协方差。

定理的核心部分是看不同数据增强方法下训练样本之间的相关性,相关性越大意味着样本越相似,多样性就越低,student性能应该越差。这个直觉完全符合文中的证明,这是理论上的贡献。值得一提的是,相关性不是直接算原始样本之间的相关性,而是算样本经过了teacher得到的logits之间的相关性,也就是,raw data层面上样本的相关性不重要,重要的是在teacher看来这些样本有多么相似,越不相似越好。

(2)基于这个定理,提出了一个具体可用的指标(stddev of teacher’s mean probability, T. stddev),可以对每一种数据增强方法算一个数值出来, 按照这个数值排序,就知道哪种数据增强方法最好。文中测试了7种既有数据增强方法, 发现CutMix最好用。

(3)基于该定理,提出了一种新的基于信息熵筛选的数据增强方法,叫做CutMixPick,它是在CutMix的基础上挑选出熵最大的样本(熵大意味着信息量大,多样性多)进行训练。实验表明,即使是使用最普通的KD loss也可以达到SOTA KD方法(例如CRD)的水平。

三、实验效果

文中最重要的实验是,验证提出的指标(T. Stddev)是否真的能刻画不同数据增强方法下student性能(S. test loss)的好坏,也就是二者之间的相关性如何。结果表明:相关性显著!

文章总共测试了9种数据增强方法,我们在CIFAR100,Tiny ImageNet, ImageNet100上均做了验证,相关性都很强,p-value多数情况下远小于5%的显著性界限,如下所示:

这其中最有意思的一点是,纵轴是student的性能,而横轴的指标是完全用teacher计算出来的,对于student没有任何信息,但是somehow,二者呈现出很强的相关性。这说明,KD中对DA好坏的评价很可能独立于student的。同时,对于不同teacher、数据集,DA之间的相对排序也比较稳定(譬如CutMix稳定地比Cutout要好)。这些都意味着我们在一种网络、数据集下找到的好的DA有很大概率可以迁移到其他的网络跟数据集中,大大提升了实际应用价值。

更多结果请参考我们的文章。代码已经开源,欢迎尝试!

四、总结

本文关注数据增强在知识蒸馏中的影响,在理论和实际算法方面均有贡献,主要有三点:

1. 我们对 “如何度量知识蒸馏中不同数据增强方法的好坏” 这一问题给出了严格的理论分析(答:好的数据增强方法应该最小化teacher-student交叉熵的协方差);

2. 基于该理论提出了一个实际可计算的度量指标(stddev of teacher’s mean probability);

3. 提出了一个基于信息熵筛选的新数据增强方法(CutMixPick),可以进一步提升CutMix,在KD中达到新的SOTA性能。

局限性: 在ImageNet-1K上,提出的指标(T. Stddev)跟student性能的相关性不显著,目前还没有找到明确的原因,我们将留作未来工作。谢谢关注!

作者:Huan Wang

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn