E.3.5 PG、DQN、GAE、PPO、GRPO 完整公式
前面几页我们分别推导了策略梯度的单样本形式、对数导数技巧、PPO 裁剪和 GRPO 组归一化。这一页把这些结果整理成完整的公式,并补充 DQN 的损失函数和 GAE 的推导。可以把这一页当作速查手册——遇到不熟悉的符号时回来翻一翻。
策略梯度定理
前面我们已经看过单样本形式:
完整的策略梯度定理写作:
这里每个符号的含义是:
- 是策略 下状态 被访问的频率(可以理解成"策略运行时,有多少时间会处在状态 ")。
- 是动作价值函数,表示在状态 执行动作 后,未来能拿到多少平均回报。
- 是参数 变化时,选择动作 的概率如何跟着变化。
利用上一节推导过的对数导数技巧,这个公式可以改写成更常见的 log 形式。因为:
所以:
如果用采样回报 估计 ,就得到 REINFORCE:
如果用优势函数替代动作价值,就得到更稳定的形式:
把推导过程串起来看,复杂公式并不是凭空出现的——它只是把”好动作概率上升、坏动作概率下降”这个直觉写成了对所有状态和动作的加权平均。
价值函数近似的损失
策略梯度处理的是”怎么更新策略”,但训练中还需要一个模块来估计”某个状态或动作值多少分”——这就是 Critic 或 DQN 的工作。为什么需要这个模块? 因为策略梯度里的优势估计 依赖于价值 的准确估计;如果价值估计不准,策略更新的方向就会偏。它们的学习目标很直接:让预测值尽量接近真实值。
给定样本 ,DQN 的 TD 目标是:
其中 表示目标网络参数。损失函数是:
求梯度:
这个式子里,前一项是 TD 误差:
后一项 告诉参数如何改变预测值。DQN 的训练就是反复减小这种预测误差。
GAE:用 TD 误差累积估计优势
策略梯度需要优势函数 来衡量"一个动作比平均水平好多少",但它没法直接观测到。有两种极端的估计方式:蒙特卡洛方法用整条轨迹的回报——偏差低但方差高(随机性累积了很多步);时序差分(TD)只用一步的"奖励 + 下一状态估计"——方差低但偏差高(只看了一步,信息不够)。GAE(Generalized Advantage Estimation)的引入就是为了在这两个极端之间灵活调节——把未来多步的 TD 误差按递减权重累加,用参数 控制"偏向 MC 还是偏向 TD"。先看一步 TD 误差:
如果 ,说明实际结果比 Critic 预期更好;如果 ,说明实际结果比预期差。TD 误差只看一步,GAE 的做法是把未来多步的 TD 误差按递减权重累加起来:
其中 控制偏差和方差的权衡:
- 小:更依赖短期 TD 误差,方差较低,但偏差可能较大。
- 大:更接近完整回报,偏差较低,但方差可能较大。
PPO 中常用 GAE,是因为它在稳定性和准确性之间提供了一个方便调节的旋钮。
PPO 裁剪目标
前面我们已经看过概率比和裁剪的直觉:
PPO 的裁剪目标是:
这个公式看起来复杂,但逐个拆开看并不难。
如果 ,说明动作比平均好。我们希望提高它的概率,但最多提高到 倍。
如果 ,说明动作比平均差。我们希望降低它的概率,但最多降低到 倍。
因此 min 和 clip 的组合实现了一个简单而有效的原则:让策略朝正确方向更新,但不让它一次走太远。
GRPO 的组归一化优势
GRPO 用于一组回答的相对比较。假设同一个问题生成 个回答,奖励分别为:
先计算均值:
再计算标准差:
每个回答的标准化优势是:
例如奖励是 ,均值是 。第三个回答明显高于平均,优势为正;第一个回答低于平均,优势为负。这种组内相对比较的好处是:模型不需要额外训练一个 Critic 网络,仅靠同组回答之间的好坏对比就能更新策略。
小结
本页汇总了 E.3 模块所有核心公式:
| 公式 | 核心表达式 | 用途 |
|---|---|---|
| 策略梯度定理 | 策略优化的理论基础 | |
| DQN 损失 | 价值函数的训练目标 | |
| GAE | $\hat{A}^{GAE}t=\sum_l(\gamma\lambda)^l\delta{t+l}$ | 偏差-方差权衡的优势估计 |
| PPO 裁剪 | 限制策略更新幅度 | |
| GRPO 组优势 | 无需 Critic 的组内相对比较 |
遇到不熟悉的符号时可以回到这一页查阅。下一篇用练习题来检验对这些公式的理解。
下一篇:E.3.6 公式速查与练习 —— 汇总本模块所有公式,用练习检验理解。