强化学习模型-Priority Replay Buffer

论文:Schaul T, Quan J, Antonoglou I, et al. Prioritized Experience Replay[J] . Computer Science,2015

前言

1.首先提下Replay Buffer吧,Replay Buffer是最基本的样本收集再采样的过程,是之前在做DDQN实验中使用的一种样本利用方式,原因是当我们使用Q-learning算法进行在线方式学习时,会存在两个问题:

           [1]交互得到的序列存在一定相关性(因为在线学习往往就是得到一个就立马拿来训练 )。而我们的机器学习模型对训练样本的假设是独立、同分布的,所以序列打破了这种独立同分布特性,因此效果不太好。

           [2]交互样本使用的效率过低。因为每次要使用一定的时间获取一个batch的样本才能完成一次训练,所以对样本的获取是有些慢的,而且在线学习方式往往会将学习后的样本直接丢弃,这样下来利用的效率不高。 针对这一问题提出下图这样的结构,可以发现就是之前一直使用哪种 设置‘样本回放缓存区’的架构,主要就包括样本收集和样本采样两个过程,一种有限量的保存和 均匀随机的采样。

强化学习模型-Priority Replay Buffer_第1张图片

2.注意这里还有个track点是必须均匀采样,也就是说这里会均匀从多个序列中采样轨迹,而不是只使用一次交互得到序列中的样本,这样可以减轻使用单一序列所导致的波动,从而可以很好地稳定训练的效果,同时可以将一份样本进行多次训练,从而提升样本利用率。      

3.traick点:提出一种样本存放缓冲区的架构,对经验信息进行存储,并使用均匀采样的方式,这里的均匀采样方式可以被借鉴,就是对缓存区数据的随机选取也可以是有一定规制的。

Replay Buffer结构

问题引入

1.接下来在之前的基础上介绍对Replay Buffer的改进结构,名称为Priority Replay Buffer。 其主要思想是之前选取样本时是将所有的样本都以等概率进行采样出来,但实际上每个样本的难点不同,学习所获得的收获也是不同的,说白了就是如果这条经验行走造成的TD-Error比较大,那么其对学习起到的指导作用则更大,因此越是那些预测不准的经验,我们越需要将其取出来进行训练,所以这里Priority的意义是增加一个权重优先级,对于预测不好的记忆给以大的优先级,也就是给予大的权值概率,预测较准的给予小的权重。

2.论文中实现的方法是未每个存入Replay Buffer的样本设定一个权重,并利用这个权重完成取样工作,但是这里有两个思考点:

           (1)该怎么组织存储的权重,直接使用一个数组进行保存吗,那样采样复杂度太高了,那该怎样存储?

           (2)该怎么定义权重?直接使用TD-Error进行定义吗,这样好像有些不方便,因为样本利用之后模型对此样本的TD-error值都需要变化的,所以每次都读取、计算、再更新会比较麻烦,是否有更好的方式?

问题解答

1.首先思考第一个问题,为了提高采样复杂度,我们是一种线段树的方式。在树的叶子结点上存放样本权重信息,这样在添加样本到Replay Buffer时,不管记录样本信息,还会从叶子节点开始不断向上进行权值的更新,在采样时会利用二分查找法定位到选中的样本。

强化学习模型-Priority Replay Buffer_第2张图片

2.针对第二个问题,我们并不完全用TD-Error评估重要度,而是使用一种如下的方式,使用系数α老调整样本重要性,当小于1时削弱高TD-Error样本影响,增强低TD-Error的影响,当=1时,不做调整,这样相当于是一种较为综合的调整。

强化学习模型-Priority Replay Buffer_第3张图片

3.另外本方法中还有一点track点,之前的方法是通过调整采样的概率方式来提升训练的效率,这里第三个track点是提供一个参数,来调整每个样本在训练时对模型更新造成的影响, 因为之前的第二点虽然会提升样本的利用率,但是会导致更新过程变得有偏,所以这里相当于是个小的矫正,是为了在第二点基础上让其变得无偏,但是无偏和  高样本利用率是不可兼得的,所以我们会有个调节系数,让模型在前期比较偏向高利用率,后期偏向无偏。 使用如下的参数,β前期为0,之后不断趋向于1,会导致w不断起作用,进行有偏的调节,从而不断从无偏变得有偏,不断从高利用率变得不那么高了。

4.整体下来过程如下,使用两个系数调节样本利用率  和 保持无偏性,兼顾‘求新’和‘求稳’。

强化学习模型-Priority Replay Buffer_第4张图片

总结

track点:

            (1)使用P权重系数来保存样本重要性,使用线段树对权重值进行保存,通过对样本重要度的概率区分,来提升样本的利用率。

            (2)针对样本不同概率取样导致的有偏性,使用另一个系数来调整样本作用权重,从未往无偏性调节,对两者的冲突性进行调节,达到求新和求稳的折中。

你可能感兴趣的:(强化学习)