Abstract

事件表分层抽样(SSET),它将ER缓冲区划分为事件表,每个事件表捕获最优行为的重要子序列。

我们证明了一种优于传统单片缓冲方法的理论优势,并将SSET与现有的优先采样策略相结合,以进一步提高学习速度和稳定性。

在具有挑战性的MiniGrid域、基准RL环境和高保真赛车模拟器中的实证结果表明,SSET比现有的ER缓冲采样方法具有优势和通用性。

Introduction

如果事件与最优行为相关,并且历史足够长,与使用均匀采样甚至PER相比,SSET可以显著加快非策略学习的收敛速度。即使这些条件不满足,偏置校正项也会保留Bellman目标,尽管收敛速度可能会减慢。

虽然SSET是一种从ERB中优化采样的新方法,但它是许多现有优先级方法或行为塑造技术的补充。具体来说,SSET可以基于每个表中使用的具有TD-error PER的已知事件应用,从而将重点放在也需要值更新的关键状态上。

贡献:

(1)介绍事件表和事件表SSET框架

(2)我们推导出理论保证,通过适当设计的事件量化样本复杂性的改善,并提供偏差校正,确保Bellman目标保持不变。

(3)我们在具有挑战性的MiniGrid环境和连续RL基准(MuJoCo和Lunar Lander)中实证证明了SSET优于均匀采样或PER的优势,并发现将SSET与TD-error PER或基于潜在的奖励塑造相结合可以进一步改善学习

Related Work

人们提出了许多ERB优先采样的方法。使用最广泛的是优先经验回放(PER) (Schaul等人,2016),它优先考虑具有最大TD错误的状态/动作。然而,PER并不专门关注与最优策略一致的状态:实际上,即使在行为策略改变后,在一个策略下具有零TD误差的经验也可能永远不会再次采样。除了与PER的经验比较外,本文表明,SSET可以与PER一起使用,以利用这两种方法的好处:专注于依赖与最优策略一致的高价值事件轨迹,但也对那些具有高贝尔曼误差的轨迹上的状态进行优先级排序。其他基于模型误差(Oh等人,2021年)或元学习过程(Zha等人,2019年)的优先级来增强vanilla PER的方法也可以类似地与SSET结合使用

SSET并不试图使用同一轨迹的小批量数据,而是依靠采样将轨迹分散到多个小批量中,从而提供沿着轨迹的稳定性和备份。

SSET允许任何基于状态的事件对ERB进行划分,更重要的是存储导致事件的轨迹,而不仅仅是事件本身,这对于确保样本复杂度至关重要。

事件表分层抽样

直观地说,每个表都包含了在接近事件发生区域训练值函数所需的数据,并链接在一起形成了备份的“快车道”(图1),与单一的ER相比,这些数据会被过度采样

一个示例MiniGrid域,具有达到目标或房间之间的间隙的事件条件。蓝色方块表示可以过度采样的状态的“快车道”,因为它们同时出现在事件表和默认表中。灰色状态只出现在默认表中。

与PER和其他ERB优先级方案一样,SSET在随机环境中会引入偏差

Event Tables for Efficient Experience Replay的更多相关文章

  1. (zhuan) Prioritized Experience Replay

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

  2. 论文阅读之:PRIORITIZED EXPERIENCE REPLAY

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

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

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

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

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

  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. Understanding Complex Event Processing (CEP)/ Streaming SQL Operators with WSO2 CEP (Siddhi)

    转自:https://iwringer.wordpress.com/2013/08/07/understanding-complex-event-processing-cep-operators-wi ...

  9. 强化学习之二:Q-Learning原理及表与神经网络的实现(Q-Learning with Tables and Neural Networks)

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译.(This article is my personal translation for the tutor ...

  10. Online Schema Change for MySQL

    It is great to be able to build small utilities on top of an excellent RDBMS. Thank you MySQL. This ...

随机推荐

  1. excel里面嵌入一个表格

    excel里怎么嵌入表格 excel是我们工作中经常会用的软件,有时两表格想放在一起比较,但是行高列宽调起来顾此失彼,so: 软件版本:Microsoft Office Excel 2010 操作系统 ...

  2. win10_pyhive链接hive失败,提示:Could not start SASL

    win10_pyhive链接hive失败,提示:Could not start SASL https://blog.csdn.net/weixin_45684985/article/details/1 ...

  3. VSCode使用小技巧

    VSCode写C/C++项目 我们需要先下载minGW,并需要在VS Code里面下载相应的插件, 如下: 然后,将vscode保存c++项目的文件夹用vscode打开,就会出现这样的形式: 一个标准 ...

  4. 《操作系统导论》读书笔记1——CPU虚拟化,进程

    系列文章目录和关于我 一丶CPU的虚拟化 一个桃子,我们称之为物理(physical)桃子.但有很多想吃这个桃子的 人,我们希望向每个想吃的人提供一个属于他的桃子,这样才能皆大欢喜.我们把给每个 人的 ...

  5. vue核心原理(Diff算法、虚拟dom)

    核心原理&源码 Diff 算法 这里参考大佬文章:https://mp.weixin.qq.com/s/oAlVmZ4Hbt2VhOwFEkNEhw diff 算法的进化 关于 diff 算法 ...

  6. .NET生成MongoDB中的主键ObjectId

    前言 因为很多场景下我们需要在创建MongoDB数据的时候提前生成好主键为了返回或者通过主键查询创建的业务,像EF中我们可以生成Guid来,本来想着要不要实现一套MongoDB中ObjectId的,结 ...

  7. Kingpin Private Browser - 隐私保护浏览器,隐身模式、广告拦截做你的私人浏览器

    Kingpin Private Browser 是一个功能齐全的浏览器,隐身模式和广告拦截总是启用.它不会记住历史记录.密码或cookie.默认情况下,浏览器使用谷歌搜索(您可以在设置中将其更改为Du ...

  8. node-sass与node版本对照图

  9. 关于java.lang.Object类、equals()、toString()的使用、以及方法得重载和重写得一些笔记

    java.lang.Object类 * 1.Object类是所有Java类的根父类; * 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 * ...

  10. 实现自定义注解,实现ioc与aop

    实现自定义注解主要分三个步骤: 1.定义自己的注解类. 注解类默认继承Annotation接口. 且注解内的属性默认public(要给别人用的) 属性可以定义默认值也就是不给你的属性传值也会拥有默认. ...