概念界定

交叉熵衡量当真实数据服从分布 p,却使用模型分布 q 来编码或预测时的平均代价。在深度学习中,交叉熵是分类任务和 next-token prediction 最常见的训练损失之一。

背景与问题

语言模型训练时,真实数据给出了每个位置上的目标 token。模型输出的是词表上的概率分布。我们需要一个损失函数,让模型给真实 token 更高概率,同时惩罚给真实 token 低概率的情况。交叉熵正好提供了这样的目标。

定义与记号

真实分布 p 和模型分布 q 的交叉熵定义为:

H(p, q) = -Σ_x p(x) log q(x)

如果真实标签是 one-hot 分布,即真实 token 为 y,则交叉熵变为:

H(p, q) = -log q(y)

这就是分类任务中的 negative log likelihood。

直观解释

交叉熵可以理解为:真实答案出现时,模型有多意外。如果模型给真实 token 的概率高,-log q(y) 小;如果概率低,损失大。

基本性质

  • 交叉熵越低,说明模型分布对真实样本的预测越好。
  • 当真实分布固定时,最小化交叉熵等价于最小化 KL(p || q)
  • one-hot 标签下,交叉熵只直接读取真实类别对应的模型概率。
  • 交叉熵不直接衡量生成文本的事实性、推理能力或指令跟随能力。

示例

给定上下文:

The capital of France is

真实下一个 token 是 Paris。如果模型给出:

q(Paris) = 0.9

损失较小:

-log 0.9

如果模型给出:

q(Paris) = 0.01

损失很大:

-log 0.01

与 next-token prediction 的关系

自回归语言模型通常最小化每个位置的交叉熵:

L = -Σ_t log q_θ(x_t | x_<t)

这等价于最大化训练序列在模型下的似然。

常见误解

  • 误解:交叉熵只是一个经验上好用的分类 loss。
    • 正确理解:它有明确的信息论和最大似然解释。
  • 误解:交叉熵低就说明回答质量一定高。
    • 正确理解:交叉熵衡量 token 预测,不直接等价于复杂任务能力。
  • 误解:交叉熵和熵是同一个东西。
    • 正确理解:熵只涉及真实分布,交叉熵涉及真实分布和模型分布。

相关概念