TRPO(Trust Region Policy Optimization)原理讲解

TRPO(Trust Region Policy Optimization)解决了A-C框架中更新梯度步长大小的问题,采用一种相对保守的策略更新梯度,引入信任区域和KL散度约束,使得每次更新幅度受限制,主要是TRPO能找到一个好的步长 α \alpha α来更新参数 θ = θ + α ∇ θ J ( θ ) \theta = \theta + \alpha\nabla_\theta J(\theta) θ=θ+αθJ(θ),除此之外,TRPO还加入了重要性采样IS和广义优势估计GAE还保证提高了样本的利用率。此时TRPO已经不严格满足on-policy算法,是一种近似算法了。下面讲解我们推导TRPO的过程。

1.目标函数的推导——优势函数

TRPO的目标是最大化期望奖励,我们从累计期望奖励的定义出发
J ( π θ ) = E s 0 [ V π θ ( s 0 ) ] J(\pi_\theta)= E_{s_0}[V^{\pi_\theta}(s_0)] J(πθ)=Es0[Vπθ(s0)]
由于初始状态与策略无关,将期望目标转化为在新策略 π θ ′ \pi_{\theta'} πθ的轨迹
J ( π θ ) = E π θ ′ [ ∑ t = 0 γ t V π θ ( s t ) − ∑ t = 1 γ t V π θ ( s t ) ] = E π θ ′ [ ∑ t = 0 γ t V π θ ( s t ) − ∑ t = 0 γ t + 1 V π θ ( s t + 1 ) ] = − E π θ ′ [ ∑ t = 0 γ t ( γ V π θ ( s t + 1 ) − V π θ ( s t ) ) ] J(\pi_\theta)=E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t V^{\pi_\theta}(s_t)-\sum_{t=1}\gamma^tV^{\pi_\theta}(s_t)]=E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t V^{\pi_\theta}(s_t)-\sum_{t=0}\gamma^{t+1}V^{\pi_{\theta}}(s_{t+1})]\\= - E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t(\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_{\theta}}(s_t))] J(πθ)=Eπθ[t=0γtVπθ(st)t=1γtVπθ(st)]=Eπθ[t=0γtVπθ(st)t=0γt+1Vπθ(st+1)]=Eπθ[t=0γt(γVπθ(st+1)Vπθ(st))]
我们将策略目标相减:前者用原始定义,后者用状态价值函数定义
J ( π θ ′ ) − J ( π θ ) = E π θ ′ [ ∑ t = 0 γ t r ( s t , a t ) ] + E π θ ′ [ ∑ t = 0 γ t ( γ V π θ ( s t + 1 ) − V π θ ( s t ) ) ] = E π θ ′ [ ∑ t = 0 γ t [ r ( s t , a t ) + γ V π θ ( s t + 1 ) − V π θ ( s t ) ) ] ] J(\pi_{\theta'})-J(\pi_\theta)= E_{\pi_{\theta'}}[\sum_{t=0}\gamma ^tr(s_t,a_t)]+ E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t(\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_{\theta}}(s_t))]\\= E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t[r(s_t,a_t)+\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_{\theta}}(s_t))]] J(πθ)J(πθ)=Eπθ[t=0γtr(st,at)]+Eπθ[t=0γt(γVπθ(st+1)Vπθ(st))]=Eπθ[t=0γt[r(st,at)+γVπθ(st+1)Vπθ(st))]]
对于 r ( s t , a t ) + γ V π θ ( s t + 1 ) − V π θ ( s t ) ) r(s_t,a_t)+\gamma V^{\pi_\theta}(s_{t+1})-V^{\pi_{\theta}}(s_t)) r(st,at)+γVπθ(st+1)Vπθ(st)),我们在A2C已经见过一次了,就是时序残差定义下的优势函数,可记为 A π θ ( s t , a t ) A^{\pi_\theta}(s_t,a_t) Aπθ(st,at)
J ( π θ ′ ) − J ( π θ ) = E π θ ′ [ ∑ t = 0 γ t A π θ ( s t , a t ) ] J(\pi_{\theta'})-J(\pi_\theta)=E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t{A^{\pi_\theta}(s_t,a_t)}] J(πθ)J(πθ)=Eπθ[t=0γtAπθ(st,at)]

2.展开新旧策略回报之差

我们将 E π θ ′ [ ∑ t = 0 γ t A π θ ( s t , a t ) ] E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t{A^{\pi_\theta}(s_t,a_t)}] Eπθ[t=0γtAπθ(st,at)]中的期望进行展开,对于策略 π θ \pi_\theta πθ下,计算每个时间步t时候状态 s t s_t st的条件概率 P ( s t = s ∣ π θ ) P(s_t=s|\pi_\theta) P(st=sπθ),然后对所有可能状态和动作求和:
E π θ ′ [ ∑ t = 0 γ t A π θ ( s t , a t ) ] = ∑ s ∑ a ∑ t = 0 γ t P ( s t = s ∣ π θ ′ ) π θ ′ ( a ∣ s ) A π θ ( s t , a t ) = ∑ s ∑ t = 0 γ t P ( s t = s ∣ π θ ′ ) ∑ a π θ ′ ( a ∣ s ) A π θ ( s t , a t ) = ∑ s ρ π θ ′ ( s ) ∑ a π θ ′ ( a ∣ s ) A π θ ( s t , a t ) E_{\pi_{\theta'}}[\sum_{t=0}\gamma^t{A^{\pi_\theta}(s_t,a_t)}]=\sum_s\sum_a\sum_{t=0}\gamma^tP(s_t=s|\pi_{\theta'})\pi_{\theta'}(a|s){A^{\pi_\theta}(s_t,a_t)}\\=\sum_s\sum_{t=0}\gamma^tP(s_t=s|\pi_{\theta'})\sum_a\pi_{\theta'}(a|s){A^{\pi_\theta}(s_t,a_t)} \\=\sum_s\rho_{\pi_{\theta'}}(s)\sum_a\pi_{\theta'}(a|s){A^{\pi_\theta}(s_t,a_t)} Eπθ[t=0γtAπθ(st,at)]=sat=0γtP(st=sπθ)πθ(as)Aπθ(st,at)=st=0γtP(st=sπθ)aπθ(as)Aπθ(st,at)=sρπθ(s)aπθ(as)Aπθ(st,at)
ρ π θ ′ ( s ) = ∑ t = 0 γ t P ( s t = s ∣ π θ ′ ) \rho_{\pi_{\theta'}}(s) = \sum_{t=0}\gamma^tP(s_t=s|\pi_{\theta'}) ρπθ(s)=t=0γtP(st=sπθ),此时公式后部分如果能保证为正,就能说明新策略一定比旧策略好

3.近似优化

ρ π θ ′ ( s ) \rho_{\pi_{\theta'}}(s) ρπθ(s)造成了整个式子难以计算,我们考虑将其近似为旧策略,此时用 L π ( π θ ′ ) L_\pi(\pi_{\theta'}) Lπ(πθ)表示与旧策略相近的新策略产生的回报:
L π ( π θ ′ ) = J ( π θ ) + ∑ s ρ π θ ′ ( s ) ∑ a π θ ′ ( a ∣ s ) A π θ ( s t , a t ) L_\pi(\pi_{\theta'})=J(\pi_{\theta})+\sum_s\rho_{\pi_{\theta'}}(s)\sum_a\pi_{\theta'}(a|s){A^{\pi_\theta}(s_t,a_t)} Lπ(πθ)=J(πθ)+sρπθ(s)aπθ(as)Aπθ(st,at)

  • 第一次估计:我们忽略策略间状态空间分布的改变

L π ( π θ ′ ) = J ( π θ ) + ∑ s ρ π θ ( s ) ∑ a π θ ′ ( a ∣ s ) A π θ ( s t , a t ) L_\pi(\pi_{\theta'})=J(\pi_{\theta})+\sum_s\rho_{\pi_{\theta}}(s)\sum_a\pi_{\theta'}(a|s){A^{\pi_\theta}(s_t,a_t)} Lπ(πθ)=J(πθ)+sρπθ(s)aπθ(as)Aπθ(st,at)

  • 第二次:我们利用重要性采样对动作分布进行处理

L π ( π θ ′ ) = J ( π θ ) + ∑ s ρ π θ ( s ) ∑ a π θ ′ ( a ∣ s ) π θ ( a ∣ s ) A π θ ( s t , a t ) L_\pi(\pi_{\theta'})=J(\pi_{\theta})+\sum_s\rho_{\pi_{\theta}}(s)\sum_a\frac{\pi_{\theta'}(a|s)}{\pi_{\theta}(a|s)}{A^{\pi_\theta}(s_t,a_t)} Lπ(πθ)=J(πθ)+sρπθ(s)aπθ(as)πθ(as)Aπθ(st,at)

重要性采样(Important Sample,IS)

重要性采样是一种用于估计在一个概率分布下的期望值的方法,尤其在强化学习中经常用于评估不同策略下的期望回报。

考虑一个期望值的计算:

E π [ f ( x ) ] = ∑ x P π ( x ) ⋅ f ( x ) E_\pi[f(x)] =\sum_x P_\pi(x) \cdot f(x) Eπ[f(x)]=xPπ(x)f(x)

其中, P π ( x ) P_\pi(x) Pπ(x) 是在策略 π 下状态 x 出现的概率。

如果我们希望用另一个策略 π′ 下的样本来估计这个期望值,可以使用重要性采样。重要性采样的基本思想是用策略 π 下的采样样本乘以一个权重来估计在策略 π*′ 下的期望值。

具体地,重要性采样估计期望值的公式为:

E π ′ [ f ( x ) ] ≈ 1 N ∑ i = 1 N π ′ ( x i ) π ( x i ) ⋅ f ( x i ) E_{\pi^{\prime}}[f(x)] \approx \frac{1}{N} \sum_{i=1}^N \frac{\pi^{\prime}\left(x_i\right)}{\pi\left(x_i\right)} \cdot f\left(x_i\right) Eπ[f(x)]N1i=1Nπ(xi)π(xi)f(xi)

在强化学习中,重要性采样常用于评估不同策略下的价值函数或策略梯度。在策略迭代算法中,通过重要性采样可以估计在新策略下的期望回报,从而进行策略的改进。

4.带约束问题求解

我们做了两次近似,但我们要保证策略确实很相近,我们明确需要一种方法,估计两个策略很相近:

TRPO使用KL散度衡量整体的优化公式:约束KL散度即可将其限制在一定距离内
D K L ( π ′ ∣ ∣ π ) = ∑ s ∑ a π ′ ( a ∣ s ) log ⁡ ( π ′ ( a ∣ s ) π ( a ∣ s ) ) D_{\mathrm{KL}}\left(\pi^{\prime}|| \pi\right)=\sum_s \sum_a \pi^{\prime}(a \mid s) \log \left(\frac{\pi^{\prime}(a \mid s)}{\pi(a \mid s)}\right) DKL(π∣∣π)=saπ(as)log(π(as)π(as))

策略是概率分布,在欧氏空间中我们能用L2距离,L1距离等衡量距离。但是在概率空间中,我们衡量两个策略相近的一种常见方法是使用Kullback-Leibler(KL)散度。KL散度是一种用于衡量两个概率分布之间差异的度量,包括在策略空间中用于度量两个策略的相似性。具体原理,可以从Natural Policy Gradient中学习。

此时带约束的优化问题表示如下
m a x θ L π ( π θ ′ ) s . t . D K L ( π ′ ∣ ∣ π ) = ∑ s ∑ a π ′ ( a ∣ s ) log ⁡ ( π ′ ( a ∣ s ) π ( a ∣ s ) ) ≤ δ max_{\theta}L_\pi(\pi_{\theta'})\\ s.t.D_{\mathrm{KL}}\left(\pi^{\prime}|| \pi\right)=\sum_s \sum_a \pi^{\prime}(a \mid s) \log \left(\frac{\pi^{\prime}(a \mid s)}{\pi(a \mid s)}\right)≤\delta maxθLπ(πθ)s.t.DKL(π∣∣π)=saπ(as)log(π(as)π(as))δ
由于此问题是一个不等式约束优化,我们考虑对其转化为约束函数求最值——Lagrangigan乘数法

拉格朗日乘数法:讨论约束不等式$g(x)≤ 0 的原始可行性,假设 的原始可行性,假设 的原始可行性,假设x^*$为约束条件最优解

  • g(x) = 0:边界解,此时约束条件有效,驻点存在于约束条件边界,存在 ∇ f = − λ ∇ g \nabla f=-\lambda\nabla g f=λg(定常方程式), λ ≥ 0 \lambda≥0 λ0(对偶可行性)
  • g(x) < 0:内部解,约束条件无效,因此满足 ∇ f = 0 , λ = 0 \nabla f=0,\lambda=0 f=0,λ=0

两种情况均满足:称为KKT条件

在这里插入图片描述

直接求解上式的带约束优化较为麻烦,我们先近似

  • 第三次近似:我们利用泰勒展开近似 L π ( π θ ′ ) L_\pi(\pi_{\theta'}) Lπ(πθ) D K L ( π ′ ∣ ∣ π ) D_{\mathrm{KL}}\left(\pi^{\prime}|| \pi\right) DKL(π∣∣π)分别使用一阶近似和二阶近似,用 θ k \theta_k θk代替 θ \theta θ表示我们迭代计算已经进行k次了

L π ( π θ ′ ) ≈ g T ( θ ′ − θ k ) g = ∇ θ ′ L π ( π θ ′ ) = ∇ θ ′ [ J ( π θ ) + ∑ s ρ π θ ( s ) ∑ a π θ ′ ( a ∣ s ) π θ ( a ∣ s ) A π θ ( s t , a t ) ] D K L ( π ′ ∣ ∣ π ) ≈ 1 2 ( θ ′ − θ k ) T H ( θ ′ − θ k ) H = [ ˝ D K L ( π ′ ] ∣ ∣ π ) L_\pi(\pi_{\theta'})\approx g^T(\theta'-\theta_k) \\ g=\nabla_{\theta'} L_\pi(\pi_{\theta'})=\nabla_{\theta'}[J(\pi_{\theta})+\sum_s\rho_{\pi_{\theta}}(s)\sum_a\frac{\pi_{\theta'}(a|s)}{\pi_{\theta}(a|s)}{A^{\pi_\theta}(s_t,a_t)}] \\ D_{\mathrm{KL}}\left(\pi^{\prime}|| \pi\right)\approx\frac12(\theta'-\theta_k)^TH(\theta'-\theta_k) \\ H = \H[D_{\mathrm{KL}}\left(\pi^{\prime}]|| \pi\right) Lπ(πθ)gT(θθk)g=θLπ(πθ)=θ[J(πθ)+sρπθ(s)aπθ(as)πθ(as)Aπθ(st,at)]DKL(π∣∣π)21(θθk)TH(θθk)H=[˝DKL(π]∣∣π)

此时优化目标为:
θ k + 1 = a r g m a x θ ′   g T ( θ ′ − θ k ) s . t . 1 2 ( θ ′ − θ k ) T H ( θ ′ − θ k ) ≤ δ \theta_{k+1}=argmax_{\theta'}\space g^T(\theta'-\theta_k) \\s.t.\frac12(\theta'-\theta_k)^TH(\theta'-\theta_k)≤\delta θk+1=argmaxθ gT(θθk)s.t.21(θθk)TH(θθk)δ
该问题的KKT解为:
θ k + 1 = θ k + 2 δ g T H − 1 g H − 1 g \theta_{k+1}=\theta_k+\sqrt{\frac{2 \delta}{g^T H^{-1} g}} H^{-1} g θk+1=θk+gTH1g2δ H1g

5.共轭梯度与线性搜索

我们发现优化后的KKT解存在逆矩阵,逆矩阵的存储和计算需要大量计算空间和时间,TRPO考虑采样共轭梯度法,直接计算 x = H − 1 g x=H^{-1}g x=H1g,所求 x x x就是参数更新方向。假设带约束优化时参数更新最大步长为 β \beta β,此时KL散度可取最大值,公式如下:
1 2 ( β x ) T H ( β x ) = δ \frac{1}{2}(\beta x)^T H(\beta x)=\delta 21(βx)TH(βx)=δ
得出 β = 2 δ x T H x \beta=\sqrt{\frac{2 \delta}{x^T H x}} β=xTHx2δ ,可得参数更新方式:
θ k + 1 = θ k + 2 δ x T H x x \theta_{k+1}=\theta_k+\sqrt{\frac{2 \delta}{x^T H x}} x θk+1=θk+xTHx2δ x
在具体的共轭梯度计算中,我们只存储 H x Hx Hx向量,不存储H矩阵,避免大矩阵的出现。

TRPO第三次近似时,利用泰勒展开的一阶和二阶进行近似,KL散度对第一次和第二次的近似做了限制,但是第三次还需要一个限制,当前状态未必满足KL散度限制,我们考虑在每次迭代的最后一次进行线性搜索,以确保找到满足条件,不断缩小步长。
θ k + 1 = θ k + α i 2 δ x T H x x \theta_{k+1}=\theta_k+\alpha^i \sqrt{\frac{2 \delta}{x^T H x}} x θk+1=θk+αixTHx2δ x
其中$\alpha 取 0   1 ,寻找一个 i 值, 取 0 ~ 1,寻找一个 i 值, 0 1,寻找一个i值,i \in{1,2, \ldots, K}$,这是TRPO最终的更新目标

6.广义优势估计

TRPO(Trust Region Policy Optimization)算法引入广义优势估计(GAE)的主要目的是为了改进对优势函数的估计,以更稳定地进行策略更新。

上文我们对 θ k \theta_k θk进行了详细的分析,最终得出了计算公式,不过—— A π θ ( s t , a t ) A^{\pi_\theta}(s_t,a_t) Aπθ(st,at)怎么求呢,我们给出一种计算方式,广义优势估计,令 δ t = r t + γ V ( s t + 1 ) − V ( s t ) \delta_t=r_t+\gamma V(s_{t+1})-V(s_t) δt=rt+γV(st+1)V(st)
A t ( 1 ) = δ t = − V ( s t ) + r t + γ V ( s t + 1 ) A t ( 2 ) = δ t + γ δ t + 1 = − V ( s t ) + r t + γ r t + 1 + γ 2 V ( s t + 2 ) A t ( 3 ) = δ t + γ δ t + 1 + γ 2 δ t + 2 = − V ( s t ) + r t + γ r t + 1 + γ 2 r t + 2 + γ 3 V ( s t + 3 ) ⋮ ⋮ A t ( k ) = ∑ l = 0 k − 1 γ l δ t + l = − V ( s t ) + r t + γ r t + 1 + … + γ k − 1 r t + k − 1 + γ k V ( s t + k ) \begin{array}{lc} A_t^{(1)}=\delta_t & =-V\left(s_t\right)+r_t+\gamma V\left(s_{t+1}\right) \\ A_t^{(2)}=\delta_t+\gamma \delta_{t+1} & =-V\left(s_t\right)+r_t+\gamma r_{t+1}+\gamma^2 V\left(s_{t+2}\right) \\ A_t^{(3)}=\delta_t+\gamma \delta_{t+1}+\gamma^2 \delta_{t+2} & =-V\left(s_t\right)+r_t+\gamma r_{t+1}+\gamma^2 r_{t+2}+\gamma^3 V\left(s_{t+3}\right) \\ \vdots & \vdots \\ A_t^{(k)}=\sum_{l=0}^{k-1} \gamma^l \delta_{t+l} & =-V\left(s_t\right)+r_t+\gamma r_{t+1}+\ldots+\gamma^{k-1} r_{t+k-1}+\gamma^k V\left(s_{t+k}\right) \end{array} At(1)=δtAt(2)=δt+γδt+1At(3)=δt+γδt+1+γ2δt+2At(k)=l=0k1γlδt+l=V(st)+rt+γV(st+1)=V(st)+rt+γrt+1+γ2V(st+2)=V(st)+rt+γrt+1+γ2rt+2+γ3V(st+3)=V(st)+rt+γrt+1++γk1rt+k1+γkV(st+k)
然后,GAE 将这些不同步数的优势估计进行指数加权平均:

在这里插入图片描述

我们定义参数 λ ∈ [ 0 , 1 ] \lambda\in[0,1] λ[0,1],当 λ = 0 \lambda=0 λ=0得出的即单步时序差分的结果, λ = 1 \lambda=1 λ=1表示每一步差分得到优势的完全平均值

GAE 主要在两个方面对 TRPO 产生了影响:

  1. 减少方差: GAE 考虑了未来多个时间步的奖励,相比于传统的时序差分目标,它在估计动作优势时减少了方差。这有助于提高对优势的准确估计,使策略更新更为稳定。方差的减少对于策略梯度方法的训练非常重要,因为高方差可能导致训练的不稳定性。
  2. 更准确的策略更新: TRPO 使用 KL 散度作为约束来控制每次策略更新的幅度,而使用 GAE 估计的优势可以更准确地反映动作的长期影响。这有助于避免一些不稳定的策略更新,提高了算法的收敛性和稳定性。

参考资料:
动手学强化学习

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: (TRPO)? Trust Region Policy Optimization (TRPO) 是一种用于强化学习的算法,它通过限制策略更新的步长,以确保每次更新都不会使策略变得太差。TRPO 是一种基于梯度的方法,它通过最大化期望收益来优化策略。TRPO 的主要优点是它可以保证每次更新都会使策略变得更好,而不会使其变得更差。 ### 回答2: Trust Region Policy OptimizationTRPO)是一种用于优化强化学习策略的算法。TRPO通过在每次更新策略时限制更新量,来解决策略优化中的非线性优化问题。其目标是在保证策略改进的同时,尽量减小策略更新带来的影响。 TRPO的核心思想是在每次迭代中保持一个信任区域,该区域内的策略改进之后的表现要比当前策略好。通过限制策略更新的KL散度(Kullback-Leibler Divergence),TRPO保证了平稳的、逐步改进的过程。 TRPO的算法步骤如下:首先,通过采样数据来估计策略的梯度;其次,通过求解一个约束优化问题来计算策略更新的方向和大小;最后,采用线搜索来确定在保证改进的前提下,策略更新的步长。 TRPO相对于其他的策略优化算法有几个优点。首先,TRPO可以高效地利用采样数据,避免了需求大量样本的问题。其次,通过控制策略更新的幅度,TRPO可以保持算法的稳定性和鲁棒性。最后,TRPO可以应用于各种不同类型的强化学习任务,并取得不错的性能。 总之,Trust Region Policy Optimization 是一种通过限制策略更新的KL散度来优化强化学习策略的算法。其核心思想是在每次迭代中维持一个信任区域,通过约束优化问题来计算策略更新,并使用线搜索来确定更新步长。TRPO具有高效利用采样数据,保持稳定性和适应性强的优点,能够在不同任务中取得良好性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值