策略梯度 — 干脆直接学策略本身
这一章讲三件事: 直接参数化 策略的四点优势(含一个值函数方法做不到的必答题); 策略梯度定理与 REINFORCE——「回报好就加大这个动作的概率」的合法化; baseline 与 actor–critic——怎么在保住期望的前提下把方差打下来。 读完你会认识今天 RLHF 与大模型微调(在练好的模型上继续调参)的共同祖先1。
1. 赛道切换
书里的开场白很清醒:此前几乎所有方法都是动作值方法——先学「每个动作值多少」,策略全靠动作值撑着;本章学的是参数化策略 π(a|s,θ),选动作不需要查询任何值函数。值函数还可以学(帮着调 θ),但不再是选动作的必需品2。谱系上它并不孤立:第 02 章的梯度赌博机就是它的单状态特例,书里明说那一节是本章的预演3。
2. 核心原理一:策略怎么参数化,好在哪
离散动作最常用的参数化:给每个状态-动作配一个偏好 h(s,a,θ),照 soft-max 变成概率(偏好可以被神经网络算出,比如 AlphaGo 的策略网络)4。四点优势,书里逐一给了5:
- 能逼近确定性策略:ε-greedy 永远留 ε 概率乱走,soft-max 偏好可以把次优动作的概率压到任意接近 0;
- 能表示随机最优策略——这是值函数方法的结构性盲区(下节用例 13.1 钉死);
- 有时策略本身就是更好学的那个函数(动作值更难学;书里举了 Tetris);
- 注入先验知识的最重要通道:想要什么样的行为形态,直接把它写进策略参数化里。
3. 主走查:短走廊——必须随机才能及格的题
书里的例 13.1(设定与数字全部来自书)6:
三格走廊 S ▢▢ G,每格两个动作「左/右」;首尾两格里动作照常,
但中间格里动作反着:s₂ 里「右」把你往左送、「左」把你往右送。
每步奖励 −1,到 G 结束。最短 2 步(最优值 −2),最惨绕死(−∞ 的预期)。
陷阱:三个状态在特征里长得一模一样(x(右)=[1,0],x(左)=[0,1],不分格子)。
→ 策略只能对所有格子一视同仁:以概率 p 选「右」。
ε-greedy 的动作值方法被锁死在两种打法里:
全局偏右(1−ε/2)或全局偏左,ε=0.1 时起点值分别不到 −44 与 −82。
两头都烂:偏右在 s₂ 会把你弹回来,偏左第一格就出不去。
唯一活路:取一个不温不火的随机概率。书里算出最优 p≈0.59,起点值约 −11.6
—— 比两种确定性打法好出一个数量级。
而动作值方法没有任何机制「想要」一个特定的随机概率:
它的值估计只会收敛到真值,真值差的那些动作就永远差那么多。
结论一句话:当最优解本身是随机的,「估计值再贪心」的架构到不了;直接参数化策略、学概率本身,才拿得到 −11.6。
4. 核心原理二:策略梯度定理与 REINFORCE
梯度怎么定义?表现 J(θ)(情节任务=起始状态值)对 θ 的梯度有个干净的公式(策略梯度定理):按策略的访问频率加权,「每个动作的 q 值 × 该动作概率对 θ 的梯度」,求和7。
把它变成可采样的更新,两步就能走完:把对动作的求和换成期望、再用实际回报 G(t) 替代 q——得到 REINFORCE(Williams 1992)8:
θ ← θ + α·G(t)·∇ln π(A(t)|S(t), θ)
读法:这一局回报好(G 大)→ 朝「提高 A(t) 概率」的方向使劲;
∇ln π 那一项自动保证:所有会让该动作更可能出现的参数分量都被推动。
它是蒙特卡洛方法:必须等局终拿 G(t);期望方向正确,所以小步长下收敛有保证;但方差大、学得慢——回报是整局噪声的总和9。
5. 核心原理三:baseline 与 actor–critic
baseline。 在更新里减掉一个只依赖状态、不依赖动作的量 b(S):数学上期望纹丝不动(减项的梯度恰好为零),方差却大幅下降——直觉版:某状态里所有动作都值 −40,那 −40 就该当零点,不该让每个更新都背着 −40 的巨浪。MDP 里最自然的 b 是状态值估计 v̂(S;w)10。
actor–critic。 再进一步:baseline 只评估「动作前」的状态,不评动作;把值函数也用到「动作后」的状态上,就凑出一步回报 G(t:t+1) = R + γv̂(S′)——用 TD 误差替代整局回报:
θ ← θ + α·δ·∇ln π(A|S,θ), δ = R + γ·v̂(S′;w) − v̂(S;w)
actor = 策略 π(θ):被 δ 推着走;
critic = 值函数 v̂(w):负责算 δ,自己也在学。
换来的:完全在线、每步更新(不再等局终);代价:δ 是有偏的目标(bootstrap 的老代价)。
书里的一个精细区分值得保留:这个偏差不是 bootstrapping 本身带来的——哪怕 critic 用蒙特卡洛学,单步回报替代 G(t) 已引入偏差11。
连续动作(油门开多大)怎么办?把 soft-max 换成高斯:θ 参数化高斯的均值(与方差),概率密度当 π 用,梯度定理原样成立12。
6. 作者的判断与证据
实验支撑的: 短走廊的三条曲线(两种 ε-greedy 打法 vs 最优随机 p=0.59)、REINFORCE 在短走廊上以合适步长逼近最优值,都是书中实验6。
作者的立场: 策略参数化的第四点优势(注入先验)被作者称为「往往是用策略方法的最重要的理由」——这条立场日后被深度 RL 全面兑现:策略网络的结构就是先验。书里还明确预告它与后文的连接:actor–critic 架构将在第 15 章 neuroscience 里以基底神经节的面目重现13。
坦白: baseline 不改变期望更新——但书里如实写明它改变的是方差而非「免费午餐」;REINFORCE 的高方差被直白承认9。
7. 边界与局限
- 策略梯度方法样本效率低:蒙特卡洛的血统意味着要用整局回报,数据贵时吃亏。
- 收敛只到局部最优(非线性参数化下);策略梯度定理保证的是方向,不是全局。
- 与动作值方法不是取代关系:动作少而明确时,值方法更简单直接;书里第一章就说了「问题与解法要分开」——这里同样适用。
- 本章全部在 on-policy 情形;off-policy 的策略梯度(重要性加权)只在文献注里点到。
8. 可带走的
- 两条赛道:值方法学「动作值多少」再贪心;策略方法直接学「以多大概率选它」。选动作时后者不需要值。
- 短走廊是必答题:最优策略是随机的场合,值+贪心架构结构性缺席;p≈0.59 的 −11.6 就是入场券的价格。
- REINFORCE 一行字:回报好就加大那个动作的概率;∇ln π 是「怎么加」的全部技术内容。
- baseline 只动方差不动期望:把「本状态的平庸水准」设为零点,别让好坏淹没在绝对量级里——这条直觉同样适用于任何「按表现调参」的场景。
- actor–critic = TD 误差替整局回报:在线、每步、低方差;代价是 bootstrap 的老朋友——偏差。
- 连续动作用高斯策略:同一套梯度定理,概率密度换层皮。
- 今天的大模型对齐(对人偏好的策略爬坡)在谱系上是本章的直系后代——读这一章就是读 RLHF 的骨架1。
9. 原文地图
| 主题 | 原书章 | 原文位置 |
|---|---|---|
| 赛道切换、actor–critic 定义 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:7(搜「parameterized policy」) · text/16-fm-policy-gradient-methods.txt:27(搜「actor–critic」) |
| 梯度赌博机是预演 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:31(搜「lone exception」) |
| soft-max 偏好、AlphaGo | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:49(搜「preferences」) · text/16-fm-policy-gradient-methods.txt:63(搜「AlphaGo」) |
| 四点优势 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:70(搜「approach a deterministic」) · text/16-fm-policy-gradient-methods.txt:87(搜「arbitrary probabilities」) · text/16-fm-policy-gradient-methods.txt:127(搜「simpler function」) · text/16-fm-policy-gradient-methods.txt:133(搜「prior knowledge」) |
| 短走廊 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:94(搜「Short corridor」) · text/16-fm-policy-gradient-methods.txt:109(搜「0.59」) |
| 连续性带来的保证 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:148(搜「continuity of the policy」) |
| REINFORCE 推导与更新 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:243(搜「REINFORCE」) · text/16-fm-policy-gradient-methods.txt:301(搜「intuitive appeal」) |
| 高方差坦白 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:378(搜「high variance」) |
| baseline | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:372(搜「baseline」) · text/16-fm-policy-gradient-methods.txt:412(搜「vary with state」) |
| actor–critic、critic 名字 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:473(搜「Actor–Critic」) · text/16-fm-policy-gradient-methods.txt:485(搜「called a critic」) |
| 在线增量 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:510(搜「fully online, incremental」) |
| 连续动作 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:680(搜「Policy Parameterization for Continuous」) |
| REINFORCE 出处 | Policy Gradient Methods | text/16-fm-policy-gradient-methods.txt:838(搜「Williams」) |