介绍
看成距离:
这里记倒数第二层的激活函数(logistc函数,即sigmoid函数)后输出值(在最后权重和softmax概率分布之前的值)为 x 。(倒数第二层偏置是1)
pk是样本属于第k个类的概率值,wk表示最后一层对应第k类的权重。
把wk看成第k类的模板(template),xTwk的值可以看成对欧式距离的一种简化表示(xTwk为负,对应x和带权重wk的第k类欧氏距离大,则分类的概率小;xTwk为正,对应欧氏距离小,分类的概率大):
其中 xTx在计算softmax输出时被分离出来,wkTwk是每个类的常数。
损失函数(交叉熵):
此样本对应的标签的第k个类的概率值是yk(one-hot硬标签)。这个网络的损失函数(交叉熵):
标签平滑
平滑参数:α
标签平滑鼓励网络的输出在接近带权重w(模板)比例的正确类的同时,与不正确的带权重比例的类保持等距。(具体不是很理解,从实验1的可视化结果可看出来)
实验1:标签平滑作用
可视化过程:
- 选择三个类。
- 找到过这三个类的模板比例的平面的标准正交基。
- 把这三个类的样本的倒数第二层的激活函数的值投影在平面上。
实验:
数据集: CIFAR-10,CIFAR-100,ImageNet
网络结构: AlexNet,ResNet-56,Inception-v4
没有标签平滑(without label smoothing)记为 w/o LS。
第一行:CIFAR-10/AlexNet 上的“飞机”、“汽车”和“鸟”三类。
第二行:CIFAR-100/ResNet-56上的“河狸”、“海豚”与“水獭”。
第三行:ImageNet/Inception-v4上的“猫鼬”、“鲤鱼”和“切刀肉”。
第四行:ImageNet/Inception-v4上的“玩具贵宾犬”、“ 迷你贵宾犬”和“鲤鱼”。
注意第四行的不同,选了两个相似类和一个其他类。
前两列对应的分别没有标签平滑的训练集和验证集。后两列是平滑后的对比,明显看出标签平滑使得类间远离,类内缩进,毫无关系的三个类(不包括第四行)呈正三角形。
即标签平滑鼓励倒数第二层激活函数之后的结果靠近正确的类的模板,并且同样的远离错误类的模板。
实验2:针对ECE与温度缩放进行对比(作用相近)
expected calibration error (ECE)预期校准误差
郭等人已经表明,现代神经网络虽然比过去更好的校准网络具有更好的性能,但校准不佳且过于自信。为了测量校准,作者计算了估计的预期校准误差(ECE)。他们证明了一个简单的后处理步骤,温度缩放,可以减少ECE并校准网络。温度缩放包括在应用softmax运算符之前将logits乘以标量。在这里,我们展示标签平滑也减少了ECE,可用于校准网络而无需温度缩放。
【补充:2017《On Calibration of Modern Neural Networks》
因为测试集的样本数量有限,不能单纯的用测试集的正确率来说明模型的好坏。我们希望达到一个这样的想法:最高精确度达到p的测试样本的结果的置信度(Confidence)为p。即(完美校准calibration)
好好体会这个式子,简单解释就是预测样本是哪一类的概率值为p(神经网络的输出向量中的最大的一项的概率),希望对它的预测的正确率达到概率p。(即下图中第二行的图中,希望是对角线的效果。)
上图x轴均代表置信率(Confidence),即样本的输出向量的最大的概率p (属于[0,1]),% of samples表示对应的样本占总样本的百分比,比如说x轴0.8,y轴0.05表示样本输出向量的最大概率是0.8的样本数量占总样本的5%,实际上p的分布是连续的,但我们用离散试验(阶梯图)。具体如下图(下标i针对第i个样本)
accuracy代表真实的预测正确率,红色的框框代表真实试验和对角线的差距。我们希望调整模型使得confidence和accuracy一致,即ECE最小化:
具体的将数据集划分成M个小块Bm实验(其中总样本为n个):
文章给出了调整ECE的方法之一:温度缩放,即
因为它仅改变输出的概率值,而不改变输出的预测结果。
补充完】
可以说在对角线右下方的实验信心偏高,但实际准确率不足,效果不好。
参照对角线,既没有温度变换(T=1)又没有作标签平滑(α=0)的蓝线表现最差。
机器翻译:略。
实验3:标签平滑对知识蒸馏影响(变差)
数据集:MNIST
老师:one-hot+dropout的训练误差为0.67%
学生:知识蒸馏训练误差为0.74%
老师:标签平滑的训练误差为0.59%
学生:知识蒸馏训练误差为0.91%
数据集:CIFAR-10
老师:ResNet-56
学生:AlexNet
关注:
1. 老师用标签平滑的正确率(图中深蓝实线)
2. 学生用标签平滑的正确率(不用知识蒸馏,图中浅蓝实线)
3. 学生用知识蒸馏的正确率(对应老师用one-hot标签,蒸馏T变化,图中红虚线)
4. 学生用知识蒸馏的正确率(对应老师用平滑标签,蒸馏T=1,图中深蓝虚线)
对于1,2,γ=α(标签平滑度);对于3,4,γ定义为上图中式子,计算了教师在训练集上的错误样本分配。
由于γ意义不同,1,2同时比较(图中深蓝实线,浅蓝实线);3,4同时比较(图中红虚线,深蓝虚线)。
1,2:标签平滑率的不断增加可以提高教师的准确性,而略微降低学生网络的基准性能。
3,4:可以看出使用硬目标的教师网络做知识蒸馏得到的学生网络表现会更好一些。
实验3知识蒸馏:互信息I(X;Y)
互信息I(X;Y),Mutual Information,缩写为MI,表示知道Y后X的不确定性是多少。这里简化计算X,Y互信息。
这里X是两个类中的600个样本的随机变量,Y表示每个样本输入神经网络的倒数第二层的激活函数后的再乘相应权重的两个值的差的随机变量。(至于细节文章并没有透露,反正Y表示的输出是一维,猜测是用到了真实和平滑的标签)即互信息I(X;Y)表示两个类的信息量(H(X))在知道Y后会变成多少( I(X;Y) = H(X) - H(X|Y) )。
定义的互信息输出范围在(0,log(N))之间。
由图可以看到,未使用标签平滑的教师网络(蓝色线)会保存更多的两个类的信息,使用标签平滑的教师网络(红色线)的两个类的信息则会更少,这证实了标签平滑会造成一定信息损失的猜想。最终作者提出了一个结论:教师网络准确率更高并不是蒸馏一个好的学生网络的充分条件。
【 补充:
KL散度D(p(x)||p(y)) 是描述两个分布的差异;
熵H(x) 表示随机变量x含的信息量(信息量多,则不确定量就大);
条件熵H(x|y) 表示已知y后,x的信息量;
互信息I(x;y)=H(x)-H(x|y)=KL(p(x,y)||p(x)p(y)) 表示知道y后x的信息量变成多少,当x,y无关时,H(x|y)=0,则知道y后x的信息量还是原来那么多。用散度理解是x,y的联合分布和边缘分布之积的差异。
补充完 】