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。
  • 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 训练数据的更多相关文章

  1. tensorflow学习笔记--dataset使用,创建自己的数据集

    数据读入需求 我们在训练模型参数时想要从训练数据集中一次取出一小批数据(比如50条.100条)做梯度下降,不断地分批取出数据直到损失函数基本不再减小并且在训练集上的正确率足够高,取出的n条数据还要是预 ...

  2. 学习笔记CB012: LSTM 简单实现、完整实现、torch、小说训练word2vec lstm机器人

    真正掌握一种算法,最实际的方法,完全手写出来. LSTM(Long Short Tem Memory)特殊递归神经网络,神经元保存历史记忆,解决自然语言处理统计方法只能考虑最近n个词语而忽略更久前词语 ...

  3. 强化学习9-Deep Q Learning

    之前讲到Sarsa和Q Learning都不太适合解决大规模问题,为什么呢? 因为传统的强化学习都有一张Q表,这张Q表记录了每个状态下,每个动作的q值,但是现实问题往往极其复杂,其状态非常多,甚至是连 ...

  4. 迁移学习算法之TrAdaBoost ——本质上是在用不同分布的训练数据,训练出一个分类器

    迁移学习算法之TrAdaBoost from: https://blog.csdn.net/Augster/article/details/53039489 TradaBoost算法由来已久,具体算法 ...

  5. 深度学习tensorflow实战笔记(1)全连接神经网络(FCN)训练自己的数据(从txt文件中读取)

    1.准备数据 把数据放进txt文件中(数据量大的话,就写一段程序自己把数据自动的写入txt文件中,任何语言都能实现),数据之间用逗号隔开,最后一列标注数据的标签(用于分类),比如0,1.每一行表示一个 ...

  6. 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)

    接下来我们回顾一下动态规划算法(DP)和蒙特卡罗方法(MC)的特点,对于动态规划算法有如下特性: 需要环境模型,即状态转移概率\(P_{sa}\) 状态值函数的估计是自举的(bootstrapping ...

  7. 斯坦福大学公开课机器学习:machine learning system design | data for machine learning(数据量很大时,学习算法表现比较好的原理)

    下图为四种不同算法应用在不同大小数据量时的表现,可以看出,随着数据量的增大,算法的表现趋于接近.即不管多么糟糕的算法,数据量非常大的时候,算法表现也可以很好. 数据量很大时,学习算法表现比较好的原理: ...

  8. 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维

    关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...

  9. 使用深度学习的超分辨率介绍 An Introduction to Super Resolution using Deep Learning

    使用深度学习的超分辨率介绍 关于使用深度学习进行超分辨率的各种组件,损失函数和度量的详细讨论. 介绍 超分辨率是从给定的低分辨率(LR)图像恢复高分辨率(HR)图像的过程.由于较小的空间分辨率(即尺寸 ...

  10. Django 学习 之ORM聚合查询分组查询与F查询与Q查询

    一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚 ...

随机推荐

  1. 《Java极简设计模式》第01章:单例模式(Singleton)

    作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all ...

  2. 从壹开始前后端开发【.Net6+Vue3】

    项目名称:KeepGoing(继续前进) 1.1介绍 工作后,学习的脚步一直停停走走,希望可以以此项目为基础,可以不断的迫使自己不断的学习以及成长 将以Girvs框架为基础,从壹开始二次开发一个前后端 ...

  3. Programming abstractions in C阅读笔记: p118-p122

    <Programming Abstractions In C>学习第49天,p118-p122,总结如下: 一.技术总结 1.随机数 (1)seed p119,"The init ...

  4. 日志开源组件(六)Adaptive Sampling 自适应采样

    业务背景 有时候日志的信息比较多,怎么样才可以让系统做到自适应采样呢? 拓展阅读 日志开源组件(一)java 注解结合 spring aop 实现自动输出日志 日志开源组件(二)java 注解结合 s ...

  5. 交换机通过SFTP进行文件操作

    组网图形  通过SFTP进行文件操作简介 配置设备作为SFTP服务器,用户可以在终端通过SFTP通信方式,利用SSH协议提供的安全通道与远端设备进行安全连接.通过SFTP进行文件操作的方式对数据进行了 ...

  6. jmeter 二次开发详解

    背景: JMeter 是一个功能强大的性能测试工具,但它可能无法满足特定项目或组织的特定需求.通过进行二次开发,可以定制 JMeter,使其适应具体项目的需求.例如,可能需要添加自定义的 测试元件.报 ...

  7. KRPANO资源分析工具模板链接下载

    KRPano资源分析工具1.4.0加入了模板链接下载,可以批量下载有规律的链接. 模板链接基本规则 数字递增链接 pic[1-100]:会生成pic1,pic2,-pic100的链接 pic[a-z] ...

  8. http、socket以及websocket的区别(websocket使用举例)

    一.http.socket.websocket介绍 1.HTTP(Hypertext Transfer Protocol):HTTP是一种应用层协议,用于在客户端和服务器之间传输超文本数据.它是基于请 ...

  9. C# 代码实现关机

    AdvApi32.LookupPrivilegeValue(null, "SeShutdownPrivilege", out var lpLuid); using var t = ...

  10. Vue 核心技术

    1.1 Vue简介 1.1.1 官网 英文官网 中文官网 1.1.2 介绍与描述 动态构建用户界面的 渐进式 JavaScript 框架 作者:尤雨溪 1.1.3 Vue的特点 遵循 MVVM 模式 ...