经验回放(experience replay)

在DQN算法中,为了打破样本之间关联关系,通过经验池,采用随机抽取经历更新参数。但是,对于奖励稀疏的情况,只有N多步正确动作后才有奖励的问题,会存在能够激励Agent进行正确学习的样本很少,采用随机抽取经历得方式,效率会很低,很多样本都奖励为0的,没什么区别。
解决这个问题的主要从两方法考虑,经验存储方法经验抽取的方法,目前主要采用经验抽取的方法。

优先经验回放

优先经验回放就是抽取经历时,优先抽取最有价值的经历,但是又不能只抽取最有价值,不然会造成过拟合,应该是价值越高的,抽取到的概率越大,价值最低的,也有一定的概率抽到。

衡量经验的价值

如何确定一个经验的价值呢?在DQN中,核心更新公式
Qw(st,at)=Qw(st,at)+[rt+1+γmaxaQw(st+1,at+1)−Qw(st,at)]Q_w(s_t,a_t)=Q_w(s_t,a_t)+[r_{t+1}+\gamma max_aQ_w(s_{t+1},a_{t+1})-Q_w(s_t,a_t)]Qw​(st​,at​)=Qw​(st​,at​)+[rt+1​+γmaxa​Qw​(st+1​,at+1​)−Qw​(st​,at​)]
其中,TD-error:δt=rt+1+γmaxaQw(st+1,at+1)−Qw(st,at)\delta_t=r_{t+1}+\gamma max_aQ_w(s_{t+1},a_{t+1})-Q_w(s_t,a_t)δt​=rt+1​+γmaxa​Qw​(st+1​,at+1​)−Qw​(st​,at​)
我们的目标就是让TD—error近可能小,如果TD-error比较大,意味着我们当前的Q函数离目标的Q函数差距还很大,应该多进行更新,因此用TD-error来衡量经验的价值。
为了不让网络过拟合,通过概率方式进行抽取经验,保证即使是TD-error为0的经验也能被抽取到。令每个经验的优先值为:
P(i)=pi∑piP(i)={p_i \over \sum p_i}P(i)=∑pi​pi​​
其中pi=∣δt+ϵ∣p_i=|\delta_t+\epsilon|pi​=∣δt​+ϵ∣,其中ϵ\epsilonϵ是一个很小的值,防止TD-error为0的经验被抽取到的概率不会为0。

高效优先经验抽取

给每个经验都打上了各自的被抽取到的优先值,如何进行高效的抽取经验呢,遍历整个经验池选择优先值高的,显然会耗费大量的计算资源,反而造成模型训练变慢。一种方法为sum-tree的数据结构。
把每个经验的优先值当做叶子节点,两节点一直往上叠加,构成一个二叉树,树根的值就是所有经验的优先值的和。

抽样时,就将根节点的总的优先值除以batch_size,划分为batch_size个区间,每个区间随机抽取一个数,从根节点处往下搜寻叶子节点。假设总的优先值是42的话, 我们如果抽6个样本, 这时的区间可能是这
[0-7], [7-14], [14-21], [21-28], [28-35], [35-42]
然后在每个区间里随机选取一个数. 比如在区间[21-28]里选到了24, 就按照这个 24 从最顶上的42开始向下搜索. 首先看到最顶上42下面有两个 child nodes, 拿着手中的24对比左边的 child29, 如果 左边的 child 比自己手中的值大, 那我们就走左边这条路, 接着再对比29下面的左边那个点13, 这时, 手中的 24 比13大, 那我们就走右边的路, 并且将手中的值根据13修改一下, 变成 24-13 = 11. 接着拿着 11 和16左下角的12比, 结果12比 11 大, 那我们就选 12 当做这次选到的 priority, 并且也选择 12 对应的数据。

代码实现

待续
————————————————
参考:
原文链接:https://blog.csdn.net/yyyxxxsss/article/details/80858127

优先经验回放(Prioritized Experience Replay)相关推荐

  1. 强化学习—— 经验回放(Experience Replay)

    强化学习-- 经验回放(Experience Replay) 1.DQN的缺点 1.1 DQN 1.2 DQN的不足 1.2.1 经验浪费 1.2.2 相关更新(correlated update) ...

  2. Prioritized Experience Replay

    论文链接:https://arxiv.org/pdf/1511.05952v2.pdf 论文题目:PRIORITIZED EXPERIENCE REPLAY Prioritized Experienc ...

  3. 【一文弄懂】优先经验回放(PER)论文-算法-代码

    [一文弄懂]优先经验回放(PER)论文-算法-代码 文章目录 [一文弄懂]优先经验回放(PER)论文-算法-代码 前言: 综合评价: 继续前言唠叨 per论文简述: 参考博客: 背景知识 A MOTI ...

  4. off-policy全系列(DDPG-TD3-SAC-SAC-auto)+优先经验回放PER-代码-实验结果分析

    off-policy全系列(DDPG-TD3-SAC-SAC-auto)+优先经验回放PER-代码-实验结果分析 文章目录 off-policy全系列(DDPG-TD3-SAC-SAC-auto)+优 ...

  5. DQL: Dueling Double DQN, Prioritized Experience Replay, and fixed Q-targets(三下)

    https://www.freecodecamp.org/news/improvements-in-deep-q-learning-dueling-double-dqn-prioritized-exp ...

  6. 《DISTRIBUTED PRIORITIZED EXPERIENCE REPLAY》强化学习论文笔记

    原文下载链接 abstract 本文提出了一种用于大规模深度强化学习的分布式架构,可以使agent能够从比以前数量级更多的数据上更有效地学习.该算法将行为与学习解耦,多个分布式actor与环境进行交互 ...

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

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

  8. 【深度学习】DQN的经验回放(Experience Reply)和目标网络(Target Network)

    前言 对于Q-learning算法,有两点不足之处: 维度灾难:这是由于查找表存储和更新Q值时需要在离散状态空间开始强化学习,当状态的数量增大,这一问题将愈发难解: 有关状态空间离散化的粒度:较低的粒 ...

  9. 强化学习 补充笔记(TD算法、Q学习算法、SARSA算法、多步TD目标、经验回放、高估问题、对决网络、噪声网络)

    学习目标: 深入了解马尔科夫决策过程(MDP),包含TD算法.Q学习算法.SARSA算法.多步TD目标.经验回放.高估问题.对决网络.噪声网络.基础部分见:强化学习 马尔科夫决策过程(价值迭代.策略迭 ...

  10. 论文理解【RL - Exp Replay】—— 【LFIW】Experience Replay with Likelihood-free Importance Weights

    标题:Experience Replay with Likelihood-free Importance Weights 文章链接:An Equivalence between Loss Functi ...

最新文章

  1. 异常分析 (空间太小)
  2. kernel-devel
  3. c语言不能在函数中求数组大小,C语言中数组长度不能用变量定义吗?
  4. 图像处理之基础---很好的一个开源文档库
  5. php将权限写入session,PHP由session文件夹权限不够引起的报错
  6. Event Logging 技术简介
  7. gitee java pdf转图片_openOffice word转pdf,pdf转图片优化版
  8. WinRAR压缩加密
  9. 小学steam计算机课程案例,STEAM课程典型案例——桥世界
  10. 入侵检测系统(IDS)与入侵防御系统(IPS)的简单理解
  11. 我的感悟:一切都是最好的安排
  12. double和float区别
  13. iOS内存管控实战(上)—原理篇
  14. 前端ffmpeg实现视频剪切
  15. 谁掐了你的顺丰包裹信息?
  16. 布隆过滤器究竟是什么,这一篇给讲的明明白白的
  17. android手机nfc功能安装,小米6怎么使用NFC功能?小米手机NFC功能使用教程
  18. VR开发基础—VR视频
  19. JavaBean、MVC模式、Servlet、Servlet生命周期:5个阶段
  20. Centos断网系统 yum安装详解(1)

热门文章

  1. 周鸿祎和马化腾对话,泄露曝光
  2. ThinkPHP截取部分文章文字、字符串
  3. 计算机怎么读,计算机研究生到底该怎么读?
  4. WIFI篇(2.python破解wifi--生成密码字典)
  5. 计算机音乐tfboys手机,TFBoys王源的iPhone挂了 别怕 手贱有得治
  6. andpods授权码订单号分享_Axure 9.0学生免费授权申请详细步骤
  7. FPGA 串口中断_正点原子【STM32-F407探索者】第九章 串口通信实验
  8. 【2020牛客寒假基础算法训练营】第五场总结
  9. 写的函数符号表里没有_DATEDIF函数,看看你的Excel里有没有?
  10. python lasso回归分析_解析python实现Lasso回归