原文:Label Smoothing - 2019.08.10
作者:Lei Mao
机器学习和深度学习中,往往采用很多正则化技术,比如L1,L2, dropout 等,来避免模型过拟合.
在分类任务中,模型有时候会对训练样本过度自信的预测,这对于模型的泛化能力是不好的.
这里,介绍类别标签平滑作为分类问题的正则化技术,避免模型对训练样本过度自信的预测.
1. 分类交叉熵损失函数
对于 K 类的分类问题,
假设参数为
正如在 Cross Entropy, KL Divergence, and Maximum Likelihood Estimation 博文里所描述的,这里的交叉熵是:
假设训练数据集中共有 n 个样本,则损失函数为:
2. One-Hot 类别编码
一般情况下,
基于此,损失函数可以进一步简约为:
最小化该损失函数,等价于对训练数据集的最大化似然估计.(证明可参考 Cross Entropy, KL Divergence, and Maximum Likelihood Estimation)
在损失函数优化过程中,如果训练数据集中不存在任何冲突的类别标签,是有可能将
由于
采用 One-hot 类别标签编码的结果是,non-conflicting
) 的数据集,模型会将每个训练样本以置信度几乎为 1 的正确预测. 这显然是过拟合的一个信号,过拟合的模型,其泛化能力不够好.
那么如何确认在模型训练过程中,不是朝着对训练数据中的类别标签过度自信的方向呢? 采用无冲突的训练数据集,以及 one-hot 类别编码,过拟合好像是不可避免的.
对此,引入了类别平滑技术作为正则化.
3.标签平滑
标签平滑是引入噪声分布
对于数据
其中,
对应的,损失函数为:
进一步简化损失函数:
可以看出,对于训练数据集中的每个样本,损失函数的分布是 one-hot 编码分布和预测的分布
在训练过程中,如过模型过度自信的学习分布,则
因此,采用标签平滑,可以真正引入了正则子
实际上,
4. 总结
标签平滑是分类问题中的一种正则化技术,其避免模型在训练过程中过度自信的预测类别,提升泛化能力.
5. 相关材料
[1] - Rethinking the Inception Architecture for Computer Vision
[2] - Pytorch - 标签平滑labelsmoothing实现 - AIUAI
[3] - InceptionV3 - 类别标签平滑正则化LSR - AIUAI
[4] - [基于 Keras 和 Tensorflow 的标签平滑实现[译] - AIUAI](https://www.aiuai.cn/aifarm1347.html)