策略梯度迭代,通过计算策略梯度的估计,并利用随机梯度上升算法进行迭代。其常用的梯度估计形式为: E^t[∇θlogπθ(at∣st)A^t] \hat{\mathbb{E}}_t[\nabla_\theta log \pi_\theta(a_t | s_t)\hat{A}_t] E^t[∇θlogπθ(at∣st)A^t] 其中πθ\pi_\thetaπθ为随机策略,A^t\hat{A}_tA^t是优势函数在时间步t的估计,其损失函数为: LPG(θ)=E^t[logπθ(at∣st)A^t] L^{PG}(\theta)=\hat{\mathbb{E}}_t[log_{\pi_\theta}(a_t|s_t)\hat{A}_t] LPG(θ)=E^t[logπθ(at∣st)A^t]
TRPO要优化的目标函数如下: maximizeθE^[π(at∣st)πθold(at∣st)A^t] maximize_\theta \hat{\mathbb{E}}[\frac{\pi(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat{A}_t] maximizeθE^[πθold(at∣st)π(at∣st)A^t] subject to Et^[KL[πold(⋅∣st)∣∣πθ(⋅∣st)]]≤U subject\ to \ \hat{\mathbb{E}_t}[KL[\pi_{old}(·|s_t)||\pi_\theta(·|s_t)]] \leq U subject to Et^[KL[πold(⋅∣st)∣∣πθ(⋅∣st)]]≤U
令rt(θ)=πθ(at∣st)πold(at∣st)r_t({\theta})=\frac{\pi_{\theta(a_t|s_t)}}{\pi_{old}(a_t|s_t)}rt(θ)=πold(at∣st)πθ(at∣st),那么r(θold)=1r(\theta_{old})=1r(θold)=1。TRPO把目标函数替换为: LCPL(θ)=E^[π(at∣st)πθold(at∣st)A^t]=E^t[rt(θ)A^t] L^{CPL}(\theta) =\hat{\mathbb{E}}[\frac{\pi(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat{A}_t]=\hat{\mathbb{E}}_t[r_t(\theta)\hat{A}_t] LCPL(θ)=E^[πθold(at∣st)π(at∣st)A^t]=E^t[rt(θ)A^t]
LCPLL^{CPL}LCPL指的是前述TRPO中的保守策略迭代,如果不加约束,最大化LCPLL^{CPL}LCPL会产生较大幅度的梯度更新。为了惩罚策略的变化(使得rt(θ)r_t(\theta)rt(θ)远离1,新旧策略的KL散度不能太大),使用了以下的目标函数: LCLIP(θ)=E^[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)] L^{CLIP}(\theta)=\hat{\mathbb{E}}[min(r_t(\theta)\hat{A}_t, clip(r_t({\theta}),1-\epsilon, 1+\epsilon)\hat{A}_t)] LCLIP(θ)=E^[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)] 原论文中取ϵ=0.2\epsilon=0.2ϵ=0.2,直观示意图如下:

即:
当A>0时,如果rt(θ)>1+ϵr_t(\theta)>1+\epsilonrt(θ)>1+ϵ,则LCLIP(θ)=(1+ϵ)A^tL^{CLIP}(\theta)=(1+\epsilon)\hat{A}_tLCLIP(θ)=(1+ϵ)A^t;如果rt(θ)<1+ϵr_t(\theta)<1+\epsilonrt(θ)<1+ϵ,则LCLIP(θ)=rt(θ)A^tL^{CLIP}(\theta)=r_t(\theta)\hat{A}_tLCLIP(θ)=rt(θ)A^t;
当A<0时,如果rt(θ)>1−ϵr_t(\theta)>1-\epsilonrt(θ)>1−ϵ,则LCLIP(θ)=rt(θ)A^tL^{CLIP}(\theta)=r_t(\theta)\hat{A}_tLCLIP(θ)=rt(θ)A^t;如果rt(θ)<1−ϵr_t(\theta)<1-\epsilonrt(θ)<1−ϵ,则LCLIP(θ)=(1−ϵ)A^tL^{CLIP}(\theta)=(1-\epsilon)\hat{A}_tLCLIP(θ)=(1−ϵ)A^t;
在TRPO中,使用"自适应惩罚系数"β\betaβ来约束KL散度,在该算法的最简单实例中,在每一步策略更新中执行以下步骤:
如果d<dtarg/1.5,β<−β/2d<d_{targ}/1.5, \beta <-\beta/2d<dtarg/1.5,β<−β/2 如果d>dtarg∗1.5,β<−β∗2d>d_{targ}*1.5, \beta<-\beta*2d>dtarg∗1.5,β<−β∗2
实验中,PPO2的效果可能没有PPO1的效果好。
LtCLIP+VF+S(θ)=E^t[LtCLIP(θ)−c1LtVF(θ)]+c2S[πθ](st)] L_t^{CLIP+VF+S}(\theta) = \hat{E}_t[L_t^{CLIP}(\theta)-c_1L_t^{VF}(\theta)]+c_2 S[\pi_{\theta}](s_t)] LtCLIP+VF+S(θ)=E^t[LtCLIP(θ)−c1LtVF(θ)]+c2S[πθ](st)] 其中c1c1c1,c2c2c2是系数,SSS表示熵奖励,LtVF是平方误差损失(Vθ(st)−Vttarg)2L_t^{VF}是平方误差损失(V_\theta(s_t)-V_t^{targ})^2LtVF是平方误差损失(Vθ(st)−Vttarg)2
优势估计函数为 A^t=−V(st)+rt+γrt+1+...+γT−t+1rT−1+γT−tV(sT) \hat{A}_t = -V(s_t)+r_t+\gamma r_{t+1}+...+\gamma^{T-t+1}r_{T-1}+\gamma^{T-t}V(s^T) A^t=−V(st)+rt+γrt+1+...+γT−t+1rT−1+γT−tV(sT)
另外,我们可以使用广义优势函数来扩广A^t\hat{A}_tA^t,当λ=1\lambda=1λ=1时,它趋近于上面的等式 A^t=δ+(γλ)δt+1+...+...+γλT−t+1δT−1 \hat{A}_t=\delta+(\gamma\lambda)\delta_{t+1}+...+...+{\gamma\lambda^{T-t+1}}\delta_{T-1} A^t=δ+(γλ)δt+1+...+...+γλT−t+1δT−1 where δt=rt+γV(st+1−V(st))where \ \delta_t = r_t+\gamma V(s_{t+1}-V(s_t))where δt=rt+γV(st+1−V(st))
如下所示:
Algorithm PPO,Actor−Critic StyleAlgorithm \ PPO, Actor-Critic \ StyleAlgorithm PPO,Actor−Critic Style for iteration=1,2,...,dofor \ iteration=1,2,...,dofor iteration=1,2,...,do for actor=1,2,...,N,do\qquad for \ actor=1,2,...,N, dofor actor=1,2,...,N,do Run policy πθold\qquad \qquad Run \ policy \ \pi_{\theta_{old}}Run policy πθold in environment for T timesteps Compute advantage estimatesA^1,...,A^T\qquad \qquad Compute \ advantage \ estimates \hat{A}_1,...,\hat{A}_{T}Compute advantage estimatesA^1,...,A^T endfor\qquad end forendfor Optimize surrogate L wrt θ,with K epochs and minibatch size M<=NTOptimize \ surrogate \ L \ wrt \ \theta, with \ K \ epochs \ and \ minibatch \ size \ M <= NTOptimize surrogate L wrt θ,with K epochs and minibatch size M<=NT end forend \ forend for
李宏毅机器学习系列-强化学习之近端策略优化PPO 该博文从Import Sampling的角度叙述了PPO的演化。
个人认为写得最好的TRPO讲解 该博文从数学方面叙述了PPO的推导。