【漫话机器学习系列】193.单边标签平滑(One-Sided Label Smoothing)

119 阅读3分钟


什么是单边标签平滑(One-Sided Label Smoothing)?——深度学习中降低过拟合与防止过度自信的技巧

一、背景:为什么需要标签平滑(Label Smoothing)?

在分类任务中,模型的目标通常是根据输入预测正确的类别。我们一般使用 one-hot 标签进行监督训练,例如:

  • 正确类别的标签是 1
  • 其他类别的标签是 0

但这种方式存在两个问题:

  1. 数据集标签可能存在错误(尤其是人工标注数据)。
  2. 模型很容易对标签“过度自信”——即预测分布趋近于完全确定(概率接近1或0),从而导致模型的泛化能力变差、容易过拟合。

解决这两个问题的方法之一,就是标签平滑(Label Smoothing)。


二、什么是标签平滑(Label Smoothing)

标签平滑是一种训练策略,它的核心思想是:

故意让标签不那么极端,而是加入一点“不确定性”。

通常做法是:

  • 原来标签是 1,修改为 0.9
  • 原来标签是 0,修改为 0.1(或更低)

这种策略能让模型:

  • 不那么自信
  • 更好地处理错误标签
  • 减少过拟合
  • 提升泛化能力

三、什么是“单边标签平滑”(One-Sided Label Smoothing)

本图介绍的重点是“单边标签平滑(One-Sided Label Smoothing)”,它是标签平滑的一种特殊形式。

区别在于:

方式1的标签处理0的标签处理
普通标签平滑1 → 0.9;0 → 0.1两边都平滑
单边标签平滑只对正样本(标签=1)平滑1 → 0.9;0保持不变(或稍微调整)

四、图片内容解读

单边标签平滑(One-Sided Label Smoothing)

主要思想:

  1. 通常数据集是会存在错误的。
  2. 标签平滑可以减少判别器的自信。
  3. 将正例样本的标签从1替换为0.9。
  4. 将负例样本的标签从0替换为0.1。

特点:

  • 降低正样本的置信度(防止模型死死记住标签)
  • 允许一定程度的错误
  • 增强模型的鲁棒性和容错性
  • 常用于 GAN、分类、对抗样本防御等场景

五、单边标签平滑的公式实现(举例)

假设原标签 y:

真实标签 y平滑后标签 y'
10.9
00.1

伪代码:

def one_sided_label_smoothing(y, positive_smooth=0.9, negative_smooth=0.1):
    return y * positive_smooth + (1 - y) * negative_smooth

六、应用场景

应用方向说明
GAN判别器防止判别器过强或过度自信
分类模型降低过拟合,增加容错性
图像识别应对标签噪声
对抗样本防御增加鲁棒性

七、与普通标签平滑的对比

对比点普通Label Smoothing单边Label Smoothing
处理对象正负样本都平滑仅对正样本平滑
目的降低所有标签极端性降低正样本极端性
典型应用分类任务GAN、对抗任务

八、总结

单边标签平滑(One-Sided Label Smoothing)是一种简单但实用的技术,特别适用于需要控制模型置信度、增强模型鲁棒性的场景。

核心作用:

  • 防止模型过拟合
  • 降低对错误标签的敏感性
  • 提高泛化能力
  • 适合GAN等对抗性任务

最佳实践:

  • 正样本标签:1 → 0.9
  • 负样本标签:0 → 0.1(或保持0)

参考来源

  • 图片出处:Chris Albon
  • 相关知识点:Label Smoothing、GAN、鲁棒性、过拟合控制