跳转到正文

D.3.5 PG、DQN、GAE、PPO、GRPO 完整公式

前置知识:本页汇总 E.3 模块所有公式,建议在读完 E.3.1E.3.4 后再来回顾。

前面几页我们分别推导了策略梯度的单样本形式、对数导数技巧、PPO 裁剪和 GRPO 组归一化。这一页把这些结果整理成完整的公式,并补充 DQN 的损失函数和 GAE 的推导。可以把这一页当作速查手册——遇到不熟悉的符号时回来翻一翻。


策略梯度定理

前面我们已经看过单样本形式:

完整的策略梯度定理写作:

这里每个符号的含义是:

  • 是策略 下状态 被访问的频率(可以理解成"策略运行时,有多少时间会处在状态 ")。
  • 是动作价值函数,表示在状态 执行动作 后,未来能拿到多少平均回报。
  • 是参数 变化时,选择动作 的概率如何跟着变化。

利用上一节推导过的对数导数技巧,这个公式可以改写成更常见的 log 形式。因为:

所以:

如果用采样回报 估计 ,就得到 REINFORCE:

如果用优势函数替代动作价值,就得到更稳定的形式:

把推导过程串起来看,复杂公式并不是凭空出现的——它只是把”好动作概率上升、坏动作概率下降”这个直觉写成了对所有状态和动作的加权平均。


价值函数近似的损失

策略梯度处理的是”怎么更新策略”,但训练中还需要一个模块来估计”某个状态或动作值多少分”——这就是 Critic 或 DQN 的工作。为什么需要这个模块? 因为策略梯度里的优势估计 依赖于价值 的准确估计;如果价值估计不准,策略更新的方向就会偏。它们的学习目标很直接:让预测值尽量接近真实值。

给定样本 ,DQN 的 TD 目标是:

其中 表示目标网络参数。损失函数是:

求梯度:

这个式子里,前一项是 TD 误差:

后一项 告诉参数如何改变预测值。DQN 的训练就是反复减小这种预测误差。


用 TD 误差累积估计优势

策略梯度需要优势函数 来衡量"一个动作比平均水平好多少",但它没法直接观测到。有两种极端的估计方式:蒙特卡洛方法用整条轨迹的回报——偏差低但方差高(随机性累积了很多步);时序差分(TD)只用一步的"奖励 + 下一状态估计"——方差低但偏差高(只看了一步,信息不够)。GAE(Generalized Advantage Estimation)的引入就是为了在这两个极端之间灵活调节——把未来多步的 TD 误差按递减权重累加,用参数 控制"偏向 MC 还是偏向 TD"。先看一步 TD 误差:

如果 ,说明实际结果比 Critic 预期更好;如果 ,说明实际结果比预期差。TD 误差只看一步,GAE 的做法是把未来多步的 TD 误差按递减权重累加起来:

其中 控制偏差和方差的权衡:

  • 小:更依赖短期 TD 误差,方差较低,但偏差可能较大。
  • 大:更接近完整回报,偏差较低,但方差可能较大。

PPO 中常用 GAE,是因为它在稳定性和准确性之间提供了一个方便调节的旋钮。


PPO 裁剪目标

前面我们已经看过概率比和裁剪的直觉:

PPO 的裁剪目标是:

这个公式看起来复杂,但逐个拆开看并不难。

如果 ,说明动作比平均好。我们希望提高它的概率,但最多提高到 倍。

如果 ,说明动作比平均差。我们希望降低它的概率,但最多降低到 倍。

因此 minclip 的组合实现了一个简单而有效的原则:让策略朝正确方向更新,但不让它一次走太远


GRPO 的组归一化优势

GRPO 用于一组回答的相对比较。假设同一个问题生成 个回答,奖励分别为:

先计算均值:

再计算标准差:

每个回答的标准化优势是:

例如奖励是 ,均值是 。第三个回答明显高于平均,优势为正;第一个回答低于平均,优势为负。这种组内相对比较的好处是:模型不需要额外训练一个 Critic 网络,仅靠同组回答之间的好坏对比就能更新策略。


小结

本页汇总了 E.3 模块所有核心公式:

公式核心表达式用途
策略梯度定理策略优化的理论基础
DQN 损失价值函数的训练目标
GAE偏差-方差权衡的优势估计
PPO 裁剪限制策略更新幅度
GRPO 组优势无需 Critic 的组内相对比较

遇到不熟悉的符号时可以回到这一页查阅。下一篇用练习题来检验对这些公式的理解。

下一篇E.3.6 公式速查与练习 —— 汇总本模块所有公式,用练习检验理解。

现代强化学习实战课程

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