跳转到正文

D.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 用到对齐训练中。

现代强化学习实战课程

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