When does Label Smoothing Help(NIPS'19)

论文链接:paper

Hinton大神19年发表在NIPS的论文

Summary:多分类的任务通常可以通过Label Smoothing(LS)来提升泛化性,具体做法是在hard label的基础上增加一个均匀分布来使目标值变得soft。本文通过一系列实验和可视化证明了label smoothing到底带来了哪些变化,除了提升泛化性还有哪些好处,以及LS和知识蒸馏之间的冲突。

Conclusion

  • LS可以是不同分类的cluster变得更紧密
  • LS可以提升算法的calibration
  • LS会降低蒸馏的效果(对teacher做LS,会让student的效果变差)

Preliminaries

  • 在图像分类、语音识别、机器翻译中,使用LS的效果:
image.png
  • hard label的情况下loss计算(K个分类):
image.png
image.png
  • label smoothing中调整y值:
image.png

提升效果:Penultimate layer representation(倒数第二层layer的表达)

LS和hard label的对比:

  • LS:正确类别和所有错误类别的logits都相差常数
  • hard label: 正确类别的logits大于错误类别的logits & 错误类别的logits彼此不同

直觉上,通过pk公式中的xT*wk可以把类别k的logits看做是类别k的模板wk和输入x之间的欧氏距离:


image.png
image.png

当x距离某个分类K的模板距离更近时,x属于K分类的概率就越大。

从这个角度看,LS鼓励penultimate layer接近正确类别的模板,并且距离其他错误类别模板相等。

可视化:4行对应4个数据集&类别

  • CIFAR-10数据集,飞机、车、鸟
  • CIFAR-100数据集,海狸、海豚、水獭
  • ImageNet数据集,x鱼、狐獴、x刀,相差很大
  • ImageNet数据集,a贵宾犬、b贵宾犬、x鱼,前两个类别很相似

可以看到,LS会让每个类别的cluster变得更加tight

image.png
image.png

提升calibration(防止model过于自信)

model输出的logits应该表明了confidence,理想情况下,这个值应该和accuracy是相等的。换言之,收集所有model输出概率是0.7的样本,accuracy也应该是0.7。但是实际上深度学习模型经常会过于自信。接下来通过ECE(expected calibration error)来衡量模型过于自信的程度。

根据之前的经验,Temprature scaling可以降低ECE。这篇paper证明了LS也可以降低ECE。

  • 图片分类:α是LS的超参,T是Temprature scaling的超参
image.png
  • 机器翻译:在分类任务中,ECE可能不是很重要(比起来ACC)但是在seq2seq的生成任务中,由于需要做beam search,ECE也很重要
image.png

左边的两个图,对比是否使用LS的情况下,不同T的模型效果:蓝线是BLEU score,红线是NLL(negative log-likelihood)。左图是hard label,中间图是LS

右边的图,有叉叉的是LS的,对比的是在任何T下,LS的NLL都没有变好,所以实际上LS在没有提升NLL的情况下,提升了BLEU

image.png

知识蒸馏

如果在teacher model中增加LS的优化,teacher model的效果会变好,但是蒸馏的student的模型反而会变差。

在没有LS的时候,各个错误类别的logits不同,这个携带了信息,而且有些正确类别的样本反而会更靠近错误类别(写得像7的2)。但是增加了LS之后,这些信息都被抹去了。

image.png

你可能感兴趣的:(When does Label Smoothing Help(NIPS'19))