Prioritized Experience Replay

优先体验回放是强化学习中的一种策略,通过优先选择具有高TD误差的经验进行回放,以加速学习过程并避免过早遗忘。该方法通过调整回放经验的顺序,使重要的、具有高学习进步潜力的过渡状态更频繁地被学习,从而提高学习效率。通过使用TD误差作为优先级标准,可以有效地减少学习所需的时间。同时,通过引入随机性和重要性采样权重来修正优先回放带来的偏差,确保算法的稳定性和收敛性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)=kpkαpiα(1)
这里 p i > 0 p_i>0 pi>0是transition i i i的优先级。指数 α \alpha α决定了优先的程度, α = 0 \alpha=0 α=0表示均匀采样。
第一个变体,我们考虑直接的,成比例的优先, p i = ∣ δ i ∣ + ϵ p_i=|\delta_i|+\epsilon pi=δi+ϵ,这里 ϵ \epsilon ϵ是小常数。第二中变体是,间接的,基于rank的优先, p i = 1 rank ( i ) p_i=\frac{1}{\text{rank}(i)} pi=rank(i)1,rank是基于 ∣ δ i ∣ |\delta_i| δi的。这两个变体分布都是单调的,但是后者更加鲁棒,但是对outliers不敏感。两个变体都会相比于均匀采样的baseline要快,图2右。

3.4 ANNEALING THE BIAS

随机更新的期望值估计依赖于与期望值分布相同的更新。优先回放引入了偏置,改变了估计值会收敛到的解。我们可以使用重要性采样权重来修正这个偏置
w i = ( 1 N ⋅ 1 P ( i ) ) β w_i= \bigg( \frac{1}{N}\cdot \frac{1}{P(i)}\bigg)^\beta wi=(N1P(i)1)β
如果 β = 1 \beta=1 β=1,那么可以完全补偿不均匀概率 P ( i ) P(i) P(i)。这些权重可以折叠到Q-learning的更新中,使用 w i δ i w_i\delta_i wiδi而不是 δ i \delta_i δi。考虑到稳定性,我们总是使用 1 max ⁡ i w i \frac{1}{\max_iw_i} maxiwi1来对权重进行归一化。
在典型的强化学习场景中,更新的无偏本质在训练的末尾接近收敛的地方是非常重要的,因为这个过程是高度非静止的,由于不断改变的策略,state的分布,bootstrap的targets;我们假设这样的环境下,很小的偏置可以被忽略。因此,我们通过定义指数 β \beta β的schedule(在学习的最后达到1),来开发一个重要性采样修正量的大小随时间退火的灵活性方案。在实际中,我们线性降低 β \beta β从初始值 β 0 \beta_0 β0到1。注意到这个超参的选择与优先指数 α \alpha α有关;同时增加会使优先策略更激进的同时也修正的更厉害。
重要性采样在非线性函数逼近(深度神经网络)的环境中结合优先回放时有另一个好处:梯度量级与error成比例,然而,因为在非线性的case中,梯度的1阶近似只能在局部得到,这意味着大步长是具有破坏性的,并且全局的步长必须要小来防止这种事情发生。那么在高error的transitions上做多次小的更新就能够减缓这个问题,因为泰勒展开被重新估计,允许算法能够遵循高度非线性优化走势的曲率。这就是我们的方法正在做的:优先确保高error的transition被多次学习,然后IS修正权重保证每次更新就是step很小的一次。
我们将我们的优先回放算法与全尺寸强化学习agent结合起来,基于当下sota的double DQN算法。我们的主要修改就是使用随机优先和重要性采样来替换原来的均匀随机采样。(如算法1)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值