强化学习6——policy gradient的变种State of the Art

policy-base SOTA

学习周博雷老师课程总结

Natural Policy Gradient

    为了改善PG算法的不稳定的缺点(如果更新到一个bad policy,就会采集到的一个坏的数据集,进而恶性循环。)

    这样我们在两个策略之间限制一个距离(KL-divergence),保证优化不会跑的太偏,优化的方法就变为下面这样一个等式,就是说我们在上一个策略周围找一个使得目标函数值最大的方向进行前进,下面就是Natural Policy Gradient的实现方式:
d ∗ = arg ⁡ max ⁡ J ( θ + d ) , d^{*}=\arg \max J(\theta+d), d=argmaxJ(θ+d),s.t. K L ( π θ ∥ π θ + d ) = c K L\left(\pi_{\theta} \| \pi_{\theta+d}\right)=c KL(πθπθ+d)=c

TRPO

    TRPO=Natural Policy Gradient + importance sampling

    根据sampling定理:
E x ∼ p [ f ( x ) ] = ∫ p ( x ) f ( x ) d x = ∫ q ( x ) p ( x ) q ( x ) f ( x ) d x = E x ∼ q [ p ( x ) q ( x ) f ( x ) ] \mathbb{E}_{x \sim p}[f(x)]=\int p(x) f(x) d x=\int q(x) \frac{p(x)}{q(x)} f(x) d x=\mathbb{E}_{x \sim q}\left[\frac{p(x)}{q(x)} f(x)\right] Exp[f(x)]=p(x)f(x)dx=q(x)q(x)p(x)f(x)dx=Exq[q(x)p(x)f(x)]
可以把目标函数写成:
J ( θ ) = E a ∼ π θ [ r ( s , a ) ] = E a ∼ π ^ [ π θ ( s , a ) π ^ ( s , a ) r ( s , a ) ] J(\theta)=\mathbb{E}_{a \sim \pi_{\theta}}[r(s, a)]=\mathbb{E}_{a \sim \hat{\pi}}\left[\frac{\pi_{\theta}(s, a)}{\hat{\pi}(s, a)} r(s, a)\right] J(θ)=Eaπθ[r(s,a)]=Eaπ^[π^(s,a)πθ(s,a)r(s,a)]
这样我们就能用off-policy来进行价值函数的更新,即一个behavior policy,一个training policy,下面就是TRPO的优化公式:
J θ old ( θ ) = E t [ π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) R t ]  subject to  K L ( π θ old ( . ∣ s t ) ∥ π θ ( . ∣ s t ) ) ≤ δ \begin{aligned} J_{\theta_{\text {old}}}(\theta) &=\mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old}}}\left(a_{t} \mid s_{t}\right)} R_{t}\right] \\ \text { subject to } & K L\left(\pi_{\theta_{\text {old}}}\left(. \mid s_{t}\right) \| \pi_{\theta}\left(. \mid s_{t}\right)\right) \leq \delta \end{aligned} Jθold(θ) subject to =Et[πθold(atst)πθ(atst)Rt]KL(πθold(.st)πθ(.st))δ

KFAC

提升TRPO的计算效率,

PPO

TRPO的简化版本
TRPO:
maximize ⁡ θ E t [ π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) A t ]  subject to  E t [ K L [ π θ old ( . ∣ s t ) , π θ ( . ∣ s t ) ] ] ≤ δ \begin{array}{l} \operatorname{maximize}_{\theta} \mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old}}}\left(a_{t} \mid s_{t}\right)} A_{t}\right] \\ \text { subject to } \mathbb{E}_{t}\left[K L\left[\pi_{\theta_{\text {old}}}\left(. \mid s_{t}\right), \pi_{\theta}\left(. \mid s_{t}\right)\right]\right] \leq \delta \end{array} maximizeθEt[πθold(atst)πθ(atst)At] subject to Et[KL[πθold(.st),πθ(.st)]]δ
PPO的优化简化:
maximize ⁡ θ E t [ π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) A t ] − β E t [ K L [ π θ old ( . ∣ s t ) , π θ ( . ∣ s t ) ] ] \operatorname{maximize}_{\theta} \mathbb{E}_{t}\left[\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{o l d}}\left(a_{t} \mid s_{t}\right)} A_{t}\right]-\beta \mathbb{E}_{t}\left[K L\left[\pi_{\theta_{\text {old}}}\left(. \mid s_{t}\right), \pi_{\theta}\left(. \mid s_{t}\right)\right]\right] maximizeθEt[πθold(atst)πθ(atst)At]βEt[KL[πθold(.st),πθ(.st)]]
简化后的PPO用一阶优化过程SGD,而TRPO用了二阶的信息,所以二阶的较慢。

带clipping的PPO

r t ( θ ) = π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) r_{t}(\theta)=\frac{\pi_{\theta}\left(a_{t} \mid s_{t}\right)}{\pi_{\theta_{\text {old}}}\left(a_{t} \mid s_{t}\right)} rt(θ)=πθold(atst)πθ(atst)
就是将价值函数的取值进行一个限制,则带有clipping的PPO的优化为:
L t ( θ ) = min ⁡ ( r t ( θ ) A ^ t , clip ⁡ ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A ^ t ) L_{t}(\theta)=\min \left(r_{t}(\theta) \hat{A}_{t}, \operatorname{clip}\left(r_{t}(\theta), 1-\epsilon, 1+\epsilon\right) \hat{A}_{t}\right) Lt(θ)=min(rt(θ)A^t,clip(rt(θ),1ϵ,1+ϵ)A^t)
这里用clipping代替了KL-divergence这一项。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
强化学习中的策略梯度(policy gradient)是一种基于优化策略的方法,它直接对策略进行优化,而不是先估计值函数,再通过值函数来优化策略。策略梯度方法可以解决连续动作空间的问题,并且可以处理高维状态空间的问题。 策略梯度方法的主要思想是通过梯度上升来优化策略,即不断地调整策略参数,使得策略获得更高的奖励。这个过程可以通过计算策略在当前状态下采取各个动作的概率,然后根据奖励函数来更新策略参数。 策略梯度方法的优点是可以处理连续动作空间和高维状态空间的问题,并且可以处理非凸、非线性的问题。但是,策略梯度方法的缺点是收敛速度慢,容易陷入局部最优解。 以下是一些关于RL-Policy Gradient的资料: 1. Reinforcement Learning: An Introduction(强化学习:导论)书籍中关于Policy Gradient的章节:https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf 2. Policy Gradient Methods for Reinforcement Learning with Function Approximation论文:https://papers.nips.cc/paper/1713-policy-gradient-methods-for-reinforcement-learning-with-function-approximation.pdf 3. Deep Reinforcement Learning: Pong from Pixels论文:https://arxiv.org/pdf/1312.5602.pdf 4. Policy Gradient Methods for Robotics论文:https://arxiv.org/pdf/1709.06009.pdf 5. RL-Adventure-2:Policy Gradient Algorithms Pytorch实现的代码:https://github.com/higgsfield/RL-Adventure-2 6. Policy Gradient Algorithms笔记:https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值