强化学习—— 经验回放(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. 一文解读Tensor到底是个啥玩意儿?(附代码)
  2. cuda win10安装
  3. IOCP之accept、AcceptEx、WSAAccept的区别
  4. 深度学习表数据的工具
  5. linux快速php,Linux 下的这些高效指令,是你快速学习的神器
  6. Leetcode(11)-盛最多水的容器
  7. 创建mysql数据库图解_mysql数据库怎么创建外键?(图文+视频)
  8. linux 怎么管理文件夹,Linux 是如何管理目录文件?
  9. 想要高清壁纸,高图桌面壁纸网站值得收藏!
  10. 二阶偏微分方程组 龙格库塔法_数值方法(MATLAB版)(原书第3版)[Numerical Methods Using MATLAB,Third Edition]pdf...
  11. 过去几小时,以太坊2.0信标链主网超过75位验证者被Slash罚款
  12. CCNP精粹系列之十七--路由映射实战,博主推荐
  13. 产品原型设计5:移动App原型设计神器 - POP(Prototyping on Paper)
  14. 树以及树简单的遍历方法
  15. Rust: 如何与DLL文件进行交互?
  16. Struts2 本是非单例的,与Spring集成就默认为单例
  17. 电子商务网站的购物流程设计(简述)
  18. 他,用了14年,从初代豆瓣工程师到AI公司CTO,创业心一直未变
  19. 第六章、面向对象的PHP
  20. 什么是Bugly?Android热更新的初讲解

热门文章

  1. 老板让你抗住千万级流量,如何做架构设计?
  2. Java线程详解(16)-条件变量
  3. 框架:Hibernate和Mybatis的区别
  4. 多线程:当你提交任务时,线程队列已经满了,这时会发生什么?
  5. 当点击某个链接发送多个请求之后,浏览器显示正在等待localhost响应怎么办(实用)
  6. 空调自控系统基础知识及应用
  7. Gartner:基础设施和运营领域10大技术趋势
  8. php autoload静态,Composer 中自动加载 autoload_static 问题
  9. c# npoi 2.5版本设置字体加粗_巨巨巨巨推荐:SCI翻译神器,大版本更新来了
  10. mysql支撑union_mysql 不支撑union select 的盲注方式