0
本文作者: 我在思考中 | 2021-07-02 17:23 | 专题:ICLR 2019 |
AI 科技评论今天给大家介绍一篇 已被 ICLR 2021 接收的论文,论文作者来自卡耐基梅隆大学、香港科技大学、北京大学和马萨诸塞大学阿默斯特分校(是MEAL系列作者的一篇最新力作)。
论文地址:https://openreview.net/pdf?id=PObuuGVrGaZ
这是一篇非常特别的文章,其中一个审稿人评价这篇文章是标签平滑和知识蒸馏领域有突破性的一篇文章,并给出了8分的高分。
为什么说它特殊呢,因为论文的核心并不是常见的刷点打榜的工作,而是在澄清和纠正过去一篇比较有名的文章中提出的一个重要发现,基于这个发现衍生出来的一个观点和在这个问题上的认知,进而让人们更好的理解标签平滑和知识蒸馏的工作原理,那篇被纠正的文章发表于 NeurIPS 2019 [1] ,作者之一是我们大家都非常熟悉的深度学习先驱之一的Geoffrey Hinton。
大家应该很好奇,大佬的文章也会有不完善的观点吗?答案是肯定的。人们对于某些问题的认知本来就是在曲折中不断前进的。我们首先来介绍一下Hinton那篇文章在讲一个什么事情。
Hinton 这篇文章主要是在探究和解释标签平滑的机制和工作原理,下面这张图很好解释了这种机制:
这篇文章里第一个有意思的发现是:Label smoothing encourages the activations of the penultimate layer to be close to the template of the correct class and equally distant to the templates of the incorrect classes.这是一个非常重要的发现,它的大意是在说标签平滑可以消除类内样本之间的差异,让学到的同一类别的特征表达更加紧凑。
更具体来说,比如狗这个类别的图片通常会包含不同的姿态,拍照角度,曝光程度,不同背景等等,标签平滑可以很好的消除不同样本特征中这些差异的或者称为noisy的信息,而更多地保留它的高层语义信息,即狗这个类别信息。
基于标签平滑这个特点,作者进一步提出了一个观点,即:If a teacher network is trained with label smoothing, knowledge distillation into a student network is much less effective.
怎么解释这个结论呢?
如上图最后一行所示,右侧某类样本在使用标签平滑之后会聚集在类中心点,因此不同样本到其他两种样本的距离信息会趋向于相同,即标签平滑抹去了同一类别不同样本到其他类别的距离的细微差别,作者认为这种现象对于知识蒸馏来说是有害的,因为蒸馏正是需要teacher能拥有这种捕捉同一类别不同样本之间细微差别的能力才会有效的,因此他们还认为: a teacher with better accuracy is not necessarily the one that distills better. 大概意思就是说teacher性能好对于知识蒸馏来说并不重要。
上述推理听上去是不是非常合情合理,那么ICLR 2021 这篇文章又在纠正一个什么事情呢?下面这张图很好的解释了它究竟在纠正什么:
作者首先重现了NeurIPS 2019那篇文章中的可视化过程,并证明了上述论文中提到的现象是真实存在并可重现的,但是他们还有了一个新的惊人的发现:
如果我们重新来审视上图中两个语义相似的类别(每个子图左侧的两个靠近的类别),当使用标签平滑训练的teacher时,同一类别样本聚集会更加紧密,因为标签平滑会促使每个样本与该类中其他样本的类中心等距,而紧密的聚类会显著促使语义相似但不同类别的样本的表达变得更加可分离,即两个类中心距离 Dc 增大了,这进一步体现为语义相近但是不同类别的样本获得更可区分的特征。
这个现象非常重要,因为这些相似类别(分辨困难的类别)是提高分类模型性能的关键。一般来说,我们没有必要去衡量"狗和鱼有多像或者有多不像",因为我们有足够的线索和特征来区分它们(即右侧类样本到左侧类别的距离不重要),但对于细粒度的类别之间比如不同种类的狗,如果能得到" toy poodle与miniature poodle不同的程度"的信息对于区分它们是非常关键的。
上述分析作者从原理上解释了为什么标签平滑和知识蒸馏并不冲突,为了更好地阐述两者关系,作者提出了一个能定量地衡量被抹去信息大小的指标,称之为stability metric,它的数学表达如下:
物理意义为:如果标签平滑会抹除类内的信息,类内样本的特征表达的差异也将相应减少,因此,我们可以使用这种差异来监测标签平滑抹除信息的程度,因为此指标也可以评估同一类别中不同样本特征表达波动程度,因此我们也称之为稳定性指标。
文章还有一个重要的观点是:
作者提出如果知识蒸馏不考虑使用原始数据集one-hot标签项,本质上标签平滑和知识蒸馏优化方式是一致的(都是cross-entropy loss),唯一差别是soft的监督信息的来源方式不一样,知识蒸馏使用的是固定权重参数的teacher模型(一种动态的监督信息获取方式),标签平滑使用的是人为制定的平滑规则(固定不变的标签信息)。
总言而之,文章中作者试图去解答下面几个关键问题:
1、teacher网络训练时候使用标签平滑是否会抑制知识蒸馏阶段的有效性?
2、哪些因素将真正决定student在知识蒸馏中的性能?
3、标签平滑在什么情况下会真正失去有效性?
实验部分
作者在图像分类,二值化网络,机器翻译等任务上进行了大量的实验来验证他们的观点,并且完全抛弃了可能会带来误导的小数据集,比如CIFAR。众所周知,CIFAR上的实验结果和现象经常会跟ImageNet上的不一致,从而产生误导。
作者首先可视化了teacher产生的soft的监督信息的分布如下图所示,我们可以看到使用标签平滑训练teacher产生的监督信号整体上是低于不使用标签平滑,这跟标签平滑本身的工作机制是一致的。
作者还展示了在一些次要类别上的信号分布(下图2),这也是为什么soft标签可以提供更多细微的语义信息差别的原因。
接下来是在图像分类任务上的结果,包括ImageNet-1K以及CUB200-2011。我们可以看到,不管teacher有没有使用标签平滑训练,student的性能基本是跟teacher的性能保持正相关的,即teacher性能越高,student也越高。
作者进一步可视化了知识蒸馏过程的loss曲线和测试误差曲线,如下图。作者发现如果teacher是使用标签平滑训练出来的,那么在知识蒸馏过程中产生的loss会比较大,如下图左侧,但是这个更大的loss值并不会影响student的性能,也就是说,标签平滑训练的teacher产生的抑制作用只会发生在训练数据集上,并不会延续到测试数据上,即student的泛化能力还是得到保证的。
这也是一个非常有意思的发现,本质上,这种更大的loss是由于监督信号更加扁平(flattening)造成的,它具有一定的正则作用防止模型过拟合。
那么什么情况会真正导致标签平滑无效或者效果变弱呢?
作者发现在下列两种情况下标签平滑会失效或者没那么有效:
1、数据集呈现长尾分布的时候(long-tailed);
2、类别数目变多的时候。具体猜测原因可以去阅读原文。
最后回答一个大家或许最关心的问题:
知识蒸馏到底需要怎么样的teacher?
本质上,针对不同的场景和任务,需要的teacher类型也不尽相同,但大体上来说,精度越高的网络,通常可以蒸馏出更强的student(如下图),当然student的性能也受其自身的结构容量限制。
更多细节大家可以去阅读原论文:
论文地址:https://openreview.net/pdf?id=PObuuGVrGaZ
项目主页:http://zhiqiangshen.com/projects/LS_and_KD/index.html
References:
[1] Müller, Rafael, Simon Kornblith, and Geoffrey Hinton. "When does label smoothing help?." In NeurIPS (2019).
雷锋网雷锋网雷锋网
雷峰网特约稿件,未经授权禁止转载。详情见转载须知。