Google Brain最新论文:标签平滑何时才是有用的?
标签平滑(Label Smoothing):是深度学习中广泛使用的一种优化方式,不同于传统多分类问题中使用确定的标签作为硬目标,标签平滑使用硬目标的加权平均和标签上的均匀分布作为软目标。
01
论文背景
Christian Szegedy[1]等人在2016年第一次提出了标签平滑方法,该方法使用硬目标的加权平均和标签上的均匀分布作为软目标,可以显著的提升多种神经网络的泛化能力和学习速度。近些年来,标签平滑被证明可以用于很多的模型和任务中,包括图像分类、机器翻译和语音识别等。
虽然标签平滑的使用场景很广泛,但是人们对它的理解还是不够深刻。比如什么情况下可以用标签平滑而什么情况下不能用?我们今天介绍的这篇来自Google Brain论文便对标签平滑方法进行了深入的研究,能够比较好的解决这个问题。论文中指出标签平滑并不是万金油可以很好的应用到各种任务中,比如在知识蒸馏中使用标签平滑便会显著的降低学生网络的表现。为了形象的展示标签平滑的原理,论文作者设计了一个巧妙的可视化方法来说明标签平滑是如何改变网络倒数第二层学习到的表示的。此外该论文还对模型校准和知识蒸馏进行了深入分析,我们将在下面逐一介绍。
02
可视化实验
在介绍具体的实验之前,我们先对硬目标和软目标做一个形式化的描述。在一个分类问题中,如果使用硬目标作为优化目标,我们的交叉熵函数可以写作:
其中如果是正确的类y_k为1否则为0,p_k是神经网络预测是第k类的可能性。如果我们使用软目标,可将上式中的y_k替换为下式:
从标签平滑的定义我们可以看出,它鼓励神经网络选择正确的类,并且正确类和其余错误的类的差别是一致的。与之不同的是,如果我们使用硬目标,则会允许不同的错误类之间有很大不同。基于此论文作者提出了一个结论:标签平滑鼓励倒数第二层激活函数之后的结果靠近正确的类的模板,并且同样的远离错误类的模板。
作者设计了一个可视化的方案来证明这件事情,具体方案为:(1)挑选3个类;(2)选取通过这三个类的模板的标准正交基的平面;(3)将倒数第二层激活函数之后的结果映射到该平面。作者做了4组实验,第一组实验为在CIFAR-10/AlexNet(数据集/模型)上面“飞机”、“汽车”和“鸟”三类的结果,可视化结果如下所示:
从中我们可以看出,加了标签平滑之后(后两张图),每个类聚的更紧了,而且和其余类的距离大致一致。第二组实验为在CIFAR-100/ResNet-56(数据集/模型)上的实验结果,三个类分别为“河狸”、“海豚”与“水獭”,我们可以得到类似的结果:
在第三组实验中,作者测试了在ImageNet/Inception-v4(数据集/模型)上的表现,三个类分别为“猫鼬”、“鲤鱼”和“切刀肉”,结果如下:
因为ImageNet有很多细粒度的分类,可以用来测试比较相似的类之间的关系。作者在第四组实验中选择的三个类分别为“玩具贵宾犬”、“ 迷你贵宾犬”和“鲤鱼”,可以看出前两个类是很相似的,最后一个差别比较大的类在图中用蓝色表示,结果如下:
可以看出在使用硬目标的情况下,两个相似的类彼此比较靠近。但是标签平滑强制要求每个示例与所有剩余类的模板之间的距离相等,这就导致了后两张图中两个类距离较远,这在一定程度上造成了信息的损失。
03
模型校准实验
神经网络的的输出中除了分类结果之外,一般还会包含一个置信度分数。理想情况下,这个置信度分数应该是和预测准确率一致。例如,如果100个预测结果的置信度是80%,我们希望有80个结果预测正确的,如果是这样,我们就认为这个网络上是校准的。
Chuan Guo[2]等人最早于2017年提出,尽管现代的神经网络性能比过去更好,但是它们的校准效果更差,并且会过于自信。它们提出了Temperature Scaling的方法进行后处理,可以降低模型的预期校准误差(ECE)。在上面的实验中,我们可以看出加了标签平滑之后,同一类的表示聚集的更紧了,这在一定程度上可以防止神经网络变得过于自信。不会过于自信的神经网络是否能够提高模型的校准呢?作者也做了相应的实验来研究这个问题。
以图像识别任务为例,我们可以将准确率作为置信度的函数画出来,如果准确率在对角线下面,就说明该网络过于自信。作者在CIFAR-100/ResNet-56上做了实验,结果如下:
图中蓝色的线是没有加Temperature Scaling的硬目标结果,它显著的在对角线下面,因而可以知道模型确实有过于自信的现象。有叉号的蓝线是加了Temperature Scaling的硬目标结果,绿线是没有加Temperature Scaling的标签平滑结果,可以看出标签平滑可起到和Temperature Scaling类似的模型校准结果。
04
知识蒸馏实验
在这一节中,作者发现在知识蒸馏模型中,尽管标签平滑可以提高教师网络的准确率,但是使用标签平滑训练的教师网络相比于使用硬目标训练的教师网络,其相应的学生网络的表现却要更差。作者以ResNet-56作为教师网络,以AlexNet作为学生网络进行了实验,结果如下:
上面的一张图是教师网络的准确率,下面一张图是学生网络的准确率,红虚线代表的是使用硬目标的教师网络下的学生网络,蓝虚线代表的是使用标签平滑的教师网络下的学生网络,蓝实线是学生网络的baseline表现。可以看出使用硬目标的教师网络下的学生网络表现会更好一些。
造成这种现象的原因是标签平滑会在一定程度上造成信息损失,我们在上文中也提到了。为了验证这个猜想,作者做了另一个实验,考虑了在训练过程中模型的互信息变化情况,结果如下:
我们可以看到,未使用标签平滑的教师网络(蓝色线)会保存更多的互信息,使用标签平滑的教师网络(红色线)的互信息则会更少,这证实了标签平滑会造成一定信息损失的猜想。最终作者也提出了一个结论:教师网络准确率更高并不是蒸馏一个好的学生网络的充分条件。
论文原文:
https://arxiv.org/pdf/1906.02629.pdf
参考文献:
[1] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 2818-2826.
[2] Guo C, Pleiss G, Sun Y, et al. On calibration of modern neural networks[C]//Proceedings of the 34th International Conference on Machine Learning-Volume 70. JMLR. org, 2017: 1321-1330.