跳转到正文

D.4.1 自信息、熵与探索

如果你训练过一个语言模型,你多半见过这样的场景:模型在两个回答之间犹豫不决,或者更新一步之后风格突然跑偏。这类问题的背后,其实是"怎么衡量一个分布有多随机"和"怎么衡量两个分布差多远"这两个基本问题——而回答它们的工具,就是信息论。

信息论本来是通信领域的基础课,但它在强化学习中几乎无处不在:策略探索需要熵,PPO 的稳定更新需要 KL 约束,RLHF 的对齐训练依赖交叉熵和 KL 散度,而 DPO 把这些工具重新包装成了优雅的偏好优化公式。

本节从最简单的概率事件出发,一路讲到 RLHF 和 DPO 的数学内核。

策略分布、熵与 KL 示意图

本节路线

文章数学节奏强化学习中的作用
E.4.1 自信息、熵与探索概率事件 → 自信息 → 熵衡量策略随机性和探索程度
E.4.2 交叉熵与 KL 散度编码代价 → 交叉熵 → KL衡量预测分布和策略分布的差异
E.4.3 KL 约束、RLHF 与 DPOKL 正则 → 对数概率比 → 偏好损失理解对齐训练中的策略约束
E.4.4 互信息与表征学习条件不确定性减少 → 互信息衡量表征中保留的任务相关信息
E.4.5 完整信息论公式KL、RLHF、DPO、互信息完整表达统一理解分布距离和偏好优化
E.4.6 小结、公式与练习公式汇总 → 误区 → 练习回顾并检查理解

前置知识:本篇不需要信息论基础。建议先读完前文的“两状态贯穿例子”和D.2.1 概率基础


信息论在回答什么问题

强化学习里的策略本质上是一个概率分布——给定状态 ,策略为每个动作分配一个概率:

一旦策略变成了概率分布,三个问题自然浮现:

  1. 这个策略有多随机?(答案:熵)
  2. 模型预测的分布和目标分布差多少?(答案:交叉熵)
  3. 新策略和旧策略差多远?(答案:KL 散度)

这三个量贯穿了从策略梯度到 DPO 的整条链路。我们从最简单的概率事件开始,一步步走到它们在 RL 中的应用。


概率越小,信息量越大

想象你在玩一个猜数游戏:对方从 1 到 8 之间选了一个数,你需要用”是/否”问题把它猜出来。如果对方选了 3,你需要问几个问题?”比 4 小吗?””比 2 大吗?””是 3 吗?”——正好 3 个。而如果范围只有 1 到 2,1 个问题就够了。

范围越大,结果越难猜,猜中之后获得的信息也越多。这其实就是自信息的直觉:事件越不可能发生,它一旦发生,带给你的”惊喜”就越大

数学上,自信息(self-information)用一个简洁的公式刻画这种”惊喜程度”:

这里的 是以 2 为底的对数, 是事件 发生的概率。前面的负号保证结果为正数(因为 对小于 1 的数取值是负的)。

举几个例子。如果 (像抛硬币正面朝上):

如果 (像刚才猜数游戏里猜中一个特定数字):

概率从 降到 ,自信息从 1 涨到 3。这个”越少见越令人惊讶”的性质,正是后面熵和 KL 散度的基石。


熵——衡量策略有多”拿不定主意”

自信息衡量的是单个事件的惊喜程度,但策略面对的是一整组动作的概率。我们需要一个总的指标来衡量”策略整体上有多不确定”——这就是熵要解决的问题。

熵(entropy,用字母 表示)的定义是所有动作的自信息的加权平均:

这里 的意思是"把所有可能的动作 加起来",每一项乘以对应的概率 作为权重。

看两个具体策略。策略 A 是完全犹豫不决的:

动作概率
left
right

策略 B 则几乎已经下定决心了:

动作概率
left
right

策略 A 的熵是:

策略 B 的熵约为:

A 的熵更大,说明它更"拿不定主意",也就是更愿意探索不同的动作;B 的熵更小,说明它更偏向某个动作,行为更可预测。


熵奖励——让策略"别太早做决定"

光知道怎么算熵还不够,关键是它能派上什么用场。在实际训练中,策略很容易过早地锁定某个动作——这就是"过早收敛"问题。为此,我们在训练目标里加入熵奖励,鼓励策略在训练早期保持开放心态。

一种常见对策是在训练目标里加入熵奖励:

这里 是期望回报( 表示取平均), 是策略的熵, 是一个调节系数,控制"多鼓励探索"。

用一个数字例子说明。两个策略的平均回报和熵如下:

策略平均回报 时的目标
A
B

B 的原始回报更高,但 A 更愿意探索。加入熵奖励后,A 的综合得分反而超过了 B。

这背后的道理很简单:训练初期价值估计还不准确,与其让策略赌在一两个动作上,不如让它多试几种选择。等价值估计可靠了,策略自然会变得更确定。


bit 和 nat

上面的熵公式里用到了对数,而对数的底数决定了熵的单位。如果用 (以 2 为底),单位叫 bit;如果用自然对数 (以 为底),单位叫 nat。

两者之间差一个常数倍:。机器学习的论文和代码里几乎都用自然对数,因为它和指数函数、softmax、交叉熵损失的数学形式更契合。

例如公平硬币的熵,用 算:

用自然对数算:

数值不同,但表达的是同一个物理量,只是单位不同——就像 1 公里和 1000 米的关系。后面除非特别说明,我们都用自然对数。


为什么最大熵对应均匀分布

一个自然的追问:熵什么时候最大?答案很直觉——当所有选项的概率都相等时。

如果两个动作的概率是 ,我们完全猜不到策略会选哪个;如果是 ,几乎可以确定它选第一个。熵恰好捕捉了这种”猜不到”的程度:

所以”鼓励熵”并不是鼓励策略胡乱行动,而是让它在训练早期保持开放心态,多尝试不同选择。等价值估计更可靠后,策略自然会收窄到高回报的动作上。


从 softmax 到策略分布

到目前为止,我们假设策略的概率分布是已知的。但在实际应用中,策略是一个神经网络,它输出的不是概率,而是一组原始分数。我们需要一种方法把这些分数转换成合法的概率分布——softmax 函数就是为了解决这个问题而引入的。

例如对于两个动作,网络可能输出 logits 。softmax 函数把这些分数转换成合法的概率——所有值都在 0 到 1 之间,且加起来等于 1:

这里 是指数运算,分母 把所有动作的指数值加起来做归一化。算出来:

softmax 是策略网络和语言模型最常用的最后一层。后面所有的熵、交叉熵和 KL 散度,都会作用在 softmax 输出的这类概率分布上。理解了这一层,就能看懂为什么策略梯度、PPO 和 DPO 都在反复比较不同动作(或不同回答)的对数概率。


小结

本篇从"概率事件有多大惊喜"出发,逐步建立了信息论在 RL 中的核心工具链:

概念解决什么问题核心公式RL 中的角色
自信息单个事件有多大"惊喜"低概率事件包含更多信息
策略整体有多不确定衡量探索程度,鼓励多样性
熵奖励防止策略过早锁定某个动作训练目标中加入探索鼓励项
最大熵熵最大时分布长什么样均匀分布时熵最大"鼓励熵" = 鼓励保持开放心态
softmax把神经网络输出变成合法概率分布策略网络和语言模型的输出层

这一篇只讨论了"单个分布"的性质。下一篇开始比较两个分布——模型预测 vs 真实标签、新策略 vs 旧策略——为此需要交叉熵和 KL 散度。

下一篇E.4.2 交叉熵与 KL 散度 —— 衡量两个分布之间的距离。

现代强化学习实战课程