标签平滑(Label Smoothing)详解

什么是label smoothing?

标签平滑(Label smoothing),像L1、L2和dropout一样,是机器学习领域的一种正则化方法,通常用于分类问题,目的是防止模型在训练时过于自信地预测标签,改善泛化能力差的问题。

为什么需要label smoothing?

对于分类问题,我们通常认为训练数据中标签向量的目标类别概率应为1,非目标类别概率应为0。传统的one-hot编码的标签向量 y i y_i yi为,
y i = { 1 , i = t a r g e t 0 , i ≠ t a r g e t y_i= \begin{cases} 1,i=target \\ 0,i\neq target\\ \end{cases} yi={1i=target0i=target

在训练网络时,最小化损失函数H(y,p)= ∑ i K y i log ⁡ ( p i ) \sum^{K}_{i}{y_i\log(p_i)} iKyilog(pi),其中 p i p_i pi由对模型倒数第二层输出的logits向量z应用Softmax函数计算得到,pi= exp ⁡ ( z i ) ∑ j K exp ⁡ ( z j ) \exp(z_i) \over \sum^{K}_{j}{\exp(z_j)} jKexp(zj)exp(zi)

传统one-hot编码标签的网络学习过程中,鼓励模型预测为目标类别的概率趋近1,非目标类别的概率趋近0,即最终预测的logits向量(logits向量经过softmax后输出的就是预测的所有类别的概率分布)中目标类别zi的值会趋于无穷大,使得模型向预测正确与错误标签的logit差值无限增大的方向学习,而过大的logit差值会使模型缺乏适应性,对它的预测过于自信。在训练数据不足以覆盖所有情况下,这就会导致网络过拟合,泛化能力差,而且实际上有些标注数据不一定准确,这时候使用交叉熵损失函数作为目标函数也不一定是最优的了。

label smoothing的数学定义

label smoothing结合了均匀分布,用更新的标签向量y^i来替换传统的ont-hot编码的标签向量yhot:

y i ^ = y h o t ( 1 − α ) + α / K \hat{y_i}=yhot (1−α)+α/K yi^=yhot(1α)+α/K
其中K为多分类的类别总个数,α是一个较小的超参数(一般取0.1),即

y i ^ = { 1 − α , i = t a r g e t α / K , i ≠ t a r g e t \hat{y_i}= \begin{cases} 1-α,i=target \\ α/K,i\neq target\\ \end{cases} yi^={1αi=targetα/Ki=target
这样,标签平滑后的分布就相当于往真实分布中加入了噪声,避免模型对于正确标签过于自信,使得预测正负样本的输出值差别不那么大,从而避免过拟合,提高模型的泛化能力。

NIPS 2019上的这篇论文When Does Label Smoothing Help?用实验说明了为什么Label smoothing可以work,指出标签平滑可以让分类之间的cluster更加紧凑,增加类间距离,减少类内距离,提高泛化性,同时还能提高Model Calibration(模型对于预测值的confidences和accuracies之间aligned的程度)。但是在模型蒸馏中使用Label smoothing会导致性能下降。

文章来源:https://www.cnblogs.com/irvingluo/p/13873699.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值