强化学习——Proximal Policy Optimization Algorithms

前言

本文对论文《Proximal Policy Optimization Algorithms》进行总结,如有错误,欢迎指出。

为什么需要PPO

随机策略梯度的数学表达式为
∇ J ( θ ) = E S [ E A ∼ π ( . ∣ S ; θ ) [ Q π ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) ] ] (1.0) \nabla J(\theta)=E_S[E_{A\sim \pi(.|S;\theta)}[Q_\pi(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)]]\tag{1.0} J(θ)=ES[EAπ(.S;θ)[Qπ(S,A)θlnπ(AS;θ)]](1.0)
如无特殊提及,本文中的 A A A表示动作, S S S表示状态, π \pi π表示策略。每使用一次式1.0更新策略网络,就需要策略网络控制智能体与环境交互,从而获得 S S S A A A,这种做法非常耗时。若能在训练前提前采样好 S S S A A A,并将其存储在经验回放数组中,接着从经验回放数组中抽取 S S S A A A训练策略网络,这将将极大程度减少训练时间。基于上述考虑,便有了Proximal Policy Optimization(PPO),在介绍PPO之前,我们先介绍下TRPO。


TRPO

TPRO利用重要性采样,对随机策略梯度进行近似,从而利用经验回放数组快速更新策略网络。依据期望的数学定义,可得重要性采样的数学形式:
E x ∼ p [ f ( x ) ] = E x ∼ q [ p ( x ) q ( x ) f ( x ) ] (2.0) E_{x \sim p}[f(x)]=E_{x \sim q}[\frac{p(x)}{q(x)}f(x)]\tag{2.0} Exp[f(x)]=Exq[q(x)p(x)f(x)](2.0)
值得一提的是,式2.0等式两侧的分布虽然期望形式一致,但是方差却不同:

V a r x ∼ p [ f ( x ) ] = E x ∼ p [ f ( x ) 2 ] − ( E x ∼ p [ f ( x ) ] ) 2 V a r x ∼ q [ p ( x ) q ( x ) f ( x ) ] = E x ∼ p [ f ( x ) 2 p ( x ) q ( x ) ] − ( E x ∼ p [ f ( x ) ] ) 2 \begin{aligned} Var_{x\sim p}[f(x)]&=E_{x\sim p}[f(x)^2]-(E_{x\sim p}[f(x)])^2\\ Var_{x\sim q}[\frac{p(x)}{q(x)}f(x)]&=E_{x\sim p}[f(x)^2\frac{p(x)}{q(x)}]-(E_{x\sim p}[f(x)])^2 \end{aligned} Varxp[f(x)]Varxq[q(x)p(x)f(x)]=Exp[f(x)2](Exp[f(x)])2=Exp[f(x)2q(x)p(x)](Exp[f(x)])2

当分布 p ( x ) p(x) p(x) q ( x ) q(x) q(x)近似时,式2.0等式两侧分布的方差也近似。

利用式2.0对式1.0进行数学变化可得
∇ J ( θ ) = E S [ E A ∼ π ( . ∣ S ; θ ) [ Q π ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) ] ] = E S [ E A ∼ π ′ ( . ∣ S ; θ o l d ) [ π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) Q π ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) ] ] ≈ E S [ E A ∼ π ′ ( . ∣ S ; θ o l d ) [ π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) Q π ′ ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) ] ] (2.1) \begin{aligned} \nabla J(\theta)&=E_S[E_{A\sim \pi(.|S;\theta)}[Q_\pi(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)]]\\ &=E_S[E_{A\sim \pi'(.|S;\theta_{old})}[\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})}Q_\pi(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)]]\\ &\approx E_S[E_{A\sim \pi'(.|S;\theta_{old})}[\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})}Q_{\pi'}(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)]]\tag{2.1} \end{aligned} J(θ)=ES[EAπ(.S;θ)[Qπ(S,A)θlnπ(AS;θ)]]=ES[EAπ(.S;θold)[π(AS;θold)π(AS;θ)Qπ(S,A)θlnπ(AS;θ)]]ES[EAπ(.S;θold)[π(AS;θold)π(AS;θ)Qπ(S,A)θlnπ(AS;θ)]](2.1)

当策略 π \pi π与策略 π ′ \pi' π近似时,有 Q π ( S , A ) ≈ Q π ′ ( S , A ) Q_\pi(S,A)\approx Q_{\pi'}(S,A) Qπ(S,A)Qπ(S,A),由此可得式2.1中第三行的约等于符号。为了让策略 π \pi π与策略 π ′ \pi' π近似,因此TPRO将策略 π \pi π与策略 π ′ \pi' π的KL散度作为正则项。总体的损失函数为
max ⁡ L ( θ ) = max ⁡ E A ∼ π ′ ( . ∣ S ; θ o l d ) , S [ π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) V π ( S ) ] − β K L ( π ( A ∣ S ; θ ) , π ′ ( A ∣ S ; θ o l d ) ) \begin{aligned} \max L(\theta)=\max E_{{A\sim \pi'(.|S;\theta_{old})},S}[\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})}V_{\pi}(S)]-\beta KL(\pi(A|S;\theta),\pi'(A|S;\theta_{old})) \end{aligned} maxL(θ)=maxEAπ(.S;θold),S[π(AS;θold)π(AS;θ)Vπ(S)]βKL(π(AS;θ),π(AS;θold))
E A ∼ π ′ ( . ∣ S ; θ o l d ) , S [ π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) V π ( S ) ] E_{{A\sim \pi'(.|S;\theta_{old})},S}[\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})}V_{\pi}(S)] EAπ(.S;θold),S[π(AS;θold)π(AS;θ)Vπ(S)] θ \theta θ的求导结果即为式2.1, β \beta β为超参数。训练前,利用策略 π ′ ( A ∣ S ; θ o l d ) \pi'(A|S;\theta_{old}) π(AS;θold)(可以是使用过去参数 θ o l d \theta_{old} θold的策略网络)控制智能体与环境交互,将一系列动作与状态对( s t s_t st, a t a_t at)存入经验回放数组中。训练时,从经验回放数组抽取一系列动作与状态,依据上述损失函数,利用梯度上升法更新策略网络(KL散度项如何计算可以参考交叉熵)。


PPO

PPO对TRPO的优化目标进行了改动,设 r ( θ ) = π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) r(\theta)=\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})} r(θ)=π(AS;θold)π(AS;θ) A = V π ( S ) A=V_\pi(S) A=Vπ(S),则优化目标(省略了部分符号)变为
max ⁡ L c l i p ( θ ) = max ⁡ E A ∼ π ′ , S [ min ⁡ ( r ( θ ) A , c l i p ( r ( θ ) , 1 − ϵ , 1 + ϵ ) ) A ) ] (3.0) \begin{aligned} \max L^{clip}(\theta)=\max E_{A\sim \pi',S}[\min (r(\theta)A,clip(r(\theta),1-\epsilon,1+\epsilon))A)]\tag{3.0} \end{aligned} maxLclip(θ)=maxEAπ,S[min(r(θ)A,clip(r(θ),1ϵ,1+ϵ))A)](3.0)
c l i p ( r ( θ ) , 1 − ϵ , 1 + ϵ ) ) clip(r(\theta),1-\epsilon,1+\epsilon)) clip(r(θ),1ϵ,1+ϵ))表示当 r ( θ ) < 1 − ϵ r(\theta)<1-\epsilon r(θ)<1ϵ时,会被截断为 1 − ϵ 1-\epsilon 1ϵ,当 r ( θ ) > 1 + ϵ r(\theta)>1+\epsilon r(θ)>1+ϵ时,会被截断为 1 + ϵ 1+\epsilon 1+ϵ ϵ \epsilon ϵ为超参数。式3.0的取值图像为
在这里插入图片描述
其基本思路为,当 r ( θ ) r(\theta) r(θ)位于 [ 1 − ϵ , 1 + ϵ ] [1-\epsilon,1+\epsilon] [1ϵ,1+ϵ]时,策略 π \pi π与策略 π ′ \pi' π较为近似,此时式2.1中的约等于符号成立,此时的梯度约等于随机策略梯度(式1.0)。当 r ( θ ) r(\theta) r(θ)不位于 [ 1 − ϵ , 1 + ϵ ] [1-\epsilon,1+\epsilon] [1ϵ,1+ϵ]时,此时梯度与随机策略梯度差距较大,梯度提供的信号可能是错误的,因此更新参数的幅度应该要弱些。

基于上述分析,我们来看下Figure 1。当A>0时,若 r ( θ ) r(\theta) r(θ)取值大于 1 + ϵ 1+\epsilon 1+ϵ,梯度可能包含错误的信息,此时更新参数的梯度满足
0 < ( 1 − ϵ ) Q π ′ ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) ( 用 于 更 新 的 梯 度 ) < π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) Q π ′ ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) 0<(1-\epsilon)Q_{\pi'}(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)(用于更新的梯度)<\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})}Q_{\pi'}(S,A)\nabla_{\theta}\ln\pi(A|S;\theta) 0<(1ϵ)Qπ(S,A)θlnπ(AS;θ)()<π(AS;θold)π(AS;θ)Qπ(S,A)θlnπ(AS;θ)
即使用较小的梯度更新参数。若 r ( θ ) r(\theta) r(θ)取值小于 1 − ϵ 1-\epsilon 1ϵ时,梯度可能包含错误的信息,此时更新参数的梯度满足
( 1 − ϵ ) Q π ′ ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) > π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) Q π ′ ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) ( 用 于 更 新 的 梯 度 ) > 0 (1-\epsilon)Q_{\pi'}(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)>\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})}Q_{\pi'}(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)(用于更新的梯度)>0 (1ϵ)Qπ(S,A)θlnπ(AS;θ)>π(AS;θold)π(AS;θ)Qπ(S,A)θlnπ(AS;θ)()>0
即使用较小的梯度更新参数。当A<0时,若 r ( θ ) r(\theta) r(θ)取值大于 1 + ϵ 1+\epsilon 1+ϵ,梯度可能包含错误的信息,此时更新参数的梯度满足
0 > ( 1 + ϵ ) Q π ′ ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) > π ( A ∣ S ; θ ) π ′ ( A ∣ S ; θ o l d ) Q π ′ ( S , A ) ∇ θ ln ⁡ π ( A ∣ S ; θ ) ( 用 于 更 新 的 梯 度 ) 0>(1+\epsilon)Q_{\pi'}(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)>\frac{\pi(A|S;\theta)}{\pi'(A|S;\theta_{old})}Q_{\pi'}(S,A)\nabla_{\theta}\ln\pi(A|S;\theta)(用于更新的梯度) 0>(1+ϵ)Qπ(S,A)θlnπ(AS;θ)>π(AS;θold)π(AS;θ)Qπ(S,A)θlnπ(AS;θ)()
此时发现即使梯度中包含有错误信息,PPO仍使用其更新策略网络参数。对此一个理解是既然 A < 0 A<0 A<0,表明这个动作不被提倡,因此依然使用较大的梯度更新网络,以使其尽量不做出该动作,当 r ( θ ) r(\theta) r(θ)取值小于 1 − ϵ 1-\epsilon 1ϵ时同理。原文的解释如下

With this scheme, we only ignore the change in probability ratio when it 
would make the objective improve, and we include it when it makes the objective worse

PPO在A<0部分的做法有点违反我的直觉,事实上,《Mastering Complex Control in MOBA Games with Deep Reinforcement Learning》一文指出PPO在A<0时会导致策略网络难以收敛,由此提出了Dual PPO,在A<0时,式3.0的取值为下图(b),当取值大于 c c c时,此时使用较小的梯度做更新。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 近端策略优化算法proximal policy optimization algorithms)是一种用于强化学习算法,它通过优化策略来最大化累积奖励。该算法的特点是使用了一个近端约束,使得每次更新策略时只会对其进行微调,从而保证了算法的稳定性和收敛性。近端策略优化算法在许多强化学习任务中都表现出了很好的效果,成为了当前最流行的强化学习算法之一。 ### 回答2: 近端策略优化算法是一种新兴的强化学习算法。它具有高效的策略优化和稳定的收敛性。近端策略优化算法深度学习、自然语言处理、机器视觉、机器人学和其他应用领域都得到了广泛的应用。 近端策略优化算法的核心思想是对策略函数进行优化,以便最大化预期奖励。该算法使用指数加权平均方法来维护与策略函数相关的价值函数和状态值函数。在每个时间步中,它会使用当前策略函数执行一个或多个轨迹,然后使用这些轨迹更新策略函数的参数。 相比于其他优化策略的强化学习算法,近端策略优化算法有以下几个优点: 1. 收敛速度快——该算法具有高效的优化算法和稳定的训练过程,可以在较短的时间内收敛到最优解。 2. 收敛性强——该算法能够在训练过程中处理大的批量数据,并且可以快速地找到全局最优解。 3. 易于实现和调整——该算法的实现过程需要较少的超参数,使其易于实现和调整。 4. 可扩展性强——该算法可以扩展到复杂的问题和大规模数据集合。 总结: 近端策略优化算法是一种高效、稳定、易于实现的强化学习算法。它能够快速地处理大规模数据集合,并找到全局最优解。该算法深度学习、自然语言处理、机器视觉、机器人学等领域中得到了广泛的应用。 ### 回答3: Proximal Policy Optimization (PPO)算法是一种强化学习中的模型优化算法。它的主要目标是发现学习最优策略的方法,并将其应用到机器人控制、游戏玩法、交通规划和服务机器人等任务中。 PPO算法的核心思想是使用一个剪切函数来限制策略更新的幅度,以确保算法的收敛性和稳定性。与传统的Policy Gradient算法不同,PPO算法对不同样本的更新幅度进行了限制,避免了策略更新过于激进或保守的情况,从而使算法更加可靠。 PPO算法的目标函数由两部分组成:第一部分是优化目标,即最大化期望奖励,第二部分是剪切函数。在PPO算法中,剪切函数被定义为两个策略之间的距离,它用于限制策略更新的幅度,以确保策略优化的稳定性。该函数使用了一个参数 $\epsilon$ 来控制策略更新的幅度,当距离超过阈值时,算法就会停止更新策略。 PPO算法的主要优点在于它的稳定性和可靠性。与其他优化算法相比,PPO算法采用了一种有限的剪切函数,从而避免了策略更新过于激进或保守的情况,而这种情况往往会导致算法崩溃或无法收敛。此外,PPO算法还具有高效性和可扩展性,可以应用于大规模深度学习中。 总之,PPO算法是一种强化学习中比较先进的算法,应用范围广泛,而且具有稳定性和可靠性,是未来智能机器人、自动驾驶等领域的重要研究方向。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值