0 abstract

Offline reinforcement learning (RL) defines the task of learning from a fixed batch of data. Due to errors in value estimation from out-of-distribution actions, most offline RL algorithms take the approach of constraining or regularizing the policy with the actions contained in the dataset. Built on pre-existing RL algorithms, modifications to make an RL algorithm work offline comes at the cost of additional complexity. Offline RL algorithms introduce new hyperparameters and often leverage secondary components such as generative models, while adjusting the underlying RL algorithm. In this paper we aim to make a deep RL algorithm work while making minimal changes. We find that we can match the performance of state-of-the-art offline RL algorithms by simply adding a behavior cloning term to the policy update of an online RL algorithm and normalizing the data. The resulting algorithm is a simple to implement and tune baseline, while more than halving the overall run time by removing the additional computational overheads of previous methods.

  • 背景:

    • Offline RL 定义了从 a fixed batch of data 中学习的任务。
    • 由于 OOD action 的 value estimation error,大多数 offline RL 算法使用 ID action 去约束或正则化策略。
    • 因此,可以说建立在原来的 online RL 算法之上,让它变成 offline RL,是以增加复杂性为代价的: offline RL 算法引入了新的超参数,并且通常利用生成模型(generative models)等辅助组件,同时还会调整底层的 RL 算法。
  • method & result:
    • 本文的目标是,让 DRL 算法在最小更改下 work。
    • 我们发现,只需在 online RL 算法的策略更新中,添加行为克隆项(behavior cloning term)并 normalize 数据,就可匹配 sota offline RL 算法的性能。
    • 我们的算法是易于实现和 tune 的 baseline,同时,通过消除先前 offline 方法的额外计算开销,将总体运行时间缩短了一半以上。

4 Challenges in Offline RL - offline RL 中的挑战

  • Implementation and Tuning Complexities - 算法实现与微调的复杂度。
  • Extra Computation Requirement - 额外的计算需求。
    • CQL 好像会有 log sum exp 的操作,计算量大。
  • Instability of Trained Policies - 训出来的策略的不稳定性。
    • 在 online RL 中,如果当前策略不尽如人意,我们可以使用策略先前迭代的 checkpoint,或者干脆继续训练。
    • 但是,在 offline RL 中,根据定义,评估应该只发生一次,这大大增加了评估时单个策略的重要性。
    • 我们重点介绍了 offline RL 中的两种不稳定性。
    • 图 2 显示,offline trained policy 在单次评估期间表现出巨大的 performance 差异。因此,即使平均表现合理,agent 在某些 episode 上仍可能表现不佳。
    • 图 3 表示了一组评估(应该是同一 episode 内)的不稳定性,这意味着 agent 的 performance 可能取决于,为 evaluation 选择的特定停止点。(可能是猎豹跑着跑着就栽了嘛?)

5 A Minimalist Offline RL Algorithm - 极简 Offline RL 算法

  • 主要的 method 就是公式 3 4 5,其中:

    • 公式 3 纳入了一个 behavior cloning 的 loss;
    • 公式 4 是 observation 归一化;
    • 公式 5 让 Q advantage 跟 behavior cloning 的 loss 可比。

6 Experiments

  • settings:

    • 主要使用两个 baselines: CQL、Fisher-BRC。
    • 其他 baselines: BRAC 和 AWAC(据作者说算法简单)、Behavior Cloning。
    • benchmark: D4RL benchmark of OpenAI gym MuJoCo tasks。
  • results:
    • 看图就好了。
    • 比较了算法们的训练时间,TD3 + BC 训练时间最短。
    • 图 2 3 显示的稳定性问题。(见上面 section 4 的笔记)
  • ablation:
    • 师兄提到的一点:可以预见的是,删除 state normalization 的影响是最小的,但它仍然有好处,并且只是一个微小的调整。对应 Figure 5 最后一张图。

offline RL | TD3+BC:在最大化 Q advantage 时添加 BC loss 的极简算法的更多相关文章

  1. 【原创】linux命令bc使用详解

    最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下: echo "obase=10;ibase=16;CFFF" | bc 用完以后就对bc进行了进一步的了解,  ...

  2. bc命令详解

    基础命令学习目录首页 原文链接:https://www.cnblogs.com/lovevivi/p/4359296.html 最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下: ...

  3. 软件协作工具Trello

    软件协作工具Trellohttps://trello.com/ Q群里conan发了个UE4的RODEMAP的trello链接,感受了一下Trello这款软件协作工具.(https://trello. ...

  4. Shell expr的用法 bc 命令 let命令

    Shell expr的用法  bc 命令   let命令 数学运算 let命令  expr命令  bc命令  $(())   $[] http://www.80ops.cn/archives/245. ...

  5. bc命令详解与实例

    bc: bc 是一种高精度的可交互执行的计算机语言.它在一些浮点数的运算中应用广泛. 一般情况下我们直接输入 bc ,便可进入其工作环境.当然,它还有其他的参数 -h 显示帮助信息并退出 -i 强制进 ...

  6. Linux基础命令---bc

    bc bc是一种算数语言,其语法和c语言类似,可以交互执行.通过命令行选项可以获得一个标准的数学库.如果请求,在处理任何文件之前定义数学库.BC从处理所有文件的代码开始.命令行中列出的文件按所列顺序排 ...

  7. bc - An arbitrary precision calculator language

    bc(1) General Commands Manual bc(1) NAME bc - An arbitrary precision calculator language SYNTAX bc [ ...

  8. Linux命令之bc - 浮点计算器、进制转换

    用途说明 Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision calcu ...

  9. LINUX任意精度计算器BC用法

    [用途说明] Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision cal ...

  10. Chrome offline game & source codes hacker

    Chrome offline game & source codes hacker dino === little dinosaur chrome://dino/ 手动 offline htt ...

随机推荐

  1. 安装.NET Framework4.5以上版本受阻怎么办?

    安装和卸载 .NET Framework 受阻疑难解答 - .NET Framework | Microsoft Learn Windows RT 8.1.Windows 8.1 和 Windows ...

  2. OpenLayers示例

    http://develop.smaryun.com:81/API/JS/OL3InterfaceDemo/index.htm

  3. c++算法之离散化

    什么是离散化? 离散化,故离散数学,其中的"离散"就是不连续的意思.离散化可以保持原数值之间相对大小关系不变的情况下将其映射成正整数. 也就是给可能用到的数值按大小关系分配一个编号 ...

  4. 数据可视化【原创】vue+arcgis+threejs 实现海量建筑物房屋渲染,性能优化

    本文适合对vue,arcgis4.x,threejs,ES6较熟悉的人群食用. 先报备一下版本号 "vue": "^2.6.11" "@arcgis/ ...

  5. pytest-xdist分布式测试原理浅析

    pytest-xdist执行流程: 解析命令行参数:pytest-xdist 会解析命令行参数,获取用户指定的分发模式.进程数.主机列表等信息. 加载测试用例:pytest-xdist 会加载所有的 ...

  6. 2.12 PE结构:实现PE字节注入

    本章笔者将介绍一种通过Metasploit生成ShellCode并将其注入到特定PE文件内的Shell注入技术.该技术能够劫持原始PE文件的入口地址,在PE程序运行之前执行ShellCode反弹,执行 ...

  7. Avalonia开发(一)环境搭建

    一.介绍 开源 GitHub:https://github.com/AvaloniaUI/Avalonia/ 多平台支持,包括Windows.mac OS.Linux.iOS.Android.Sams ...

  8. 探析ElasticSearch Kibana在测试工作中的实践应用

    一. 为什么使用ES Kibana 离线数据测试中最重要的就是数据验证,一部分需要测试es存储数据的正确性,另一部分就需要验证接口从es取值逻辑的正确性.而为了验证es取值逻辑的正确性,就需要用到Ki ...

  9. JVM面试题、关键原理、JMM

    boolean:占用1个字节,取值为true或false. byte:占用1个字节,范围为-128到127. short:占用2个字节,范围为-32,768到32,767. int:占用4个字节,范围 ...

  10. Python并发编程——paramiko远程控制的模块、病毒攻击原理、dll注入、

    文章目录 paramiko模块 作业 攻击原理解析 一.什么是dll 二.为何要有dll 什么是dll注入: 什么时候需要dll注入 dll注入的方法 使用SetWindowsHookEx函数对应用程 ...