论文宗旨:

由于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的更多相关文章

  1. 论文阅读之:PRIORITIZED EXPERIENCE REPLAY

    PRIORITIZED EXPERIENCE REPLAY ICLR 2016 经验回放使得 online reinforcement learning agent 能够记住并且回放过去的经验.在先前 ...

  2. (zhuan) Prioritized Experience Replay

    Prioritized Experience Replay JAN 26, 2016 Schaul, Quan, Antonoglou, Silver, 2016 This Blog from: ht ...

  3. 强化学习中的经验回放(The Experience Replay in Reinforcement Learning)

    一.Play it again: reactivation of waking experience and memory(Trends in Neurosciences 2010) SWR发放模式不 ...

  4. 【深度强化学习】Curriculum-guided Hindsight Experience Replay读后感

    目录 导读 目录 正文 Abstract[摘要] Introduction[介绍] 导读 看任何一个领域的文章,一定要看第一手资料.学习他们的思考方式,论述逻辑,得出一点自己的感悟.因此,通过阅读pa ...

  5. Revisiting Fundamentals of Experience Replay

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! ICML 2020 Abstract 经验回放对于深度RL中的异策算法至关重要,但是在我们的理解上仍然存在很大差距.因此,我们对Q学习方法 ...

  6. 强化学习(十一) Prioritized Replay DQN

    在强化学习(十)Double DQN (DDQN)中,我们讲到了DDQN使用两个Q网络,用当前Q网络计算最大Q值对应的动作,用目标Q网络计算这个最大动作对应的目标Q值,进而消除贪婪法带来的偏差.今天我 ...

  7. 【转载】 强化学习(十一) Prioritized Replay DQN

    原文地址: https://www.cnblogs.com/pinard/p/9797695.html ------------------------------------------------ ...

  8. (转) 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 ...

  9. (zhuan) Deep Deterministic Policy Gradients in TensorFlow

          Deep Deterministic Policy Gradients in TensorFlow AUG 21, 2016 This blog from: http://pemami49 ...

  10. (转) 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, ...

随机推荐

  1. podman 入门实战

    一入编程深似海,从此节操是路人. 最近使用podman,就想着写一篇总结性的笔记,以备后续参考.就如同写代码,不写注释,过了一段时间可能会想这是我写的吗?不会吧,还要理一下逻辑才能读懂,不利于后期维护 ...

  2. mysql查询近N天的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  3. Spring------Bean的实例化的几种方法

    构造方法 提供可访问的构造方法: 无参构造方法被调用: 如果无参构造方法不存在,将抛出异常BeanCreationException 静态工厂 在ApplicaytionContext.xml中使用静 ...

  4. 搭建良好编写体验的webgl编程环境 vscode+vit

    因为webgl代码是以字符串的形式嵌入在javascript代码中,这对于我们编写webgl代码的体验不友好,本文介绍如何搭建友好webgl编程环境: 需要安装的vscode插件 WebGL GLSL ...

  5. MySQL 慢查询优化案例

    一.慢查询优化基本步骤 [1]先运行看看是否真的很慢,注意设置SQL_NO_CACHE(查询时不使用缓存):[2]where条件单表查,锁定最小返回记录表.这句话的意思是把查询语句的 where都应用 ...

  6. redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to "xxxxx"

    Java 连接 Redis所遇问题 1. 检查Linux是否关闭防火墙,或对外开放redis默认端口6379 关闭防火墙. systemctl stop firewalld 对外开放端口.firewa ...

  7. JMM知识点总结

    JMM知识点总结 一.什么是JMM? 不知道大家在学习的过程有没有思考过这两个问题 为什么说java是跨平台语言 导致并发问题的原因是什么 第一个问题,我是这么理解的,代码运行本质上是将我们写的语言转 ...

  8. 前端根据后端返回的数据流导出excel

    首先在utils.js里面声明exportMethod函数,该函数的作用是通过发axios post请求后端导出接口,请求成功后: 1. 在成功函数里面先新建一个a标签: const link = d ...

  9. OpenWRT实现NAT64/DNS64

    OpenWRT实现NAT64/DNS64 连接到核心路由器 # 连接到核心路由器 [C:\~]$ ssh root@10.0.0.1 Connecting to 10.0.0.1:22... Conn ...

  10. QT实现可拖动自定义控件

    使用QT实现自定义类卡牌控件Card,使其能在父类窗口上使用鼠标进行拖动. 控件类头文件card.h #ifndef CARD_H #define CARD_H #include <QWidge ...