dpg learning 和q_Q-PROP论文阅读笔记

标题|作者

Q-Prop: Sample-Efficient Policy Gradient with An Off-Policy Critic

Shixiang Gu et al.

摘要

无模型深度增强学习方法在很多模拟领域取得了成功。然而,将它应用于现实世界的一个主要障碍是巨大的采样复杂度。策略梯度方法具有稳定性的优势,但会带来高方差,需要大量的数据。而离线策略(off-policy)的方法如actor-critic和Q-learning虽然采样效率高,但有偏差,而且需要搜索大量的超参数空间来达到稳定。在这篇文章中,我们希望可以将离线学习的稳定性和在线学习的效率结合起来。我们提出了Q-Prop的方法,一个将离线评论家(critic)泰勒展开作为控制变量(control variate)的算法。Q-Prop既有样本效率也稳定,得益于将离线和在线学习融合在一起。我们分析了Q-Prop和现存的无模型算法之间的联系,并且使用控制变量理论推导出了Q-Prop算法的两个变种:保守和激进版。我们展示了使用广义优势估计(GAE)保守版Q-Prop比置信域策略优化(TRPO)算法有一个很大的样本效率提高,而且比确定性策略梯度(DDPG)有稳定性上的提高。

介绍

参数化的深度神经网络将人工操作和策略设计的过程最小化。它能够将多维输入,比如图像,端到端地映射成为具体行为输出。但是即使如此强大的参数化设计仍然引入了一些实际的问题。深度强化学习对超参数的设定比较敏感,通常需要通过对超参数进行扩展搜索才能找到合适的值。不好的超参数将导致学习结果不稳定或者无法收敛。深度强化学习算法的采样复杂性使它很难在实际的物理系统上运行。不过最近的一些技术发展减轻了这方面的问题 。这些方法在提高稳定性和减少采样复杂度上提供了一些解决方案。

无模型强化学习包括on-policy和off-policy两种方法。策略算法(如TRPO,PPO)是一种流行的on-policy方法。它可以提供无偏差的(或近似无偏差)梯度估计,但同时会导致高的方差。为了解决高方差的梯度估计,研究人员提出了一些方法,然而这些方法都需要大量的采样来解决多维神经网络策略中梯度估计产生高方差的问题。问题症结在于这样的梯度方法只能使用on-plolicy的样本,这就意味着在每次策略更新参数之后需要采集大量的on-policy样本。这就对采集样本的强度提出了非常高的要求。而像Q-learning 和离线的actor-critic(如DDPG)等off-policy方法则可以用离线的样本来替代。它们可以使用其他学习过程产生的样本。这样的方法大大提高了采样的效率。不过并不能保证非线性函数逼近能够收敛。实际上收敛和稳定性有赖于广泛的超参数调优所能够达到的最好结果。

为了使强化学习能够成为在现实世界中能解决实际问题的工具,我们必须开发出一种既高效又稳定的方法。这篇文章提出的Q-Prop方法就是结合了on-policy梯度方法的优点和off-policy学习高效特点的方法。与之前的要么引入偏差(如DPG) 要么增加方差(如Guided Policy Search)的off-policy方法不同,Q-Prop能够在不增加偏差的情况下,降低梯度估计的方差;和在线拟合值函数的方法(如TRPO)不同,Q-Prop使用off-policy去估计动作值函数(action-value function)。

Q-Prop的核心思想是将评论家一阶泰勒展开作为控制变量,这就使解析梯度项用于评价过程,以及包含残差蒙特卡洛梯度项。这个方法将策略梯度和actor-critc方法结合起来。它既可以被看做使用off-policy的评价过程来减小策略梯度方法带来的方差,又被看作使用on-policy蒙特卡洛方法来修正评价梯度方法带来的偏差。我们进一步对控制变量进行理论分析,得出Q-Prop另外两个变体。这种方法可以很容易地用于策略梯度算法。研究人员展示了Q-Prop在使用GAE(generalized advantage estimation ,广义优势估计)的TRPO(trust region policy optimization ,信赖区域策略优化算法)过程中带来的采样效率的提升,以及在整个连续控制任务中深度确定策略梯度算法上稳定性的提高。

算法推导

先看一般的在线学习的策略梯度公式:

3d57d1dbc2f25eb4ac4d962ca4dc347a.png

其中

是策略,
是discounted cumulative rewards,而b是baseline。这是
对强化学习目标函数梯度的一个无偏(unbiased)估计。但是样本利用率极低,方差(variance)会很大

接着我们给出离线的DDPG算法的目标梯度公式,

2433a984109494d4cda8362df56176fd.png

其中

是行为策略,用来运行游戏获得样本(
)。
是对critic的估计,
是确定性策略,给定一个状态会输出一个动作。这个算法可以
充分利用样本,避免高方差,但是却因为使用有偏(biased)的策略梯度估计让算法的收敛性和稳定性分析变得困难

对于任意一个状态动作函数,对其进行动作变量的一阶Taylor展开,

542ced8902171b851bcff9734e4c74e4.png

我们事先约定一些记号:

  • Monte-Carlo样本Q函数估计,

f25e1428ea0bdb1bef55908ec656de20.png
  • 随机策略
    下 的动作期望,

452fc12120386823cb002976c63cc63b.png

现在我们对在线学习的策略梯度公式进行改写,

e16630719867ed00aab46a04333a7ec1.png

这里的推导用好几个技巧,我们仔细分析一下:

第一步是用了一个恒等式:

117fd6a8129e0bc6eb353bb454aab233.png

有了这个等式,我们才可以对目标梯度中的第二项进行处理:

ca8049b1c07eb82a6e076cfa2cd5aaf1.png

注意到

用Taylor展开后的表达式中和
无关的项都因为恒等式可知都是0。之后又用了一招积分和求导交换顺序。用critic
代替
,我们就会得到:

bb320c8b2681d344a20128ffe97fce3d.png

最后,实践中我们使用估计优势

,因此将改写为,

f8e9fc40ea01deb32f7ba73c0f114504.png

很神奇的是,这个公式可以看成在线策略和离线确定性策略两个公式的求和。其中

可以通过离线学习去训练,从这个角度看来,
Q-Prop不再仅仅是一个在线的蒙特卡洛策略梯度算法,而更像一个离线的演员-评论家算法。另一方面, 从演员的角度考虑,它还是在线更新,只不过后面跟着一个修正项。因此,Q-Prop可以直接结合之前很多优秀的技术,比如置信域策略梯度算法TROP,广义优势估计GAE,以及DDPG等。

最终的算法:

3a2705a999312c22bad5cbd4a57ed264.png

讨论

  • 关于控制变量理论还是要研究的,之后会补上。
  • Q-Prop同时有在线更新和离线更新,在线更新的是策略,离线更新的是Q函数估计,算是很巧妙地将二者融合在一起。
cd C:\Program Files\FlightGear fgfs --fg-root=C:\Program Files\FlightGear\data --aircraft=ufo --in-air --fdm=null --telnet=5501 --telnet=5502 --telnet=5503 --disable-ai-traffic --disable-real-weather-fetch --disable-random-objects --disable-terrasync --disable-clouds --disable-sound --disable-panel --disable-hud --disable-specular-highlight --timeofday=noon --prop:/sim/rendering/multi-sample-buffers=1 --prop:/sim/rendering/multi-samples=2 --prop:/sim/rendering/draw-mask-clouds=false --prop:/sim/rendering/draw-mask-terrain=true --prop:/sim/rendering/draw-mask-objects=true --prop:/sim/rendering/draw-mask-lights=true --prop:/sim/rendering/draw-mask-internal=true --prop:/sim/rendering/draw-mask-cockpit=true --prop:/sim/rendering/draw-mask-effects=true --prop:/sim/rendering/draw-mask-overlay=true --prop:/sim/rendering/draw-mask-world=true --prop:/sim/rendering/draw-mask-panel=true --prop:/sim/rendering/draw-mask-vr=true --prop:/sim/rendering/draw-mask-2d=true --prop:/sim/rendering/draw-mask-3d=true --prop:/sim/rendering/draw-mask-sky=true --prop:/sim/rendering/draw-mask-shadows=true --prop:/sim/rendering/draw-mask-cabin=true --prop:/sim/rendering/draw-mask-weather=true --prop:/sim/rendering/draw-mask-stereo=true --prop:/sim/rendering/draw-mask-internal-cockpit=true --prop:/sim/rendering/draw-mask-internal-windows=true --prop:/sim/rendering/draw-mask-internal-instruments=true --prop:/sim/rendering/draw-mask-internal-overlay=true --prop:/sim/rendering/draw-mask-internal-effects=true --prop:/sim/rendering/draw-mask-internal-lights=true --prop:/sim/rendering/draw-mask-internal-world=true --prop:/sim/rendering/draw-mask-internal-panel=true --prop:/sim/rendering/draw-mask-internal-3d=true --prop:/sim/rendering/draw-mask-internal-sky=true --prop:/sim/rendering/draw-mask-internal-cabin=true --prop:/sim/rendering/draw-mask-internal-weather=true --prop:/sim/rendering/draw-mask-internal-stereo=true --prop:/sim/rendering/draw-mask-internal-shadow=true --prop:/sim/rendering/draw-mask-internal-stall=true --prop:/sim/rendering/draw-mask-internal-aoa=true --prop:/sim/rendering/draw-mask-internal-thermal=false --prop:/sim/rendering/draw-mask-internal-ice=false --prop:/sim/rendering/draw-mask-internal-glass=true --prop:/sim/rendering/draw-mask-internal-dead=true --prop:/sim/rendering/draw-mask-internal-reflection=true程序显示错误unknown command-line option: enable-hud-2d怎么解决
最新发布
05-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值