Actor Prioritized Experience Replay
论文宗旨:
由于PER 是以TD-error成正比的非均匀概率进行抽样的,但是在AC算法中即连续动作空间中,会表现出低效果。
分析结果是:Actor不能有效的从high TD-error的transition中学习,Q网络下近似的policy gradient会偏离最优Q下的真实梯度。
提出修正方法:
- Actor从low TD-error的transition中学习;但是发现在q网络更新中与MSE损失相结合时,PER并不能完全消除偏差,采用huber loss
- 对于low TD-error的采样;方法:其概率与TD误差成反比,适用于创建一个包含优先级全局逆的new tree,并且q网络更新也使用LAP优先级方法,and Huber loss不能应用于策略梯度的计算
- 用完全不同的transition优化演员和评论家网络可能违反AC理论:使用相同的transitions set(作为采样mini-batch的一部分)进行优化,并且对共享transitions set进行均匀采样,q网络更新也使用LAP优先级方法的镜像loss函数--PAL
1 Introduction
PER非均匀采样,分析了PER在AC中为何不能有效:
对于critic:TD-error可以代表Q学习的loss和对未来回报的不确定性。
但是对于actor:actor不能有效训练,因为这些经验是critic未知未来回报的(就好比:一个经验很少的老师期待可以学习的很好)
本文会证明actor使用high TD-error训练的策略梯度会出现偏差
本文Discoveries:
- 依赖与critic的策略梯度不能使用使得critic有高不确定性的transitions
- critic和actor选择不用的transition违反AC算法。因为critic参数更新依赖actor
- 损失函数要与优先级抽样一起考虑:因为在采样的时候离群偏差的transition可能会被泄露
2 Related Work
PER的改进算法:
Rainbow, distributed PER, distributional policy gradients、
prioritizing the sequences of transitions 、 optimization of the prioritization scheme、
determining which transitions to favor or forget、 the composition and size of the experience replay buffers
基于学习的采样策略:
train a multi-layer perceptron whose input is the concatenation of reward, time step, and TD
error.
与这些可学习的采样策略相反,本文以基于规则的方式引入了对优先体验重播的修正
最近的研究:PER、LAP和MaPER。
本文实验比较:我们的方法(LA3P)与均匀抽样、PER、LAP和MaPER进行了比较。
3 Technical Preliminaries
3.1 Deep Reinforcement Learning
在动作值函数(q函数或批评家)Qπ下评估策略的性能:

根据贝尔曼方程确定动作值函数:

TD-learning算法是一种基于Bellman方程的更新规则:

TD error:
3.2 Prioritized Experience Replay
PER两点改变:
采用随机优先级方案:
这样做的动机是,只有在重放transition时才更新TD error。最初的high TD error的transition会更频繁地更新,从而导致贪婪优先级。由于贪婪采样,噪声q值估计增加了方差;如果直接对与TD误差成比例的transition进行采样,过拟合是不可避免的:修正:给每个transition赋一个概率值,与其TD-error成正比,并设置为超参数α的幂次以平滑极值:

偏好随机优先级的high TD error的transition会使下一个状态对于Q值的分布偏移
修正:重要性采样

4 Prioritized Sampling in Actor-Critic Algorithms
用标准的非策略连续控制方法解释了PER的不良性能
Lemma 1

引理1:
如果δ是与评价网络Q相关的TD error,则存在一个δo(τt)≠0的过渡元组τt = (St, at, rt, St+1),使得τt上的绝对TD error与至少τt或τt+1上的绝对估计误差成正比
证明:
TD error的自举值估计公式:
在策略Π下的最优动作价值函数没有TD error:
两个式子相减:
x是时间步t的估计误差;y是后续时间步t + 1的估计误差
如果x = 0,则y≠0,反之亦然,因为γ≥0
因此,如果q网络对应的TD误差非零,则在τt或τt+1上存在Qθ的估计误差
假设δθ(τt)<0, x≥0,y <0。在这种情况下,如果x保持不变,则TD误差的增加会增加y的绝对估计误差。
推断在时间步长t的绝对时间差误差|δθ(τt)|与τt或τt+1的绝对估计误差之间可能存在正比关系。
RL函数估计误差通常是由使用函数逼近器和自举引起的;由于估计误差通常不能区分为函数逼近和bootstrapping,因此不能推导出估计误差和TD误差之间总存在正比关系。此外,在某些条件下,TD-learning可能是一个糟糕的估计,例如当奖励有噪声时。TD误差衡量的是过渡的意外程度,而不是估计精度。因此,引理1必须证明这种相关性对于某些状态-动作对是存在的
Theorem 1
利用上述结果来解释为什么使用具有较大TD误差的转换不能有效地执行策略优化

定理1:
设τi是一个满足引理1的transition。那么,如果δθ(τi) ≠ 0,则δθ(τi)正比于估计梯度的误差
证明:
用策略参数φ的函数近似形式化地表示标准策略迭代:
用函数逼近法给出了策略迭代中策略梯度的一般公式:
我们可以忽略dπ(si)由于策略参数φ对d没有影响:

如果策略是随机的,则上式转化为:
梯度正比于Q的估计值
用真q值和估计误差来表示策略梯度:
真实Q与真实梯度的关系:
上述两个式子可见:随着Q估计值偏移真实Q值,增长的估计误差会增加了与实际政策梯度的差异:

根据Lemma 1:
我们推断,当前步t中增加的绝对TD error会增加当前t或后续步t+1中与实际策略梯度的差异:

Corollary 1.
定理1:如果actor网络使用与large TD error相对应的transition进行优化,则当前或后续步的策略梯度可能与实际梯度偏离

推论1:
如果transition的 TD error增加,则关于Q-network的任何策略梯度算法计算的近似策略梯度都可能偏离当前或后续transition在最优q函数下计算的实际梯度。
当采用actor网络时,这是优先采样性能下降的一个重要因素
Remark 1
最近的一项发现:解释了连续控制中优先抽样的较差性能的补充
通过随机采样的具有较大TD误差的转换进行优先级排序,将s0的分布移动到Es 0 [Q(s 0, a0)]。因此,这种诱导的偏差可通过重要性采样进行修正;
在发现中:在q网络更新中,当与MSE损失相结合时,PER并不能完全消除偏差,可能会偏向离群点
修正:L1 loss可以满足这样的性质
在实践中,L1损失可能不是理想的,因为每次更新都需要一个恒定大小的步长,如果学习率太大,可能会导致目标overstepped
修正结果:采用常用的Huber损耗,κ = 1:
误差小于1的样本应均匀采样,以防止由MSE和优先级引起的偏差;LAP算法将低优先级的样本限定为至少一个样本来实现这一目标。
LAP算法将式(25)中表示的Huber损失与以下改进的随机优先级方案相结合,克服了Remark 1中提到的问题:
Remark 2

为了进一步消除优先体验重放算法中有利于离群值转换的偏差,应将κ = 1的Huber损失与上述优先级方案结合使用
Fujimoto等人提出的结果对我们在remark 2中强调的PER性能较差的理论结论进行了补充。
我们的重点是连续控制算法,相比之下,Remark 2包括离散和连续的非策略深度强化学习。
Corollary 1和Remark 2为连续控制中PER算法的缺陷奠定了基础
5 Adaptation of Prioritized Experience Replay to Actor-Critic Algorithms
5.1 Inverse Sampling for the Actor Network
Observation 1

如果没有使用sampled transitions之后的transitions来优化参与者网络,那么在PER算法下,AC方法的性能可能不会下降。然而,在连续控制的标准脱策略算法中,这种可能性仍然很小。【因为replay buffer在初始优化步骤中包含很少的转换,其数量小于批量大小】
推论1中的需求可以通过从优先重放缓冲区中进行反向采样来实现,即通过PER方法对执行器网络的低TD误差转换进行采样
一种本能的对转换进行采样的方法,其概率与TD误差成反比,适用于创建一个包含优先级全局逆的new tree。
尽管通过之前定义的和树数据结构,vanilla中的优先级在每个训练步骤中都会更新,但对actor更新的反向采样需要在训练之前创建一个新的和树。在每个更新步骤中,优先级的计算如下:
Remark 2所述,使用MSE和PER仍然会导致不同的偏差,这些偏差可能有利于异常值转移。因此,我们采用LAP的优先级方案:
在每个优化步骤t, Q-network和优先级分别更新为
Huber损失不能应用于策略梯度的计算
首先,根据q网络的损失即TD误差确定优先级,而MSE损失结合基于TD误差的优先采样是上述离群点偏差的主要原因;
此外,通过一类不可替代的策略梯度技术来计算策略损失和梯度。
因此,离群点偏差不会影响策略梯度,策略网络不需要使用Huber损失
5.2 Optimizing the Actor and Critic with a Shared Set of Transitions
用完全不同的transition优化演员和评论家网络可能违反AC理论
如果critic更新被一组位于actor从未优化过的状态-动作空间中的特征,可能存在很大的不稳定性:critic使用的transition是通过actor处理的,actor从未看到这些转换;因此critic的行为评价的可靠性可能会受到质疑
TD和估计误差之间并不总是直接相关的。
因此,一些过渡最初可能具有较低的TD误差。如果actor在整个学习过程中针对这些低TD误差转换进行优化,并且Q-network只关注剩余的大TD误差转换,则actor和critic训练中使用的样本可能不相同。尽管这仍然有一点可能性
但我们通过一组共享transition来更新actor和critic网络,作为采样mini-batch的一部分,从而克服了这一问题
Observation 2

如果分别通过逆优先级和优先级采样对actor和critic的转换进行采样,它们可能永远不会观察到相同的转换,这违反了actor-critic理论,并导致学习中的不稳定。因此,actor和critic应该使用相同的transitions set进行优化,至少在每个更新步骤中为采样的小批量transitions的一部分进行优化
如何选择 the set of shared transitions
均匀采样转换:
Transitions with large TD error和Transitions with small TD error两种选择意味着对共享转换集进行均匀采样仍然是唯一的选择。
虽然均匀采样的小批量中可能包含较大的TD误差转移,但由于在小批量学习中进行平均,它们的影响被降低了。
如Remark 2所述,Huber损失(κ = 1)与优先采样相结合可以消除LAP算法中的离群点偏差。Fujimoto等人[2020]还介绍了LAP的镜像损失函数,具有等效的期望梯度,用于从经验回放缓冲区中均匀采样。
为了在均匀采样中观察LAP的相同好处,应该使用它的镜像损失函数,优先近似损失(PAL)而不是MSE。与LAP函数的情况类似,在策略网络的更新中也不使用PAL损失。PAL函数表示为:


为了消除均匀采样对应物中的离群值偏差,应该使用优先化近似损失(priority Approximate Loss, PAL)函数,该函数与PER结合后的Huber损失具有相同的期望梯度
LA3P
PER correction算法,即损失调整的近似Actor优先体验重放(LA3P)
总结一下方法:
- 在每个更新步骤中,均匀采样大小为λ·N的小批次转换,其中λ∈[0,1]表示均匀采样transition的分数,这是引入的唯一超参数。
- 在均匀采样的批处理下,分别对critic和actor网络进行优化。critic根据PAL函数进行更新,之后更新优先级。
- 然后,分别通过优先级采样和逆优先级采样对critic和actor网络采样(1−λ)·N个transitions。
- 然后,通过Huber损失(κ = 1)优化critic,并使用策略梯度技术优化actor。
- 最后,再次更新优先级。

总的来说,actor和critic网络在每个更新步骤中通过N次转换进行优化,就像标准的非策略actor-critic算法一样。
异议:LA3P引入了额外的tree,增加了计算复杂度
解决:最新推出的CPU支持单指令多数据结构(SIMD)可以克服该缺点
Actor Prioritized Experience Replay的更多相关文章
- 论文阅读之:PRIORITIZED EXPERIENCE REPLAY
PRIORITIZED EXPERIENCE REPLAY ICLR 2016 经验回放使得 online reinforcement learning agent 能够记住并且回放过去的经验.在先前 ...
- (zhuan) Prioritized Experience Replay
Prioritized Experience Replay JAN 26, 2016 Schaul, Quan, Antonoglou, Silver, 2016 This Blog from: ht ...
- 强化学习中的经验回放(The Experience Replay in Reinforcement Learning)
一.Play it again: reactivation of waking experience and memory(Trends in Neurosciences 2010) SWR发放模式不 ...
- 【深度强化学习】Curriculum-guided Hindsight Experience Replay读后感
目录 导读 目录 正文 Abstract[摘要] Introduction[介绍] 导读 看任何一个领域的文章,一定要看第一手资料.学习他们的思考方式,论述逻辑,得出一点自己的感悟.因此,通过阅读pa ...
- Revisiting Fundamentals of Experience Replay
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! ICML 2020 Abstract 经验回放对于深度RL中的异策算法至关重要,但是在我们的理解上仍然存在很大差距.因此,我们对Q学习方法 ...
- 强化学习(十一) Prioritized Replay DQN
在强化学习(十)Double DQN (DDQN)中,我们讲到了DDQN使用两个Q网络,用当前Q网络计算最大Q值对应的动作,用目标Q网络计算这个最大动作对应的目标Q值,进而消除贪婪法带来的偏差.今天我 ...
- 【转载】 强化学习(十一) Prioritized Replay DQN
原文地址: https://www.cnblogs.com/pinard/p/9797695.html ------------------------------------------------ ...
- (转) Using the latest advancements in AI to predict stock market movements
Using the latest advancements in AI to predict stock market movements 2019-01-13 21:31:18 This blog ...
- (zhuan) Deep Deterministic Policy Gradients in TensorFlow
Deep Deterministic Policy Gradients in TensorFlow AUG 21, 2016 This blog from: http://pemami49 ...
- (转) Let’s make an A3C: Theory
本文转自:https://jaromiru.com/2017/02/16/lets-make-an-a3c-theory/ Let’s make an A3C: Theory February 16, ...
随机推荐
- podman 入门实战
一入编程深似海,从此节操是路人. 最近使用podman,就想着写一篇总结性的笔记,以备后续参考.就如同写代码,不写注释,过了一段时间可能会想这是我写的吗?不会吧,还要理一下逻辑才能读懂,不利于后期维护 ...
- mysql查询近N天的数据
今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...
- Spring------Bean的实例化的几种方法
构造方法 提供可访问的构造方法: 无参构造方法被调用: 如果无参构造方法不存在,将抛出异常BeanCreationException 静态工厂 在ApplicaytionContext.xml中使用静 ...
- 搭建良好编写体验的webgl编程环境 vscode+vit
因为webgl代码是以字符串的形式嵌入在javascript代码中,这对于我们编写webgl代码的体验不友好,本文介绍如何搭建友好webgl编程环境: 需要安装的vscode插件 WebGL GLSL ...
- MySQL 慢查询优化案例
一.慢查询优化基本步骤 [1]先运行看看是否真的很慢,注意设置SQL_NO_CACHE(查询时不使用缓存):[2]where条件单表查,锁定最小返回记录表.这句话的意思是把查询语句的 where都应用 ...
- redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to "xxxxx"
Java 连接 Redis所遇问题 1. 检查Linux是否关闭防火墙,或对外开放redis默认端口6379 关闭防火墙. systemctl stop firewalld 对外开放端口.firewa ...
- JMM知识点总结
JMM知识点总结 一.什么是JMM? 不知道大家在学习的过程有没有思考过这两个问题 为什么说java是跨平台语言 导致并发问题的原因是什么 第一个问题,我是这么理解的,代码运行本质上是将我们写的语言转 ...
- 前端根据后端返回的数据流导出excel
首先在utils.js里面声明exportMethod函数,该函数的作用是通过发axios post请求后端导出接口,请求成功后: 1. 在成功函数里面先新建一个a标签: const link = d ...
- OpenWRT实现NAT64/DNS64
OpenWRT实现NAT64/DNS64 连接到核心路由器 # 连接到核心路由器 [C:\~]$ ssh root@10.0.0.1 Connecting to 10.0.0.1:22... Conn ...
- QT实现可拖动自定义控件
使用QT实现自定义类卡牌控件Card,使其能在父类窗口上使用鼠标进行拖动. 控件类头文件card.h #ifndef CARD_H #define CARD_H #include <QWidge ...





