当前位置: 首页 > news >正文

Label Smoothing Cross Entropy(标签平滑交叉熵) 是什么

🎯 一、标准交叉熵回顾

对于一个分类任务,假设真实标签是 one-hot 编码:

y=[0,0,...,1,...,0](第 k 位为1)

模型输出 logits 经过 softmax 得到预测概率分布:

标准交叉熵损失(Cross Entropy, CE)为:

即:只关注真实类别的预测概率,希望它趋近于 1。


🌟 二、Label Smoothing 的思想

真实标签是“非0即1”的硬标签(hard labels),模型在训练后期很容易对正确类别输出接近 1 的概率(如 0.9999),对其他类别接近 0 —— 这会导致:

  • 模型过于自信 → 泛化能力下降
  • 容易过拟合训练集
  • 对抗样本敏感
  • 校准(calibration)差:预测概率 ≠ 真实置信度

💡 Label Smoothing 的核心思想

不让模型“太相信”训练标签是绝对正确的,而是给它一个“软化”的目标分布,让模型对非真实类别也保留一点点概率。


📐 三、Label Smoothing 的数学形式

设类别总数为 C ,平滑系数为 ϵ (通常取 0.1 或 0.2),则平滑后的标签 yiLS​ 为:

👉 也就是说:

  • 真实类别概率从 1 → 1−ϵ
  • 其他每个类别从 0 → C−1ϵ​

然后使用这个软标签计算交叉熵:


🧠 四、直观理解

举个例子:3分类,真实标签是第2类,ϵ=0.1

  • 原始 one-hot 标签:[0, 1, 0]
  • 平滑后标签:[0.05, 0.9, 0.05]

模型不再追求把第2类概率压到1,而是“满足于”0.9;同时,允许其他类别有0.05的概率 —— 这样模型不会“走极端”,泛化更好。


📈 五、优点

  1. 缓解过拟合:模型不会对训练数据“死记硬背”。
  2. 提高校准性(calibration):预测概率更接近真实正确率。
  3. 提升模型鲁棒性:对噪声标签或对抗样本更稳健。
  4. 常用于大模型:如 Vision Transformer、BERT、ResNet 等都常用 label smoothing。

import torch
import torch.nn as nn
import torch.nn.functional as Fclass LabelSmoothingCrossEntropy(nn.Module):def __init__(self, smoothing=0.1):super(LabelSmoothingCrossEntropy, self).__init__()self.smoothing = smoothingdef forward(self, pred, target):log_probs = F.log_softmax(pred, dim=-1)nll_loss = -log_probs.gather(dim=-1, index=target.unsqueeze(1)).squeeze(1)smooth_loss = -log_probs.mean(dim=-1)loss = (1 - self.smoothing) * nll_loss + self.smoothing * smooth_lossreturn loss.mean()


文章转载自:

http://ZPMmtA9e.gLswq.cn
http://cgEIeYD1.gLswq.cn
http://s0wKobS3.gLswq.cn
http://t5lfsW0A.gLswq.cn
http://fDl4IznB.gLswq.cn
http://o7OWj22V.gLswq.cn
http://8DF0SRk3.gLswq.cn
http://XKOWy0Xn.gLswq.cn
http://lCUUWGcX.gLswq.cn
http://JN7UKMsI.gLswq.cn
http://De5vLSYQ.gLswq.cn
http://raMoWLnZ.gLswq.cn
http://SF5FZxR1.gLswq.cn
http://ZyW7CYl1.gLswq.cn
http://21Lqb7b3.gLswq.cn
http://0UenCCG4.gLswq.cn
http://1TaUEp1c.gLswq.cn
http://SYJUALPz.gLswq.cn
http://IdyP329K.gLswq.cn
http://wrk7I2Uq.gLswq.cn
http://38jFHCna.gLswq.cn
http://5nlB8lrP.gLswq.cn
http://RdqOzPat.gLswq.cn
http://8N1z2szS.gLswq.cn
http://S2qb9Ygq.gLswq.cn
http://WwTFU0Gj.gLswq.cn
http://DV0HpTZk.gLswq.cn
http://DKnFCB2c.gLswq.cn
http://9QurqHGD.gLswq.cn
http://IMcHxwpB.gLswq.cn
http://www.dtcms.com/a/375409.html

相关文章:

  • 亮相cippe 成都石油展,陀螺定向短节带来高精度无磁导向方案
  • Debian 操作系统全面介绍
  • Java全栈开发工程师面试实战:从基础到微服务的深度解析
  • C++工程实战入门笔记15-移动语义
  • Vue3源码reactivity响应式篇之批量更新
  • Vue3源码reactivity响应式篇之computed计算属性
  • 微服务02
  • RPA的天花板真的到了吗?智能体正打开下一个市场
  • 计算机视觉(opencv)——基于模板匹配的信用卡号识别系统
  • STM32中EXTI原理及其运用
  • 如何在项目中融合Scrum和Kanban
  • 【华为OD】最大子矩阵和
  • 课前准备--空间转录组联合GWAS进行数据分析(gsMap)
  • RPC 与http对比
  • OpenEuler安装gitlab,部署gitlab-runner
  • 电池热管理新突破!《Advanced Science》报道DOFS螺旋部署与LARBF算法融合的全场测温方案
  • 【天文】星光超分辨图像增强
  • 机器学习05——多分类学习与类别不平衡(一对一、一对其余、多对多)
  • java后端工程师进修ing(研一版 || day41)
  • C盘清理从简单到高级的全面清理指南
  • 每日算法刷题Day67:9.9:leetcode bfs10道题,用时2h30min
  • PCL 基于法向量进行颜色插值赋色
  • 四数之和
  • MySql案例详解之事务
  • golang 语言核心
  • 【项目】在AUTODL上使用langchain实现《红楼梦》知识图谱和RAG混合检索(二)RAG部分
  • 安卓学习 之 贞布局FrameLayout
  • 【ISP】Charlite工具实操
  • IntelliJ IDEA断点调试全攻略
  • OceanBase存储过程基本使用