【强化学习】Trust Region Policy Optization(TRPO)

Policy Gradient的缺点

根据策略梯度方法,参数更新的方法是
θ n e w = θ o l d + α ∇ θ J \theta_{new}=\theta_{old}+\alpha\nabla_\theta J θnew=θold+αθJ
策略梯度算法的硬伤就在更新步长 α \alpha α,当步长不合适时,更新的参数所对应的策略是一个更不好的策略,当利用这个更不好的策略进行采样学习时,再次更新的参数会更差,因此很容易导致越学越差,最后崩溃。
在这里插入图片描述
(对于监督性学习来说,当某次迭代前后结果相差太大时,下一次更新有可能会解决这个问题)
合适的步长是指当策略更新后,回报函数的值不能更差。为了实现这一点,一般的想法就是将新策略的回报分解为旧策略的回报加上旧策略的一些什么东西。

贝尔曼公式的等效方法

假设 η ( π θ ) \eta(\pi_{\theta}) η(πθ)表示当前策略 π θ \pi_\theta πθ下轨迹 τ \tau τ的累积反馈值期望( π θ → π \pi_\theta\rightarrow\pi πθπ):
η ( π ) = E τ ∼ π [ ∑ t = 0 ∞ γ t ( r ( s t ) ) ] \eta(\pi)=E_{\tau\sim\pi}[\sum_{t=0}^\infty\gamma^t(r(s_t))] η(π)=Eτπ[t=0γt(r(st))]
其中 γ \gamma γ是折扣系数。则新策略 π ~ \widetilde{\pi} π 与旧策略 π \pi π之间存在以下关系(类似于贝尔曼公式):
η ( π ~ ) = η ( π ) + E τ ∼ π ~ [ ∑ t = 0 ∞ γ t A π ( s t , a t ) ] ,(1) \eta(\widetilde{\pi})=\eta(\pi)+E_{\tau\sim\widetilde{\pi}}[\sum_{t=0}^\infty\gamma^tA_\pi(s_t,a_t)]\text{,(1)} η(π )=η(π)+Eτπ [t=0γtAπ(st,at)],(1)
其中 A A A称为优势函数。上式可以理解为:新策略后的累积反馈期望值=旧策略累积反馈期望值+新旧策略在该轨迹上的优势差。

优势函数
(1)假设 s s s是当前状态, a 1 , a 2 a_1,a_2 a1,a2是接下来可能的两个动作,则值函数 V ( s ) V(s) V(s)表示状态 s s s下所有可能动作值函数关于动作概率的平均值。 Q ( s , a 1 ) Q(s,a_1) Q(s,a1)是单个动作对应的值函数。
V π ( s ) = π ( a 1 ∣ s ) Q π ( s , a 1 ) + π ( a 2 ∣ s ) Q ( s , a 2 ) V_\pi(s)=\pi(a_1|s)Q_\pi(s,a_1)+\pi(a_2|s)Q(s,a_2) Vπ(s)=π(a1s)Qπ(s,a1)+π(a2s)Q(s,a2)
(2) Q π ( s , a ) − V π ( s ) Q_\pi(s,a)-V_\pi(s) Qπ(s,a)Vπ(s)指的是动作值函数相比于当前状态的值函数的优势,如果它大于0,这说明它比平均动作要好。
A ( s , a 1 ) = Q π ( s , a 1 ) − V π ( s ) A(s,a_1)=Q_\pi(s,a_1)-V_\pi(s) A(s,a1)=Qπ(s,a1)Vπ(s)
上述(1)可以进一步转换为:
η ( π ~ ) = η ( π ) + ∑ t = 0 ∞ ∑ s P ( s t = s ) ∑ a π ~ ( a ∣ s ) γ t A π ( s , a ) = η ( π ) + ∑ s ρ π ~ ( s ) ∑ a π ~ ( a ∣ s ) A π ( s , a ) ,(2) \begin{aligned} \eta(\widetilde{\pi})&=\eta(\pi)+\sum_{t=0}^\infty\sum_sP(s_t=s)\sum_a\widetilde{\pi}(a|s)\gamma^tA_\pi(s,a)\\ \\ \\ &=\eta(\pi)+\sum_s\rho_{\widetilde{\pi}}(s)\sum_a\widetilde{\pi}(a|s)A_\pi(s,a)\text{,(2)} \end{aligned} η(π )=η(π)+t=0sP(st=s)aπ (as)γtAπ(s,a)=η(π)+sρπ (s)aπ (as)Aπ(s,a),(2)
其中
在这里插入图片描述

ρ π ~ ( s ) = ∑ t = 0 ∞ γ t P ( s t = s ) \rho_{\widetilde{\pi}}(s)=\sum_{t=0}^\infty\gamma^tP(s_t=s) ρπ (s)=t=0γtP(st=s)

四个技巧

基于式子(2),有以下四个技巧来解决问题
技巧(1):使用旧策略的状态分布近似代替新策略的状态分布。
ρ π ~ ( s ) ≈ ρ π ( s ) \rho_{\widetilde{\pi}}(s)\approx\rho_\pi(s) ρπ (s)ρπ(s)
技巧(2):重要性采样方法,对动作分布进行处理。
∑ a π ~ ( a ∣ s ) A π ( s , a ) = E a ∼ π [ π ~ ( a ∣ s ) π ( a ∣ s ) A π ( s , a ) ] \sum_a\widetilde{\pi}(a|s)A_\pi(s,a)=E_{a\sim\pi}[\frac{\widetilde{\pi}(a|s)}{\pi(a|s)}A_\pi(s,a)] aπ (as)Aπ(s,a)=Eaπ[π(as)π (as)Aπ(s,a)]
结合(1),(2)两个技巧,可以得到 η ( π ) \eta(\pi) η(π)的替代目标函数 J ( π ) J(\pi) J(π)
J ( π ~ ) = η ( π ) + E s ∼ ρ , a ∼ π [ π ~ ( a ∣ s ) π ( a ∣ s ) A π ( s , a ) ] ,(3) J(\widetilde{\pi})=\eta(\pi)+E_{s\sim\rho,a\sim\pi}[\frac{\widetilde{\pi}(a|s)}{\pi(a|s)}A_\pi(s,a)]\text{,(3)} J(π )=η(π)+Esρ,aπ[π(as)π (as)Aπ(s,a)],(3)

式子(2)和(3)的不同之处在于状态概率的不同,所以 J ( π ~ ) J(\widetilde{\pi}) J(π ) η ( π ~ ) \eta(\widetilde{\pi}) η(π )为一阶相似
{ J ( π ) = η ( π ) ∇ θ J ( π ) ∣ θ = θ o l d = ∇ θ η ( π ) ∣ θ = θ o l d \begin{cases} J(\pi)=\eta(\pi) \\ \nabla_\theta J(\pi)|_{\theta=\theta_{old}}=\nabla_\theta \eta(\pi)|_{\theta=\theta_{old}} \end{cases} {J(π)=η(π)θJ(π)θ=θold=θη(π)θ=θold
通过一阶近似等条件,可以确定凸函数 η ( π ~ ) \eta(\widetilde{\pi}) η(π )的下界
在这里插入图片描述
即:

η ( π ~ ) ≥ J ( π ~ ) − C ⋅ D K L m a x ( π , π ~ ) , C = 2 ϵ γ ( 1 − γ ) 2 \eta(\widetilde{\pi})\geq J(\widetilde{\pi})-C·D_{KL}^{max}(\pi,\widetilde{\pi})\text{,}C=\frac{2\epsilon\gamma}{(1-\gamma)^2} η(π )J(π )CDKLmax(π,π ),C=(1γ)22ϵγ
其中, D K L ( π , π ~ ) D_{KL}(\pi,\widetilde{\pi}) DKL(π,π )表示两个分布的KL散度。其次,可以利用这个下界证明策略的单调性(证明略)。
技巧(3)利用平均KL散度代替最大KL散度
技巧(4)使用 π \pi π代替 ρ \rho ρ
通过(3),(4)得到最终的优化目标函数与条件
m a x θ E s ∼ π , a ∼ π [ π ~ ( a ∣ s ) π ( a ∣ s ) A π ( s , a ) ] subject to  E s ∼ π [ D K L ( π ( ⋅ ∣ s ) , π ~ ( ⋅ ∣ s ) ) ] ≤ δ \begin{aligned} max_\theta E_{s\sim\pi,a\sim\pi}[\frac{\widetilde{\pi}(a|s)}{\pi(a|s)}A_\pi(s,a)]\\ \\ \text{subject to }E_{s\sim\pi}[D_{KL}(\pi(·|s),\widetilde{\pi}(·|s))]\leq\delta \end{aligned} maxθEsπ,aπ[π(as)π (as)Aπ(s,a)]subject to Esπ[DKL(π(s),π (s))]δ

TRPO伪代码

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值