Trust Region Policy Optimization (TRPO) 背后的数学原理

  本文是自己的TRPO算法学习笔记,在数学原理推导核心部分附有自己的理解与解释。整篇文章逻辑清晰,思路顺畅。有想推导的同学可以一起学习。

  TRPOPPO都是基于Minorize-Maximization MM的算法。

Surrogate function

  RL中期望maximizing the expected discounted rewards,期望折扣奖励 η \eta 可用如下数学公式表示:

η ( π θ ) = E τ π θ [ t = 0 γ t r t ] \eta\left(\pi_{\theta}\right)=\underset{\tau \sim \pi_{\theta}}{\mathrm{E}}\left[\sum_{t=0}^{\infty} \gamma^{t} r_{t}\right]

  我们希望去找到一个surrogate function(替代函数),替代函数具有如下性质:

  • a lower bound function for η \eta ;(是 η \eta 的一个下界函数)
  • approximate η \eta at the current policy (在当前策略下能够近似等于 η \eta )
  • easy to optimize. (找这样一个替代函数的目的就是方便优化)

  其图形表示为下图所示(蓝色表示下界函数,红色表示期望折扣奖励):

surrogate function

  在每一次迭代中,希望去找到一个对于下界函数 M M 来说的最优点,并把它当作当前的策略,如下图所示:

在这里插入图片描述

  之后,我们基于新的policy,重新评估下界(re-evaluate a lower bound),并重复迭代。重复上述过程,策略将会被持续改进。由于策略集有限,所以所以最终将会收敛到局部最优或者全局最优,整个流程如下图所示:

迭代流程图

  整体的目标就是在原有的参数空间 θ \theta 上很难去计算最优值,我们期望用一个替代函数来作为它的lower bound,下界函数比较好优化,然后通过迭代的方式让其逼近原始最优解。

Objective function

  上述想法就很不错,现在我们需要去寻找目标函数和替代函数了。

  首先我们去定义Q-Value functionValue functionAdvantage function,如下:

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},\cdots}}\left[ \sum_{l=0}^{\infty} \gamma^{l}r(s_{t+l}) \right]

V π ( s t ) = E a t , s t + 1 , [ l = 0 γ l r ( s t + 1 ) ] V_{\pi}(s_{t}) = \mathbb{E}_{a_{t},s_{t+1},\cdots} \left[ \sum_{l=0}^{\infty} \gamma^{l}r(s_{t+1}) \right]

A π ( s , a ) = Q π ( s , a ) V π ( s ) A_{\pi}(s,a) = Q_{\pi}(s,a) -V_{\pi}(s)

  其中 a t π ( a t s t ) a_{t} \sim \pi(a_{t}|s_{t}) s t + 1 P ( s t + 1 s t , a t ) s_{t+1} \sim P(s_{t+1}|s_{t},a_{t}) , t 0 t \geq 0

Expected discounted reward

  期望折扣奖励 η \eta 可被表示为:

η ( π ) = E s 0 , a 0 , [ t = 0 γ t r ( s t ) ] \eta(\pi) = \mathbb{E}_{s_{0},a_{0},\cdots} \left[ \sum_{t=0}^{\infty} \gamma^{t} r(s_{t}) \right]

  其中, s 0 ρ 0 ( s 0 ) s_{0} \sim \rho_{0}(s_{0}) a t π ( a t s t ) a_{t} \sim \pi(a_{t}|s_{t}) s t + 1 P ( s t + 1 s t , a t ) s_{t+1} \sim P(s_{t+1}|s_{t},a_{t})

  由于我们要比较更新前后的两个策略,从而保证策略一直在进步,所以作者这里是将新老策略写到了一个公式中:

η ( π ~ ) = η ( π ) + s ρ π ~ ( s ) a π ~ ( a s ) A π ( s , a ) \eta(\tilde{\pi})=\eta(\pi)+\sum_{s} \rho_{\tilde{\pi}}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a)

  其中 ρ π \rho_{\pi} be the (unnormalized) discounted visitation frequencies (任意时刻状态 s s 的访问概率和),其展开形式表示为:

ρ π ( 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) + \cdots

  如果能保证 s ρ π ~ ( s ) a π ~ ( a s ) A π ( s , a ) \sum_{s} \rho_{\tilde{\pi}}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a) 大于0,那新的策略下的期望折扣奖励就一直是在进步的。那这里就有两个问题了,1. 上述新老策略写在一个公式里面的证明呢?2. 如何去保证后面的附加项大于0?

  证明

E τ π ~ [ t = 0 γ t A π ( s t , a t ) ] = E τ π ~ [ t = 0 γ t ( R ( s t , a t , s t + 1 ) + γ V π ( s t + 1 ) V π ( s t ) ) ] = η ( π ~ ) + E τ π ~ [ t = 0 γ t + 1 V π ( s t + 1 ) t = 0 γ t V π ( s t ) ] = η ( π ~ ) + E τ π ~ [ t = 1 γ t V π ( s t ) t = 0 γ t V π ( s t ) ] = η ( π ~ ) E τ π ~ [ V π ( s 0 ) ] = η ( π ~ ) η ( π ) \begin{array}{l} \underset{\tau \sim \tilde{\pi}}{\mathrm{E}}\left[\sum_{t=0}^{\infty} \gamma^{t} A^{\pi}\left(s_{t}, a_{t}\right)\right] \\ =\underset{\tau \sim \tilde{\pi}}{\mathrm{E}}\left[\sum_{t=0}^{\infty} \gamma^{t}\left(R\left(s_{t}, a_{t}, s_{t+1}\right)+\gamma V^{\pi}\left(s_{t+1}\right)-V^{\pi}\left(s_{t}\right)\right)\right] \\ =\eta\left(\tilde{\pi}\right)+\underset{\tau \sim \tilde{\pi}}{\mathrm{E}}\left[\sum_{t=0}^{\infty} \gamma^{t+1} V^{\pi}\left(s_{t+1}\right)-\sum_{t=0}^{\infty} \gamma^{t} V^{\pi}\left(s_{t}\right)\right] \\ =\eta\left(\tilde{\pi}\right)+\underset{\tau \sim \tilde{\pi}}{\mathrm{E}}\left[\sum_{t=1}^{\infty} \gamma^{t} V^{\pi}\left(s_{t}\right)-\sum_{t=0}^{\infty} \gamma^{t} V^{\pi}\left(s_{t}\right)\right] \\ =\eta\left(\tilde{\pi}\right)-\underset{\tau \sim \tilde{\pi}}{\mathrm{E}}\left[V^{\pi}\left(s_{0}\right)\right] \\ =\eta\left(\tilde{\pi}\right)-\eta(\pi) \end{array}

  由此我们只剩下了第二点,从某个策略 π \pi 出发,通过计算找到一个策略 π ~ \tilde{\pi} ,使得:

s ρ π ~ ( s ) a π ~ ( a s ) A π ( s , a ) 0 \sum_{s} \rho_{\tilde{\pi}}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a) \geq 0

  即可使得 η ( π ~ ) η ( π ) \eta(\tilde{\pi}) \geq \eta(\pi) ,也就是说策略改变之后,整体的收益也会增加,从而实现单调递增。那现在所有的问题都转化到了如何使得 s ρ π ~ ( s ) a π ~ ( a s ) A π ( s , a ) 0 \sum_{s} \rho_{\tilde{\pi}}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a) \geq 0

Function L \mathcal{L}

   s ρ π ~ ( s ) a π ~ ( a s ) A π ( s , a ) \sum_{s} \rho_{\tilde{\pi}}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a) 在实际中几乎是不可行的,因为公式中包含 ρ π ~ ( s ) \rho_{\tilde{\pi}}(s) ,也就是说我们需要按照新的策略 π ~ \tilde{\pi} 与环境交互得到状态 s s 的访问频率,但是这个新的策略 π ~ \tilde{\pi} 是我们需要去求解的策略。也就是说如果要做的话,我们需要先确定新的策略 π ~ \tilde{\pi} ,然后使用这个新的策略得到一定量样本,并最终通过这些样本统计判断这个策略能够满足上述要求,使得策略递增。我们需要不断地去尝试每一个可能的新策略。显然这种做法非常低效。

  于是需要去找与上述公式的近似且可解的形式,定义function L \mathcal{L}

L π ( π ~ ) = η ( π ) + s ρ π ( s ) a π ~ ( a s ) A π ( s , a ) \mathcal{L}_{\pi}(\tilde{\pi}) =\eta({\pi}) + \sum_{s} \rho_{\pi}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a)

  与之前的公式:

η ( π ~ ) = η ( π ) + s ρ π ~ ( s ) a π ~ ( a s ) A π ( s , a ) \eta(\tilde{\pi})=\eta(\pi)+\sum_{s} \rho_{\tilde{\pi}}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a)

  对比,我们可以发现,两者的不同仅仅在于状态访问概率 ρ π ~ ( s ) \rho_{\tilde{\pi}}(s) ρ π ( s ) \rho_{\pi}(s) 的不同。那 L π ( π ~ ) \mathcal{L}_{\pi}(\tilde{\pi}) 能否满足要求呢?其实两者的数值和导数方向都是相同的,那么用 L π ( π ~ ) \mathcal{L}_{\pi}(\tilde{\pi}) 代替原始目标函数也是可以的,要求更新的幅度不要太大就好。

  上面说了这么多,其实就是为了说明我们更新的幅度不要太大,因为更新大了之后,上述近似函数就无法成立, L π ( π ~ ) \mathcal{L}_{\pi}(\tilde{\pi}) 无法成立的话,你所拿策略 π \pi 采样得到的样本就没用了,因为实际上样本是要去新的策略 π ~ \tilde{\pi} 里面去采样的,只是因为做了近似才可以用老的策略 π \pi 去采样。所以那我们怎么来保证其更新幅度不要太大呢

例图

  从之前的分析中可以知道 L \mathcal{L} 是下界函数(bound function) M M 中的一部分, M M 中的另外一项是KL散度(KL-divergence):

D K L ( P Q ) = E x log P ( x ) Q ( x ) D_{KL}(P|Q|) = \mathbb{E}_{x} \text{log} \frac{P(x)}{Q(x)}

  因此我们把策略模型看成一个概率分布,使用KL散度表示两个分布的距离。那两者之间有什么关系呢?原论文中作者用两页纸证明了 η \boldsymbol{\eta} 的下界:

η ( π n e w ) L π o l d ( π n e w ) 4 ε γ ( 1 γ ) 2 α 2 \eta (\pi_{new}) \geq L_{\pi_{old}}(\pi_{new}) -\frac{4 \varepsilon \gamma}{(1-\gamma)^{2}} \alpha^{2}

  其中 ε = max s , a A π ( s , a ) \varepsilon = \max_{s,a}|A_{\pi}(s,a)| α = D T V m a x ( π o l d , π n e w ) \alpha = D_{TV}^{max}(\pi_{old},\pi_{new}) D T V m a x ( π , π ~ ) = m a x D T V ( π ( s ) π ~ ( s ) ) D_{TV}^{max}(\pi, \tilde{\pi} ) = max D_{TV}(\pi(\cdot|s)||\tilde{\pi}(\cdot|s)) D T V ( p q ) = 1 2 i p i q i D_{TV}(p||q) = \frac{1}{2} \sum_{i}|p_{i}-q_{i}|

   D T V D_{TV} total variation divergence,由于:

D T V ( p q ) 2 D K L ( p q ) D_{TV}(p||q)^{2} \leq D_{KL}(p||q)

  得到新的下界函数(lower bound function):

η ( π ~ ) L π ( π ~ ) C D K L m a x ( π , π ~ ) \eta (\tilde{\pi}) \geq L_{\pi}(\tilde{\pi}) -CD_{KL}^{max}(\pi,\tilde{\pi})

  其中 C = 4 ε γ ( 1 γ ) 2 C = \frac{4 \varepsilon \gamma}{(1-\gamma)^{2}} D K L m a x ( π , π ~ ) = m a x s D K L ( π ( s ) π ~ ( s ) ) D_{KL}^{max}(\pi,\tilde{\pi}) = max_{s}D_{KL}(\pi(\cdot|s) || \tilde{\pi}(\cdot |s))

Monotonically improving guarantee

  What we really prove here is the new policy generated from optimizing M M will have a guarantee that it will perform better in η \eta (the real expected rewards) than the old policy. Since there are only finite policies, the continuous improvement will only lead us to a local or a global optimal point.

  令 M i ( π ) = L π i ( π ) C D K L m a x ( π i , π ) M_{i}(\pi) = L_{\pi_{i}}(\pi) -CD_{KL}^{max}(\pi_{i},\pi) ,有 η ( π i + 1 ) M i ( π i + 1 ) \eta({\pi_{i+1}}) \geq M_{i}(\pi_{i+1}) η ( π i ) = M i ( π i ) \eta({\pi_{i}}) = M_{i}(\pi_{i}) ,所以可以得到:

η ( π i + 1 ) η ( π i ) M i ( π i + 1 ) M i ( π i ) \eta({\pi_{i+1}}) - \eta({\pi_{i}}) \geq M_{i}(\pi_{i+1}) - M_{i}(\pi_{i})

  则 π i + 1 = a r g max π M i ( π ) \pi_{i+1} =arg\max_{\pi}M_{i}(\pi) 时,期望折扣奖励将在下一次迭代被提升。

  由此我们可以得到保证策略提升的算法。Here is the iteration algorithm that guarantees that the new policy will always perform better than the current one.

Policy iteration with Monotonically Improving Guarantee

  此时算法的目标函数变为:

m a x i m i z e π ~ [ L π ( π ~ ) C D K L m a x ( π , π ~ ) ] maximize_{\tilde{\pi}}[L_{\pi}(\tilde{\pi}) -CD_{KL}^{max}(\pi,\tilde{\pi})]

  上式过于保守,将其做一些转变,得到有约束条件的优化目标:

m a x i m i z e π L π o l d ( π ) maximize_{\pi}L_{\pi_{old}}(\pi)

s . t . D K L m a x ( π o l d , π ) δ s.t. D_{KL}^{max}(\pi_{old},\pi) \leq \delta

  在公式中需要对最大值进行约束,而最大值表示为KL散度上界,这实际上相当于对所有状态的KL散度进行约束,这样约束条件会变得多而复杂,将最大值变成均值理论上有所放松,但实际效果还好,于是有了:

最大值约束变为平均值约束

  优化目标 L π ( π ~ ) \mathcal{L}_{\pi}(\tilde{\pi}) 为:

L π ( π ~ ) = η ( π ) + s ρ π ( s ) a π ~ ( a s ) A π ( s , a ) \mathcal{L}_{\pi}(\tilde{\pi}) =\eta({\pi}) + \sum_{s} \rho_{\pi}(s) \sum_{a} \tilde{\pi}(a | s) A_{\pi}(s, a)

  而其中 π ~ ( a s ) \tilde{\pi}(a | s) 与新策略有关,无法对其采样,由此我们引入重要性采样:

a π θ ( a s n ) A θ old  ( s n , a ) = E a q [ π θ ( a s n ) q ( a s n ) A θ old  ( s n , a ) ] \sum_{a} \pi_{\theta}\left(a | s_{n}\right) A_{\theta_{\text {old }}}\left(s_{n}, a\right)=\mathbb{E}_{a \sim q}\left[\frac{\pi_{\theta}\left(a | s_{n}\right)}{q\left(a | s_{n}\right)} A_{\theta_{\text {old }}}\left(s_{n}, a\right)\right]

  the objective can be rewritten as:

maximize θ E s ρ θ old  , a q [ π θ ( a s ) q ( a s ) A ^ θ old  ( s , a ) ]  subject to  E s ρ θ old  [ D K L ( π θ old  ( s ) π θ ( s ) ) ] δ \begin{array}{c} \underset{\theta}{\operatorname{maximize}} \mathbb{E}_{s \sim \rho_{\theta_{\text {old }}}, a \sim q}\left[\frac{\pi_{\theta}(a | s)}{q(a | s)} \hat{A}_{\theta_{\text {old }}}(s, a)\right] \\ \text { subject to } \mathbb{E}_{s \sim \rho_{\theta_{\text {old }}}}\left[D_{\mathrm{KL}}\left(\pi_{\theta_{\text {old }}}(\cdot | s) \| \pi_{\theta}(\cdot | s)\right)\right] \leq \delta \end{array}

  With Lagrangian duality, a constraint for an objective function can be integrated back to the objective function with a multiplier. Both are mathematically the same(利用拉格朗日对偶,把约束项提到目标函数中去):

Lagrangian duality处理

直觉的看法

  在之前的Gradient ascent方法中都是选择了梯度的方向,如下图中的左图所示,但是更新步长如果选取地不好很容易掉入深渊:

Intuition

  在TRPO中限制了更新步长,并且在数学上证明了会收敛到局部最优或者全局最优:

在这里插入图片描述

  • 参考文献
  • https://medium.com/@jonathan_hui/rl-the-math-behind-trpo-ppo-d12f6c745f33
  • 强化学习精要核心算法与Tensorflow实现。

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

发布了185 篇原创文章 · 获赞 168 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/weixin_39059031/article/details/104584051