when does label smoothing help?

Label Smoothing分析 - 知乎有挺多人问过我一个问题:Label Smoothing在图像识别中能稳定涨点,在人脸的loss里加上Label Smoothing是否有用呢? 我挺早之前就注意到了这件事,当时也做了实验,发现直接应用在人脸相关的loss上,是掉点的。其…https://zhuanlan.zhihu.com/p/302843504

https://github.com/seominseok0429/label-smoothing-visualization-pytorchicon-default.png?t=LA92https://github.com/seominseok0429/label-smoothing-visualization-pytorch        hinton署名,我只看了前半部分,还是很有意思的,label smoothing为什么会有用,之前一直觉得one-hot形式的label很暴力,在一些场景下,这种标签形式可能并不是特别好,之前做美学质量评估时,用NIMA模型,用softmax输出一个10类的0-1之间的权重,用l1损失去学,输出的结果即为一个分布,用分布的均值和方差来刻画一个图像的质量。整体来说,label smoothing产生了一个让扩大类间距缩小类内距的效果,有点类似margin,怎么做到呢?label smoothing加上之后,输入linear层的激活其实降低了,经过softamax之后的probs更低,他们几乎位于softmax函数的中间部分,致使loss曲线不再有平缓区域,处处都有较大的梯度指向各个类中心,所以特征会更加聚拢。另外,本文还提到了label smoothing起到了对置信度校准的作用,就是one-hot训练的模型其实置信度是overconfidence的,其实这一点我早就察觉到了,平均置信度要远高于平均精度,之前还没意识到这是一个早就可以讨论的领域问题了,==

1.Introduction

        It is widely known that neural network training is sensitive to the loss that is minimized.神经网络对最小化loss很敏感,loss这块在检测和分类上都是很值得探索的,目前整体的架构不变的话,loss起到了控制整个网络的关键作用。label smoothing, which improves accuracy by computing cross entropy not with the “hard" targets from the dataset, but with a weighted mixture of these targets with the uniform distribution.label smoothing通过交叉熵使用的不是来自数据集中的hard标签,而是使用具有均匀分布的目标加权混合来提高准确性。

2. preliminaries  

        这块公式比较多,我直接从原文中截出来,label smoothing是对yk进行改造,yk是真实标签,还是正常用的softmax cross entropy,人脸中是对linear层进行改造,让logit有更好的表征,label smoothing是对标签进行改造。

 3.penultimate layer representations

        Training a network with label smoothing encourages the differences between the logit of the correct class and the logits of the incorrect classes to be a constant dependent on alpha.用label smoothing训练网络鼓励正确类的logits和错误类的logit之间的差异依赖于alpha。相比之下,用hard标签训练网络通常会导致正确的logit比任何不正确的logit大得多,并且让不正确的logit彼此差异很大。

直观上,第k类的x*w可以认为是倒数第二层x的激活和w的平方欧几里得距离的度量,后面的展开式中第一项,在softmax的输出中被分解了,第三项跨类别时通常是个常量,因此只取决于第二项x*w,这个观点本身也没有问题,在人脸中,也是这么认为的,如果不对w*x对向量乘法分解,把欧式距离转到余弦空间中,进而改进角度的话,w*x表征的就是输入x和w之间的欧几里得距离,举个例子,linear层输入x是bs*512,w是512*10,则最终输出为bs*10,10为类别,w中其实是隐含着让512维的特征如何落到10类的潜在信息的,或者说度量的。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.label smoothing鼓励倒数第二层的激活接近正确的类别的template,并且不同类别的template是等距的。

下面会解释四个小图,小图的后两列是使用了label smoothing factor=0.1训练的。坐标表示的倒数第二层的激活值,可以认为是feature norm值。

这是alexnet在cifar101上训练的,取了airplane,automobile,bird三个类别。可以明显看到使用ls的模型类间距明显增大了,We observe that now the clusters are much tighter,because label smoothing encourages that each example in training set to be equidistant from all the other class’s templates. cluster更加紧密,因为label smoothing鼓励训练集中的每一个实例和其他类别template保持等距。但是,尽管激活的聚集质量不同,上述的准确率还是类似的,说明标签的改造是一方面,logit本身的质量也是很重要的,模型本身的提取能力跟不上,再多的改造意义也不大。这里还有一个论文没有提到的关键点,加了label smoothing,feature norm下降了。

这是resnet56在cifar100上的结果,相比较上图,模型更好,数据集也更大,选了beaver,dolphin,otter三类,用了label smoothing,两个类的logits之间的差距不得不限制在absolute value,absolute value值得就是坐标上的feature norm值,以获取正确和不正确类所需的soft目标,soft目标是做了加权的,这个值其实是变相的把1变小,把0变大了,在loss上就反应出,logit的值为了和soft target监督上,输出就会变小,没有label smoothing,feature norm的值就会很大,相应的经过softmax出来之后的置信度就会很大,整个数据集上的普遍的平均置信度都会很高,高于精度之后就会产生over-confident现象,因此label smoothing客观上也启动了抑制over-confident的作用。

上述两个图是inceptionv4在imagenet上训练,第一行选了语义上不同的三个类,第二行是选了两个语义相似的类和一个语义不相似的类。对于hard target,语义相似的类以各向同性聚集在一起,相反,经过label smoothing的,相似的类则位于一个arc内, 在这两种情况下,语义相似的类即使在训练集上也更难分离,但标签平滑强制每个示例与所有剩余类的模板等距,这会导致相对于其他类的弧形行为。

 4.implict model calibration        

        By artificially softening the targets, label smoothing prevents the network from becoming overconfident.But does it improve the calibration of the model by making the confidence of its predictions more accurately represent their accuracy?通过认为的soft target,label smoothing可以防止网络overconfident,但它是否通过使其预测的置信度更准确地代表其准确性来改善模型的校准?可以的。

上面这个图没有标记的蓝线是hard target训练出来的,显然是overconfident,带十字的蓝线是调整了T的,绿线则是label smoothing factor=0.05的模型,显然大大改善了overconfident,实现了对模型的校准。

后面是关于蒸馏的一些了,label smoothing对于蒸馏的学生模型是不友好的。

整体来看,文本解释了label smoothing为什么能在分类问题中提点的原因,让同类聚合,异类等距,更深一步是label smoothing抑制了feature norm,让softmax prob变小,设置了label smoothing值后,我们只会用到sigmoid(和softmax类似)曲线中间一段,平缓的区域基本上不存在,样本的移动几乎永不终止,因此特征会比不加ls的更具聚拢。softmax prob变小之后,loss曲线上就不存在平缓区域了,处处都有较大的梯度指向各个类中心,所以特征会更加聚拢。之所以会变小,而是因为loss的监督作用。文章还有一点就是提及了label smoothing其实也起到了环节overconfident的作用,这个还是很有价值的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值