当前位置:   article > 正文

从TRPO到PPO(理论分析与数学证明)_ppo和trpo

ppo和trpo

本文首发于行者AI

引言

一篇关于强化学习算法的理论推导,或许可以帮助你理解PPO算法背后的原理,从而找到改进PPO算法的灵感…

马尔可夫决策过程 ( S , A , P , r , ρ 0 , γ ) (S, A, P, r, \rho_0, \gamma) (S,A,P,r,ρ0,γ)六个元素构成。其中 S S S是一个有限的状态空间集合, A A A是一个有限的动作空间集合。 P : S × A × S → R P: S \times A \times S \rightarrow \mathbb{R} P:S×A×SR 表示状态转移概率函数,例如 P ( s ′ ∣ s , a ) = 0.6 P(s'|s,a)=0.6 P(ss,a)=0.6表示的含义就是在状态 s s s处执行动作 a a a到达的状态为 s ′ s' s的概率为0.6。 r : S → R r: S\rightarrow \mathbb{R} r:SR是奖励函数, ρ 0 : S → R \rho_0: S\rightarrow\mathbb{R} ρ0:SR是初始状态分布概率函数, γ ∈ ( 0 , 1 ) \gamma\in (0,1) γ(0,1)是折扣因子。

π \pi π表示一个随机策略函数 π : S × A → [ 0 , 1 ] \pi: S\times A\rightarrow [0,1] π:S×A[0,1],例如 π ( s , a ) = 0.5 \pi(s,a)=0.5 π(s,a)=0.5表示在状态 s s s处选择动作 a a a的概率为0.5。令 η ( π ) \eta(\pi) η(π)表示基于策略 π \pi π的长期期望折扣奖励: η ( π ) = E s 0 , a 0 , … [ ∑ t = 0 ∞ γ t r ( s t ) ] \eta(\pi) = \mathbb{E}_{s_0, a_0,\ldots}[\sum\limits_{t=0}^{\infty}\gamma^t r(s_t)] η(π)=Es0,a0,[t=0γtr(st)], 其中 s 0 ∼ ρ 0 ( s 0 ) , a t ∼ π ( a t ∣ s t ) , s t + 1 ∼ P ( s t + 1 ∣ s t , a t ) s_0\sim \rho_0(s_0), a_t\sim \pi(a_t|s_t), s_{t+1}\sim P(s_{t+1}|s_t,a_t) s0ρ0(s0),atπ(atst),st+1P(st+1st,at)

下面给出状态价值函数、状态动作价值函数、优势函数的定义:

(1)状态动作价值函数
Q π ( s t , a t ) = E s t + 1 , a t + 1 , … [ ∑ l = 0 ∞ γ l r ( s t + l ) ] Q_\pi(s_t,a_t) = \mathbb{E}_{s_{t+1},a_{t+1},\ldots}[\sum\limits_{l=0}^\infty\gamma^lr(s_{t+l})] Qπ(st,at)=Est+1,at+1,[l=0γlr(st+l)]
表示的是在状态 s t s_t st处执行动作 a t a_t at后获得的长期期望折扣奖励。

(2)状态价值函数:
V π ( s t ) = E a t , s t + 1 , … [ ∑ l = 0 ∞ γ l r ( s t + l ) ] = E a t [ Q π ( s t , a t ) ] V_\pi(s_t) = \mathbb{E}_{a_t, s_{t+1},\ldots}[\sum\limits_{l=0}^\infty\gamma^lr(s_{t+l})] = \mathbb{E}_{a_t}[Q_\pi(s_t, a_t)] Vπ(st)=Eat,st+1,[l=0γlr(st+l)]=Eat[Qπ(st,at)]
表示从状态 s t s_t st开始获得的长期期望折扣奖励。

(3)优势函数
A π ( s , a ) = Q π ( s , a ) − V π ( s , a ) A_\pi(s, a) = Q_\pi(s,a) - V_\pi(s,a) Aπ(s,a)=Qπ(s,a)Vπ(s,a)
表示的是在状态 s s s处,动作 a a a相对于平均水平的高低。

强化学习的目标就是最大化长期期望折扣奖励
η ( π ) = E s 0 , a 0 , … [ ∑ t = 0 ∞ γ t r ( s t ) ] \eta(\pi) = \mathbb{E}_{s_0, a_0,\ldots}[\sum\limits_{t=0}^{\infty}\gamma^t r(s_t)] η(π)=Es0,a0,[t=0γtr(st)]
其中策略函数 π \pi π可以看作是带有参数 θ \theta θ的随机策略 π ( s , a ) = π θ ( s , a ) \pi(s,a) = \pi_\theta(s,a) π(s,a)=πθ(s,a)。在策略梯度算法(Policy Gradient)中,参数 θ \theta θ的更新公式为
θ n e w = θ o l d + α ∇ θ η ( θ ) \theta_{new} = \theta_{old} + \alpha\nabla_{\theta}\eta(\theta) θnew=θold+αθη(θ)
这样的更新公式容易导致以下问题:如果步长 α \alpha α选取不合适,那么会导致 θ n e w \theta_{new} θnew θ o l d \theta_{old} θold差,当使用 θ n e w \theta_{new} θnew进行采样学习的时候,采取到的样本就是比较差的样本,再继续使用不好的样本对参数进行更新,得到的是更加不好的策略,从而导致恶性循环。TRPO算法解决的问题就是:如何选择一个合适的更新策略,或是如何选择一个合适的步长,使得更新过后的策略 π θ n e w \pi_{\theta_{new}} πθnew一定比更新前的策略 π θ o l d \pi_{\theta_{old}} πθold好呢?

1.TRPO的理论分析

1.1 不同策略的长期期望折扣奖励之间的关系

先来看一下基于策略 π \pi π的长期折扣奖励
η ( π ) = E s 0 , a 0 , … [ ∑ t = 0 ∞ γ t r ( s t ) ] \eta({\pi}) = \mathbb{E}_{s_0,a_0,\ldots}[\sum\limits_{t=0}^{\infty}\gamma^t r(s_t)] η(π)=Es0,a0,[t=0γtr(st)]
对于另一个策略 π ~ \tilde{\pi} π~,两个策略之间的长期折扣奖励函数 η ( π ~ ) \eta(\tilde{\pi}) η(π~) η ( π ) \eta(\pi) η(π)之间的关系为:
η ( π ~ ) = η ( π ) + E s 0 , a 0 , … ∼ π ~ [ ∑ t = 0 ∞ γ t A π ( s t , a t ) ]         ( 3.1 ) \eta(\tilde{\pi}) = \eta(\pi) + \mathbb{E}_{s_0,a_0,\ldots\sim\tilde{\pi}}[\sum\limits_{t=0}^\infty \gamma^t A_{\pi}(s_t,a_t)]\ \ \ \ \ \ \ (3.1) η(π~)=η(π)+Es0,a0,π~[t=0γtAπ(st,at)]       (3.1)
其中 A π ( s t , a t ) A_\pi(s_t,a_t) Aπ(st,at)为优势函数, A π ( s t , a t ) = Q π ( s t , a t ) − V π ( s t ) A_\pi(s_t,a_t) = Q_\pi(s_t,a_t) - V_\pi(s_t) Aπ(st,at)=Qπ(st,at)Vπ(st)。(证明过程见文章后面附录证明4.1)。

上述公式要注意的点是 s 0 , a 0 , … ∼ π ~ s_0,a_0,\ldots\sim\tilde{\pi} s0,a0,π~表示轨迹中的状态和动作都是基于策略 π ~ \tilde{\pi} π~采样得到的,而 A π ( s t , a t ) A_{\pi}(s_t,a_t) Aπ(st,at)表示的是策略 π \pi π的优势函数。
为了方便公式的书写和后续求导的计算,定义
ρ π ( s ) = P ( s 0 = s ) + γ P ( s 1 = s ) + γ 2 P ( s 2 = s ) + … \rho_\pi(s) = P(s_0=s) + \gamma P(s_1=s) + \gamma^2 P(s_2=s) + \ldots ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+
则公式 ( 3.1 ) (3.1) (3.1)可以改写为:
η ( π ~ ) = η ( π ) + ∑ s ρ π ~ ( s ) ∑ s π ~ ( a ∣ s ) A π ( s , a )          ( 3.2 ) \eta({\tilde{\pi}}) = \eta({\pi}) + \sum\limits_s\rho_{\tilde{\pi}}(s)\sum\limits_s\tilde{\pi}(a|s)A_\pi(s,a) \ \ \ \ \ \ \ \ (3.2) η(π~)=η(π)+sρπ~(s)sπ~(as)Aπ(s,a)        (3.2)
证明过程见文章后面附录证明4.2。

1.2 替代函数的建立

再来回顾一下我们在背景中提出的目标:找到一个合适的步长,使得每一个更新得到的新的策略 π n e w \pi_{new} πnew要比更新前的策略 π o l d \pi_{old} πold,体现在公式上就是要求 η ( π n e w ) ≥ η ( π o l d ) \eta(\pi_{new}) \ge \eta(\pi_{old}) η(πnew)η(πold)

由于公式 ( 3.2 ) (3.2) (3.2)中的 ρ π ~ \rho_{\tilde{\pi}} ρπ~ π ~ \tilde{\pi} π~有强烈的依赖性,但是在更新之前我们还不知道策略 π ~ \tilde{\pi} π~的具体形式,所以我们考虑找到一个 η ( π ~ ) \eta(\tilde{\pi}) η(π~)的替代函数:
L π ( π ~ ) = η ( π ) + ∑ s ρ π ( s ) ∑ a π ~ ( a ∣ s ) A π ( s , a )         ( 3.3 ) L_\pi(\tilde{\pi}) = \eta({\pi}) + \sum\limits_s\rho_\pi(s)\sum\limits_a\tilde{\pi}(a|s)A_\pi(s,a) \ \ \ \ \ \ \ (3.3) Lπ(π~)=η(π)+sρπ(s)aπ~(as)Aπ(s,a)       (3.3)
这个替代函数的作用是什么呢,可以帮助我们得到 η \eta η函数的哪些性质呢?把策略 π \pi π表示为带有参数 θ \theta θ的随机策略 π = π θ \pi=\pi_\theta π=πθ,给出下面定理: L π θ 0 ( π θ ) L_{\pi_{\theta_0}}(\pi_\theta) Lπθ0(πθ) η ( π θ ) \eta(\pi_\theta) η(πθ) θ 0 \theta_0 θ0处一阶近似,用公式表示为:
{ L π θ 0 ( π θ 0 ) = η ( π θ 0 ) ∇ θ L π θ 0 ( π θ ) ∣ θ = θ 0 = ∇ θ η ( π θ ) ∣ θ = θ 0 \left\{

Lπθ0(πθ0)=η(πθ0)θLπθ0(πθ)|θ=θ0=θη(πθ)|θ=θ0
\right. { Lπθ0(πθ0)θLπθ0(πθ)θ=θ0=η(π

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/302148
推荐阅读
相关标签
  

闽ICP备14008679号