跳到主要内容

对策略本身求导 — 从 REINFORCE 到 PPO

这一章讲三件事: 策略梯度定理那一行式凭什么成立; REINFORCE 怎么拿整条轨迹把它落地,方差为什么大、基线怎么救; 从 SAC 到 TRPO 再到 PPO,这条线上的每个算法各自修的是哪个毛病。 读完你应能把第 06–08 章的「估值派」与本 章「直接学策略派」放在同一张地图上, 并能说出今天工业界首选的 PPO 到底在防什么

1. 这一章讲什么

前面三章都走「先估值、再照着价值选动作」——值函数路线。 原书把另一条路线的材料拆散在各节:推导放在 DQN 节里,REINFORCE 放在章尾, SAC/DDPG/TRPO/PPO 各自一节1。我们按因果次序把它重排成一条链——

对策略求导(定理) → 落地采样(REINFORCE)
→ 毛病一:方差大 → 基线 / 优势 / 熵正则 / 自举(→ A2C、SAC)
→ 毛病二:一步迈太大、策略崩坏 → 确定性策略(DDPG/TD3)
→ 信赖域(TRPO)→ 裁剪(PPO)

为什么值得另开一条路?第 07 章的裂缝还在:值函数路线要挑「Q 最大的动作」, 动作连续时挑不了;而策略网络直接输出动作本身,没有这个死结。

2. 顶层全景:一行式 + 两个毛病

策略梯度定理(书里从期望回报 J(θ) 求导推出 [^2]):

∇J(θ) = E[ G(τ) · ∇ log π(动作 | 状态) ]
│ │
│ └── 「往提高这个动作概率的方向」
└── 这条轨迹最终拿到的回报,当权重

白话:回报高的轨迹,里面每个动作的概率都往上提;回报低(或为负)的往下压。

毛病一:G 是整条轨迹的真实回报——噪声巨大(方差大)
毛病二:每步更新迈多迈少没人管——步子一大,策略崩坏

→ 全家谱就是对这两个毛病的一串手术。

主走查:一条 3 步轨迹把一行式算成具体数字;再用一对数看 PPO 的裁剪。

3. 核心原理

3.1 主走查(上):REINFORCE,一条轨迹算一遍

REINFORCE 是策略梯度定理的最直接实现:书里指出,过去的奖励不改变梯度方向, 于是每一步的权重可以用「从这步往后还能拿多少」(Gₜ)代替整条回报2; 它是蒙特卡罗式的——必须采完整条情节才有样本,书里原话「需要完整 episode」2

拿 Pong 的一局走(γ=0.9;Q 值外全部数字为演示编的): 三步动作,前两步没得分、最后一步赢球 +10。

轨迹: a₀ ── a₁ ── a₂ ──► 赢(+10)
奖励: r₁=0 r₂=0 r₃=10

每步的「往后还能拿多少」:
G₀ = 0 + 0.9×(0 + 0.9×10) = 8.1
G₁ = 0 + 0.9×10 = 9.0
G₂ = 10

更新方向:三个动作的 log π 梯度,分别乘 8.1、9.0、10.0 后相加
→ 三个动作的概率全部上调,最后一步(离奖励最近)权重最大

看出毛病了吗?赢球靠的是最后一步,可前两步也被「灌了 8、9 分的水」一并上调—— 它们可能纯属瞎走。这就是书里说的:MCMC 采样方差很大,学得慢3

3.2 基线:从「打了多少分」到「比平均好多少」

书里的修法一行:给 G 减一个基准 b。妙处在于可以证明 E[ b·∇log π ] = 0——减去任何与动作无关的常数,梯度期望不变(仍无偏), 而方差实打实降下来;书里推荐的好基准就是状态价值 V(s)4

接上例:评论员估计 V ≈ 9.0(这个局面平均能拿 9 分)
修正后的权重:A₀ = 8.1−9.0 = −0.9 A₁ = 0 A₂ = +1.0
→ 第一步从「上调 8.1」变成「下调 0.9」:瞎走终于被认出来了

这正是第 08 章演员-评论员里那个「优势」——值函数路线与策略路线在这里握手: 评论员提供基准,演员按优势调概率。书里把这套组合的完整公式 (演员梯度、评论员的 MSE/Huber 目标)都给了5

3.3 SAC:把「多试试」写进目标函数

第 04 章埋的「奖励+熵」配方在这里开工。SAC 的目标:最大化期望回报, 同时最大化策略的熵。书里给的理由原样保留:熵奖励鼓励探索、改善数据采集、 防止过早收敛到坏的局部最优**(卡在就近的一个不好不坏点上、再也跳不出去)**6

机制上书里用的是软策略迭代:评估步——贝尔曼算子里加一项熵 (下一状态的价值里扣掉「策略有多随机」的对数项),反复迭代收敛到「软 Q」; 改进步——把新策略向「按软 Q 指数化」的分布靠,靠拢的程度用 KL 散度衡量并最小化7。 书里给出保证:表格情形下,这个交替单调改进7。 两个工程件:训练数据从回放池采(策略可以和采数据的策略不同); 熵前面挂一个系数 α(书里叫温度,「随机性值多少钱」的意思),书里原话: α 代表「策略的随机性与环境回报之间的权重」8,而且 α 自己也按目标梯度调 (目标里写死了你想要的最低熵)8

3.4 DDPG/TD3:动作连续时,别采样了,直接给数

策略梯度的公式对随机策略求导;动作是连续的、策略确定(同一状态同一动作)时 怎么办? 书里的路数:想挑「Q 最大的动作」要对全空间搜索,计算上很难; 确定性策略梯度(DPG)干脆用函数近似器把这个 argmax 拟出来,神经网络的实现就是 DDPG9

书里给它的三个标准件10:Q 学习用均方贝尔曼误差;目标网络算 y (y = r + γ·Q_target(s′, μ_target(s′)));目标网络按软更新 ρ 缓慢跟进主网络。 ——第 07 章欠的「目标网络」账,在这里正式入册。 TD3 是它的补丁包,书里列了三条,全部对着「高估」这个老病灶11: 学两个 Q、取较小的那个更新策略;策略与目标网络更新得比 Q 慢(延迟更新); 给目标动作加噪声(目标策略平滑),让策略难去钻「Q 被高估的动作」的空子。

3.5 TRPO → PPO:给步子上锁

策略梯度还有一个没人管的问题:这一步更新迈多大? 步子一大,新策略偏离旧策略太远, 采样数据全部作废,训练崩盘。书里这条线的两级解法:

TRPO(信赖域):书里的核心是带约束的优化——在「新策略离旧策略的 KL 散度 不超过 δ」的信赖域内,最大化优势加权的目标;几何上用共轭梯度解一个 二阶近似,再回溯线搜索找可行步长;书里给出承诺:假设满足时,策略单调改进12PPO:书里定位明确——同样想迈最大的一步,但只用一阶方法13。 两个变体:Penalty 版把 KL 当罚项、自动调系数;书里重点讲的是 Clip 版—— 不用任何 KL,直接把目标函数裁掉,消除「新策略跑远」的激励13

3.6 主走查(下):PPO 的裁剪,一对数字

PPO-Clip 的目标书里给成:L = min( r·A , clip(r, 1−ε, 1+ε)·A ), 其中 r = 新旧策略给同一动作的概率之比,A 是优势,ε 通常 0.214

情形一:好动作(A = +2),新策略把它概率抬了 50%(r = 1.5)
不裁剪:1.5 × 2 = 3.0 裁剪上限:(1+0.2)×2 = 2.4
L = min(3.0, 2.4) = 2.4 → 概率再往上抬,目标不再涨:掐断贪心
情形二:坏动作(A = −2),新策略把它概率压到一半(r = 0.5)
不裁剪:0.5 × (−2) = −1.0 裁剪下限:(1−0.2)×(−2) = −1.6
L = min(−1.0, −1.6) = −1.6 → 目标被钉在裁剪值上:压得太狠也无利可图
(ε=0.2、A、r 均为演示值;公式照书式 4.45–4.46。)

一句话:PPO 允许每次小幅改Probability,把「改过头」的激励直接裁没。 书里对它的评语只有一句,但分量很重:「非常成功的 RL 算法,是求解的首选方法」——原文其实带着限定:『for solving identification and classification problems』(就辨识与分类类问题而言),转述时照录15 ——补充(不在书里,来自通用知识):PPO 后来正是 RLHF(第 13 章)里拿人类口味当奖励来调模型的那个优化器(专门负责一步步调参的方法)。

4. 作者的判断与证据

  • 书里给证据的: 策略梯度定理的推导(从 J(θ) 到 E[G∇logπ],与状态遍历分布无关、 故 model-free,靠 MCMC 采样)16;REINFORCE 的完整 episode 要求与高方差; 基线的无偏性证明 E[b∇logπ]=04;SAC 的单调改进保证(表格情形)7; TRPO 的单调改进承诺12;TD3 的三条补丁11;PPO 的一阶定位与首选评语1315
  • 书里挪错位置的推导: 策略梯度定理写在 DQN 节1;本拆解把它归位本章—— 归属改变的声明见第 07 章 §3.3。
  • 书里的经验之谈: 「实际应用中 ReLU 与变体没有明确胜负」是第 05 章的; 本章同款的一句是 TRPO 的「在假设成立的前提下」单调改进12—— 承诺都是有前提的,这是原书少有的严谨时刻。

5. 边界与局限

  • 策略梯度方差大的病根没除,只是包扎。 基线降方差、优势更细, 但 G 仍来自少数几条轨迹;书里没讲并行采足够多轨迹的工程标配。

  • 书里的 SAC/TRPO 推导压缩过猛。 软策略迭代的收敛论证、共轭梯度的几何, 书里各只给一段;照着书推不下来,只能建立直觉——照实标注。

  • DDPG 的脆弱书里没提。 实践中它对那些训练前就要定好的设置(学界叫超参数)出了名的敏感(补充,不在书里,来自通用知识),TD3 三补丁正因此而来;书里只把它当「扩展」一笔带过。

  • PPO 的「首选」是书成书时的快照。 2025 年之后 offline/在线混合、直接偏好优化(业内叫 DPO)等不用 RL 的后续调优路线兴起(第 13 章的边界会提),「首选」的地位在缩小,机制课仍然成立。

  • 原书 4.16 只有两页、无伪代码;SAC 一节的伪代码书里写「同 A2C 加适当修改」17 ——等于没给,照实指出。

6. 可带走的

  1. 一行式记牢:∇J = E[回报 × ∇log π]——回报高的轨迹,动作概率整体上提;
  2. REINFORCE 的价与债:机制最直白,但必须采完整条情节、方差巨大;
  3. 基线不改变梯度期望(E[b∇logπ]=0),却实打实降方差——好基线就是 V(s); 加上基线,策略梯度长成了优势的样子,与演员-评论员会师;
  4. SAC = 奖励 + 熵:熵当探索的工资,α 是「随机性值多少钱」的旋钮, 改进步用 KL 度量靠拢;表格情形单调改进有证;
  5. 动作连续的三步走:argmax 难 → DPG 用网络拟 argmax(DDPG)→ 目标网络 + 双 Q 取小 + 延迟更新(TD3),三招全治高估;
  6. TRPO 用 KL 画圈(信赖域),PPO 用裁剪画框——同一个目的(别迈太大), 二阶方法换一阶,实现与计算的开销骤降;
  7. 主走查的两个裁剪数(3.0→2.4;−1.0→−1.6):留改进、掐贪心、防压穿;
  8. 选型直觉:离散动作 + 要样本效率 → 值函数路线(06/07); 连续控制 + 要稳 → SAC;通用的调优引擎 → PPO。

7. 原文地图

主题原书章原文位置
策略梯度定理与推导(原置 DQN 节)4.2 Deep Q-Learning and Deep Q-Network (DQN)text/10-ch04-02-4-2-deep-q-learning-and-deep-q-network-dqn.txt:84(搜「Policy Gradient Theorem」) · text/10-ch04-02-4-2-deep-q-learning-and-deep-q-network-dqn.txt:117(搜「ergodic」)
REINFORCE 缩写、完整 episode4.16 REINFORCE Gradient with and without Baselinetext/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:38(搜「acronym」) · text/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:65(搜「complete episode」)
Gₜ 权重、蒙特卡罗高方差4.16 REINFORCE Gradient with and without Baselinetext/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:58(搜「Gt」) · text/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:73(搜「high variance」)
基线无偏、好基线=V(s)4.16 REINFORCE Gradient with and without Baselinetext/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:84(搜「0」) · text/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:87(搜「baseline」)
SAC 目标(熵+回报)与理由4.7 Soft Actor Critic (SAC)text/14-ch04-07-4-7-soft-actor-critic-sac.txt:39(搜「entropy」)
软策略迭代:评估加熵、KL 改进4.7 Soft Actor Critic (SAC)text/14-ch04-07-4-7-soft-actor-critic-sac.txt:39(搜「entropy」) · text/14-ch04-07-4-7-soft-actor-critic-sac.txt:81(搜「Kullback」)
单调改进保证、回放池、α 熵温度4.7 Soft Actor Critic (SAC)text/14-ch04-07-4-7-soft-actor-critic-sac.txt:95(搜「monotonic」) · text/14-ch04-07-4-7-soft-actor-critic-sac.txt:104(搜「replay buffer」) · text/14-ch04-07-4-7-soft-actor-critic-sac.txt:121(搜「entropy temperature」)
DDPG:argmax 难、DPG 拟合4.8 Deep Deterministic Policy Gradients (DDPG)text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:46(搜「function approximator」)
DDPG 目标网络与软更新 ρ4.8 Deep Deterministic Policy Gradients (DDPG)text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:67(搜「targ」) · text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:136(搜「target networks」)
TD3 三条补丁4.8 Deep Deterministic Policy Gradients (DDPG)(§4.9)text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:200(搜「overestimates」) · text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:216(搜「noise」)
TRPO 信赖域与 KL 约束4.10 Trust Region Policy Optimization (TRPO)text/16-ch04-10-4-10-trust-region-policy-optimization-trpo.txt:39(搜「trust region」) · text/16-ch04-10-4-10-trust-region-policy-optimization-trpo.txt:70(搜「KL」)
TRPO 单调改进(有前提)4.10 Trust Region Policy Optimization (TRPO)text/16-ch04-10-4-10-trust-region-policy-optimization-trpo.txt:154(搜「monotonic」)
PPO 一阶定位、两变体4.11 Proximal Policy Optimization (PPO)text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:39(搜「first-order」) · text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:50(搜「clips」)
PPO-Clip 目标与裁剪式4.11 Proximal Policy Optimization (PPO)text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:74(搜「min」) · text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:81(搜「1+」)
PPO 首选评语4.11 Proximal Policy Optimization (PPO)text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:139(搜「preferred method」)
SAC 伪代码省略4.7 Soft Actor Critic (SAC)text/14-ch04-07-4-7-soft-actor-critic-sac.txt:160(搜「appropriate modifications」)

Footnotes

  1. 原书把策略梯度定理放在 4.2(DQN)节(「4.2」第 84–117 段),REINFORCE 在 4.16、SAC 4.7、DDPG/TD3 4.8–4.9、TRPO 4.10、PPO 4.11 各自独立成节;本拆解按推理链重排,归属声明见第 07 章 §3.3。 2

  2. 出处:「4.16 REINFORCE Gradient with and without Baseline」第 46–65 段(text/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:58,搜「Gt」)。过去的奖励不作贡献,梯度里的回报可换成 Gₜ;REINFORCE 是 MCMC 策略梯度算法,情节式的,需要完整 episode 才有正比于梯度的样本。 2

  3. 出处:「4.16 REINFORCE Gradient with and without Baseline」第 46 段与第 73 段(text/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:73,搜「high variance」)。

  4. 出处:「4.16 REINFORCE Gradient with and without Baseline」第 77–87 段(text/22-ch04-16-4-16-reinforce-gradient-with-and-without-baselin.txt:84,搜「0」)。引入基准 b 降方差;E[Σ b∇log π]=0 可证,故仍无偏;好基线是当前状态价值 V(s)。 2

  5. 出处:「4.5 Advantage Actor Critic (A2C)」第 97–157 段(演员梯度式 4.22、评论员 MSE/Huber 式 4.23–4.25),第 08 章已详引,此处不重复展开。

  6. 出处:「4.7 Soft Actor Critic (SAC)」第 39 段(text/14-ch04-07-4-7-soft-actor-critic-sac.txt:39,搜「entropy」)。SOTA 连续控制;最大化策略熵与环境期望回报;鼓励探索、改善转移数据采集、防过早收敛到坏局部最优。

  7. 出处:「4.7 Soft Actor Critic (SAC)」第 48–95 段(text/14-ch04-07-4-7-soft-actor-critic-sac.txt:39,搜「entropy」)。策略评估:贝尔曼算子加熵项、反复应用收敛到软 Q;策略改进:KL 散度最小化(第 81–93 段);表格情形单调改进(第 95 段)。 2 3

  8. 出处:「4.7 Soft Actor Critic (SAC)」第 104–151 段(text/14-ch04-07-4-7-soft-actor-critic-sac.txt:121,搜「entropy temperature」)。回放池;α 项代表「策略随机性对环境回报的权重」;α 经目标(含期望最低熵)梯度更新(第 148 段)。 2

  9. 出处:「4.8 Deep Deterministic Policy Gradients (DDPG)」第 39–46 段(text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:46,搜「function approximator」)。确定性策略下 argmax 计算难;DPG 用函数近似器近似 argmax;神经网络实现即 DDPG。

  10. 出处:「4.8 Deep Deterministic Policy Gradients (DDPG)」第 61–148 段(text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:67,搜「targ」)。MSBE 损失;目标网络算 y;目标参数按 ρ 软更新(第 136 段);动作经 Clip 加高斯噪声探索(第 100 段)。

  11. 出处:「4.8 Deep Deterministic Policy Gradients (DDPG)」§4.9 第 200–221 段(text/15-ch04-08-4-8-deep-deterministic-policy-gradients-ddpg.txt:200,搜「overestimates」)。TD3 学两个 Q 取最小更新策略、策略与目标更新频率更低、目标动作加噪声降低钻高估空子的可能。 2

  12. 出处:「4.10 Trust Region Policy Optimization (TRPO)」第 39–154 段(text/16-ch04-10-4-10-trust-region-policy-optimization-trpo.txt:70,搜「KL」)。损失=旧性能+优势加权和;KL 约束 ≤δ;共轭梯度求 H⁻¹g(第 113–121 段);回溯线搜索(第 125–133 段);「假设满足则单调改进」见第 150 段(搜「monotonic」)。 2 3

  13. 出处:「4.11 Proximal Policy Optimization (PPO)」第 39–54 段(text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:39,搜「first-order」)。与 TRPO 同目标但一阶;Penalty 自动调罚系数;Clip 不用 KL、裁剪目标函数以消除跑远的激励。 2 3

  14. 出处:「4.11 Proximal Policy Optimization (PPO)」第 63–82 段(text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:74,搜「min」)。目标 L=min(r·A, clip(r,1±ε)·A),裁剪式见第 81 段;ε 的常用值 0.2 是补充(不在书里,来自通用知识)。

  15. 出处:「4.11 Proximal Policy Optimization (PPO)」第 139 段(text/17-ch04-11-4-11-proximal-policy-optimization-ppo.txt:139,搜「preferred method」)。 2

  16. 出处:「4.2 Deep Q-Learning and Deep Q-Network (DQN)」第 54–117 段(text/10-ch04-02-4-2-deep-q-learning-and-deep-q-network-dqn.txt:84,搜「Policy Gradient Theorem」)。J(θ)=期望回报;梯度=E[回报×∇log π];结果与状态遍历分布和环境动力学无关(第 117 段),由此得到无模型算法,积分靠采大量轨迹取平均(即书里说的 MCMC)。

  17. 出处:「4.7 Soft Actor Critic (SAC)」第 160 段(text/14-ch04-07-4-7-soft-actor-critic-sac.txt:160,搜「appropriate modifications」)。原文:伪代码与 A2C 类似,加适当修改。