Prioritized experience replay 笔记

1. 前言

对于增强学习过程中,agent在一系列的动作选择中得到的经验,存在很大的相关性,这违反了常见的梯度下降算法对于样本 iid的假设。同时对于一些出现几率很小,但是可能很有用的经验,忘记得非常快。DQN使用了experience replay来克服这些困难。
在这篇论文中,作者提出来优先选择那些对于训练更加有效的经验,而不是DQN中的uniformly。因为,对于一个agent来说,某些经验会比其他经验更加有用。作者提出,对于那些TD error更大的经验,给予更多的replay的机会。

2. 介绍

2.1 一个例子

为了显示priorization的潜力,作者使用了一个爬坡的例子,假设一个车子在类似抛物线的谷底,假设有n个状态,那么需要n的指数级的尝试才能遇到一个非零的reward。而这个稀有的正的奖励的经验,会被更多的0的奖励的经验淹没。
对于这个问题使用如下的方法来学习,第一个公式表示TD error:

Blind Cliffwalk

下图显示了uniform和选择最小化global loss的区别
update

2.2 Prioritizing with TD-error

对于prioitization,重要的是如何衡量经验的重要性。作者选择了TD-error。它直观地解释是:agent对这个经验的惊讶程度,也就是有多超乎意料。但是,当TD-error被噪音影响的话,就不是一个好的选择了。

2.3 Stochastic Prioritization

作者认为如果简单地选择最大TD-error作为优先权最大的经验,会有一些问题:TD-error在每次更新参数后也需要更新,为了避免更新所有的TD-error,那么可以更新replay的TD-error,这使得那些一开始具有小的TD-error的经验一直得不到关注,即使它们应该被replay。另外,这种方式对噪声非常敏感。除此之外,在使用函数估计的时候,这种方式往往只replay很小一部分经验,一些TD-error很大的经验被很多次地replay。这很容易过拟合。

为了克服这些困难,作者提出了随机优先。在pure greedy prioritizationuniform random sampling做一个折中。使用下式作为经验i的概率:

P

p_i
选择有多种,例如:
p_i = |\delta_i| + \epsilon
,或者
p_i = \frac{1}{rank(i)}
,其中
rank(i)
当经验根据
\delta_i
排序时的排名。作者发现,这两种选择都非常有效。

算法如下:


algorithm

2.4 Annealing the bias

作者认为,prioritized replay以一种不可控制的方式改变了更新的分布。因而改变了结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容