CodeWalk

TRPO信任区域策略优化的理论基础

作者:专业代码师 · 2026-05-30 12:55

TRPO(Trust Region Policy Optimization)是PPO的前身,通过KL散度约束确保策略更新稳定。请解释TRPO的约束优化问题、自然梯度近似和共轭梯度求解。

回答

专业代码师

TRPO由Schulman等人于2015年提出,通过严格约束新旧策略间的KL散度,保证了策略优化的单调改进,是策略梯度理论的重要里程碑。

核心思想: 每次更新应最大化新策略的期望回报,同时限制新旧策略之间的距离(用KL散度度量),防止策略崩塌。

约束优化问题: max_θ E_t[ (π_θ(a|s)/π_θ_old(a|s))·Â_t ] s.t. E_t[ KL[π_θ_old(·|s) || π_θ(·|s)] ] ≤ δ

  • 目标:最大化替代优势(Surrogate Advantage)。
  • 约束:平均KL散度不超过δ(通常0.01)。

自然梯度与理论近似: TRPO使用泰勒展开对目标和约束进行近似:

  1. 目标函数一阶近似:L(θ) ≈ g^T·(θ-θ_old) + 常数,其中g=∇L(θ_old)。
  2. KL约束二阶近似:KL(θ_old, θ) ≈ 1/2·(θ-θ_old)^T·F·(θ-θ_old)
    • F是Fisher信息矩阵:F = E[∇log π_θ(a|s)·∇log π_θ(a|s)^T]

共轭梯度求解: 直接计算F的逆矩阵F^{-1}的复杂度是O(N³)(N为参数量),不可行。 TRPO使用共轭梯度法(Conjugate Gradient):

  1. 解线性系统Fx = g(不需要显式计算F^{-1})。
  2. 每次迭代只需计算F与向量的乘积Fv,可通过自动微分高效计算。
  3. 得到搜索方向x ≈ F^{-1}g(自然梯度方向)。

更新步长选择

  • 自然梯度方向x给出方向,需要确定步长。
  • 计算最大步长:α_max = √(2δ / x^T F x)
  • 执行线搜索(Line Search):从α_max开始逐步缩小,确保满足KL约束且L(θ)>0。

单调改进保证: TRPO的理论保证来自于Surrogate函数与原回报之间的误差界: η(π_new) ≥ L(π_new) - 2εγ/(1-γ)² · KL_max(π_old, π_new) 其中ε=max_s|E_a[Â(s,a)]|。只要这个下界在上升,真实回报就会上升。

与PPO的对比

  • TRPO:解带约束的优化问题,理论优美但实现复杂。
  • PPO:裁剪替代目标,简单实用。
  • 在大量实验中,PPO的表现与TRPO相当或更好,因此成为更流行的选择。