强化学习——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的取值图像为
在这里插入图片描述
在A>0时,如果 r ( θ ) r(\theta) r(θ)的取值大于 1 + ϵ 1+\epsilon 1+ϵ时,此时式2.1的约等于号难以成立,因此该样本的梯度会被丢弃( ( 1 + ϵ ) A (1+\epsilon)A (1+ϵ)A不含网络参数),网络不会更新。当 A < 0 A<0 A<0时,情况相反,若 r ( θ ) < 1 − ϵ r(\theta)<1-\epsilon r(θ)<1ϵ时,此时式2.1的约等于号是可以成立的,但是PPO却选择不更新网络( ( 1 − ϵ ) A (1-\epsilon)A (1ϵ)A不含网络参数),一种理解是当 A < 0 A<0 A<0时,表示该动作带来的未来回报是比较小的,因此应该尽可能让网络少做出这个动作,因此使用绝对值较大的梯度更新模型。同时也可以鼓励模型做出更多的探索

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时,此时不更新网络。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值