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

本文首发于行者AI

引言

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

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

\pi表示一个随机策略函数\pi: S\times A\rightarrow [0,1],例如\pi(s,a)=0.5表示在状态s处选择动作a的概率为0.5。令\eta(\pi)表示基于策略\pi的长期期望折扣奖励:\eta(\pi) = \mathbb{E}_{s_0, a_0,\ldots}[\sum\limits_{t=0}^{\infty}\gamma^t r(s_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)

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

(1)状态动作价值函数
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})]
表示的是在状态s_t处执行动作a_t后获得的长期期望折扣奖励。

(2)状态价值函数:
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)]
表示从状态s_t开始获得的长期期望折扣奖励。

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

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

1.TRPO的理论分析

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

先来看一下基于策略\pi的长期折扣奖励
\eta({\pi}) = \mathbb{E}_{s_0,a_0,\ldots}[\sum\limits_{t=0}^{\infty}\gamma^t r(s_t)]
对于另一个策略\tilde{\pi},两个策略之间的长期折扣奖励函数\eta(\tilde{\pi})\eta(\pi)之间的关系为:
\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)
其中A_\pi(s_t,a_t)为优势函数,A_\pi(s_t,a_t) = Q_\pi(s_t,a_t) - V_\pi(s_t)。(证明过程见文章后面附录证明4.1)。

上述公式要注意的点是s_0,a_0,\ldots\sim\tilde{\pi}表示轨迹中的状态和动作都是基于策略\tilde{\pi}采样得到的,而A_{\pi}(s_t,a_t)表示的是策略\pi的优势函数。
为了方便公式的书写和后续求导的计算,定义
\rho_\pi(s) = P(s_0=s) + \gamma P(s_1=s) + \gamma^2 P(s_2=s) + \ldots
则公式(3.1)可以改写为:
\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)
证明过程见文章后面附录证明4.2。

1.2 替代函数的建立

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

由于公式(3.2)中的\rho_{\tilde{\pi}}\tilde{\pi}有强烈的依赖性,但是在更新之前我们还不知道策略\tilde{\pi}的具体形式,所以我们考虑找到一个\eta(\tilde{\pi})的替代函数:
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)
这个替代函数的作用是什么呢,可以帮助我们得到\eta函数的哪些性质呢?把策略\pi表示为带有参数\theta的随机策略\pi=\pi_\theta,给出下面定理:L_{\pi_{\theta_0}}(\pi_\theta)\eta(\pi_\theta)\theta_0处一阶近似,用公式表示为:
\left\{ \begin{aligned} L_{\pi_{\theta_0}}(\pi_{\theta_0})& = \eta(\pi_{\theta_0})\\ \nabla_{\theta}L_{\pi_{\theta_0}}(\pi_\theta)|_{\theta=\theta_0}& = \nabla_\theta\eta(\pi_\theta)|_{\theta=\theta_0}\\ \end{aligned} \right.
证明过程见文章后面附录证明4.3。

上述公式的第二个等式可以告诉我们:在\theta = \theta_0附近,\eta(\pi_\theta) = L_{\pi_{\theta_0}}(\pi_\theta)的曲线的变化趋势相同,因为一阶导数的意义就是曲线的变化趋势。又因为这两个函数在\theta = \theta_0处的值相等(公式的第一个等式),所以在\theta = \theta_0的附近,可以通过优化L_{\pi_{\theta_0}}(\pi_\theta)来达到优化\eta(\pi_\theta)的目的,注意是:\theta = \theta_0的附近!!!附近!!!下面给出一个一阶近似的例子:

[图片上传失败...(image-d749f1-1660016208545)]
如图所示:函数f(x) = x-1 与 函数g(x) = lnxx=1处是一阶近似的,即f(1) = g(1), f'(1) = g'(1),所以这两个函数的曲线的变化趋势在x=1处是近乎相同的。

\pi_{old}来表示更新前的策略,定义\pi' = argmax_{\pi'}L_{\pi_{old}}(\pi')
我们采用一种软更新的方式对策略进行更新,更新公式为
\pi_{new} = (1-\alpha)\pi_{old} + \alpha\pi' \ \ \ \ \ \ \ \ (3.4)
其中\pi_{new}就表示更新之后的策略,\alpha为更新步长。

部分读者在阅读到这里的时候可能会产生以下疑问:为什么不直接把\pi'直接当作更新之后的策略呢?L_{\pi_{old}}(\pi')\ge L_{\pi_{old}}(\pi_{old})不是可以推导出\eta(\pi')\ge\eta(\pi_{old})吗?

解答:因为这是一种迭代更新方式,\pi'只是给出了一个可以优化\pi_{old}的方向,我们要做的是将\pi_{old}\pi'的那个方向迭代,而不是直接将\pi'当作更新之后的策略;另外L_{\pi_{old}}(\pi')\ge L_{\pi_{old}}(\pi_{old})并不可以直接推导出\eta(\pi')\ge\eta(\pi_{old}),因为\pi'并不一定在\pi_{old}的附近!

1.3 TRPO算法的推出

再来回顾一下我们最初的目的:找到一个合适的步长,使得每一个更新得到的新的策略\pi_{new}要比更新前的策略\pi_{old}好。那么使用软更新方式得到的策略\pi_{new}是否比更新前的策略\pi_{old}好呢,换句话说,是否成立\eta(\pi_{new})\ge \eta(\pi_{old})呢?其实\pi' = argmax_{\pi'}L_{\pi_{old}}(\pi')给我们的优化提供了方向,我们的关键就在于如何选择合适的步长使得更新之后的策略一定是比更新之前的策略好。再思考一下,其实一定有L_{\pi_{old}}(\pi_{new}) \ge L_{\pi_{old}}(\pi_{old}), 因为\pi_{new}是从\pi_{old}朝着\pi'的方向迭代的,并且L_{\pi_{old}}(\pi')\ge L_{\pi_{old}}(\pi_{old})。再回想一下前面我们说:在\pi = \pi_{old}附近,L_{\pi_{old}}(\pi)\ge L_{\pi_{old}}(\pi_{old})等价于\eta(\pi)\ge \eta(\pi_{old}), 所以我们只需要把\pi_{new}限制在\pi_{old}附近即可,可以通过放在惩罚项或者约束上进行限制。如何限制两个策略的差异性呢,可以使用两个策略的KL散度:D_{KL}^max(\theta_{old}, \theta_{new}),因为KL散度是用来度量两个概率分布相似度的指标。其实从这个分析我们就可以得到最终的TRPO算法了,原论文中给出了严格的数学推导,我们大概介绍一下思路(可以不看):

\pi_{new}是按照更新公式(3.4)得到的新策略,从论文[1]中可以得到下面不等式成立:
\eta(\pi_{new})\ge L_{\pi_{old}}(\pi_{new}) - \frac{2\epsilon \gamma}{(1-\gamma)^2}\alpha^2 \ \ \ \ \ \ \ (3.5)
其中\epsilon = max_s|\mathbb{E}_{a\sim \pi'(a|s)}[A_\pi(s,a)]|

我们可以令\alpha = D^{max}_{TV}(\pi_{old}, \pi_{new}), 进而成立:
\eta(\pi_{new})\ge L_{\pi_{old}}(\pi_{new}) - \frac{4\epsilon\gamma}{(1-\gamma)^2}\alpha^2
其中\epsilon = max_{s,a}|A_\pi(s,a)|
再根据不等式:D_{TV}(p||q)^2\le D_{KL}(p||q),令D_{KL}^{max}(\pi, \tilde{\pi}) = max_s D_{KL}(\pi(·|s)||\tilde{\pi}(·|s)) 成立:
\eta(\tilde{\pi}) \ge L_\pi(\tilde{\pi}) - CD_{KL}^{max}(\pi, \tilde{\pi})
其中C = \frac{4\epsilon\gamma}{(1-\gamma)^2}

给出下面策略更新算法:

[图片上传失败...(image-75b3f0-1660016170785)]

假设我们根据上面这个算法得出一个策略序列\pi_0, \pi_1, \ldots,下面证明该策略序列是越来越好的,即\eta(\pi_0)\le\eta(\pi_1)\le\ldots

M_i(\pi) = L_{\pi_i}(\pi) - CD_{KL}^{max}(\pi_i, \pi), 则成立:
\eta(\pi_{i+1})\ge M_i(\pi_{i+1})
\eta(\pi_i) = M_i(\pi_i)
等式成立是因为当\tilde{\pi} = \pi时,D_{KL}^{max}(\pi, \tilde{\pi}) = 0

所以成立:\eta(\pi_{i+1}) - \eta(\pi_i) \ge M_i(\pi_{i+1}) - M(\pi_i)

所以在第i次迭代时,M_i(\pi)可以作为\eta(\pi)的替代函数,从而得到的策略序列是越来越好的。进而每一个更新过后的策略\pi_{new}都好于更新前的策略\pi_{old}。目的达到。
如果这个数学证明没看懂没有关系,可以直接通过之前的语言分析理解TRPO算法。

为了方便将\pi_{\theta_{old}}写作\theta_{old}, 在接下来的分析中,我们都考虑带有参数\theta的策略\pi_\theta(a|s)。通过之前的分析,从而我们可以通过优化下面的式子来达到优化\eta(\pi)的目的:
maximize_\theta\ \ [L_{\theta_{old}}(\theta) - CD_{KL}^max(\theta_{old}, \theta)]
但是有C作为惩罚系数,会导致每次的D_{KL}^max(\theta_{old},\theta)的值特别小,从而导致更新的步子很小,降低更新速度,所以我们考虑将惩罚项变为约束项:

\begin{aligned} maximize_\theta&\ \ L_{\theta_{old}}(\theta)\\ subject\ \ to&\ \ D_{KL}^{max}(\theta_{old}, \theta)\le \delta \end{aligned}

用语言理解就是在以\theta_0为球(圆)心,以\delta为半径的区域中搜索可以提高L_{\pi_{old}}(\pi)(等价于提高\eta(\pi))的策略\pi。这就是TRPO算法。

注意到L_{\theta_{old}}(\theta) = \eta(\theta_{old}) + \sum\limits_s\rho_{\theta_{old}}(s)\sum\limits_a\pi_\theta(a|s)A_{\theta_{old}}(s,a), 其中\eta(\theta_{old})相对于\theta来说是常数,可以去掉,因此上述公式变为
\begin{aligned} maximize_\theta&\ \ \sum\limits_s\rho_{\theta_{old}}\sum\limits_a\pi_\theta(a|s)A_{\theta_{old}}(s,a)\\ subject\ \ to&\ \ D_{KL}^{max}(\theta_{old}, \theta)\le \delta \end{aligned}

1.4 重要度采样

在最开始推导公式(3.1)的时候,我们当时说了等号右边的s,a基于策略\tilde{\pi}采样的,但是在真实世界中,因为在更新前\tilde{\pi}是未知的,所以我们没法基于\tilde{\pi}采样,所以我们考虑使用重要度采样,假设我们使用策略q(a|s)进行采样,那么我们的优化函数要有所变化:
\begin{aligned} \sum\limits_s\rho_{\theta_{old}}(s)\sum\limits_a\pi(a|s)A_\pi(s,a)&=\sum\limits_s\rho_{\theta_{old}}(s)\sum\limits_aq(a|s)\frac{\pi_\theta(a|s)}{q(a|s)}A_{\theta_{old}}(s,a)\\ &=\sum\limits_s\rho_{\theta_{old}}(s)\mathbb{E}_{a\sim q}[\frac{\pi_\theta(a|s)}{q(a|s)}A_{\theta_{old}}(s,a)]\\ &=\mathbb{E}_{s\sim \rho_{\theta_{old}},a\sim q}[A_{\theta_{old}}(s,a)] \end{aligned}

所以最终TRPO的更新算法变为:
\begin{aligned} maximize_\theta&\ \ \mathbb{E}_{s\sim \rho_{\theta_{old}},a\sim q}[A_{\theta_{old}}(s,a)]\\ subject\ \ to&\ \ D_{KL}(\theta_{old}, \theta)\le \delta \end{aligned}
注意:这里的s还是服从\rho_{\theta_{old}}的概率,即\rho_{\theta_{old}}(s)中的动作a的概率还是基于策略\theta_{old}!!这里是大家比较容易理解错误的地方,误以为s公式中的a是基于采样策略q的。并且这里的采样概率q(a|s)可以是任意的,只用来采样而已!!后来TRPO算法在做的时候直接将\pi_{\theta_{old}}(a|s)当作采样策略q(a|S)

2. PPO算法的理论分析

2.1 TRPO算法的局限性

但是采样策略q真的可以任意吗?太任意会出现什么问题呢?我们来看下面这个例子:

p(x)是真实的分布概率,q(x)是采样时候使用的概率,显然二者的差异很大。设曲线p(x),q(x),f(x)交点的横坐标为x=0,所以在采样的时候,我们大多采到的是x>0的点,因为q(x)在正半轴的概率值更大,所以我们最终得到的\mathbb{E}_x[f(x)]的值为正值,但是真实的状况是,x大多分布在负半轴,真实的\mathbb{E}_x[f(x)]应该为负值,这就是由于采样概率和真实概率差距过大导致的误差。

所以我们还得限制采样策略q(a|s)和更新策略\pi(a|s)的相似度,使得他们尽可能的相像,这就是PPO算法要做的事情了。

2.2 PPO算法

第一种思路:记得我们在分析TRPO算法中,使用了KL散度限制了策略\pi_{\theta}(a|s)和策略\pi_{\theta_{old}}(a|s)的相似度,使得他们两个的差距不能太大,所以我们考虑直接用\pi_{\theta_{old}}(a|s)当作采样策略q(a|s),所以这就同时限制了采样策略和策略\pi_\theta(a|s)的差距,一举两得,这就得到了PPO算法:
\begin{aligned} maximize_\theta&\ \ \mathbb{E}_{s,a\sim \theta_{old}}[A_{\theta_{old}}(s,a) - \beta D_{KL}(\theta_{old}, \theta)] \end{aligned}
注意到这里的\rho(s)公式中的a的概率也是基于策略\theta_{old}的。

2.3 PPO2算法

第二种思路:在优化公式中对q(a|s)\pi_{\theta}(a|s)进行限制,采用了截断函数,当两个函数的比值过大时,用1+\epsilon截断,当两个函数的比值过小时,采用1-\epsilon截断。PPO2算法如下:
\begin{aligned} maximize_\theta&\ \ \mathbb{E}_{s\sim \rho_{\theta_{old}},a\sim q(a|s)}min(\frac{\pi_\theta(a|s)}{q(a|s)}A_{\theta_{old}}(s,a), clip(\frac{\pi_\theta(a|s)}{q(a|s)}, 1-\epsilon, 1+\epsilon)A_{\theta_{old}}(a|s)) \end{aligned}
其实这里的采样策略q(a|s)是可以使用任意采样策略的,可能是为了效果更好,在PPO的论文中,依然按照TRPO算法的方式,将\pi_{\theta_{old}}(a|s)作为采样策略q(a|s):
\begin{aligned} maximize_\theta&\ \ \mathbb{E}_{s,a\sim \theta_{old}}min(\frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)}A_{\theta_{old}}(s,a), clip(\frac{\pi_\theta(a|s)}{\pi_{\theta_{old}}(a|s)}, 1-\epsilon, 1+\epsilon)A_{\theta_{old}}(a|s)) \end{aligned}

3.参考文献

[1] Kakade,Sham and Langford,John. Approximately optimal approximate reinfocement learning(https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=EAB75A180B3AE59A7A516BF93A00863C?doi=10.1.1.7.7601&rep=rep1&type=pdf). In ICML, volume2,pp.267-247,2002.

[2] R.Sutton, D.McAllester, S.Singh, and Y.Mansour. Policy gradient methods for reinforcement learning with function approximation(https://homes.cs.washington.edu/~todorov/courses/amath579/reading/PolicyGradient.pdf). Neural Information Processing Systemsm,13,2000.

[3] J.Schulman, S.Levine, P.Moritz, M.I.Jordan, and P.Abbeel."Trust region policy optimization"(https://arxiv.org/abs/1502.05477). In: CoRR, ans/1502.05477(2015).

[4] Proximal Policy Optimization Algorithms](https://arxiv.org/abs/1707.06347), Schulman et al. 2017

4.附录证明

4.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)]

\eta(\pi) = \mathbb{E}_{s_0, a_0,\ldots}[\sum\limits_{t=0}^{\infty}\gamma^t r(s_t)] = \mathbb{E}[V_\pi(s_0)]
\begin{aligned} \mathbb{E}_{s_0,a_0,\ldots\sim\tilde{\pi}}[\sum\limits_{t=0}^\infty\gamma^t A_\pi(s_t,a_t)] &=\mathbb{E}_{s_0,a_0,\ldots\sim\tilde{\pi}}[\sum\limits_{t=0}^\infty\gamma^t(Q_\pi(s_t,a_t)-V_\pi (s_t))]\\ &=\mathbb{E}_{s_0,a_0,\ldots\sim\tilde{\pi}}[\sum\limits_{t=0}^\infty\gamma^t(r(s_t)+\gamma V_\pi (s_{t+1})-V_\pi (s_t))]\\ &=\mathbb{E}_{s_0,a_0,\ldots\sim\tilde{\pi}}[-V_\pi(s_0) + \sum\limits_{t=0}^\infty\gamma^t r(s_t)]\\ &=-\mathbb{E}_{s_0}[V_\pi(s_0)] + \mathbb{E}_{s_0,a_0,\ldots\sim\tilde{\pi}}[\sum\limits_{t=0}^\infty\gamma^t r(s_t)]\\ &=-\eta(\pi) + \eta(\tilde{\pi}) \end{aligned}

4.2 证明:\eta(\tilde{\pi}) =\eta(\pi) + \sum\limits_s\rho_{\tilde{\pi}}(s)\sum\limits_a\tilde{\pi}(a|s)A_{\pi}(s,a)

\begin{aligned} \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)]\\ &=\eta(\pi) + \sum\limits_{t=0}^\infty\sum\limits_sP(s_t=s|\tilde{\pi})\sum\limits_a\tilde{\pi}(a|s)\gamma^tA_\pi(s,a)\\ &=\eta(\pi) + \sum\limits_s\sum\limits_{t=0}^\infty\gamma^tP(s_t=s|\tilde{\pi})\sum\limits_a\tilde{\pi}(a|s)A_\pi(s,a)\\ &=\eta(\pi) + \sum\limits_s\rho_{\tilde{\pi}}(s)\sum\limits_a\tilde{\pi}(a|s)A_{\pi}(s,a) \end{aligned}

4.3 证明:

\left\{ \begin{aligned} L_{\pi_{\theta_0}}(\pi_{\theta_0})& = \eta(\pi_{\theta_0})\\ \nabla_{\theta}L_{\pi_{\theta_0}}(\pi_\theta)|_{\theta=\theta_0}& = \nabla_\theta\eta(\pi_\theta)|_{\theta=\theta_0}\\ \end{aligned} \right.
L_\pi(\tilde{\pi}) = \eta(\pi) + \sum\limits_s\rho_\pi(s)\sum\limits_a\tilde{\pi}(a|s)A_\pi(s,a)
\tilde{\pi} = \pi时:
L_\pi(\pi) = \eta(\pi) + \sum\limits_s\rho_\pi(s)\sum\limits_a\tilde{\pi}(a|s)A_\pi(s,a)
对于每一个s
\begin{aligned} &\sum\limits_a\pi(a|s)A_\pi(s,a)\\ =&\mathbb{E}_a[A_\pi(s,a)]\\ =&\mathbb{E}_a[Q_\pi(s,a) - V_\pi(s)]\\ =&\mathbb{E}_a[Q_\pi(s,a) - \mathbb{E}_a[Q_\pi(s,a)]]\\ =&\mathbb{E}[Q_\pi(s,a)] - \mathbb{E}_a[\mathbb{E}_a[Q_\pi(s,a)]]\\ =&\mathbb{E}[Q_\pi(s,a)] - \mathbb{E}[Q_\pi(s,a)]\\ =& 0 \end{aligned}
上述推导过程中第五行到第六行的推导过程中的\mathbb{E}_a[\mathbb{E}_a[Q_\pi(s,a)]] = \mathbb{E}_a[Q_\pi(s,a)] 是因为期望的期望等于期望,从另一个角度来看这个等式,\mathbb{E}_a[Q_\pi(s,a)]的结果与a无关,相当于一个常数,所以再对a求期望的话,相当于对常数求期望,等于常数本身。

再证明公式(3.4)的第二个等式:\nabla_{\theta}L_{\pi_{\theta_0}}(\pi_\theta)|_{\theta=\theta_0} = \nabla_\theta\eta(\pi_\theta)|_{\theta=\theta_0}

我们有:L_{\pi_{\theta_0}}(\pi_\theta) = \eta(\pi_{\theta_0}) + \sum\limits_s\rho_{\pi_{\theta_0}}(s)\sum\limits_a\pi_\theta(a|s)A_{\pi_{\theta_0}}(s,a)
两边对\theta求导(注意任何和\theta_0有关的式子在对\theta求导的时候都视为常数)得:
\nabla_\theta L_{\pi_{\theta_0}}(\pi_\theta) = \sum\limits_s\rho_{\pi_{\theta_0}}(s)\sum\limits_a\nabla_\theta\pi_\theta(a|s)A_{\pi_{\theta_0}}(s,a)
进而成立:
\nabla_\theta L_{\pi_{\theta_0}}(\pi_\theta)|\theta = \theta_0 = \sum\limits_s\rho_{\pi_{\theta_0}}(s)\sum\limits_a\nabla_\theta\pi_\theta(a|s)|_{\theta = \theta_0}A_{\pi_{\theta_0}}(s,a)

由论文[2]可知:
\nabla_\theta\eta(\pi_\theta) = \sum\limits_s\rho_{\pi_\theta}(s)\sum\limits_a\nabla_\theta\pi_\theta(a|s)Q_{\pi_\theta}(s,a)

又因为
\begin{aligned} &\sum\limits_s\rho_{\pi_\theta}(s)\sum\limits_a\nabla_\theta\pi_\theta(a|s)V_{\pi_\theta}(s)\\ =&\sum\limits_s\rho_{\pi_\theta}(s)V_{\pi_\theta}(s)\sum\limits_a\nabla_\theta\pi_\theta(a|s)\\ =&\sum\limits_s\rho_{\pi_\theta}(s)V_{\pi_\theta}(s)\nabla_\theta\sum\limits_a\pi_\theta(a|s)\\ =&0 \end{aligned}
上述推导过程中第一行到第二行是因为V_{\pi_\theta}(s)a无关,所以可以提到\sum\limits_a的前面。第二个式子到第三个式子是因为求和的导数等于导数的求和。第三个式子到第四个式子是因为对于每个s来说都成立:\sum\limits_a\pi_\theta(a|s)=1,然后1对\theta求导等于0,即\nabla_\theta\sum\limits_a\pi_\theta(a|s) = \nabla_\theta1 = 0

所以可得:
\begin{aligned} \nabla_\theta\eta(\pi_\theta)&=\sum\limits_s\rho_{\pi_\theta}(s)\nabla_\theta\pi(a|s)Q_\pi(s,a)\\ &=\sum\limits_s\rho_{\pi_\theta}(s)\nabla_\theta\pi_\theta(a|s)[Q_\pi(s,a) - V_\pi(s)]\\ &=\sum\limits_s\rho_{\pi_\theta}(s)\nabla_\theta\pi_\theta(a|s)A_{\pi_\theta}(s,a) \end{aligned}
进而成立:
\begin{aligned} \nabla_\theta\eta(\pi_\theta)|_{\theta = \theta_0}&=\sum\limits_s\rho_{\pi_{\theta_0}}(s)\nabla_{\theta}\pi_\theta(a|s)|_{\theta = \theta_0}A_{\pi_{\theta_0}}(s,a) = \nabla_\theta L_{\pi_{\theta_0}}(\pi_\theta)|_{\theta=\theta_0} \end{aligned}
命题得证。

我们是行者AI,我们在“AI+游戏”中不断前行。

前往公众号 【行者AI】,和我们一起探讨技术问题吧!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容