交叉熵损失

交叉熵损失

分类任务的标准考卷

亦作、亦称:交叉熵 · Cross Entropy Loss

交叉熵(Cross-Entropy)源自信息论,衡量两个概率分布之间的差异,在机器学习中被广泛用作分类任务和语言模型的损失函数。最小化交叉熵等价于对训练数据做最大似然估计,是神经网络训练的核心数学目标。

概述

交叉熵(Cross-Entropy)源自信息论,衡量两个概率分布之间的差异,在机器学习中被广泛用作分类任务和语言模型的损失函数。最小化交叉熵等价于对训练数据做最大似然估计,是神经网络训练的核心数学目标。

核心定义与信息论基础

交叉熵将信息论中的编码代价转化为可优化的机器学习目标。

  • Shannon 熵:$H(p) = -\sum_i p_i \log p_i$,衡量分布自身的不确定性(1948 年由 Claude Shannon 提出)
  • 交叉熵:$H(p, q) = -\sum_i p_i \log q_i$,用次优方案 q 代替最优方案 p 时的平均编码长度
  • 与 KL 散度的关系:$H(p,q) = H(p) + D_{KL}(p|q)$;真实分布 p 固定时,最小化交叉熵等价于最小化 KL 散度
  • 下界:$H(p,q) \geq H(p)$,等号当且仅当 $p = q$,即预测完全准确时成立
  • 等价于最大似然:最小化交叉熵在数学上与最大化对数似然函数(MLE)完全等价

计算流程与工程实现

标准分类任务的交叉熵损失计算分三步完成。

  • 第一步,得到 logit:模型最后一层输出未归一化的原始分数,形状为 [batch, num_classes]
  • 第二步,softmax 归一化:将 logits 转为概率分布,实践中通常用 log-softmax 保证数值稳定
  • 第三步,取负对数均值:对真实类别对应的预测概率取负对数后批量求均值得到损失值
  • 梯度形式简洁:softmax + 交叉熵联合求导,梯度恰好等于 $\hat{y} - y$,无梯度消失风险
  • 框架实现:PyTorch 的 nn.CrossEntropyLoss 内部合并 log-softmax 与 NLLLoss,直接接受 logits 以避免精度损失

常见变体

针对不同场景的痛点,研究者在标准交叉熵基础上提出多种改进。

  • 二元交叉熵(BCE):用于二分类或多标签任务,每个标签独立经 sigmoid 后计算对数损失,不强制类别互斥
  • 标签平滑(Label Smoothing):将 one-hot 目标软化——真实类保留 $(1-\varepsilon)$,其余类均摊 $\varepsilon$;Transformer 原始论文(2017)使用 ε=0.1,改善模型校准性
  • Focal Loss:由 Lin 等人随 RetinaNet(2017)提出,引入聚焦参数 γ 对易分类样本动态降权,专注难样本,解决目标检测中的严重类别不平衡问题
  • 温度缩放(Temperature Scaling):推理或知识蒸馏时用温度 T 缩放 logits,T>1 使软标签分布更平滑,迁移暗知识
  • 序列级交叉熵:语言模型对每个 token 位置分别计算交叉熵后求均值,其指数形式即困惑度(Perplexity)

典型应用场景

交叉熵损失贯穿几乎所有现代深度学习任务。

  • 图像分类:ResNet、ViT 等在 ImageNet 上以 softmax + 交叉熵为标准训练目标
  • 语言模型预训练:GPT、LLaMA、Mistral 等自回归模型以 next-token 交叉熵为唯一预训练信号
  • 指令微调(SFT):在对话数据上只对回答部分计算交叉熵,将预训练模型对齐指令格式
  • 知识蒸馏:学生模型对教师软标签概率分布计算交叉熵(等价 KL 散度形式),迁移教师的隐式知识
  • 语音识别(CTC):CTC 损失对所有合法对齐路径求和后取交叉熵,实现端到端序列到序列训练

局限与常见误区

即便是事实标准,交叉熵在特定场景下也会失效或被误用。

  • 类别不平衡:损失被多数类主导,模型易忽略稀有类;需配合类别权重或改用 Focal Loss
  • 过度自信(Overconfidence):未加标签平滑时,模型容易将概率全部压到正确类,概率校准差,影响下游决策
  • 标签噪声敏感:对错误标注样本施以同等惩罚,噪声标签显著干扰训练;可用标签平滑或鲁棒损失缓解
  • 多标签任务误用:softmax 强制各类互斥,多标签场景须改用 sigmoid + BCE,否则结果错误
  • 困惑度跨词表比较:不同词表大小的模型困惑度不可直接横向对比,需统一到相同 token 粒度

发展脉络

交叉熵从信息论走向深度学习核心,经历数十年演进。

  • 1948:Claude Shannon 发表《通信的数学理论》,奠定信息熵与交叉熵的理论基础
  • 1980 年代:反向传播算法确立,交叉熵 + softmax/sigmoid 组合梯度性质优于 MSE,逐渐成为分类首选损失
  • 2014:GoogLeNet 等在 ImageNet 挑战赛中大规模采用 softmax + 交叉熵,确立其视觉分类标准地位
  • 2017:Transformer 论文引入标签平滑 ε=0.1Focal Loss 随 RetinaNet 提出,扩展交叉熵在目标检测中的适用性
  • 2018 至今:GPT、BERT 等大规模语言模型以交叉熵为唯一预训练信号,交叉熵损失成为衡量语言模型能力的事实标准

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「分类任务的标准考卷」
  • 「语言模型训的就是这个」
  • 「预测分布跟真实标签比」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 3 篇文章,帮助深入理解该术语。

  1. 1

    机器学习基础:从线性模型到决策树

    机器学习入门必读。涵盖线性回归、逻辑回归、决策树、KNN、SVM 等核心算法,从数学原理到 Python 实战,配合对比表格和可视化图解,帮你建立完整的 ML 知识框架。

  2. 2

    反向传播:神经网络如何学习

    深入理解反向传播算法的数学原理、计算图实现和训练中的关键问题

  3. 3

    大语言模型预训练:数据准备与训练策略完全指南

    大语言模型预训练的全流程——从数据收集、清洗、去重、Tokenization 到训练策略、学习率调度、分布式训练

外部参考

维基百科:查看「交叉熵损失」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。