策略梯度定理与 REINFORCE
本文基于模型知识整理(生成时未联网核对),关键结论建议对照 Sutton & Barto 教材 §13 与 Williams 1992 复核。
一句话定义
策略梯度方法直接对策略 $\pi_\theta(a|s)$ 求梯度爬山:策略梯度定理把目标梯度化简为 $\nabla_\theta J = \mathbb{E}[\nabla_\theta \log \pi_\theta(a|s)\, G_t]$——"提高带来高回报的动作的概率";REINFORCE 是其蒙特卡洛实现,无偏但方差巨大。
为什么重要
它把 RL 从"学价值再间接导出动作"(kp-004/008)切换到"直接学行为":天然支持随机策略、连续动作与不可微目标(直接优化回报本身)。现代旗舰算法(PPO,kp-017)与 RLHF(kp-026)全部站在策略梯度一侧——这条线是当代 RL 主干。
前置知识
kp-003(目标 $J(\pi)$)、kp-007(MC 回报);对数微分技巧、期望的梯度。
核心概念
- 似然比技巧(log-derivative trick):$\nabla_\theta \pi_\theta(a|s) = \pi_\theta(a|s)\,\nabla_\theta \log \pi_\theta(a|s)$——把"对不可微的采样期望求导"变成"对可微的对数概率求导"。
- 策略梯度定理:$\nabla_\theta J(\theta) = \mathbb{E}_{\tau\sim\pi_\theta}\left[\sum_t \nabla_\theta\log\pi_\theta(A_t|S_t)\, G_t\right]$——分数项与回报项相乘,梯度不需要环境可微(奖励只当常数权重)。
- REINFORCE 更新:$\theta \leftarrow \theta + \alpha\, G_t\, \nabla_\theta\log\pi_\theta(a_t|s_t)$,G_t 为该步之后的完整 MC 回报。
- 直观读法:$\nabla\log\pi$ 是"让这个动作更可能"的方向;$G_t$ 是这个方向的权重——好动作加概率,坏动作减概率,权重即回报。
原理与机制
定理为什么成立(score function 推导骨架):$J(\theta) = \sum_\tau P(\tau;\theta)R(\tau)$,求梯度后轨迹概率的梯度可拆为各步 $\nabla\log\pi$ 之和(环境转移与 θ 无关,项消失),再以期望回包——得到上式。关键结论:梯度的无偏估计只需采样轨迹,不需要对环境求导——这是策略方法能处理任意黑盒环境的根源。
方差病灶与病灶大小:$G_t$ 单样本方差极大(全程随机性聚合),且各步共享同一尺度——回合长、奖励尺度大时梯度信噪比极低。训练表现:loss 下降但性能震荡、学习率极难选。两个药方:① 基线(减掉常数 $b(s)$ 不改变期望、方差骤降,kp-014);② 回报归一化(批内减均值除标准差)。
与价值方法的对偶:价值方法学 $q^*$ 再贪心导出策略——间接,但样本效率高;策略方法直接优化目标——间接税是方差与样本效率。两者合体即 Actor-Critic(kp-015):actor 用策略梯度、critic 把 $G_t$ 换成学习到的低方差估计。
公式或模型
- 轨迹目标:$J(\theta) = \mathbb{E}_{\tau\sim\pi_\theta}[R(\tau)]$
- 梯度定理:$\nabla_\theta J = \mathbb{E}_{\tau}\left[\sum_{t=0}^{T} \nabla_\theta\log\pi_\theta(A_t|S_t)\, G_t\right]$
- REINFORCE with baseline:$\mathbb{E}\left[\sum_t \nabla\log\pi(A_t|S_t)(G_t - b(S_t))\right]$,任意 $b(s)$ 不改变期望。
图示
动作概率 π(a|s) ──提高/降低──► ∇logπ(a|s) (方向)
累积回报 G_t ────────────────► (权重: 好+ 坏−)
θ ← θ + α·G_t·∇logπ = "把好动作说得更常发生"
直观类比
教一个厨师改进菜谱但不告诉他"标准做法":每道菜卖完后按利润(G_t)调整——赚钱的菜的步骤概率调高、亏钱的调低。没有"正确菜谱"可监督(价值方法要另学"这道菜值多少"),直接对着营业额(目标函数)爬坡。
实例或案例
- CartPole 上百行实现 REINFORCE:整回合采样→算各步折扣回报→一次梯度更新;对比加 baseline 前后的学习曲线方差,是最直观的教学实验。
- RLHF:对语言模型的策略梯度(PPO/DPO 前身),奖励来自偏好模型——策略梯度直接优化"人类喜欢"(kp-026)。
- 连续控制(机械臂力矩):高斯策略 $\pi_\theta = \mathcal{N}(\mu_\theta(s), \sigma^2)$,似然比同样成立——价值方法做连续 max 困难,策略方法天然顺滑。
常见误区
- 误区一:"把 G_t 当作回归目标去做 MSE"。那是学价值函数;策略梯度是加权对数似然最大化,G_t 只是权重,损失形如 $-G_t\cdot\log\pi(a|s)$(俗称伪损失)。
- 误区二:"方差大就调小学习率"。学习率只缩放步长不降噪声;降方差要靠基线/优势估计/批内归一(kp-014)。
- 误区三:"策略梯度是 on-policy 所以完全不能复用数据"。严格 on-policy 是的;PPO 用 importance ratio + clip 在小窗口内近似复用(kp-009/017)。
与其他知识点的关系
- kp-007:目标 G_t 来自 MC——REINFORCE 即 MC 策略梯度。
- kp-014:基线与 GAE 是它的降方差手术。
- kp-015/017:Actor-Critic 与 PPO 是它的现代工程化。
- kp-026:LLM 对齐的训练信号本质就是本条。
自测题
- 写出策略梯度定理并指出它的两大便利。
答:$\nabla J = \mathbb{E}[\sum_t \nabla\log\pi(A_t|S_t)G_t]$;便利:① 只需采样轨迹不需环境可微,② 直接以回报为目标可处理连续动作与不可微奖励。
- REINFORCE 的方差为什么大?两个标准缓解手段?
答:G_t 聚合整条轨迹全部随机性;缓解:引入基线 b(s)(不改变期望、降方差)与批内回报归一化。
- "策略梯度更新式与加权对数似然"如何对应?
答:$\theta \leftarrow \theta + \alpha G_t \nabla\log\pi(a|s)$ 等价于以 $-G_t$ 为权重的对数似然上升——好动作加权最大似然、坏动作加权去似然。
延伸阅读
- Sutton & Barto 教材第 13 章(策略梯度)。
- Williams, "Simple Statistical Gradient-Following Algorithms for Connectionist RL"(1992,REINFORCE)。
- OpenAI Spinning Up "Policy Gradients" 章节(推导清晰)。