目录
简介
Label Smoothing是一个帮助多分类模型进行正则化的操作。
从提出Label Smoothing的论文出发
"When Does Label Smoothing Help? "这篇文章指出Szegedy et al.提出了Label Smoothing. 因此我们就从Szegedy et al.的文章入手。在这里我们简称Label Smoothing为LS。
标签平滑也可以被简称为LSR(Label-Smoothing Regularization)。
不使用LS时的情况
假设我们有一个K分类问题,我们有标签1到K。
假设 z k z_k zk是类 k k k未经softmax的log概率值,
设x是一个训练input
那么我们的模型给我们的每一个类 k k k的概率就是:
p ( k ∣ x ) = e x p ( z k ) ∑ i = 1 k e x p ( z i ) p(k|x) = \frac{exp(z_k)}{\sum_{i=1}^{k}exp(z_i)} p(k∣x)=∑i=1kexp(zi)exp(zk)
假设 q ( k ∣ x ) q(k|x) q(k∣x)是类 k k k的真实概率标签。
那么此处的Cross Entropy Loss就是(此处省去了条件概率后面的 “ ∣ x |x ∣x”):
l = − ∑ k = 1 K log ( p ( k ) ) q ( k ) l = - \sum_{k=1}^{K}\log(p(k)) q(k) l=−k=1∑Klog(p(k))q(k)
这个loss关于 z k z_k zk求导的话:
∂ l ∂ z k = p ( k ) − q ( k ) \frac{\partial l}{\partial z_k} = p(k)-q(k) ∂zk∂l=p(k)−q(k)
这个值是肯定在-1和1之间的
假设K个类别中,只有类别y是正确的。也就是说,只有q(y)=1,
对于其他的q(k),只要 k ≠ y k\neq y k=y, q(k)=0。
此时,使得loss l l l最小,就是要让正确label y的log-likelihood最大。因为把所有的q(k)=0的情况都消掉之后,我们就有
l = − log ( p ( y ) ) q ( y ) = − log ( p ( y ) ) \begin{aligned} l &= - \log(p(y)) q(y)\\ &= -\log(p(y)) \end{aligned} l=−log(p(y))q(y)=−log(p(y))
所以当某训练input x的标签是y时,如果模型的输出能够做到
z y ≫ z k z_y \gg z_k zy≫zk
(for all k ≠ y k\neq y k=y)
那么此时我们就可以让loss达到尽可能小。
不使用LS时可能带来的问题
- 可能带来过拟合。模型可能会过度拟合它见过的数据,而运用到其他数据上可能无法泛化。
- 会导致 z y z_y zy和 z k z_k