标签平滑(label smoothing)

1. 什么是标签平滑?

  • 标签平滑就是用来解决over-confident的问题,这类问题在对抗构建中尤为重要(GANs)

  • 通俗来讲
    在这里插入图片描述

  • 机器学习的样本中通常会存在少量错误标签,这些错误标签会影响到预测的效果。标签平滑采用如下思路解决这个问题:在训练时即假设标签可能存在错误,避免“过分”相信训练样本的标签。当目标函数为交叉熵时,这一思想有非常简单的实现,称为标签平滑(Label Smoothing)。

  • 我们以2类分类问题为例,此时训练样本为(xi,yi),其中yi是样本标签,为0或1。在训练样本中,我们并不能保证所有的样本标签都标注正确,如果某个样本的标注是错误的,那么在训练时,该样本就有可能对训练结果产生负面影响。一个很自然的想法是,如果我们有办法“告诉”模型,样本的标签不一定正确,那么训练出来的模型对于少量的样本错误就会有“免疫力”。

2. 标签平滑使用的方法是什么?

2.1 理论上

  • **在每次迭代时,并不直接将(xi,yi)放入训练集,而是设置一个错误率ε,以1-ε的概率将(xi,yi)代入训练,以ε的概率将(xi,1-yi)代入训练。**这样,模型在训练时,既有正确标签输入,又有错误标签输入,可以想象,如此训练出来的模型不会“全力匹配”每一个标签,而只是在一定程度上匹配。这样,如果真的出现错误标签,模型受到的影响就会更小。

2.2 实际上

在这里插入图片描述

2.2.1 为什么这样做就有效

在这里插入图片描述

3. 标签平滑的作用

在几乎所有的情况下,使用标签平滑训练可以产生更好的校准网络,从而更好地去泛化网路,最终对不可见的生产数据产生更准确的预测。因此,标签平滑应该是大多数深度学习训练的一部分。

4. 在GANs中的应用

  • 单侧标签平滑

5. 参考博客

https://www.cnblogs.com/whustczy/p/12520239.html
https://blog.csdn.net/Matrix_cc/article/details/105344967

猜你喜欢

转载自blog.csdn.net/weixin_44441131/article/details/106436808