深度学习中的label smoothing

label smoothing:

交叉熵:

H ( p , q ) = − ∑ i = 1 n p ( x i ) log ⁡ ( q ( x i ) ) H(p, q)=-\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(q\left(x_{i}\right)\right) H(p,q)=i=1np(xi)log(q(xi))

其中p(xi)是真值, q(xi) 是预测值。

交叉熵的问题:

交叉熵的真值直接把正例设置为1,负例设置为0,非常的依赖标签的正确性,这样会可能会出现***过拟合***,神经网络最小化训练误差的时候会尽可能让网络的输出拟合label,但是在训练数据不足以表征所以的样本特征的情况下,这就会导致网络过拟合(只能区分训练集里面的数据)。

  • 训练数据不足:过于拟合训练集而对于未见到的数据会分错
  • 不均衡
  • noise label: 会对训练集里出现的错误label数据拟合的很好等
label smoothing:
什么是label smoothing?

label smoothing是一种正则化的策略。可以让传统的one-hot类型标签更soft,这样在计算loss的时候能有效抑制过拟合现象,相当于减少真实样本标签的类别在计算损失函数时的权重,最终起到抑制过拟合的效果。
标签平滑被提出用于训练 Inception-v2 ,在Imagenet上有较少过拟合的效果。

公式:

q ′ ( y ∣ x ) = ( 1 − ϵ ) ∗ q ( y ∣ x ) + ϵ u ( y ) q^{\prime}(y | x)=(1-\epsilon) * q(y | x)+\epsilon u(y) q(yx)=(1ϵ)q(yx)+ϵu(y)
ϵ \epsilon ϵ属于[0, 1], q ′ ( y ∣ x ) q^{\prime}(y | x) q(yx) 让label的真实分布和先验分布 u ( y ) u(y) u(y)结合在了一起。一般另 u ( y ) = 1 / ( k − 1 ) 或 1 / k u(y) = 1/(k-1)或1 / k u(y)=1/k11/k
代入交叉熵后:
H ( q ′ , p ) = − ∑ i = 1 K q i ′ log ⁡ p i = ( 1 − ϵ ) H ( q , p ) + ϵ H ( u , p ) H\left(q^{\prime}, p\right)=-\sum_{i=1}^{K} q_{i}^{\prime} \log p_{i}=(1-\epsilon) H(q, p)+\epsilon H(u, p) H(q,p)=i=1Kqilogpi=(1ϵ)H(q,p)+ϵH(u,p)
相当于减少了预测值和真值之间的惩罚,增加了预测值与先验分布之间的惩罚。一般可以设 ϵ = 0.1 \epsilon = 0.1 ϵ=0.1

作用:

能够一定程度防止模型过拟合,解决对真值的依赖。

参考:
https://blog.csdn.net/e01528/article/details/85019274
https://blog.csdn.net/xys430381_1/article/details/89150027

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值