一句话定义:标签平滑(Label Smoothing)是训练分类模型时的一种"软化答案"技巧——不再要求模型对正确类别输出 100% 的概率,而是留一小部分概率分给其他类别。
它到底改了什么
假设一个四分类任务。图片里是一只狗,硬标签(hard label)写作 [0, 0, 1, 0]。标签平滑把它改成 [0.033, 0.033, 0.9, 0.033]:正确类降到 0.9,剩下的 0.1 平均分给另外三类。这个 0.1 就是平滑系数,通常记作 ε。
打个比方:判卷老师发现题目本身有歧义,于是规定"标准答案是 A 的题,A 最多只能得 0.9 分,其余 0.1 分平摊给其他选项"。学生就不会死磕"必须拿满分"。
为什么有用
分类模型末端是 softmax 加交叉熵(cross-entropy)。用硬标签训练时,损失只有在正确类概率严格等于 1 时才为零,而 softmax 的输出永远达不到 1。于是优化器只能一路把正确类的 logit 推向无穷大,权重越练越大。这就是模型"训练越久越自信、在测试集上反而越差"的来源之一。
标签平滑给损失设了一个有限的最优解:正确类的 logit 只要比其他类高出一个固定差距就够了,不必无限大。权重不再被无限推大,过拟合风险下降,输出的概率也更接近真实频率——也就是校准(calibration)更好。
| 做法 | 目标分布从哪来 | 传递的信息 |
|---|---|---|
| 硬标签 | 人工标注的 one-hot | 只有"谁是对的" |
| 标签平滑 | 人为软化,均匀分摊 | 弱化绝对自信,抑制 logit 膨胀 |
| 知识蒸馏 | 教师模型输出的软标签 | 类间相似度,如"猫像狗" |
一句话对比:知识蒸馏的软标签带信息量,标签平滑分出去的概率是均匀的、无信息的,作用主要是正则化。
容易混淆的邻居
- 和 dropout、权重衰减同属正则化,但标签平滑动的是损失函数的目标,不碰网络结构。
- 和温度缩放(temperature scaling)都能改善校准,但温度缩放是训练完之后在验证集上调参数,属于事后修补;标签平滑在训练过程中就起效。
- 和 focal loss 方向相反:focal loss 让模型更聚焦难样本,标签平滑则给所有样本的"满分"设上限。
对从业者的意义
- 图像分类里它接近默认操作,平滑系数常取 0.1 上下,主流框架的交叉熵实现里一般都有对应参数,具体默认值以官方文档为准。
- 如果下游要拿模型概率做阈值决策(风控、医疗、排序),标签平滑通常能让"0.8"更接近真实含义,但最大置信度会被压低,阈值需要重新调。
- 做知识蒸馏时要小心:教师模型若也用标签平滑训练,类间相似度信息会被抹平,学生可能学不到东西。
- 对非技术同事的一句总结:模型说"99% 确定"往往不可信,标签平滑就是训练时不让它把话说太满。
