强化学习—— 经验回放(Experience Replay)
强化学习—— 经验回放(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)=T1t=1∑T2δ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 简介
- 一个transition为:(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st,at,rt,st+1)
- 回放容器(replay buffer)为:存储n个transition
- 如果超过n个transition时,删除最早进入容器的transition
- 容器容量(buffer capacity)n为一个超参数:n一般设置为较大的数,如105∼106具体大小取决于任务n一般设置为较大的数,如10^5\sim 10^6\\具体大小取决于任务n一般设置为较大的数,如105∼106具体大小取决于任务
2.2 计算步骤
- 最小化目标为:L(W)=1T∑t=1Tδt22L(W)=\frac{1}{T}\sum_{t=1}^{T} \frac{\delta_t^2}{2}L(W)=T1t=1∑T2δt2
- 使用随机梯度下降(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 经验回放的优点
- 打破了序列相关性
- 重复利用过去的经验
3. 改进的经验回放(Prioritized experience replay)
3.1 基本思想
- 不是所有transition都同等重要
- TD error 越大,则transition更重要:∣δt∣|\delta_t|∣δt∣
3.2 重要性抽样(importance sampling)
用非均匀抽样替代均匀抽样
3.2.1 抽样方式
- pt∝∣δt∣+ϵp_t \propto |\delta_t|+\epsilonpt∝∣δt∣+ϵ
- 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 训练过程
- 如果一个transition最近被收集,还未知其TD Error,将其TD Error设为最大值,即具有最高的优先级。
- 每次从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)相关推荐
- 基于Pytorch的强化学习(DQN)之 Experience Replay
目录 1. 引言 2. 经验回放算法 2. 优先经验回放 2.1 抽取方法改进 2.2 学习率修正 1. 引言 我们之前学过TD 算法 ,基本的TD算法的思路如下 观测到一个transition 计算 ...
- 【强化学习高阶技巧】Experience Replay经验回报
强化学习相关的高阶技巧Experience Replay经验回报的介绍.此处笔记根据B站课程,王树森老师的强化学习记录而来.10.经验回放 Experience Replay (价值学习高级技巧 1_ ...
- 【强化学习】DDPG
目录 Deep Deterministic Policy Gradient算法 随机策略 与 确定性策略 DPG 与 DDPG 深度确定性策略梯度算法DDPG概述 对比DDQN DDPG网络功能: 网 ...
- 强化学习常用算法总结
强化学习常用算法总结 本文为2020年6月参加的百度PaddlePaddle强化学习训练营总结 1. 表格型方法:Sarsa和Q-Learning算法 State-action-reward-stat ...
- 强化学习应用简述---强化学习方向优秀科学家李玉喜博士创作
强化学习 (reinforcement learning) 经过了几十年的研发,在一直稳定发展,最近取得了很多傲人的成果,后面会有越来越好的进展.强化学习广泛应用于科学.工程.艺术等领域. 下面简单列 ...
- 百度强化学习框架PARL入门强化学习
1.什么是强化学习? 强化学习(Reinforcement Learning, RL),又称再励学习.评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互 ...
- 个人强化学习论文导航
这里整理我笔记过的强化学习论文 持续更新中- 关于问题范数的介绍 图解 RL/IL 问题范式(On-Policy.Off-policy.Offline/Batch.IL-) Offline/Batch ...
- 强化学习入门8—深入理解DDPG
文章目录 Deep Deterministic Policy Gradient 简介 网络结构 算法流程 小结 本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG.DD ...
- 强化学习分类与汇总介绍
1.强化学习(Reinforcement Learning, RL) 强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给 ...
最新文章
- 一文解读Tensor到底是个啥玩意儿?(附代码)
- cuda win10安装
- IOCP之accept、AcceptEx、WSAAccept的区别
- 深度学习表数据的工具
- linux快速php,Linux 下的这些高效指令,是你快速学习的神器
- Leetcode(11)-盛最多水的容器
- 创建mysql数据库图解_mysql数据库怎么创建外键?(图文+视频)
- linux 怎么管理文件夹,Linux 是如何管理目录文件?
- 想要高清壁纸,高图桌面壁纸网站值得收藏!
- 二阶偏微分方程组 龙格库塔法_数值方法(MATLAB版)(原书第3版)[Numerical Methods Using MATLAB,Third Edition]pdf...
- 过去几小时,以太坊2.0信标链主网超过75位验证者被Slash罚款
- CCNP精粹系列之十七--路由映射实战,博主推荐
- 产品原型设计5:移动App原型设计神器 - POP(Prototyping on Paper)
- 树以及树简单的遍历方法
- Rust: 如何与DLL文件进行交互?
- Struts2 本是非单例的,与Spring集成就默认为单例
- 电子商务网站的购物流程设计(简述)
- 他,用了14年,从初代豆瓣工程师到AI公司CTO,创业心一直未变
- 第六章、面向对象的PHP
- 什么是Bugly?Android热更新的初讲解
热门文章
- 老板让你抗住千万级流量,如何做架构设计?
- Java线程详解(16)-条件变量
- 框架:Hibernate和Mybatis的区别
- 多线程:当你提交任务时,线程队列已经满了,这时会发生什么?
- 当点击某个链接发送多个请求之后,浏览器显示正在等待localhost响应怎么办(实用)
- 空调自控系统基础知识及应用
- Gartner:基础设施和运营领域10大技术趋势
- php autoload静态,Composer 中自动加载 autoload_static 问题
- c# npoi 2.5版本设置字体加粗_巨巨巨巨推荐:SCI翻译神器,大版本更新来了
- mysql支撑union_mysql 不支撑union select 的盲注方式