Label Smoothing 是一种在模型训练过程中常用的正则化技术,目的是避免模型过于自信地预测目标类别,从而提升模型的泛化能力。
什么是 Label Smoothing?
在分类任务中,目标是让模型输出的预测概率 P(y|x) 尽可能接近目标标签的分布(即 One-Hot 编码)。对于一个 K 类的分类问题,One-Hot 编码的目标分布是:
这里,y 是真实类别的索引。
问题:
- 如果模型的预测概率非常接近 One-Hot 编码(即对正确类别的预测概率接近 1,其他类别接近 0),模型可能会对训练数据过拟合,对新数据的泛化性能较差。
Label Smoothing 的解决方法:
- 将目标分布从严格的 One-Hot 编码 q 平滑化为一个更“软”的分布 q’,使得对正确类别的概率不再是 1,而是略低一些,对其他类别分配少量的非零概率。
- 平滑后的目标分布:
这里:
- ϵ 是平滑参数,取值范围 0≤ϵ≤1;
- K 是类别数。
通过这种方式,目标分布会在所有类别上分配一些概率,而不是将所有概率集中在一个类别上。
Label Smoothing 的作用:
-
防止过拟合:
- 避免模型过于自信地预测某一类别,降低对训练数据的过拟合。
- 通过在目标分布中分配少量概率给其他类别,增强了模型的鲁棒性。
-
提高泛化能力:
- 在测试集或未见数据上表现更好,因为模型在训练时已经学会了更平滑的分布。
-
对抗模型的过度自信:
- 模型在预测时输出的概率分布会更加“谦逊”(例如,输出概率更接近于真实的目标分布,而不是将概率过度集中在一个类别上)。
Label Smoothing 的公式:
训练过程中,模型的损失函数(通常是交叉熵损失)被改写为基于平滑目标分布的版本:
其中:
- q′(i) 是平滑后的目标概率分布;
- P(i) 是模型的预测概率。
实际应用场景:
- 机器翻译:在 Transformer 等模型中,Label Smoothing 被广泛用于提升 BLEU 分数和泛化性能。
- 图像分类:在 ResNet 等深度卷积网络中,Label Smoothing 能提升准确率。
- 其他分类任务:任何涉及多类分类问题的任务都可以尝试引入 Label Smoothing。
选择 ϵ 的建议:
- 通常 ϵ 的值取 0.1 或接近 0.1 的小值。
- 如果 ϵ 太大(接近 1),可能导致目标分布过于平滑,模型难以有效学习。
优缺点总结:
优点:
- 简单易实现,只需调整目标分布。
- 提升模型的泛化性能,避免过拟合。
- 增强对小噪声和错误标注的鲁棒性。
缺点:
- 如果数据质量很好且标注准确,Label Smoothing 可能会使模型对标签的学习稍弱,导致收敛稍慢。
- 在小规模数据集上,过多的平滑可能会削弱模型的性能。
结论:
Label Smoothing 是一种有效的正则化技术,可以改善模型的泛化能力,尤其是在大规模分类任务中表现突出。在 Transformer 等现代 NLP 模型中,它是提升 BLEU 分数等指标的重要工具。