网站建设合作伙伴,宝安建网站,wordpress 菜单无法保存,微信长图的免费模板网站在深度强化学习的发展史上#xff0c;TRPO (Trust Region Policy Optimization) 占据着承前启后的核心地位。它是连接早期 REINFORCE#xff08;朴素策略梯度#xff09;与现代 PPO#xff08;近端策略优化#xff09;的桥梁。
很多人认为 TRPO 仅仅是一个“带约束的优化算…在深度强化学习的发展史上TRPO (Trust Region Policy Optimization)占据着承前启后的核心地位。它是连接早期 REINFORCE朴素策略梯度与现代 PPO近端策略优化的桥梁。很多人认为 TRPO 仅仅是一个“带约束的优化算法”这严重低估了它的理论深度。TRPO 的本质是一次从**欧氏空间Euclidean Space向黎曼流形Riemannian Manifold**的思维跨越。它解决了一个根本性的问题在参数空间Θ\ThetaΘ上移动多远才等同于在策略空间Π\PiΠ上移动了安全的距离本文将从单调提升理论出发通过拉格朗日对偶性、泰勒级数展开、自然梯度法以及共轭梯度下降完整推导 TRPO 的每一个数学细节。第一章理论基石——性能差异与单调性保证一切优化的前提是“不退步”。在强化学习中策略更新往往牵一发而动全身我们需要一个数学保证新策略J(πnew)≥J(πold)J(\pi_{new}) \ge J(\pi_{old})J(πnew)≥J(πold)。1.1 性能差异引理 (The Performance Difference Lemma)Kakade Langford (2002) 提出了一个恒等式量化了两个策略表现的差距。设J(π)J(\pi)J(π)为策略π\piπ的期望累积折扣回报对于任意两个策略π\piπ和π~\tilde{\pi}π~有J(π~)J(π)Eτ∼π~[∑t0∞γtAπ(st,at)] J(\tilde{\pi}) J(\pi) \mathbb{E}_{\tau \sim \tilde{\pi}} \left[ \sum_{t0}^{\infty} \gamma^t A_\pi(s_t, a_t) \right]J(π~)J(π)Eτ∼π~[t0∑∞γtAπ(st,at)]Aπ(s,a)Qπ(s,a)−Vπ(s)A_\pi(s, a) Q_\pi(s, a) - V_\pi(s)Aπ(s,a)Qπ(s,a)−Vπ(s)是旧策略的优势函数。核心洞察如果新策略π~\tilde{\pi}π~在每一个状态sss都能选择出Aπ(s,a)0A_\pi(s, a) 0Aπ(s,a)0的动作那么J(π~)J(\tilde{\pi})J(π~)必然大于J(π)J(\pi)J(π)。1.2 替代目标函数 (Surrogate Objective)上述公式中期望是基于新策略π~\tilde{\pi}π~的轨迹τ\tauτ计算的这在更新前是未知的。我们利用重要性采样将状态分布近似为旧策略的分布ρπ\rho_\piρπLπ(π~)J(π)∑sρπ(s)∑aπ~(a∣s)Aπ(s,a) L_\pi(\tilde{\pi}) J(\pi) \sum_{s} \rho_\pi(s) \sum_{a} \tilde{\pi}(a|s) A_\pi(s, a)Lπ(π~)J(π)s∑ρπ(s)a∑π~(a∣s)Aπ(s,a)在 TRPO 中我们通常优化Lπ(π~)L_\pi(\tilde{\pi})Lπ(π~)的等价形式忽略常数项J(π)J(\pi)J(π)maxθEs∼ρθold,a∼πθold[πθ(a∣s)πθold(a∣s)Aθold(s,a)] \max_{\theta} \mathbb{E}_{s \sim \rho_{\theta_{old}}, a \sim \pi_{\theta_{old}}} \left[ \frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)} A_{\theta_{old}}(s,a) \right]θmaxEs∼ρθold,a∼πθold[πθold(a∣s)πθ(a∣s)Aθold(s,a)]1.3 误差边界与下界最大化 (MM Algorithm)由于状态分布的近似ρπ~≈ρπ\rho_{\tilde{\pi}} \approx \rho_\piρπ~≈ρπ引入了误差Schulman 证明了如下不等式J(π~)≥Lπ(π~)−C⋅DKLmax(π,π~) J(\tilde{\pi}) \ge L_\pi(\tilde{\pi}) - C \cdot D_{KL}^{\max}(\pi, \tilde{\pi})J(π~)≥Lπ(π~)−C⋅DKLmax(π,π~)其中C4ϵγ(1−γ)2C \frac{4\epsilon \gamma}{(1-\gamma)^2}C(1−γ)24ϵγ是常数DKLmaxD_{KL}^{\max}DKLmax是状态空间上的最大 KL 散度。这构成了一个Minorization-Maximization (MM)算法的基础Mi(π)Lπi(π)−C⋅DKLmax(πi,π)M_i(\pi) L_{\pi_i}(\pi) - C \cdot D_{KL}^{\max}(\pi_i, \pi)Mi(π)Lπi(π)−C⋅DKLmax(πi,π)是J(π)J(\pi)J(π)的下界函数。最大化这个下界就能保证真实目标J(π)J(\pi)J(π)的单调提升。第二章从理论到实践——信赖域约束的构建理论上的惩罚系数CCC通常过大导致步长极小几乎无法训练。TRPO 将上述无约束的惩罚问题Lagrangian form转化为带约束的优化问题Constrained form。2.1 优化问题的形式化我们需要在满足 KL 散度约束的前提下最大化替代目标maxθL(θ)E[πθ(a∣s)πθold(a∣s)Aθold(s,a)]subject toDˉKL(πθold,πθ)≤δ \begin{aligned} \max_{\theta} \quad L(\theta) \mathbb{E} \left[ \frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)} A_{\theta_{old}}(s,a) \right] \\ \text{subject to} \quad \bar{D}_{KL}(\pi_{\theta_{old}}, \pi_\theta) \le \delta \end{aligned}θmaxsubject toL(θ)E[πθold(a∣s)πθ(a∣s)Aθold(s,a)]DˉKL(πθold,πθ)≤δ这里DˉKL\bar{D}_{KL}DˉKL是所有状态下的平均 KL 散度δ\deltaδ是信赖域半径Trust Region Radius。2.2 为什么是 KL 散度这是一个极其关键的数学选择。如果我们使用欧氏距离∥θ−θold∥2≤δ\|\theta - \theta_{old}\|^2 \le \delta∥θ−θold∥2≤δ会发生什么参数空间与概率分布空间是不等价的。有些参数变化很小却导致概率分布剧变有些参数变化很大概率分布却几乎不变。KL 散度衡量的是分布之间的统计距离。它定义了一个黎曼流形使得我们的步长具有协变性Covariant——无论我们将参数如何缩放或重参数化只要分布不变KL 散度就不变更新轨迹也就不变。第三章数值求解——泰勒展开与自然梯度上述约束优化问题是非线性的难以直接求解。我们使用泰勒级数对其进行局部近似。3.1 一阶与二阶泰勒近似设更新量Δθθ−θold\Delta \theta \theta - \theta_{old}Δθθ−θold。目标函数一阶展开L(θ)≈L(θold)∇θL(θold)TΔθ L(\theta) \approx L(\theta_{old}) \nabla_\theta L(\theta_{old})^T \Delta \thetaL(θ)≈L(θold)∇θL(θold)TΔθ其中∇θL(θold)\nabla_\theta L(\theta_{old})∇θL(θold)即为常用的策略梯度记为ggg。约束条件二阶展开由于DKL(θ,θ)0D_{KL}(\theta, \theta) 0DKL(θ,θ)0且 KL 散度在两分布相等处取得极小值因此一阶导数为 0。我们展开到二阶DˉKL(θold,θ)≈12ΔθTFΔθ \bar{D}_{KL}(\theta_{old}, \theta) \approx \frac{1}{2} \Delta \theta^T \mathbf{F} \Delta \thetaDˉKL(θold,θ)≈21ΔθTFΔθ其中F\mathbf{F}F是费雪信息矩阵Fisher Information Matrix, FIM也就是 KL 散度的 Hessian 矩阵FEs,a[∇θlogπθ(a∣s)∇θlogπθ(a∣s)T] \mathbf{F} \mathbb{E}_{s, a} \left[ \nabla_\theta \log \pi_\theta(a|s) \nabla_\theta \log \pi_\theta(a|s)^T \right]FEs,a[∇θlogπθ(a∣s)∇θlogπθ(a∣s)T]3.2 近似问题的解析解现在问题变成了标准的二次规划Quadratic ProgrammingmaxΔθgTΔθs.t.12ΔθTFΔθ≤δ \begin{aligned} \max_{\Delta \theta} \quad g^T \Delta \theta \\ \text{s.t.} \quad \frac{1}{2} \Delta \theta^T \mathbf{F} \Delta \theta \le \delta \end{aligned}Δθmaxs.t.gTΔθ21ΔθTFΔθ≤δ利用拉格朗日乘子法构造拉格朗日函数L(Δθ,λ)gTΔθ−λ(12ΔθTFΔθ−δ) \mathcal{L}(\Delta \theta, \lambda) g^T \Delta \theta - \lambda \left( \frac{1}{2} \Delta \theta^T \mathbf{F} \Delta \theta - \delta \right)L(Δθ,λ)gTΔθ−λ(21ΔθTFΔθ−δ)对Δθ\Delta \thetaΔθ求导并令其为 0g−λFΔθ0 ⟹ Δθ1λF−1g g - \lambda \mathbf{F} \Delta \theta 0 \implies \Delta \theta \frac{1}{\lambda} \mathbf{F}^{-1} gg−λFΔθ0⟹Δθλ1F−1g这里的F−1g\mathbf{F}^{-1} gF−1g就是大名鼎鼎的自然梯度Natural Gradient。它根据参数空间的局部曲率F\mathbf{F}F校正了梯度方向。3.3 求解步长系数我们还需要确定λ\lambdaλ或者说步长大小。将Δθ1λF−1g\Delta \theta \frac{1}{\lambda} \mathbf{F}^{-1} gΔθλ1F−1g代入约束条件12ΔθTFΔθδ\frac{1}{2} \Delta \theta^T \mathbf{F} \Delta \theta \delta21ΔθTFΔθδ12(1λF−1g)TF(1λF−1g)δ \frac{1}{2} \left( \frac{1}{\lambda} \mathbf{F}^{-1} g \right)^T \mathbf{F} \left( \frac{1}{\lambda} \mathbf{F}^{-1} g \right) \delta21(λ1F−1g)TF(λ1F−1g)δ12λ2gTF−1FF−1gδ \frac{1}{2\lambda^2} g^T \mathbf{F}^{-1} \mathbf{F} \mathbf{F}^{-1} g \delta2λ21gTF−1FF−1gδ12λ2gTF−1gδ \frac{1}{2\lambda^2} g^T \mathbf{F}^{-1} g \delta2λ21gTF−1gδ解得λgTF−1g2δ \lambda \sqrt{\frac{g^T \mathbf{F}^{-1} g}{2\delta}}λ2δgTF−1g因此最终的更新向量为Δθ2δgTF−1gF−1g \Delta \theta \sqrt{\frac{2\delta}{g^T \mathbf{F}^{-1} g}} \mathbf{F}^{-1} gΔθgTF−1g2δF−1g第四章工程实现的艺术——共轭梯度与 HVP理论推导很完美但在深度学习中参数量NNN可能高达数百万。F\mathbf{F}F是一个N×NN \times NN×N的矩阵。计算并存储它需要O(N2)O(N^2)O(N2)空间求逆F−1\mathbf{F}^{-1}F−1需要O(N3)O(N^3)O(N3)时间。这在计算上是不可行的。TRPO 使用共轭梯度法 (Conjugate Gradient, CG)来避开这个瓶颈。4.1 将求逆转化为解方程我们不需要显式求F−1\mathbf{F}^{-1}F−1我们只需要求向量xF−1gx \mathbf{F}^{-1} gxF−1g。这等价于求解线性方程组Fxg \mathbf{F} x gFxg由于F\mathbf{F}F是对称正定矩阵CG 算法非常适合求解此类方程。4.2 Hessian-Vector Product (HVP)在 CG 迭代中我们需要频繁计算矩阵与向量的乘积Fv\mathbf{F} vFv其中vvv是 CG 算法中的搜索方向向量。Pearlmutter (1994) 提出的技巧告诉我们计算 Hessian 与向量的乘积不需要构建 Hessian 矩阵。回顾F\mathbf{F}F的定义我们可以通过两次反向传播来计算Fv\mathbf{F} vFvFv∇θ((∇θlogπθ(a∣s)⋅v)T∇θlogπθ(a∣s)) \mathbf{F} v \nabla_\theta \left( (\nabla_\theta \log \pi_\theta(a|s) \cdot v)^T \nabla_\theta \log \pi_\theta(a|s) \right)Fv∇θ((∇θlogπθ(a∣s)⋅v)T∇θlogπθ(a∣s))但在实践中我们通常使用 KL 散度的梯度形式更方便Fv∇θ(∇θDKL(πθold∥πθ)⋅v) \mathbf{F} v \nabla_\theta \left( \nabla_\theta D_{KL}(\pi_{\theta_{old}} \| \pi_\theta) \cdot v \right)Fv∇θ(∇θDKL(πθold∥πθ)⋅v)具体操作步骤计算 KL 散度关于θ\thetaθ的梯度一阶导。计算该梯度与向量vvv的点积标量。对这个标量再求一次关于θ\thetaθ的梯度二阶导信息。这样我们就在O(N)O(N)O(N)的时间复杂度内算出了Fv\mathbf{F} vFv使得 TRPO 在大模型上变得可行。第五章最后一道防线——回溯线性搜索 (Backtracking Line Search)由于我们在第三章使用了泰勒展开计算出的Δθ\Delta \thetaΔθ只是在局部是准确的。如果步子迈得太大泰勒近似就会失效导致 KL 散度越界或者目标函数下降。TRPO 引入了线性搜索机制来确保单调性。设搜索方向为dF−1gd \mathbf{F}^{-1} gdF−1g最大步长为β2δ/(dTFd)\beta \sqrt{2\delta / (d^T \mathbf{F} d)}β2δ/(dTFd)。我们尝试更新θnewθoldαjβd \theta_{new} \theta_{old} \alpha^j \beta dθnewθoldαjβd其中α∈(0,1)\alpha \in (0, 1)α∈(0,1)是衰减率例如 0.5jjj从 0 开始增加。我们接受θnew\theta_{new}θnew当且仅当满足以下两个条件目标提升条件L(θnew)−L(θold)0L(\theta_{new}) - L(\theta_{old}) 0L(θnew)−L(θold)0或者满足一定的提升比例。信赖域约束条件DˉKL(θold,θnew)≤δ\bar{D}_{KL}(\theta_{old}, \theta_{new}) \le \deltaDˉKL(θold,θnew)≤δ。通过这种“先计算最佳方向再小心翼翼试探”的策略TRPO 实现了极其稳定的更新。总结TRPO 的数学美学TRPO 的推导过程是一场数学盛宴从性能差异引理出发建立了单调提升的目标。利用KL 散度构建了黎曼流形上的信赖域约束。通过泰勒展开将非线性约束规划转化为二次规划。引入费雪信息矩阵得到了自然梯度解。使用共轭梯度法和HVP 技巧解决了高维矩阵求逆难题。最后用线性搜索弥补了近似误差。每一个环节都环环相扣逻辑严密。虽然后来的 PPO 通过 Clip 操作极大地简化了这一过程但 PPO 之所以有效正是因为它在试图模拟 TRPO 所定义的那个完美的“信赖域”。理解了 TRPO你才真正触碰到了策略梯度算法的灵魂。