Prioritized Experience Replay

Prioritized Experience Replay

Abstract

经验回放允许在线强化学习agent可以记住并且重复使用过去的经验。在之前的研究中,经验转变信息是从回放库里均匀采样的。然而,这种方法只是简单的以同样的频率来回放之前的经历,并没有引入经验重要性。本文开发一种带优先的经验回放,重要的经验会以更大的概率再次学习。

1. INTRODUCTION

在线RL agents在观测到经验流的时候渐进地更新它们的参数。最简单的模式下,它们会在完成一次更新之后,立马丢弃输入的数据。这会带来两个问题:a)强相关性会打破很多常用的基于随机梯度的算法的独立同分布的假设。b)会很快忘掉少出现的经验,这些经验可能在后期会很有用。
本文,我们探究怎样的优先会使经验回放更加有效。核心思想就是让RL agent相比于学习别的transitions学习某些transitions会更有效。Transitions可能或多或少是意想不到的,冗余的或者与任务相关的。某些transitions可能不是立刻对agent来说是有用的,而是要等到agent的完整性提高了才有用的。经验回放解放了agents从经历的顺序来学习。带优先的经验回放进一步解放了以同样的频率来学习。
尤其,我们考虑对具有高期望学习进步(TD error的大小)的transitions提高频率。这样的优先策略会导致多样性的丢失并且引入bias(重要性采样的修正)。

3. PRIORITIZED REPLAY

使用回放存储就有两个选择:存储哪些经验,回放哪些经验。本文着重解决后者:最大限度的提高经验回放的有效性。

3.1 A MOTIVATING EXAMPLE

为了理解优先顺序的潜在收益,我们引入一个人工的‘Blind Cliffwalk’环境(图1左),定义了一个探索性的挑战任务,rewards非常少。对于n个states,环境需要指数级的随机steps才可能得到第一个非0reward;更准确一点,一个随机动作序列得到reward的几率是 2 − n 2^{-n} 2n
我们用这里例子来强调两个agents学习次数的不同。两个agents都是从同一个回放存储中提取transitions执行Q-learning。第一个agent使用均匀随机采样,第二个agent使用一个准则来调整transitions的优先顺序。这个准则是贪婪地选择transition,这个transition对于当前state能够最大的减小全局loss。图1右显示了使用一个好的顺序来选择transitions相比于均匀随机选择要指数级的加快学习。显然,这个准则是不现实的(全局是不可能的),但巨大的差距促使我们寻找一种实用的方法来改进均匀的随机重放。
在这里插入图片描述
图1:左:‘Blind Cliffwalk’的图示:只有两个动作,‘右’和‘错误’,每当agent选择‘错误’,情景就会结束(红虚线)。一直‘右’经过n个states,最后会得到1的reward(绿线),其他位置reward都是0。右:要求的学习价值函数的学习步骤的中位数跟回放记忆了transitions总数的函数。

3.2 PRIORITIZING WITH TD-ERROR

优先回放的核心组件是回放标准(用什么来估计每个transition的重要性)。一个理想的标准是RL agent期望从transition的state学习的量。这个度量并不能直接得到,但是我们可以近似使用TD error δ \delta δ(表明了transition的有多么‘奇怪’,多么意外:它和下一步的bootstrap估计的差异)。TD-error并不适用于所有的情况,附录A里讨论一些变体。
为了展现基于TD error的优先回放的潜在有效性,我们使用‘贪心TD-error优先’来学习Blind Cliffwalk,并与之前的结果比较。算法在回放记忆里存储最新的每个transitions的TD error。从记忆中提取最大绝对TD error的transition来进行Q-learning,然后得到的新的TD error用于更新该transition的TD error。新的transitions来的时候,我们并不知道TD-error,所以我们将它们置成最高优先级以保证所有经验都至少会见过一次。图2左,显示了算法大量减少了解决Blind Cliffwalk所需的时间。
在这里插入图片描述
图2:在Blind Cliffwalk例子上,使用Q-learning学习价值函数所需要的更新步骤的中位数。左:表格表示法,贪心优先。右:线性函数逼近,随机优先的变体

3.3 STOCHASTIC PRIORITIZATION

然而贪心TD-error优先有一些问题。第一,为了避免对于整个回放记忆库进行遍历,我们只对回放的transitions的TD errors进行更新。一个后果就是对于第一次访问过后,TD error小的transitions它们可能很长时间都不会被回放。第二,对噪声峰值比较敏感(rewards是随机的时候)。第三,贪心优先会使算法集中在一个小的子集上学习:误差减小的慢,尤其使用函数逼近的时候,这意味着初始高error的transition会被反复回放。这使得系统倾向于过拟合。
为了解决这些问题,引入随机采样的方法介于纯贪心和均匀随机采样。我们确保被采样的概率是跟transitions的优先级是一致的,即使最低优先级的transition也是非0概率。我们定义采样transition i i i的概率为:
(1) P ( i ) = p i α ∑ k p k α P(i)=\frac{p^\alpha_i}{\sum_kp^\alpha_k} \tag 1 P(i)=

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值