跳转到正文

D.4.1 信息论基础 与 自信息、熵与探索

前置知识:本篇不需要信息论基础,但建议先读完附录导读E.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 散度 —— 衡量两个分布之间的距离。

现代强化学习实战课程

个人非商业离线镜像 · 内容版权归 WalkingLabs 所有,依 CC BY-NC-SA 4.0 授权 · 查看原文