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

  • 1、DQN的缺点
    • 1.1 DQN
    • 1.2 DQN的不足
      • 1.2.1 经验浪费
      • 1.2.2 相关更新(correlated update)
  • 2 经验回放
    • 2.1 简介
    • 2.2 计算步骤
    • 2.3 经验回放的优点
  • 3. 改进的经验回放(Prioritized experience replay)
    • 3.1 基本思想
    • 3.2 重要性抽样(importance sampling)
      • 3.2.1 抽样方式
      • 3.2.2 学习率变换(scaling learning rate)
      • 3.2.3 训练过程
    • 3.3 总结

1、DQN的缺点

1.1 DQN

  • 近似最优动作价值函数:Q(s,a;W)∼Q⋆(s,a)Q(s,a;W)\sim Q^\star (s,a)Q(s,a;W)∼Q⋆(s,a)
  • TD error:δt=qt−yt\delta_t=q_t-y_tδt​=qt​−yt​
  • TD Learning:L(W)=1T∑t=1Tδt22L(W)=\frac{1}{T}\sum_{t=1}^{T} \frac{\delta_t^2}{2}L(W)=T1​t=1∑T​2δt2​​

1.2 DQN的不足

1.2.1 经验浪费

  • 一个 transition为:(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st​,at​,rt​,st+1​)
  • 经验(所有的transition)为:{(s1,a1,r1,s2,),...(st,at,rt,st+1),...,sT,aT,rT,sT+1}\{(s1,a1,r1,s2,),...(s_t,a_t,r_t,s_{t+1}),...,s_T,a_T,r_T,s_{T+1}\}{(s1,a1,r1,s2,),...(st​,at​,rt​,st+1​),...,sT​,aT​,rT​,sT+1​}

1.2.2 相关更新(correlated update)

通常t时刻的状态和t+1时刻的状态是强相关的。
r(st,st+1)r(s_t,s_{t+1})r(st​,st+1​)

2 经验回放

2.1 简介

  1. 一个transition为:(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st​,at​,rt​,st+1​)
  2. 回放容器(replay buffer)为:存储n个transition
  3. 如果超过n个transition时,删除最早进入容器的transition
  4. 容器容量(buffer capacity)n为一个超参数:n一般设置为较大的数,如105∼106具体大小取决于任务n一般设置为较大的数,如10^5\sim 10^6\\具体大小取决于任务n一般设置为较大的数,如105∼106具体大小取决于任务

2.2 计算步骤

  1. 最小化目标为:L(W)=1T∑t=1Tδt22L(W)=\frac{1}{T}\sum_{t=1}^{T} \frac{\delta_t^2}{2}L(W)=T1​t=1∑T​2δt2​​
  2. 使用随机梯度下降(SGD)进行更新:
  • 从buffer中随机抽样:(si,ai,ri,si+1)(s_i,a_i,r_i,s_{i+1})(si​,ai​,ri​,si+1​)
  • 计算TD Error:δi\delta_iδi​
  • 随机梯度为:gi=∂δi22∂W=δi⋅∂Q(si,ai;W)∂Wg_i=\frac{\partial \frac{\delta_i^2}{2}}{\partial W}= \delta_i \cdot \frac{\partial Q(s_i,a_i;W)}{\partial W}gi​=∂W∂2δi2​​​=δi​⋅∂W∂Q(si​,ai​;W)​
  • 梯度更新:W←W−αgiW\gets W-\alpha g_iW←W−αgi​

2.3 经验回放的优点

  1. 打破了序列相关性
  2. 重复利用过去的经验

3. 改进的经验回放(Prioritized experience replay)

3.1 基本思想

  1. 不是所有transition都同等重要
  2. TD error 越大,则transition更重要:∣δt∣|\delta_t|∣δt​∣

3.2 重要性抽样(importance sampling)

用非均匀抽样替代均匀抽样

3.2.1 抽样方式

  1. pt∝∣δt∣+ϵp_t \propto |\delta_t|+\epsilonpt​∝∣δt​∣+ϵ
  2. transition依据TD error进行降序处理,rank(t)代表第t个transition:pt∝1rank(t)+ϵp_t \propto \frac{1}{rank(t)}+\epsilonpt​∝rank(t)1​+ϵ
    总而言之,TD error越大,被抽样的概率越大,通常按Mini-batch进行抽样。

3.2.2 学习率变换(scaling learning rate)

为了抵消不同抽样概率造成的学习偏差,需要对学习率进行变换

  • SGD:W←W−α⋅gW\gets W-\alpha \cdot gW←W−α⋅g
  • 均匀抽样:学习率对于所有transition都一样(转换因子为1):p1=p2=...=pnp_1=p_2=...=p_np1​=p2​=...=pn​
  • 非均匀抽样:高概率对应低学习率:(n⋅pt)−ββ∈[0,1](n\cdot p_t)^{-\beta}\\ \beta \in [0,1](n⋅pt​)−ββ∈[0,1]网络刚开始训练时,β设置较小,随着网络训练,逐渐增加β至1。

3.2.3 训练过程

  1. 如果一个transition最近被收集,还未知其TD Error,将其TD Error设为最大值,即具有最高的优先级。
  2. 每次从replay buffer中选取出一个transition,然后更新其TD Error:δt\delta_tδt​

3.3 总结

transition sampling probabilities learning rates
(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st​,at​,rt​,st+1​) pt∝∣δt∣+ϵp_t \propto |\delta_t|+\epsilonpt​∝∣δt​∣+ϵ α⋅n⋅(pt)−β\alpha \cdot n\cdot (p_t)^{-\beta}α⋅n⋅(pt​)−β
(st+1,at+1,rt+1,st+2)(s_{t+1},a_{t+1},r_{t+1},s_{t+2})(st+1​,at+1​,rt+1​,st+2​) pt+1∝∣δt+1∣+ϵp_{t+1}\propto |\delta_{t+1}|+\epsilonpt+1​∝∣δt+1​∣+ϵ α⋅n⋅(pt+1)−β\alpha \cdot n\cdot (p_{t+1})^{-\beta}α⋅n⋅(pt+1​)−β
(st+2,at+2,rt+2,st+3)(s_{t+2},a_{t+2},r_{t+2},s_{t+3})(st+2​,at+2​,rt+2​,st+3​) pt+2∝∣δt+2∣+ϵp_{t+2}\propto |\delta_{t+2}|+\epsilonpt+2​∝∣δt+2​∣+ϵ α⋅n⋅(pt+2)−β\alpha \cdot n\cdot (p_{t+2})^{-\beta}α⋅n⋅(pt+2​)−β

本文内容为参考B站学习视频书写的笔记!

by CyrusMay 2022 04 10

我们在小孩和大人的转角
盖一座城堡
——————五月天(好好)——————

强化学习—— 经验回放(Experience Replay)相关推荐

  1. 基于Pytorch的强化学习(DQN)之 Experience Replay

    目录 1. 引言 2. 经验回放算法 2. 优先经验回放 2.1 抽取方法改进 2.2 学习率修正 1. 引言 我们之前学过TD 算法 ,基本的TD算法的思路如下 观测到一个transition 计算 ...

  2. 【强化学习高阶技巧】Experience Replay经验回报

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

  3. 【强化学习】DDPG

    目录 Deep Deterministic Policy Gradient算法 随机策略 与 确定性策略 DPG 与 DDPG 深度确定性策略梯度算法DDPG概述 对比DDQN DDPG网络功能: 网 ...

  4. 强化学习常用算法总结

    强化学习常用算法总结 本文为2020年6月参加的百度PaddlePaddle强化学习训练营总结 1. 表格型方法:Sarsa和Q-Learning算法 State-action-reward-stat ...

  5. 强化学习应用简述---强化学习方向优秀科学家李玉喜博士创作

    强化学习 (reinforcement learning) 经过了几十年的研发,在一直稳定发展,最近取得了很多傲人的成果,后面会有越来越好的进展.强化学习广泛应用于科学.工程.艺术等领域. 下面简单列 ...

  6. 百度强化学习框架PARL入门强化学习

    1.什么是强化学习? 强化学习(Reinforcement Learning, RL),又称再励学习.评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互 ...

  7. 个人强化学习论文导航

    这里整理我笔记过的强化学习论文 持续更新中- 关于问题范数的介绍 图解 RL/IL 问题范式(On-Policy.Off-policy.Offline/Batch.IL-) Offline/Batch ...

  8. 强化学习入门8—深入理解DDPG

    文章目录 Deep Deterministic Policy Gradient 简介 网络结构 算法流程 小结 本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG.DD ...

  9. 强化学习分类与汇总介绍

    1.强化学习(Reinforcement Learning, RL) 强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给 ...

最新文章

  1. python定义一个汽车类_汽车类Python程序
  2. 【读书笔记】程序员的自我修养总结(七)
  3. 如何用AD20打开ddb文件
  4. React - antd4 中在form中为Switch赋值无效
  5. 【网络流】【Dinic】【Next Array】Dinic模板
  6. 携程正式挂牌港交所 开盘涨近5%
  7. 如何快速转载CSDN博客(详细)
  8. c#通过RFC调用SAP接口程序之输入输出参数案例
  9. iOS开发NSDate、NSString、时间戳之间的转化
  10. boostrap --- 弹窗modal的使用
  11. 修改linux系统的open files参数
  12. html中如何禁用,如何禁用HTML链接
  13. 高频量化交之李:在华尔街狼舞岁
  14. 软件测试证书(1)— 软件评测师
  15. 单应性变换 Homography Estimation
  16. AXURE RP 原型图绘制手册
  17. 关于《Python绝技:运用Python成为顶级黑客》的学习笔记
  18. Jquery实现AJAX异步通信
  19. J-Flash下载程序
  20. oracle 追究,ORACLE事件跟踪

热门文章

  1. Redis : redis事务
  2. -%3e运算符在c语言中的作用,C语言逻辑运算符知识整理
  3. python 数学符号读法大全_math_数字与数学 | Numeric Mathematical_Python_参考手册_非常教程...
  4. 蓄电池维护中的几大误区
  5. 十张图了解2020年数据中心市场现状与发展趋势
  6. 数据中心备受关注的三大方面
  7. 电费竟然占了数据中心运维总成本的7成?
  8. java创建集合有的不用泛型_为什么在Java泛型右手边的集合类型没有任何影响?...
  9. 成功解决ValueError: Could not interpret input day
  10. Python语言学习之文件格式后缀那些事:python和常见各种文件格式后缀介绍、使用方法之详细攻略