论文阅读之:PRIORITIZED EXPERIENCE REPLAY
PRIORITIZED EXPERIENCE REPLAY
ICLR 2016
经验回放使得 online reinforcement learning agent 能够记住并且回放过去的经验。在先前的工作中,从回放记忆中随机的采样 experience transitions。但是,这种方法简单的在同一频率 回放 transitions,而不管其意义。本文提出了一种方法能够实现优先回放,能够更加高频的回放重要的 transitions,从而实现更加高校的学习。我们在 DQN 上使用优先经验回放,取得了更加有效的结果。
online RL agent 当观察到一系列的经验时,增量的更新其参数。最简单的形式,即:在更新之后,他们立刻扔掉到来的数据。这种做法有两个问题:
a. 强烈的相关更新操作破坏了许多流行的 基于随机梯度的算法;
b. 快速的忘记可能稀缺的经验,但是后面可能还要用得上这个经验。
Experience Replay 解决了上述问题:在一个 回放单元中存储 experience,通过混合或多或少的最近的经验来更新就有可能破坏 temporal correlation,rare experience 将会被用来不止一次更新。这就被用在 NIPS2013 和 Nature 2015的论文中,特别地,DQN 利用一个大的滑动窗口回放单元,随机的从中均匀采样,平均重复访问一个 transition 8次。总的来讲,experience replay 可以大量的降低需要去学习的经验,而是用更多的计算和更多的memory来替换--- which are often cheaper resources than the RL agent's interactions with its environment.
注: a transition 是 agent在环境中的一次交互的原子操作,即:$ (state S_{t-1}, action A_{t-1}, reward R_t, discount t, next state S_t)$.
Prioritized Replay
1. A Motivating Example
设计这么一个优先回放功能,涉及到两个层次,即:选择哪些进行存储,另外就是选择哪些进行回放?本文主要是研究后者的,如何最有效的利用回放功能进行学习?

如上图所示,本文给出了一个例子来充分的说明优先的潜在好处。引入了称为“Blind Cliffwalk”的环境,来示例说明当奖赏非常 rare的时候,探索所遇到的挑战。假设仅有 n 个状态,这个环境就要求足够的随机步骤知道得到第一个非零奖励;确切的讲,随机的选择动作序列就会有 $2^{-n}$的概率才能得到第一个非零奖赏。此外,最相关的 transitions 却藏在大量的失败的尝试当中。
本文利用这个例子来 highlight 两个 agents的学习次数的不同。可以看到这两个 agent 都从同一个 回放单元中去获取Q-learning的更新,第一个agent 随机均匀的回放 transitions,第二个唤醒一个 oracle 来进行优先转移。这个 oracle 贪婪的选择使得在当前状态下最大化的降低全局损失的 transitions。从上图右侧的图可以看出,按照一定优化序列得到的转移 比 随机均匀采样要花费很少的尝试步骤,这明显的提升了训练的速度。
2. Prioritizing TD-Error
优先回放的一个中心成分是评判优先的准则:衡量每一个转移 transitions 的重要性。一个理想的标准是当前状态下,RL agent 能够学习到的量,也就是期望的学习过程。但是这个标准并不能直接访问到,一个比较合理的代理,能够表示重要性的另一个衡量是:一个 transitions 的 TD error $\delta$ 的规模,来表示该转移的惊奇度 或者 出乎意料的程度:How far the value is from its next-step bootstrap estimation. 这非常适合增量的,在线 RL 算法,比如:SARSA 或者 Q-learning,已经计算 TD-error 并且 更新和 $\delta$成比例的参数。但是有些情况下, TD-error 仍然是非常差的预测,例如:当奖励非常 noisy的时候。
为了说明通过 TD-error 优先回放的有效性,我们对比了 uniform 和 oracle baselines 在 Blind Cliffwalk 上的“贪婪 TD-error prioritization”算法。该算法存储了在回放单元中每次转移之后,最后遇到的 TD error 。将最大绝对值 TD误差的转移从 memory 中进行回放。然后对该转移进行 Q-learning的更新,更新和 TD error 的权重。新的转移到来之后,没有已知的 TD-error,所以我们将其放到最大优先级的行列,确保所有的 experience 至少回放一次。
关于这样做的好处,从下图可以看出, oracle 的做法可以极大的降低无用的尝试,加速了算法的执行速度。

3. Stochastic Priorization
然而,贪婪的 TD-error 优先 有几个问题:
首先,为了避免在整个回放单元中扫描而带来的计算代价,TD 误差仅仅更新被回放的转移。这个带来的一个后果就是:带有低 TD error的转移在第一次访问时可能很长时间不会被回放(which means effectively never with a sliding window replay memory)。
此外,对 noise spikes 非常敏感,bootstrapping 会加剧该现象,估计误差又会成为另一个噪声的来源。
最终,贪婪优先集中于 一个小的经验子集,误差收缩的很慢,特别是使用函数估计的时候,意味着初始的高误差转移被经常回放。缺乏多样性使得该系统倾向于 over-fitting。
为了解决上述问题,我们引入了一个随机采样的方法,该方法结合了 纯粹的贪婪优先 和 均匀随机采样。我们确保被采样的概率在转移优先级上是单调的,与此同时,确保最低优先级的转移的概率也是非零的。具体的,我们定义采样转移 i 的概率为:

其中,pi 是转移 i 的优先级。指数 $\alpha$ 决定了使用多少优先级,当 $\alpha$ 等于 0 的时候是均匀的情况。
第一种变体就是直接的,成比例的优先;
第二种是间接的,基于排行的优先级,pi = 1/rank(i),其中 rank(i)是回放单元根据误差排行的转移 i 的排行。
两个分布都是随着误差单调的,但是后者更鲁棒,因为其对离群点不敏感。两个变体相对均匀的baseline来讲都是有很大优势的,如上图右侧所示。
4. Annealing The Bias
利用随机更新得来的期望值的预测依赖于这些更新,对应其期望的同样的分布。优先回放引入了误差,因为它以一种不受控的形式改变了分布,从而改变了预测会收敛到的 solution(即使 policy 和 状态分布都固定)。我们可以用下面的重要性采样权重来修正该误差:

在经典的强化学习的场景下,更新的无偏性是训练最后接近收敛最重要的部分,因为这个过程是高度非静态,由于变化的策略,状态分布和引导目标;我们假设小的偏差可以忽略。
本文将优先回放和 Double Q-learning 相结合,就是将 均匀随机采样 替换为 本文提出的 随机优先和重要性采样方法,具体算法见下图:


论文阅读之:PRIORITIZED EXPERIENCE REPLAY的更多相关文章
- (zhuan) Prioritized Experience Replay
Prioritized Experience Replay JAN 26, 2016 Schaul, Quan, Antonoglou, Silver, 2016 This Blog from: ht ...
- 强化学习中的经验回放(The Experience Replay in Reinforcement Learning)
一.Play it again: reactivation of waking experience and memory(Trends in Neurosciences 2010) SWR发放模式不 ...
- 【深度强化学习】Curriculum-guided Hindsight Experience Replay读后感
目录 导读 目录 正文 Abstract[摘要] Introduction[介绍] 导读 看任何一个领域的文章,一定要看第一手资料.学习他们的思考方式,论述逻辑,得出一点自己的感悟.因此,通过阅读pa ...
- 论文阅读(Xiang Bai——【PAMI2017】An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition)
白翔的CRNN论文阅读 1. 论文题目 Xiang Bai--[PAMI2017]An End-to-End Trainable Neural Network for Image-based Seq ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- Deep Reinforcement Learning for Dialogue Generation 论文阅读
本文来自李纪为博士的论文 Deep Reinforcement Learning for Dialogue Generation. 1,概述 当前在闲聊机器人中的主要技术框架都是seq2seq模型.但 ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
随机推荐
- Oracle普通索引,唯一索引,主键的区别
索引是我们经常使用的一种数据库优化手段,适当的业务操作场景使用适当的索引方案,可以显著的提升系统整体查询性能,当然用户体验也随之提高. 在Oracle中,唯一性索引(Unique Index)是我们经 ...
- C#基础--面向对象计算器
static void Main(string[] args) { //new个对象 Calculator cal = new Calculator(); //做事情 cal.Run(); } /// ...
- CAD系统变量(参数)大全
所谓系统变量就是一些参数,这些参数有些是可以在“选项”或其他对话框中进行设置的,有些这必须通过在命令行输入变量名进行设置,当然对于高手来说,还可以通过二次开发程序来进行控制. CAD有很多的变量,例如 ...
- hdu 2064
ps:分析发现,要移动n个到最左端,首先要移动n-1个从A到C,然后从C到A,然后再从A到C,然后中间是把大盘从A到C,两步.递推公式自然就是a[n]=3*a[n-1]+2 代码: #include ...
- linux基础命令学习(三)Vim使用
1. # vim 1.txt 命令模式: a i o A I O x X yy dd p G dw de h j k l f H M B a --- append 追加 在光标所在位置后追加一个字符 ...
- OnePlus安装Kali-NetHunter
1.关于 Kali NetHunter Kali NetHunter 是一款由 Offensive Security 团队研发设计的,以 Nexus(手机/平板)为基本 硬件设备,基于原生 Andro ...
- php大力力 [033节] 随便看看:PHP程序员学习C++
php大力力 [033节] 随便看看:PHP程序员学习C++ 2014 兄弟连高洛峰 PHP教程14.1.7 在PHP脚本中操作MySQL数据库4 观看 - 56.com http://www.med ...
- 监听Android CTS测试项解决方案(一)
前言: 首先这里需要详细叙述一下标题中"监听Android CTS测试项解决方案"的需求.这里的需求是指我们需要精确的监听到当前CTS测试正在测试的测试项. 因为我们知道CTS认证 ...
- 解决:信息中插入avi格式的视频时,提示“unsupported video format”
[测试步骤]:新建信息,添加AVI格式的视频 [测试结果]:添加时弹出提示"unsupported video format" 该问题主要提现在手机彩信视频附件不支持该AVI格式的 ...
- python实现简单随机模拟——抛呀抛硬币
还是在上次提到的数据之魅那本书,看到模拟这章,有个python模拟脚本,但书上不全,就自己简单写了下. 流程:在不同的平衡参数p(为0.5时为均匀的)下,模拟60次实验,每次投硬币8次,统计正面朝上的 ...