2 min read 469 words Updated May 20, 2026 Created Jun 17, 2026
├─→ TRPO (Trust Region Policy Optimization)
│   └── 约束新旧策略的 KL 散度 ≤ δ,保证更新在安全区域内
│   └── 解决:策略更新不稳定、步长难调
│   └── 问题:二阶优化(Fisher信息矩阵)计算昂贵

某些符号表示不标准,注意辨别。

如果我们仔细审视一下 Actor-Critic 中的 V-based 模型,那么我们可以将带有 baseline 的损失重写为:

$$\nabla J(\theta) = {\mathbb E}_{\tau \sim \pi_\theta} \left[ \sum_{t = 0}^T (Q(a_t, s_t) - V(s_t)) \nabla \log \pi_\theta(a_t|s_t) \right] $$

其中定义 $A^\pi(a_t, s_t) = Q^\pi(a_t, s_t) - V(s_t)$ 为优势函数。

话又说回来了,虽然这样定义,但是实际上计算的时候,还是不通过 $Q$ 网络,而是使用 $r_t + V(s_{t+1}) - V(s_t)$ 的形式计算。
所以只需要一个 $\pi$ 和一个 $V$ 网络即可。

那么我们期望最大化 $Q$ 的价值等价于最大化每一步的优势。所以说我们可以将价值函数定义为:

$$\begin{aligned} J(\theta) &= {\mathbb E_{\tau \sim \pi_\theta}} \left[ \sum_{t = 0}^\infty \sum_a \pi_\theta(a_t | s_t) \gamma^t A^\pi(a_t, s_t) \right] \\ &= \sum_s \left(\sum_{t = 0}^T P^\pi(s_t = s) \gamma^t\right) \sum_a \pi_\theta(a_t | s_t) A^\pi(a_t, s_t) \end{aligned} $$

有啥用?没用!这不就和 Actor-Critic 一摸一样了吗?

既然我们都说了,这是优势函数了,我们能不能将训练变成一个增量训练的角度?也就是说,通过代理目标函数近似期望回报的增量,换句话来说,也就是计算新策略对于旧策略的优势,进行叠加。

$$J(\hat \theta) - J(\theta) = {\mathbb E}_{\tau \sim \hat \theta}[R(\tau)] - {\mathbb E}_{\tau \sim \theta}[R(\tau)] $$

可以利用重要性采样估计 $J(\hat \theta)$

$$J(\hat \theta) = {\mathbb E}_{\tau \sim \theta} \left[\frac {p(\tau | \hat \theta)}{p(\tau | \theta)} R(\tau) \right] $$

利用:

$$\frac {p(\tau | \hat \theta)}{p(\tau | \theta)} = \prod_{t = 0}^T \frac {\pi_{\hat \theta}(a_t|s_t)}{{\pi_{\theta}(a_t|s_t)}} $$

展开 $R(\tau)$,简化推导:

$$\begin{aligned} J(\hat \theta) - J(\theta) &= \sum_{\tau \sim \theta} p_{\theta}(\tau) \left(\prod_{t = 0}^T \frac {\pi_{\hat \theta}(a_t|s_t)}{{\pi_{\theta}(a_t|s_t)}} - 1 \right) \sum_{t = 0}^T \gamma^t (A^{\pi_{\theta}}(a_t, s_t) + V(s_t) - \gamma {\mathbb E}_{s_{t + 1} \sim \theta}[V(s_{t + 1})]) \\ &= {\mathbb E}_{\tau \sim \theta} \left[\left(\frac {p(\tau | \hat \theta)}{p(\tau | \theta)} - 1\right) \sum_{t = 0}^T \gamma^t A^{\pi_{\theta}}(a_t, s_t) \right] \\ &= \sum_{\tau \sim \theta} ({p(\tau | \hat \theta)}-{p(\tau | \theta)}) \sum_{t = 0}^T \gamma^t A^{\pi_\theta}(a_t, s_t) \\ &= \frac 1 {1 - \gamma} \left({\mathbb E}_{s \sim \hat \theta, a \sim \pi_{\hat \theta}}[A^{\pi_\theta}(a, s)] - {\mathbb E}_{s \sim \theta, a \sim \pi_{ \theta}}[A^{\pi_\theta}(a, s)]\right) \end{aligned} $$

其中:

$$\mathbb{E}_{s\sim\theta, a\sim\pi_\theta}[A^\pi] = \mathbb{E}_{s\sim\theta, a\sim\pi_\theta}[Q(a, s)] - \mathbb{E}_{s\sim\theta, a\sim\pi_\theta}[V(s)] = \mathbb{E}_{s\sim\theta}[V(s)] - \mathbb{E}_{s\sim\theta}[V(s)] = 0 $$

所以得到:

$$J(\hat \theta) - J(\theta) = \frac 1 {1 - \gamma} {\mathbb E}_{s \sim \hat \theta, a \sim \pi_{\hat \theta}}[A^{\pi_\theta}(a, s)] $$

这里有一个 $\frac 1 {1 - \gamma}$ 是因为没有归一化度量,也就是使用的是 $\gamma^t$ 而不是 $(1 - \gamma) \gamma^t$ 的形式。不过这个系数有没有其实无伤大雅,所以可有可没有。

继续利用重要性估计,在 $\theta$ 上采样:

$$L(\hat \theta) = J(\hat \theta) - J(\theta) \approx \frac 1 {1 - \gamma} {\mathbb E}_{s \sim \theta, a \sim \pi_{\theta}}\left[\frac {\pi_{\hat \theta}(a | s)}{\pi_{\theta}(a | s)} A^{\pi_\theta}(a, s) \right] $$

所以损失:

$$\nabla L(\hat \theta) = {\mathbb E}_{s \sim \theta, a \sim \pi_\theta} \left[ A^{\pi_\theta}(a, s) \nabla \log \pi_\theta(a|s) \right] $$


但是重要性采样有一个非常局限的点:$\pi_\theta$$\pi_{\hat \theta}$ 的策略分布不能相差太远,否则估计就失效了。

所以优化的限制为:

$$ {\mathbb E}_{s \sim \theta}[D_{KL}(\pi_{\hat \theta}(\cdot|s) || \pi_{\theta}(\cdot|s))] \le \delta $$

所以整个问题的建模是:

$$\begin{aligned} \max_{\hat \theta} L(\hat \theta) &= {\mathbb E}_{s \sim \theta, a \sim \pi_{\theta}}\left[\frac {\pi_{\hat \theta}(a | s)}{\pi_{\theta}(a | s)} A^{\pi_\theta}(a, s) \right] \\ \text{s.t. } & {\mathbb E}_{s \sim \theta}[D_{KL}(\pi_{\hat \theta}(\cdot|s) || \pi_{\theta}(\cdot|s))] \le \delta \end{aligned} $$

这是一个非线性约束优化问题,直接求解复杂。TRPO通过以下步骤近似:

  1. 线性化代理目标,得到梯度。
  2. 二次化KL散度约束,得到Fisher信息矩阵。
  3. 共轭梯度法求解更新方向。
  4. 线性搜索确保约束满足。
  • 具体不会,暂略。