E.4.2 交叉熵与 KL 散度
前置知识:E.4.1 自信息、熵与探索——你需要知道熵的定义。
上一节我们用熵衡量了单个策略的随机程度。但训练中更常见的场景是对比两个分布:模型预测的分布 vs 真实标签的分布,或者新策略 vs 旧策略。这就需要两个新工具——交叉熵和 KL 散度。
交叉熵:用"错误的地图"走路的代价
交叉熵衡量的是"用错误分布做预测的代价"——分类模型和奖励模型用它做训练损失。当真实分布是 而你用 来预测时,交叉熵告诉你付出的代价有多大。
想象你拿着一张不太准确的地图找路。如果地图和实际路况差得不多,你只是多绕了一点路;如果地图严重失真,你可能会完全迷路。交叉熵衡量的就是这种"用错误的地图走路的代价"。数学上定义为:
它和熵长得很像,区别在于 里面用的是 而不是 ——也就是说,你在用"错误"的分布来编码。
举一个分类任务的例子。假设正确答案是第一个类别:
模型预测为:
因为 ,交叉熵只剩正确类别那一项:
如果模型更自信地预测正确类别,比如 ,损失变成 ,比 更小。预测越准确,交叉熵越低——这就是为什么它被广泛用作分类模型的训练损失。在 RLHF 中,奖励模型、偏好模型和策略模型的训练都离不开它。
KL 散度:两个分布之间的"惊讶程度"
交叉熵告诉我们"用一个分布去预测另一个分布要付多大代价"。但如果把这个代价减去真实分布自身的熵,剩下的部分就纯粹反映"两个分布之间的差异"——这就是 KL 散度要解决的问题。KL 散度衡量两个分布的差异,PPO 和 RLHF 用它来限制策略不要变化太大。
直觉上,KL 散度衡量的是:如果你的真实信念是分布 ,但不得不按分布 行事,你会有多"意外"。公式为:
是两个概率的比值——如果 和 对某个 看法一致,比值接近 1,,没有惊讶。如果分歧很大,比值偏离 1,KL 散度就会变大。
看一个 RL 中的实际场景。PPO 和 RLHF 经常需要比较新旧策略。假设旧策略是:
两个候选新策略分别是:
直觉上,新策略 2 离旧策略更远。用 KL 散度量化:以旧策略为 ,新策略 1 为 :
以新策略 2 为 :
第二个值更大,说明新策略 2 偏离旧策略的程度更激进。
KL 散度为什么不对称
理解了 KL 散度的基本用法后,一个容易踩的坑是:KL 散度不满足交换律。也就是说 。方向的选择不是随意的——PPO 和 RLHF 中使用不同方向,强调不同类型的偏差。
理解不对称性,考虑:
从 出发看 (即 ):真实世界几乎总是发生第一个动作,但你的模型 却把一半的概率分给了第二个动作。这种"本来很确定却预测得很模糊"的错误,惩罚较大。
从 出发看 (即 ):真实世界两个动作都有可能,但你的模型 几乎把所有概率给了第一个。这种"本来很模糊却预测得很确定"的错误,性质完全不同。
所以在使用 KL 散度时,方向的选择不是随意的。PPO 里用 ,意思是"从旧策略的视角看新策略变了多少";RLHF 里用 ,意思是"从当前模型的视角看它离参考模型多远"。不同方向强调不同类型的偏差。
小结
本篇引入了两个衡量分布之间距离的工具:
| 概念 | 解决什么问题 | 核心公式 | RL 中的角色 |
|---|---|---|---|
| 交叉熵 | 用错误分布做预测的代价有多大 | 分类模型、奖励模型的训练损失 | |
| KL 散度 | 两个分布之间差多远 | PPO/RLHF 中限制策略漂移 | |
| KL 不对称 | KL 方向不同含义不同 | PPO 和 RLHF 使用不同方向 |
交叉熵和 KL 散度的关系————是下一篇理解 PPO、RLHF 和 DPO 的关键桥梁。
下一篇:E.4.3 PPO、RLHF 与 DPO 中的信息论 —— 把交叉熵和 KL 用到对齐训练中。