强化学习相关的高阶技巧Experience Replay经验回报的介绍。此处笔记根据B站课程,王树森老师的强化学习记录而来。10.经验回放 Experience Replay (价值学习高级技巧 1_3)(Av374239425,P10)_哔哩哔哩_bilibili

1.回忆DQN和TD算法

已知Q*是最优动作函数,它给动作打分,评价这个动作好不好。DQN就是用神经网络Q(s,a;w)近似Q*。DQN的输入是状态s,DQN通过卷积层和全连接层,最终的输出是给各个动作的打分。

TD算法训练DQN的过程,其中(s(t),a(t),r(t),s(t+1))是一条训练数据。

2.Experience Replay经验回报

之前的训练过程存在两个缺点:

浪费经验 经验是可以重复利用的,但是TD Target只用一个即丢,导致经验没有充分利用,被浪费了。
状态转移的前后状态的相关性 s(t)和s(t+1)之间具有相关性,这种相关性是有害的,需要消除。

引入Experience Replay就是为了解决这两个问题。(s(t), a(t), r(t), s(t+1))是一条训练数据,使用replay buffer存储transitant这样的训练数据,replay buffer的存储容量为n,n是一个超参,当replay buffer满了时,删除最早的数据。为了使L(w)最下化,从buffer中随机均匀抽样一条数据,计算TD Target和error,更新w。

这里用一个gi,实际中可以使用minibatch多个gi的平均值做梯度更新。

使用Experience Replay的好处相对应的也有两个:

  • 打破了transitant的相关性
  • 重复利用experience

3.经验回报的变体:Prioritized Experience Replay优先经验回报

本质区别是:使用非均匀抽样替代均匀抽样从buffer中抽取数据。

理论支持:buffer中的数据并不是同等重要的,数据的重要程度不同。如何判断数据的重要程度,看error的值,error越大,说明模型对该数据不熟悉,为了更好的训练,该数据的权重就大些。

两种不同的抽样方式:本质还是根据error抽样

非均匀抽样,根据抽样概率调整学习率。

Summary:

一条transition的误差越大,说明越重要,它的抽样概率就大,相应的学习概率就小,用小的学习概率抵消大的抽样概率带来的偏差。

【强化学习高阶技巧】Experience Replay经验回报相关推荐

  1. 深度强化学习系列(8): Prioritized Experience Replay(PER-DQN)原理及实现

    论文地址: https://arxiv.org/abs/1511.05952 本论文是由DeepMind操刀,Schaul主导完成的文章,发表于顶会ICLR2016上,主要解决经验回放中的" ...

  2. golang 分析调试高阶技巧

    layout: post title: "golang 调试高阶技巧" date: 2020-6-03 1:44:09 +0800 categories: golang GC 垃圾 ...

  3. python get函数 i_Python高阶技巧,你 GET了吗?

    原标题:Python高阶技巧,你 GET了吗? Python 是一种美丽的语言,它简单易用却非常强大.但你真的会用 Python 的所有功能吗? 下面是 Python 的 5 种高级特征,以及它们的用 ...

  4. 机器学习深度学习高阶内容系列-kaggle广告点击欺诈识别实战

    机器学习深度学习高阶内容系列-kaggle广告点击欺诈识别实战 中国是全球最大的智能移动设备市场,每月有超过10亿台智能移动设备投入使用 .TalkingData是中国最大的独立大数据服务平台,覆盖全 ...

  5. Word论文必备的高阶技巧

    之前写论文,大部分绘图之类都是用visio,ppt,ps.后来发现word绘图能力也足够达到论文的需求,不仅如此,还能有很多很有用的操作.于是.总结了一下.供以后使用.另有一篇word有关的简单排版技 ...

  6. 强化学习笔记 experience replay 经验回放

    1 回顾 :DQN DQN 笔记 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客 DQN是希望通过神经网络来学习Q(s,a)的结 ...

  7. 深度强化学习应用实践技巧

    文章目录 参考资料 1. 如何应用深度强化学习 1.1 简单测试阶段 1.2 快速配置阶段 1.3 部署训练阶段 2. 实现阶段 3. 训练和调试阶段 参考资料 <深度强化学习>书籍第18 ...

  8. 强化学习paper绘图技巧——改进smooth

    绘图利器--Seaborn 强化学习的paper中离不开各种数据的可视化,绘图中如何对数据进行处理.平滑是个很重要的问题. 人类高质量图片: 人类低质量图片: 那么如何绘制出一张高质量的图片呢?这里介 ...

  9. python学习-高阶函数(函数传参、返回函数(闭包)、匿名函数lambda)

    文章目录 高阶函数 函数传参 返回函数(闭包) 匿名函数lambda 高阶函数 定义: 至少满足下列一个条件: 接受一个或多个函数作为输入 输出一个函数 python里的高阶函数有 filter.ma ...

最新文章

  1. 坑爹系列1--Log
  2. 浅析强化学习及使用Policy Network实现自动化控制
  3. WebSocket实战之————Workerman服务器的安装启动
  4. Php的if自动转换类型,php输出数据字段类型自动转换函数
  5. Linux下C语言的文件操作
  6. CodeForces - 1208E Let Them Slide(模拟+multiset)
  7. js代码转python_Python和JavaScript间代码转换的4个工具
  8. 当查找名字的时候通过外围作用域向外查找(如何理解)
  9. cmake could not find openssl_使用CMake构建C++项目
  10. 数据量大的sql怎么做优化_南浔区360优化怎么做,百度关键词优化_万推霸屏
  11. python snownlp_GitHub - isnowfy/snownlp: Python library for processing Chinese text
  12. Vue加载组件、动态加载组件的几种方式
  13. 企业文件编号规则方法
  14. 广州java程序员平均工资_9月程序员工资统计已公布,你拖后腿了吗?
  15. 浏览器窗口通信的多种方式
  16. LFS-初入门第一篇(准备环境)
  17. Tungsten Fabric知识库丨更多组件内部探秘
  18. global mapper 导入bln文件和tif文件
  19. 大数据-HDFS 文件副本和 Block 块存储
  20. Python学习笔记(六) python-nmap下载及搭建

热门文章

  1. Jupyter登录密码问题
  2. 关于三角形内切圆、外接圆的数学问题
  3. IP归属地API分享
  4. 这里已经是废墟,什么东西都没有
  5. uni-app 安卓打包流程; 未获取AppKey或配置错误
  6. signed int 数据范围_整型数据
  7. python args函数_Python函数参数*args 和**kwargs的用法
  8. Oracle查询表字段信息及注释
  9. c语言编程题狗熊掰棒子,狗熊掰棒子:掰一棒扔一棒
  10. 每个架构师都应该培养业务思维