文章目录
1.标签平滑
在进行多分类时,很多时候采用one-hot标签进行计算交叉熵损失,而单纯的交叉熵损失,只考虑到了正确标签的位置的损失,而忽略了错误标签位置的损失。这样导致模型可能会在训练集上拟合的非常好,但由于其错误标签位置的损失没有计算,导致预测的时候,预测错误的概率比较大,也就是常说的过拟合。
此外,标签平滑也能够防止模型在训练过程中过于相信真实标签,从而提高模型在未知数据上的泛化能力。 比如: 在分类任务中,对猫和狗的图像进行分类。如果预测一只狗的照片,那么真实标签中:1代表狗,0代表猫。在训练CNN时,模型预测值会尽量往1和0两个方向移动。这就使得模型对所要预测的图像过于自信,降低了模型的泛化能力。同时,数据集中通常会包含错误标签的数据。这就意味着,模型应该对正确的标签持 ”怀疑态度“。因此,对于1的标签,可以设置为1 - smoothing(平滑系数),例如0.9。此时,意味着对于所要预测的图像,有0.9的概率是狗,0.1的概率是猫。
标签平滑可以在一定程度上防止过拟合、降低自信程度、提升泛化能力。
2. 传统的交叉熵损失计算
Step1: softmax多分类
Step2: 交叉熵损失计算公式:
实例:
假设一批样本,样本类别的总数n=5, 其中一个样本的one-hot标签为[0,0,0,1,0],假设通过模型(如全连接等)的logit进行softmax后的概率矩阵p为:
将其带入到上面的公式,即可计算出单个样本的loss为:
3.带有标签平滑的交叉熵损失的计算
同样是上面的例子:一批样本,样本类别的总数n=5, 其中一个样本的one-hot标签为[0,0,0,1,0],假设通过模型(如全连接等)的logit进行softmax后的概率矩p为:
设:标签的平滑因子ϵ = 0.1 ,平滑的计算步骤如下:
y即是平滑后的新标签,然后按照传统的交叉熵损失计算步骤即可,如:
4.标签平滑与传统的交叉熵损失的比较与分析
有上面实例可以看出,带有标签平滑的损失要比传统交叉熵损失要更大。换言之,带有标签平滑的损失要想下降到传统交叉熵损失的程度,就要学习的更好,迫使模型往正确分类的方向走。
5. 标签平滑的应用场景
只要用到的是交叉熵损失(cross loss),都可以采取标签平滑处理。
6.Label Smoothing 优劣
优点:
- 一定程度上,可以缓解模型过于武断的问题,也有一定的抗噪能力
- 弥补了简单分类中监督信号不足(信息熵比较少)的问题,增加了信息量;
- 提供了训练数据中类别之间的关系(数据增强);
- 可能增强了模型泛化能力
- 降低feature norm (feature normalization)从而让每个类别的样本聚拢的效果
- 产生更好的校准网络,从而更好地泛化,最终对不可见的生产数据产生更准确的预测。
缺点:
- 单纯地添加随机噪音,也无法反映标签之间的关系,因此对模型的提升有限,甚至有欠拟合的风险。
- 它对构建将来作为教师的网络没有用处,hard 目标训练将产生一个更好的教师神经网络。