【强化学习】随机策略梯度强化学习-TRPO置信域策略优化推导分析《Trust Region Policy Optimization》

本文深入探讨TRPO(Trust Region Policy Optimization)算法,旨在解决强化学习中策略梯度更新步长的选择问题。通过介绍TRPO的优化目标公式建立、自然梯度法的应用以及共轭梯度法求解策略更新方向,详细阐述了如何在确保策略改进的同时限制策略变化的幅度,以实现稳定的学习效果。同时,文章讨论了如何利用KL散度约束和自然梯度法来计算合适的参数更新步长。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、TRPO优化目标公式建立

根据策略梯度方法,很难选择步长使参数更新向着策略变好的方向变化,如果步长不合适,可能导致越学越差致使系统崩溃。
如何选择一个合适的步长,或者说,如何找到新的策略使新的回报函数的值单调递增,或单调不减。这是TRPO解决的问题。
强化学习的回报函数定义为:
η ( π ~ ) = E π ~ [ ∑ t = 0 ∞ γ t ( r ( s t ) ) ] \eta(\tilde{\pi} )=E_{\tilde{\pi}}[\sum_{t=0}^{\infty}\gamma^t(r(s_t))] η(π~)=Eπ~[t=0γt(r(st))]
将新策略的回报函数拆分为,[旧策略回报函数+其他项]的方式,如果其他项>=0则,新的回报函数单调不减。如下所示
η ( π ~ ) = η ( π ) + E s 0 , a 0 , π ~ [ ∑ t = 0 ∞ γ t A π ( s t , a t ) ] ( 1 ) \eta(\tilde{\pi})=\eta(\pi)+E_{s_0,a_0,\tilde{\pi}}[\sum_{t=0}^\infty\gamma^tA_\pi(s_t,a_t)]\qquad (1) η(π~)=η(π)+Es0,a0,π~[t=0γtAπ(st,at)](1)
π \pi π表示旧策略, π ~ \tilde\pi π~表示新策略
A π ( s , a ) = Q π ( s , a ) − V π ( s ) = E s ′ ∼ P ( s ′ ∣ s , a ) [ r ( s ) + γ V π ( s ′ ) − V π ( s ) ] \begin{aligned} A_\pi(s,a)&=Q_\pi(s,a)-V_\pi(s)\\ &=E_{s'\sim P(s'|s,a)}[r(s)+\gamma V_\pi(s')-V_\pi(s)] \end{aligned} Aπ(s,a)=Qπ(s,a)Vπ(s)=EsP(ss,a)[r(s)+γVπ(s)Vπ(s)]
给出(1)的证明:
E π ~ [ ∑ t = 0 ∞ γ t A π ( s t , a t ) ] = E π ~ [ ∑ t = 0 ∞ γ t ( r ( s t ) + γ V π ( s t + 1 ) − V π ( s t ) ) ] = E π ~ [ ∑ t = 0 ∞ γ t r ( s t ) ] + E π ~ [ ∑ t = 0 ∞ γ t ( γ V π ( s t + 1 ) − V π ( s t ) ) ] = E π ~ [ ∑ t = 0 ∞ γ t r ( s t ) ] + E π ~ [ − V π ( s 0 ) ] = η ( π ~ ) − η ( π ) \begin{aligned} E_{\tilde \pi}[\sum_{t=0}^\infty \gamma^t A_{\pi}(s_t,a_t)]&=E_{\tilde \pi}[\sum_{t=0}^\infty\gamma^t(r(s_t)+\gamma V_\pi(s_{t+1})-V_{\pi}(s_t))]\\ &=E_{\tilde \pi}[\sum_{t=0}^\infty\gamma^tr(s_t)]+E_{\tilde \pi}[\sum_{t=0}^\infty\gamma^t(\gamma V_\pi(s_{t+1})-V_{\pi}(s_t))]\\ &=E_{\tilde \pi}[\sum_{t=0}^\infty\gamma^tr(s_t)]+E_{\tilde \pi}[-V_{\pi}(s_0)]\\ &=\eta(\tilde \pi) - \eta(\pi) \end{aligned} Eπ~[t=0γtAπ(st,at)]=Eπ~[t=0γt(r(st)+γVπ(st+1)Vπ(st))]=Eπ~[t=0γtr(st)]+Eπ~[t=0γt(γVπ(st+1)Vπ(st))]=Eπ~[t=0γtr(st)]+Eπ~[Vπ(s0)]=η(π~)η(π)
将(1)展开
η ( π ~ ) = η ( π ) + ∑ t ∞ ∑ s P ( s t = s ∣ π ~ ) ∑ a π ~ ( a ∣ s ) γ t A π ( s , a ) = η ( π ) + ∑ s ρ π ~ ( s ) ∑ a π ~ ( a ∣ s ) A π ( s , a ) ( 2 ) \begin{aligned} \eta(\tilde \pi)& = \eta(\pi)+\sum_t^{\infty}\sum_{s}P(s_t=s|\tilde \pi)\sum_{a}\tilde \pi(a|s)\gamma^tA_\pi(s,a)\\ &=\eta(\pi)+\sum_{s}\rho_{\tilde \pi(s)}\sum_{a}\tilde \pi(a|s)A_\pi(s,a)\qquad (2) \end{aligned} η(π~)=η(π)+tsP(st=sπ~)aπ~(as)γtAπ(s,a)=η(π)+sρπ~(s)aπ~(as)Aπ(s,a)(2)
其中 ρ π ~ ( s ) = ∑ t = 0 ∞ γ t P ( s t = s ∣ π ~ ) \rho_{\tilde \pi}(s) = \sum_{t=0}^\infty \gamma^t P(s_t=s|\tilde \pi) ρπ~(s)=t=0γtP(st=sπ~)

技巧一

引入TRPO的第一个技巧对状态分布进行处理,我们忽略状态分布的变化,依然采用旧的策略所对应的状态分布。这个技巧是对原代价函数的一次近似。其实,当新旧参数很接近的时候,我们将用旧的状态分布替代新的状态分布是合理的。此时,原来的代价函数近似为:
η ( π ~ ) = η ( π ) + ∑ s ρ π ( s ) ∑ a π ~ ( a ∣ s ) A π ( s t , a t ) ( 3 ) \eta(\tilde \pi) = \eta(\pi) + \sum_{s}\rho_{\pi}(s)\sum_a \tilde \pi(a|s)A_\pi(s_t,a_t) \qquad (3) η(π~)=η(π)+sρπ(s)aπ~(as)Aπ(st,at)(3)
式(3)中,第二项策略部分,这时的动作是由新策略 π ~ \tilde \pi π~产生的,可新策略是带参数 θ \theta θ的,这个参数的是未知的,无法用来产生动作。此时引入TRPO的第二个技巧。

技巧二

TRPO第二个技巧是利用重要性采样对动作分布进行处理,后文将会介绍新旧策略之间的差异非常小,因此使用重要性采样能够取得非常好的效果
∑ a π ~ ( a ∣ s ) A π ( s t , a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值