参考资料:
Prioritized Experience Replay (DQN) (Tensorflow) - 强化学习 Reinforcement Learning | 莫烦Python
如有错误请指出,谢谢~
知乎同名:https://www.zhihu.com/people/uuummmmiiii/activities
创新点:在抽取经验池中过往经验样本时,采取按优先级抽取的方法
改进:同上
改进原因:原来随机抽取经验忽略了经验之间的重要程度,实际上如人脑中一定会有更为重要的记忆
带来益处:使得算法更快收敛,效果更好
Abstract
经验回放使得在线强化学习的agent能够记住和重新利用过去的经验,在以往的研究中,过去的经验(transition,经验池中的一条记录,表示为元祖形式,包含state,action,reward,discount factor,next state),只是通过均匀采样来获取。然而这种方法,只要原来有过这个经验,那么就跟别的经验以相同的概率会被再次利用,忽略了这些经验各自的重要程度。
本文我们提出了一种优先回放结构,这种方法可以使重要的经验被回放的概率大,从而使学习变得更有效率。
Introduction
introduction开始介绍了经验回放机制的产生:
1、更新完参数立刻丢掉输入输出的数据:
造成两个问题:这种强相关的更新打破了很多常用的基于随机梯度下降算法的所应该保证的独立同分布特性,容易造成算法不稳定或者发散;放弃了一些在未来有用的需要重放学习的一些稀有经验。
2、1992年提出Experience Replay,解决了这两个问题,并在2013年提出的DQN(Mnih et al.)中应用,原始DQN中只是从经验池中随机取样进行回放利用。经验回放虽然可以减少agent学习所需要的经验数量(输入的data),但会增加计算量与内存,但是增加的计算量与内存对于agent与环境交互而言更cheaper。
Experience replay liberates online learning agents from processing transitions in the exact order they are experienced.
3、这里我们提出如何对经验标记优先级,来使重放比单纯的随机抽样回放更有效。
Prioritized replay further liberates agents from considering transitions with the same frequency that they are experienced.
我们用TD-error来表示优先级的大小。
1、这种方式会丢失多样性,我们用stochasitic prioritization(proportional prioritization和rank-based prioritization)来弥补;
2、这种方式也会引入bias,我们用importance-sample weights来弥补
Prioritized Replay
在利用经验池的时候会有两种选择:一是选择哪些经验进行存储,二是如何进行回放。我们仅研究第二个。分四步逐渐提出我们加入prioritized experience replay的算法。
3.1 A motivate example 一个给我们提供灵感的例子
作者为理解首先介绍了一个人工设置的称为‘Blind Cliffwalk’环境,这个环境体现了在reward很少的时候exploration的困难之处(exploration,个人理解在贪婪算法