赞
踩
本文首发于行者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×S→R 表示状态转移概率函数,例如 P ( s ′ ∣ s , a ) = 0.6 P(s'|s,a)=0.6 P(s′∣s,a)=0.6表示的含义就是在状态 s s s处执行动作 a a a到达的状态为 s ′ s' s′的概率为0.6。 r : S → R r: S\rightarrow \mathbb{R} r:S→R是奖励函数, ρ 0 : S → R \rho_0: S\rightarrow\mathbb{R} ρ0:S→R是初始状态分布概率函数, γ ∈ ( 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∼π(at∣st),st+1∼P(st+1∣st,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好呢?
先来看一下基于策略 π \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∑π~(a∣s)Aπ(s,a) (3.2)
证明过程见文章后面附录证明4.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∑π~(a∣s)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\{
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。