offline RL | BCQ:学习 offline dataset 的 π(a|s),直接使用 (s, π(s)) 作为 Q learning 训练数据
- 题目: Off-Policy Deep Reinforcement Learning without Exploration,ICLR 2019
- pdf 版本:https://arxiv.org/pdf/1812.02900.pdf
- html 版本:https://ar5iv.labs.arxiv.org/html/1812.02900
- GitHub:https://github.com/sfujim/BCQ
- 参考博客:
0 abstract
Many practical applications of reinforcement learning constrain agents to learn from a fixed batch of data which has already been gathered, without offering further possibility for data collection. In this paper, we demonstrate that due to errors introduced by extrapolation, standard off-policy deep reinforcement learning algorithms, such as DQN and DDPG, are incapable of learning without data correlated to the distribution under the current policy, making them ineffective for this fixed batch setting. We introduce a novel class of off-policy algorithms, batch-constrained reinforcement learning, which restricts the action space in order to force the agent towards behaving close to on-policy with respect to a subset of the given data. We present the first continuous control deep reinforcement learning algorithm which can learn effectively from arbitrary, fixed batch data, and empirically demonstrate the quality of its behavior in several tasks.
- 背景:RL 的许多实际应用,限制 agent 只能从已收集的固定数据中学习。
- 讨论:在本文中,我们证明了 extrapolation 引入的误差,会导致标准的 off-policy RL(DQN、DDPG)对固定 dataset 不 work,在没有与 distribution under the current policy 相关的数据的情况下。
- method:我们引入了一类新颖的 off-policy 算法(其实就是 offline RL)batch-constrained reinforcement learning,去限制 action space,迫使 agent 的 policy 的 distribution 接近给定数据的子集(?)。
- contribution:我们提出了第一个连续控制 DRL 算法,可以从任意 fixed batch data(其实就是 offline dataset)中有效学习,并且做了很多实验。
1 intro
- 好像 offline RL 之前叫做 batch reinforcement learning(?)
- imitation learning 不适用于数据质量不佳的情况。
- 直接在 offline RL setting 里面用 off-policy RL 不太 work,被称为 extrapolation error。
- BCQ:① 最大化 discounted return,② 尽量让 policy 的 s-a distribution 与 dataset 的 s-a distribution 相匹配。
- 实验: MuJoCo 的 offline setting(?)
2 background
- RL 基础,没有新鲜的东西。
3 extrapolation error - 外推误差
- extrapolation error 的定义: offline RL 学到的 value function 的误差(?)
- extrapolation error 的归因:
- Absent Data:有一些 state-action pair 在 dataset 里是没有的。
- Model Bias:基于 offline dataset 构建的 MDP 跟真实 MDP 不一样,因此,利用 offline dataset 的 MDP 来计算 value function,也会有所偏差。
- Training Mismatch:听起来像是,如果强行拿 offline dataset 的 off-policy 数据跑 on-policy RL,效果会不好。(根据 3.1 节,即使跑 off-policy RL 算法,效果也会不好)
- 可以参考(https://zhuanlan.zhihu.com/p/493039753)博客的第二节。
4 method: batch-constrained RL
- 简单的 idea:为避免 extrapolation error,应该限制 policy 的 state-action distribution 与 offline data 相似。
- 描述了 3 个 objectives:
- 最小化当前 state 下所选 actions 与 offline data 的距离。
- 选择 action,使得下一 state 尽量是熟悉的 state(或 (s,a,s') ?)
- 最大化 value function。
- section 4.1 貌似是在 finite MDP 下的理论分析,要精确量化 extrapolation error。
- 使用 offline data(batch)B 定义了 MDP M_B ,在 offline data 上做 Q-learning,会学到 M_B 上的最优 policy。
- 建议去看(https://zhuanlan.zhihu.com/p/136844574)博客的第二节。
- 今日困倦,改日再看……
- section 4.2 貌似是 BCQ 的算法。
- BCQ 有 4 个 networks:一个 generative model \(G_ω(s)\)、一个扰动模型 \(ξ_\phi(s,a)\)、两个 Q networks \(Q_{\{θ_1,θ_2\}}(s,a)\) 。
- 生成模型 G,拟合了 offline dataset 的 s-a 分布,使用变分自编码器 VAE,用来提高生成动作的多样性(?)
- 扰动模型 ξ,对 action a 的扰动范围是 [-Φ, Φ]。
- 调节参数 n 与 Φ:当 Φ=0 n=1 时,BCQ 类似于 imitation learning;当 Φ = a max - a min 且 n→∞ 时,扰动模型 ξ 的训练,跟 DDPG 算法的训练目标类似。
- 算法流程:
- 从 generative model 里生成 n 个 actions,然后对这些 actions 使用 ξ 进行扰动。
- 训练 Q function 的参数 θ,最小化 Q 的 TD error。
- 训练扰动模型 ξ 的参数 Φ,最大化 Q(s, a+ξ(s,a)) ,这里的 a 由 generative model 生成。
- 更新 target networks 的参数(trick)
- 感觉有点抽象……
5 experiment - 实验
- baselines: off-policy RL(DQN DDPG)、behavior cloning(和 VAE-BC)。
- 实验 setting 仍旧是 1. 使用 DQN 的训练数据 final buffer,2. 与 DQN 同期(?)训练的 concurrent,3. 直接使用 expert dataset 的 imitation。增加 4. 添加噪音与 behavior policy 随机探索 action 的 imperfect。
6 related work
- batch RL,imitation learning,RL 中的 uncertainty。
- 感觉 batch RL 主要在说 distribution 要 match,imitation learning 主要在说大家都依赖于 expert data。
offline RL | BCQ:学习 offline dataset 的 π(a|s),直接使用 (s, π(s)) 作为 Q learning 训练数据的更多相关文章
- tensorflow学习笔记--dataset使用,创建自己的数据集
数据读入需求 我们在训练模型参数时想要从训练数据集中一次取出一小批数据(比如50条.100条)做梯度下降,不断地分批取出数据直到损失函数基本不再减小并且在训练集上的正确率足够高,取出的n条数据还要是预 ...
- 学习笔记CB012: LSTM 简单实现、完整实现、torch、小说训练word2vec lstm机器人
真正掌握一种算法,最实际的方法,完全手写出来. LSTM(Long Short Tem Memory)特殊递归神经网络,神经元保存历史记忆,解决自然语言处理统计方法只能考虑最近n个词语而忽略更久前词语 ...
- 强化学习9-Deep Q Learning
之前讲到Sarsa和Q Learning都不太适合解决大规模问题,为什么呢? 因为传统的强化学习都有一张Q表,这张Q表记录了每个状态下,每个动作的q值,但是现实问题往往极其复杂,其状态非常多,甚至是连 ...
- 迁移学习算法之TrAdaBoost ——本质上是在用不同分布的训练数据,训练出一个分类器
迁移学习算法之TrAdaBoost from: https://blog.csdn.net/Augster/article/details/53039489 TradaBoost算法由来已久,具体算法 ...
- 深度学习tensorflow实战笔记(1)全连接神经网络(FCN)训练自己的数据(从txt文件中读取)
1.准备数据 把数据放进txt文件中(数据量大的话,就写一段程序自己把数据自动的写入txt文件中,任何语言都能实现),数据之间用逗号隔开,最后一列标注数据的标签(用于分类),比如0,1.每一行表示一个 ...
- 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)
接下来我们回顾一下动态规划算法(DP)和蒙特卡罗方法(MC)的特点,对于动态规划算法有如下特性: 需要环境模型,即状态转移概率\(P_{sa}\) 状态值函数的估计是自举的(bootstrapping ...
- 斯坦福大学公开课机器学习:machine learning system design | data for machine learning(数据量很大时,学习算法表现比较好的原理)
下图为四种不同算法应用在不同大小数据量时的表现,可以看出,随着数据量的增大,算法的表现趋于接近.即不管多么糟糕的算法,数据量非常大的时候,算法表现也可以很好. 数据量很大时,学习算法表现比较好的原理: ...
- 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维
关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...
- 使用深度学习的超分辨率介绍 An Introduction to Super Resolution using Deep Learning
使用深度学习的超分辨率介绍 关于使用深度学习进行超分辨率的各种组件,损失函数和度量的详细讨论. 介绍 超分辨率是从给定的低分辨率(LR)图像恢复高分辨率(HR)图像的过程.由于较小的空间分辨率(即尺寸 ...
- Django 学习 之ORM聚合查询分组查询与F查询与Q查询
一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚 ...
随机推荐
- [数据分析与可视化] Python绘制数据地图4-MovingPandas入门指北
MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库,用于处理移动物体的轨迹数据.它提供了一组强大的工具,可以轻松地加载.分析和可视化移动物体的轨迹.通过使用Mo ...
- NFS快速入门(一):简介、原理
NFS网络文件共享存储 什么是NFS NFS 是 Network File System 的缩写,中文意思是网络文件系统.它的主要功能是通过网络(一般是局域网)让不同主机系统之间可以共享文件或目录.N ...
- pc 移动端 双端切换
实现一个项目匹配多个端,使用vue.config自带的page 实现多个页面切换.官网介绍:https://cli.vuejs.org/zh/config/#pages 在创建的vue项目中找到 vu ...
- SpringSecurity1: spring boot web 样例快速体验
本文只讲操作实践,不讲原理,这样对于想快速搭建起一个基于SpringSecurity的Web项目的朋友们而言,比较友好.文章主要由两部分构成: 快速演示样例 所有账户和授权数据均基于内存,能在极短的时 ...
- sqli-labs全通关payload
less-1: less-2: less-3: less-4: less-5: less-6: less-7: outfile,dumpfile,load_file函数的用法如下所示: less-8: ...
- PE文件结构1
引言 PE文件格式是Windows操作系统下的可执行文件的格式,包括.exe文件和.dll文件,通过PE文件格式的学习,可以帮助我们更加熟悉有关Windows系统下的逆向分析和PC端病毒的学习,同时P ...
- CF1787E The Harmonization of XOR 题解
CF1787E The Harmonization of XOR 题目大意 给定 \(n\) 个数 \([1, 2, 3, \cdots, n]\) 和两个正整数 \(k\) 和 \(x\). 将这些 ...
- 微服务集成RabbitMq保姆级教程
本文通过简单的示例代码和说明,让读者能够了解微服务如何集成RabbitMq 之前的教程 https://www.cnblogs.com/leafstar/p/17641358.html 在这里我将介绍 ...
- 使用 Laf 一周内上线美术狮 AI 绘画小程序
"美术狮 AI 绘画"(以下简称"美术狮"),是我们小团队的一次尝试,定位是人人都可以上手的,充满创意的,理解中文和中国文化的图片生成工具. 在完善图像模型和论 ...
- vue3 甘特图(二):甘特图时间轴切换
vue3 甘特图(二):gantt时间轴切换 1.固定时间轴缩放级别 gantt.config.scale_unit = "month"; //时间轴单位 gantt.config ...