策略梯度:REINFORCE 与方差
直接优化 \(\mathbb{E}[G_t \nabla \log \pi_\theta]\);完整轨迹 return 方差随 horizon 爆炸,baseline 和 critic 是刚需。

1. CartPole 手写 REINFORCE,LR 稍大就崩
策略梯度定理:
REINFORCE 用 Monte Carlo return 乘 log prob,无偏但 方差随 horizon 爆炸——整局 episode 采样完再更新,batch=1 时 loss 噪声巨大,LR 稍大梯度就 NaN。Horizon 越长, 方差越大,同样 learning rate 在 CartPole 能训、在 long-horizon robotics 直接炸。上次 robotics reach 手写 REINFORCE 无 baseline,gradient norm 间歇 >1000;加 learned baseline 后同 LR 能收敛——这不是实现 bug,是算法特性,减方差是 long-horizon 能训的必要条件。
2. Baseline 为什么不改变期望梯度
用 代替 , 常用 learned ——数学上 与 action 无关时,期望梯度不变,但更新方差大幅下降。优势 ;GAE 是 step-wise 扩展,PPO 的核心组件之一。我加一个小 MLP baseline 后,同样 LR CartPole 就能训稳——手写 REINFORCE 是理解 PPO 为什么需要 value network 的最短路径。
Control variates、copied baseline network、GAE 都是 variance reduction 链条。REINFORCE 用 per-episode return 时 credit assignment 模糊:早期坏动作和晚期好动作混在一起,梯度信号被稀释。
3. 连续动作与 log prob 细节
连续动作设 ,log prob 对 和 都可导。Log std 可学习;std 塌缩到 0 等于停止探索——设 log_std_min 下界。多 dim continuous:log prob sum over action dims,mean 还是 sum 要和 paper 一致,抄错维度聚合是常见 bug。
Tanh-squashed Gaussian(SAC 用的)和直接 Gaussian 公式不同,抄代码要抄对版本。Entropy 项符号别反——entropy bonus 是加在 loss 里鼓励探索,符号反了等于惩罚探索。
4. 从 REINFORCE 到 PPO
PPO 在 policy gradient 上加 GAE 和 clip:GAE 减 variance 且改善 credit assignment;clip 限制单次更新幅度,控制 effective step size——方差大时尤其需要。CartPole 上 REINFORCE + moving average baseline 应比纯 REINFORCE 稳,是 PG 实现的 sanity check。PPO/SAC 都建立在策略梯度上——理解 REINFORCE 的方差,才理解 baseline 和 clip 为什么存在。
5. Batch 构造与 pad mask
多条 episode 拼 batch 时不同长度要 pad 或按 episode 边界算 loss;mask 掉 pad 步,否则 gradient 被垃圾步污染。On-policy 数据只用一次却更新太多 epoch——PPO 里用 clip 缓解;纯 REINFORCE 没有 clip,epoch 过多直接 destabilize。Episode 间 return 尺度差几个数量级,未 normalize advantage 时更新偏向高 return episode。
6. 常见失败与 debug
Return 未减 baseline,loss 噪声巨大。Policy gradient 实验必 log gradient norm;长期 或 NaN 先 clip 或降 LR,再加层。小 batch 先看 gradient norm,再调 LR——方差问题用 LR 硬压是治标。Std 塌缩诊断:log std 曲线是否贴 log_std_min。
7. 案例:无 baseline 的 long-horizon 训不动
Robotics reach 任务手写 REINFORCE,horizon 200 step,gradient norm 间歇性 ,NaN 频繁。加 learned baseline 后 norm 稳定在 量级,同 LR 能收敛——根因是 variance,不是 task 不可学。换 PPO(内置 GAE+baseline)同 task 开箱能跑,印证 variance reduction 是 long-horizon 必要条件。
8. 验收
- CartPole:REINFORCE + baseline 应比纯 REINFORCE 稳。
- Log
policy_loss方差、gradient norm。 - 连续动作检查 log prob 维数聚合与 squashing 公式。
- Batch pad mask 正确。
- Entropy 与 log_std 下界:std 塌缩诊断。
9. 与 PPO clip 的关系
PPO clip 限制单次 policy update 幅度——本质是 policy gradient 方差大时的稳定器。理解 REINFORCE 方差,才理解为何需要 baseline、GAE、clip 三层。CartPole 手写 REINFORCE + learned baseline 是进 SB3 前的 sanity check;跳过则调 PPO 像黑盒拧旋钮。Long-horizon robotics 无 baseline 几乎必炸——gradient norm 间歇 、NaN 频繁是典型症状。连续动作 log prob:tanh-squashed(SAC)与 direct Gaussian 公式不同;多 dim sum over dims。Batch pad 步必须 mask,否则 gradient 污染。Policy gradient 实验 log gradient norm,长期 >100 先 clip 或降 LR,再加层。
10. 录包与 sanity check
CartPole REINFORCE + learned baseline 是进 SB3 前的 sanity check;long-horizon 无 baseline 几乎必 NaN。录包 gradient norm 间歇 >100 时先查 baseline 与 advantage normalize,再调 LR。连续动作:tanh-squashed log prob 与 direct Gaussian 不同;多 dim sum over dims。Batch pad 步 mask 掉,否则 gradient 污染。PPO clip 是方差大时的稳定器——理解 REINFORCE 方差才理解 clip。手写 REINFORCE 一轮再开 SB3,比直接调 clip 少踩坑。Episode 间 return 尺度差几个数量级时 normalize advantage;on-policy 数据只用一次却更新太多 epoch 会 destabilize,PPO clip 缓解此问题。Std 塌缩到 0 等于停止探索,log_std 下界是连续 PG 的标配配置。GAE 与 clip 是 PPO 建立在 PG 上的 variance reduction 层——跳过 REINFORCE 理解直接调 clip,像在黑盒上拧旋钮。CartPole baseline 实验是 PG 实现 sanity check,进 long-horizon 前必做。Mask pad 步、normalize advantage、log gradient norm——PG 三板斧;PPO clip 限制 effective step size,理解方差才理解 clip 存在理由。
11. 收束
策略梯度方差随 horizon 爆炸,baseline 是 long-horizon 必要条件而非优化。CartPole REINFORCE 加 baseline 是进 SB3 前的 sanity check;理解 REINFORCE 才理解 PPO 的 GAE 与 clip。连续动作 log prob 公式(tanh-squashed vs Gaussian)、pad mask、gradient norm 三板斧——PG 实现 review 必查项。Entropy bonus 符号别反;on-policy 数据重复更新太多 epoch 会 destabilize,PPO clip 缓解。Credit assignment 在 per-episode return 里模糊,step-wise reward 加 baseline 更清晰。
相关
也可以看看
- ·16 分钟阅读
约束 MDP 的代价估计偏差:安全层看起来在工作
区分期望约束、条件风险与硬屏蔽,解释代价 critic 偏差如何让可行集虚胖;用约束违反轨迹占比、拉格朗日乘子轨迹和安全层旁路注入验收。
- ·17 分钟阅读
离线强化学习的支持集外动作:为什么 Q 值会自我抬高
从 Bellman backup 的分布外 maximization 解释外推误差;比较行为约束、保守价值与策略正则,并用覆盖率切片与 FQE 交叉验证部署边界。
- ·10 分钟阅读
离策略评估:部署前别只看行为数据上的平均回报
从重要性采样的支持集与方差出发,比较 self-normalized、per-decision、DR 和 FQE,并建立部署前的统计验收。
johan's blog