基础知识:信息论、熵与分布距离

基础知识:信息论、熵与分布距离

Charles Lv8

熵、交叉熵、KL 和互信息把模型输出的概率分布转成可优化、可比较的量。语言模型、扩散模型、蒸馏和 RLHF 的 loss 经常使用它们来衡量不确定性、编码代价以及两个分布之间的差异。

熵:不确定性有多大

离散分布 pp 的熵写成:

H(p)=ipilogpiH(p)=-\sum_i p_i\log p_i

如果分布很尖,大部分概率集中在一个结果上,熵低;如果分布很平,很多结果都差不多可能,熵高。

这行公式里的 ii 遍历所有可能结果,pip_i 是第 ii 个结果的概率,logpi-\log p_i 可以理解为“这个结果出现时带来的惊讶程度”。概率越小,惊讶越大;概率越大,惊讶越小。熵就是把每个结果的惊讶程度按概率加权平均。

举个极端例子:如果模型 100% 确定下一个 token 是 cat,熵接近 0;如果它在 1000 个 token 上几乎平均分配概率,熵就高得多。采样温度、top-p 和探索策略都会改变这种不确定性。

生成模型里,熵会影响多样性;强化学习里,entropy bonus 可以鼓励探索;分类模型里,过低熵有时表示自信,也可能表示过度自信。

Policy entropy:探索分布还剩多少选择

在状态 ss 下,离散动作策略的熵是:

H(π(s))=aπ(as)logπ(as)H(\pi(\cdot\mid s))=-\sum_a \pi(a\mid s)\log\pi(a\mid s)

求和遍历当前状态下所有动作,π(as)\pi(a\mid s) 同时决定动作出现的概率和它的“惊讶程度”。概率集中在少数动作上时,policy entropy 低,策略几乎只剩固定选择;概率分散在多个动作上时,entropy 高,采样仍可能探索不同路径。

Entropy bonus 常用于阻止策略过早坍缩,但高熵本身不是任务目标:完全均匀地随机行动也可能回报很差。它表达的是探索分布还保留多少选择,必须与 reward、约束和采样成本一起权衡。具体策略更新见 Policy Gradient、Actor-Critic、PPO 与 GRPO

交叉熵:用一个分布编码另一个分布的代价

交叉熵写成:

H(p,q)=ipilogqiH(p,q)=-\sum_i p_i\log q_i

这里 pp 是真实分布,qq 是模型分布。如果真实标签是 one-hot,交叉熵就变成:

logqy-\log q_y

也就是惩罚模型给正确答案 yy 的概率太低。语言模型训练常用的 next-token loss 就是这个思想。

如果正确 token 的模型概率是 qy=0.8q_y=0.8,loss 是 log0.8-\log 0.8,惩罚很小;如果 qy=0.01q_y=0.01,loss 是 log0.01-\log 0.01,惩罚会大很多。语言模型预训练就是在每个位置重复这个动作:让正确下一个 token 的概率变高。

KL:两个分布之间的信息代价

KL divergence 写成:

DKL(pq)=ipilogpiqiD_{\mathrm{KL}}(p\|q) = \sum_i p_i\log\frac{p_i}{q_i}

它可以理解为:如果真实分布是 pp,却用 qq 来编码,会多付多少代价。

逐项看,piqi\frac{p_i}{q_i} 比较两个分布在第 ii 个结果上的概率。如果 pip_i 很大而 qiq_i 很小,说明 qq 漏掉了 pp 认为重要的结果,这一项惩罚就大。前面的 pip_i 表示:只在 pp 经常发生的地方重点计算代价。

KL 不对称:

DKL(pq)DKL(qp)D_{\mathrm{KL}}(p\|q)\neq D_{\mathrm{KL}}(q\|p)

这点很重要。不同方向的 KL 会偏好不同错误:有的更怕漏掉 pp 支持的区域,有的更怕把概率放到 pp 不支持的区域。VAE、RLHF、policy regularization 和蒸馏都会遇到这个差异。

后续例子:RLHF 里常见 KL penalty:

rtotal=rtaskβDKL(πθπref)r^{\text{total}} = r^{\text{task}} -\beta D_{\mathrm{KL}}(\pi_\theta\|\pi_{\mathrm{ref}})

这里 rtaskr^{\text{task}} 鼓励模型完成任务,πθ\pi_\theta 是当前策略,πref\pi_{\mathrm{ref}} 是参考模型,β\beta 控制“不要偏离参考模型太远”的力度。这个公式在平衡新能力和底座行为稳定性,不能读成 KL 越小越好。

KL 用在哪个方向必须写清楚

固定状态 ss 时,当前策略到参考策略这一方向的 KL 是:

DKL(πθπref)=Eaπθ[logπθ(as)logπref(as)].D_{\mathrm{KL}}(\pi_\theta\|\pi_{\mathrm{ref}}) = \mathbb E_{a\sim\pi_\theta} [\log\pi_\theta(a\mid s)-\log\pi_{\mathrm{ref}}(a\mid s)].

这里的期望明确由当前策略 aπθ(s)a\sim\pi_\theta(\cdot\mid s) 采样:当前策略经常选择的动作对这个 KL 贡献更大。反过来的 DKL(πrefπθ)D_{\mathrm{KL}}(\pi_{\mathrm{ref}}\|\pi_\theta) 是另一个量,它按参考策略采样和加权;交换两个分布不能当作等价改写。

这个方向的 KL 要有限,还要求当前策略相对于参考策略绝对连续:凡是 πθ(as)>0\pi_\theta(a\mid s)>0 的动作,都必须有 πref(as)>0\pi_{\mathrm{ref}}(a\mid s)>0。如果参考策略在某个当前策略会采到的动作上概率为 0,forward KL 就是无穷大。token mask、词表约束或截断规则都可能改变支持集,因此比较前必须确认两边使用同一有效动作集合,或者明确支持集如何处理。

在自回归策略里,状态 sts_t 是 prompt 加已生成前缀,动作 ata_t 是下一个 token。给定同一个 prompt,完整 response 由 πθ\pi_\theta 采样;若还要对多个 prompt 平均,当前策略和参考策略的比较必须使用同一个 prompt 分布,否则结果还混入了 prompt distribution shift。沿当前策略采样的序列累加 token log-ratio,再对这些序列取平均,可以构成相应序列级 KL 的 Monte Carlo 估计。单个 token 上的

logπθ(atst)logπref(atst)\log\pi_\theta(a_t\mid s_t)-\log\pi_{\mathrm{ref}}(a_t\mid s_t)

只是由 atπθ(st)a_t\sim\pi_\theta(\cdot\mid s_t) 得到的一个逐点 log-ratio 样本,不是完整 KL;它甚至可以为负,而完整 KL 的期望非负。如果 token 或前缀来自其他采样分布,就必须把那个分布写出来,并处理分布不匹配,不能继续把样本平均默认解释成上述方向的 KL。PPO/RLHF 中的具体约束见 Policy Gradient、Actor-Critic、PPO 与 GRPO,对齐训练背景见 预训练、微调与对齐

通信模型:信息要经过有噪声的通道

Shannon communication system

图源:Wikimedia Commons: Shannon communication system。原图展示信息源、编码器、信道、噪声和解码器。这里的重点是:信息论研究如何在有噪声的通道里表示、传输和恢复信息;这和模型压缩、表示学习、tokenization、通信并行都有呼应。

把这个图放进 AI 里看:

通信系统 AI 系统里的对应物
信息源 文本、图像、状态、动作、奖励
编码器 tokenizer、vision encoder、latent encoder
信道噪声 数据噪声、量化误差、dropout、采样随机性
解码器 language head、diffusion decoder、action head
传输代价 token 数、bit 数、显存、带宽、延迟

互信息:两个变量共享多少信息

互信息写成:

I(X;Y)=H(X)H(XY)I(X;Y)=H(X)-H(X\mid Y)

它衡量知道 YY 之后,XX 的不确定性减少了多少。表征学习常关心一个表示 ZZ 是否保留了对任务 YY 有用的信息,同时丢掉无关噪声。

公式里的 H(X)H(X) 是不知道 YY 时对 XX 的不确定性,H(XY)H(X\mid Y) 是知道 YY 后剩下的不确定性。两者差得越大,说明 YYXX 越有信息量。

在世界模型和 VLA 里,好的 latent 不只是压缩视频,还要保留动作、接触、遮挡、目标和风险的信息。压缩率高但互信息保错方向,后续控制会出问题。

Perplexity:语言模型里的指数化交叉熵

Perplexity 常写成:

PPL=exp(LCE)\mathrm{PPL}=\exp(\mathcal{L}_{\text{CE}})

它可以直觉理解为:模型平均每一步还在多少个候选之间犹豫。PPL 低通常说明语言建模更好,但它不是所有能力的充分证明;推理、工具调用、安全和闭环任务还要看专门评测。

常见误读

误读 更稳的理解
熵越低越好 过低可能是过度自信,生成时也可能缺少多样性
KL 是距离 KL 不对称,不满足普通距离直觉
交叉熵只属于分类 语言模型、蒸馏、对齐和序列建模都在用它
PPL 低就代表模型全能 PPL 是语言建模指标,不替代复杂能力评测

读完以后怎么判断

看到熵、交叉熵、KL 或互信息,先问它在衡量哪个分布,分布来自数据、模型、teacher、reference policy 还是 posterior。分布来源一清楚,loss 的作用也会清楚。

  • Title: 基础知识:信息论、熵与分布距离
  • Author: Charles
  • Created at : 2026-06-07 09:00:00
  • Updated at : 2026-06-07 09:00:00
  • Link: https://charles2530.github.io/2026/06/07/ai-files-prerequisite-math-information-theory-and-divergence/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments