标签平滑

标签平滑(Label Smoothing)是一种在训练分类模型时常用的正则化技巧. 它的主要思想是: 在计算交叉熵损失时, 不把目标类别的标签视为100%正确(即1), 而是将其分散到所有类别上, 让目标类别的标签略小于1, 其它类别的标签大于0. 这样可以减少模型过度自信, 缓解过拟合的问题. 以下是要点:

  1. 传统做法:

    • 如果目标类别是第k类, 那么其one-hot编码表示为[0,0,…,1,0,…,0], 其中第k个位置是1, 其他位置是0
    • 训练时, 模型会倾向于把正确类别的概率拟合到1, 而其余类别为0
  2. 标签平滑的变化:

    • 将原本的1稍微降低为1 - ε, 并把这部分ε在其他类别(假设有K个类别)上平均分配, 使得它们不再是0, 而是ε/(K-1)
    • 例如, 如果K=5, ε=0.1, 目标类别原本为[0,0,0,0,1], 那么现在会变成[0.025,0.025,0.025,0.025,0.9]
  3. 好处:

    • 模型不再把目标类别看作唯一绝对正确, 而是以更柔性的方式学习, 避免将预测概率压得过高或过低
    • 可以有效地减少模型过拟合, 并且对异常标签或噪声数据有一定的鲁棒性
  4. 为何使用:

    对于视觉-语言任务或其他多分类/多标签任务, 标签平滑同样适用. 当我们在训练语言建模(LM)或图文匹配之类的任务时, 给目标标签一个平滑的分布, 能让模型更具泛化能力

总的来说, 标签平滑通过引入适度的扰动, 提升了模型对真实标签分布的适应性, 使得模型在预测时不会过度自信, 并因此对噪声或不确定性数据更具韧性.