深入浅出理解TRPO算法
前言: 策略梯度方法博大精深,但策略梯度算法的硬伤就在于更新步长 α \alpha α 很难确定,当步长不恰当时,更新参数所对应的策略是一个更不好的策略,当利用这个更不好的策略进行采样学习时,再次更新的参数会更差,因此很容易导致越学越差,甚至崩溃学不到东西。所以,一个合适的步长选择对于强化学习来说是非常关键的,目前的大部分强化学习算法很难保证单调收敛,而TRPO算法则直面步长问题,并通过数学给出了一个单调的策略改善方法。
由于TRPO中数学推导特别复杂,同时PPO(Proximal Policy Optimization, 近端策略优化)算法【后期单独讲解】对其过程优化的更加简单的缘故一直觉得学的不太到位,因此本篇博客综合了很多大牛的技术博客, 继续写完了TRPO算法的学习,以便于把算法学习明白,在此向大神们表示膜拜与感谢!
TRPO(Trust Region Policy Optimization, 置信域策略梯度优化)算法是现OpenAI科学家John Schulman在2015年2月提出的一种策略优化算法,并且发表于《第31届ICML》顶会上,可以说是非常独特新颖,同时其在2016年的博士论文中将该算法作为第三章(page18-44)进行了单独阐述。下面我们思考一个问题,当我们在使用梯度下降法求解的时候,步子大容易错过某些最优值,步子小收敛速度非常慢,如图所示
在梯度上升法中,我们判断最陡峭的方向,之后朝着那个方向前进。但是如果学习率(learning rate,步长)太高的话,这样的行动也许让我们远离真正的回报函数( the real reward function ),甚至会变成灾难。在信任的区域之中,我们用 δ \delta δ 变量限制我们的搜索区域(置信区间),这样的区域可以保证在它达到局部或者全局最优策略之前,它的优化策略将会优于当前策略,结果如图所示
1、论文思想与原理
TRPO算法使用了MM(Minorize-Maximizatio)优化过程,在本文中将通过几个步骤推导出TRPO的目标函数。
MM(Minorize-Maximization)过程
MM算法是一个迭代优化,其利用凸函数方法,以便找到他们的最大值或最小值,取决于所需的优化是最大化还是最小化。MM本身不是算法,而是描述如何构造优化算法。MM算法的历史基础可以追溯到至少1970年,当时Ortega和Rheinboldt正在进行与线搜索方法相关的研究。同样的概念继续以不同的形式重新出现在不同的领域。2000年,亨特和兰格提出“MM”作为一般框架。最近的研究已将该方法应用于广泛的学科领域,如数学,统计学,机器学习和工程学。MM过程如下:
更多内容参考MM过程
1.1 Surrogate function(替代函数)
RL的目标就是最大化预期折扣奖励(the expected discounted rewards)。然而我们知道,根据策略梯度方法,参数更新方程式为:
θ n e w = θ o l d + α ∇ θ J \theta_{new}=\theta_{old}+\alpha\nabla_{\theta}J θnew=θold+α∇θJ
策略梯度算法的硬伤就在更新步长 α \alpha α,当步长不合适时,更新的参数所对应的策略是一个更不好的策略,当利用这个更不好的策略进行采样学习时,再次更新的参数会更差,因此很容易导致越学越差,最后崩溃。所以,合适的步长对于强化学习非常关键。那么什么叫合适的步长?所谓合适的步长是指当策略更新后,回报函数的值不能更差。如何选择这个步长?或者说,如何找到新的策略使得新的回报函数的值单调递增,或单调不减。这就是TRPO算法要解决的问题。具体如下图,红色的线表示期望折扣回,
其中 η \eta η 被定义为:
η ( π θ ) = E τ ∼ π θ [ ∑ t = 0 ∞ γ t r t ] \eta(\pi_{\theta}) = \mathbb{E}_{\tau \sim \pi_{\theta}}[\sum_{t=0}^{\infty}\gamma^{t}r_{t}] η(πθ)=Eτ∼πθ[t=0∑∞γtrt]
这是对累计奖励函数做的期望,其中图中的C为常数,蓝色曲线M中的KL表示散度(后文解释),对于每次迭代,我们发现Surrogate函数M(蓝线)有如下性质:
- 是 η \eta η 的下界函数
- 可用于估计当前策略的 折扣奖励 η \eta η
- 易于优化(我们将会把Surrogate函数近似估计为一个二次方程)
在每一次迭代之中,我们找到最佳的M点并且把它作为当前的策略。
之后,我们重新评估新策略的下界并且重复迭代。当我们持续这个过程,策略也会不断的改进。因为可能的策略是有限的,所以我们当前的概率最终将会收敛到局部或者全部最优的策略。
1.2 目标函数
在强化学习中,值函数、动作值函数是学习的基础,优势函数则是计算A3C算法、TRPO算法的重要过程,我们先定义Q值函数、状态值函数和优势函数。数学表示为:
Q π ( s t , a t ) = E s t + 1 , a t + 1 , … [ ∑ k = 0 ∞ γ k r ( s t + k ) ] V π ( s t ) = E s t + 1 , … [ ∑ k = 0 ∞ γ k r ( s t + k ) ] A π ( s , a ) = Q π ( s , a ) − V π w h e r e a t ∼ π ( a t ∣ s t ) , s t + 1 ∼ P ( s t + 1 ∣ s t , a t ) f o r t ≥ 0 Q_{\pi}(s_{t},a_{t}) = \mathbb{E{s_{t+1},a_{t+1},\dots}\left[ \sum_{k=0}^{\infty} \gamma^{k}r(s_{t+k})\right]} \\ V_{\pi}(s_{t}) = \mathbb{E{s_{t+1},\dots}\left[ \sum_{k=0}^{\infty} \gamma^{k}r(s_{t+k})\right]} \\ A_{\pi}(s,a) = Q_{\pi}(s,a)-V_{\pi} \\ where \quad a_{t} \sim \pi(a_{t}|s_{t}),s_{t+1}\sim P(s_{t+1}|s_{t},a_{t}) \quad for \quad t \geq 0 Qπ(st,at)=Est+1,at+1,…[k=0∑∞γkr(st+k)]Vπ(st)=Est+1,…[k=0∑∞γkr(st+k)]Aπ(s,a)=Qπ(s,a)−Vπwhereat∼π(at∣st),st+1∼P(st+1∣st,at)fort≥0
为了衡量一个动作所能够带来的回报过程,优势函数被广泛的使用,
折扣期望奖励被表示为:
η ( π ) = E s 0 , a 0 , … [ ∑ t = 0 ∞ γ t r ( s t ) ] w h e r e s 0 ∼ ρ 0 ( s 0 ) , a t ∼ π ( a t ∣ s t ) , s t + 1 ∼ P ( s t + 1 ∣ s t , a t ) \eta(\pi) = \mathbb{E}_{s_{0},a_{0},\dots}\left[ \sum_{t=0}^{\infty}\gamma^{t}r(s_{t}) \right] \\ where \quad 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}) η(π)=Es0,a0,…[t=0∑∞γtr(st)]wheres0∼ρ0(s0),at∼π(at∣st),st+1∼P(st+1∣st,at)
我们可以使用其他策略计算策略的奖励进行表示
η ( π ^ ) = η ( π ) + E s 0 , a 0 , ⋯ ∼ π ^ [ ∑ t = 0 ∞ γ t A π ( s t , a t ) ] \eta(\hat{\pi}) = \eta(\pi) +\mathbb{E}_{s_{0},a_{0},\dots \sim \hat{\pi}}[\sum_{t=0}^{\infty}\gamma^{t}A_{\pi}(s_{t},a_{t})] η(π^)=η(π)+Es0,a0,⋯∼π^[t=0∑∞γtAπ(st,at)]
A π ( s , a ) = Q π ( s , a ) − V π ( s ) = E s ′ ∼ P ( s ′ ∣ s , a ) [ r ( s ) + γ V π ( s ) − V π ( s ) ] A_{\pi}(s,a) = Q_{\pi}(s,a)-V_{\pi}(s) =\mathbb{E}_{s^{'}\sim P(s^{'}|s,a)}[r(s)+\gamma V_{\pi}(s^{})-V_{\pi}(s)] Aπ(s,a)=Qπ(s,a)−Vπ(s)=Es′∼P(s′∣s,a)[r(s)+γVπ(s)−Vπ(s)]
其中符号 E s 0 , a 0 , ⋯ ∼ π ^ [ … ] \mathbb{E}_{s_{0},a_{0},\dots \sim \hat{\pi}}[\dots] Es0,a0,⋯∼π^[…] 表示动作的采样 a t ∼ π ( . ∣ s t ) ^ a_{t} \sim \hat{\pi(.|s_{t})} at∼π(.∣st)^, η ( π ) \eta(\pi) η(π) 表示旧策略, η ( π ^ ) \eta{(\hat{\pi})} η(π^) 表示新策略,而 E s 0 , a 0 , ⋯ ∼ π ^ [ ∑ t = 0 ∞ γ t A π ( s t , a t ) ] \mathbb{E}_{s_{0},a_{0},\dots \sim \hat{\pi}}[\sum_{t=0}^{\infty}\gamma^{t}A_{\pi}(s_{t},a_{t})] Es0,a0,⋯∼π^[∑t=0∞γtAπ(st,at)] 则表示新旧策略的回报差,这也是优势函数所谓的优势所在,同时我们设置 ρ ( π ) \rho(\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)+\dots, ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+…,
其中关于新旧策略的回报差的证明如下:
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{aligned} &\underset{\tau \sim \pi^{\prime}}{\mathrm{E}}\left[\sum_{t=0}^{\infty} \gamma^{t} A^{\pi}\left(s_{t}, a_{t}\right)\right] \\ &=\underset{\tau \sim \pi^{\prime}}{\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(\pi^{\prime}\right)+\underset{\tau \sim \pi^{\prime}}{\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(\pi^{\prime}\right)+\underset{\tau \sim \pi^{\prime}}{\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(\pi^{\prime}\right)-\underset{\tau \sim \pi^{\prime}}{\mathrm{E}}\left[V^{\pi}\left(s_{0}\right)\right] \\ &=\eta\left(\pi^{\prime}\right)-\eta(\pi) \end{aligned} τ∼π′E[t=0∑∞γtAπ(st,at)]=τ∼π′E[t=0∑∞γt(R(st,at