← 上级:RL-03.算法分类与选型 · 前置:RL-03-09-算法-Actor-Critic · 后续:RL-03-11-算法-PPO
信任域策略优化(Trust Region Policy Optimization,TRPO)(Schulman et al., 2015)在 策略梯度 与 Actor-Critic 基础上,用 KL 散度硬约束限制每次策略更新幅度,从理论上保证单调改进(在近似条件下)。PPO 可看作 TRPO 的一阶简化版。
段末注释:信任域策略优化(Trust Region Policy Optimization,TRPO)通过约束新旧策略的 KL 散度,在「信任域」内最大化替代目标;后文沿用 TRPO。
一、为何需要信任域
纯策略梯度(如 REINFORCE、A2C)用固定学习率更新 $\theta$,容易出现:
| 现象 | 原因 |
|---|---|
| 策略崩溃 | 一步更新过大,$\pi_\theta$ 偏离数据采集分布 |
| 性能震荡 | 优势估计噪声 + 大步长 |
| 不可逆退化 | On-Policy 数据无法「回放」补救 |
思路:只在「离旧策略 $\pi_{\theta_{old}}$ 足够近」的区域内优化,超出信任域则缩小步长。
二、替代目标(Surrogate Objective)
定义概率比:
$$
r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}
$$
约束策略目标(Constrained Policy Improvement,与 PPO 的 $L^{CPI}$ 同源):
$$
\max_\theta ; \mathbb{E}t \left[ r_t(\theta) \hat{A}t \right]
\quad \text{s.t.} \quad
\bar{D}{\mathrm{KL}}\left(\pi{\theta_{old}} | \pi_\theta\right) \leq \delta
$$
| 符号 | 含义 |
|---|---|
| $\hat{A}_t$ | 优势估计(TD 残差或 GAE) |
| $\bar{D}_{\mathrm{KL}}$ | 平均 KL 散度:$\mathbb{E}t\left[\mathrm{KL}(\pi{\theta_{old}}(\cdot |
| $\delta$ | 信任域半径,典型 $0.01 \sim 0.05$ |
直觉:在旧策略收集的数据上,提高「优势为正」动作的概率,但不允许新策略与旧策略差太远。
三、TRPO 优化步骤(概要)
TRPO 将上述约束问题近似为二次规划,核心步骤:
- 收集 Rollout:用 $\pi_{\theta_{old}}$ 采样轨迹(同 PPO,见 Rollout Buffer)
- 算优势 $\hat{A}_t$(常用 GAE)
- 算替代目标梯度 $g = \nabla_\theta \mathbb{E}[r_t(\theta)\hat{A}t]|{\theta_{old}}$
- 算 Fisher 信息矩阵 $F = \nabla^2_\theta \bar{D}{\mathrm{KL}}|{\theta_{old}}$(或用 Hessian-向量积估计)
- 共轭梯度(Conjugate Gradient)求搜索方向 $x \approx F^{-1} g$
- 线搜索:缩放步长使 KL 约束满足且 surrogate 上升
自然策略梯度方向 $F^{-1}g$ 在参数空间度量下更合理——大曲率方向步子小,平坦方向步子大。
四、单调改进(理论梗概)
在策略可微、优势估计无偏等假设下,TRPO 保证:
$$
J(\theta) \geq J(\theta_{old}) - C \cdot \epsilon
$$
其中 $\epsilon$ 与 KL 约束 $\delta$ 及价值函数近似误差相关。实际中 Critic 误差、函数逼近仍会破坏严格单调性,但较裸 PG 稳定得多。
五、与 PPO 对比
| TRPO | PPO | |
|---|---|---|
| 约束方式 | KL 硬约束 + 二阶近似 | Clip 软约束,一阶 SGD |
| 实现 | 共轭梯度 + 线搜索,复杂 | 标准 mini-batch 多 epoch,简单 |
| 计算 | 需 Hessian-向量积 | 与 A2C 同级 |
| 稳定性 | 理论保证强 | 工程上同样鲁棒 |
| 生态 | 研究/教学 | SB3、CleanRL 默认 |
PPO 的 clip 目标:
$$
L^{CLIP} = \mathbb{E}\left[ \min\left( r_t \hat{A}_t, ; \mathrm{clip}(r_t, 1-\epsilon, 1+\epsilon) \hat{A}_t \right) \right]
$$
可理解为 TRPO 信任域思想的实用近似——详见 RL-03-11-算法-PPO 第一节。
六、伪代码(概念级)
1 | # 每轮迭代 |
开源参考:OpenAI Spinning Up TRPO、旧版 baselines 实现。
七、超参与实践
| 超参 | 典型值 | 说明 |
|---|---|---|
| $\delta$(max KL) | 0.01 | 信任域大小 |
| CG 迭代次数 | 10 ~ 20 | 共轭梯度 |
| CG 阻尼 | 0.1 | 数值稳定 |
| GAE $\lambda$ | 0.95 | 同 PPO |
| Rollout 长度 | 2048 | 同 PPO |
何时仍读 TRPO:理解 PPO clip 的来历、分析 On-Policy 稳定性的理论工具;新项目默认用 PPO/SAC,除非有明确理由上 TRPO。
八、在算法谱系中的位置
1 | REINFORCE → Actor-Critic (A2C) |
| 算法 | 信任域 | 优化阶数 |
|---|---|---|
| A2C | 无 | 一阶 |
| TRPO | KL 约束 | 一阶 + 二阶近似 |
| PPO | Clip 近似 | 一阶 |
九、小结
- TRPO = Surrogate 目标 + KL 信任域 + 自然梯度(共轭梯度求解)。
- 理论上是 PPO 的「严格版前辈」;工程上 PPO 更常用。
- 上一篇:Actor-Critic · 下一篇:PPO