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. go语言全景俯瞰

    本篇是语言教学的"传统项目".每个写go语言教学的人,都会介绍它的发展历程,应用领域,优缺点和特点来介绍自己的理由.当然如果你有自己的理解,那就更好了,欢迎讨论! 全景简介 go语 ...

  2. GoRedisLock:Golang保障数据一致性的分布式锁解决方案

    在现代分布式系统中,多个节点之间共享资源是常见的需求.然而,并发访问共享资源可能导致数据不一致性和竞争条件.为了解决这些问题,我们需要引入分布式锁.GoRedisLock是一个出色的分布式锁库,它结合 ...

  3. 【go语言】2.4.2 自定义包的创建和使用

    在 Go 中,任何一个目录都可以被视为一个包.创建自定义包的基本步骤是: 新建一个目录,用于存放包的源文件. 在新建的目录中编写 Go 代码,代码的第一行应该是 package 包名. 使用 impo ...

  4. 解读 --- Span<T>

    引言 Span<T> 是C# 中的一种结构体,它是一种内存安全的类型,可以用来表示连续的内存区域.Span<T> 可以被用于访问和操作数组.堆上分配的内存和栈上分配的内存.使用 ...

  5. Linux 过滤进程和端口号

    IDEA覆盖率测速显示百分比 ctrl + alt + F6 取消勾选 ps - ef | grep java过滤Java进程 netstat -anop | grep 74933 过滤端口号 重命名 ...

  6. Git-入门使用资料

    一.Git入门教程 Git入门视频,针对于小白快速入门,时常约2~3小时 Git入门视频 相关课件资料: https://pan.baidu.com/s/1U-s4OmkToXJ5Y7BbJ7w2Ww ...

  7. 如何基于 Kubernetes 实现优质开发者平台体验?

    内部开发者平台(或 IDP)是使开发团队能够更快.更轻松.更一致地交付应用程序的基础设施.Kubernetes 本身是一个功能强大的平台,但它引入了太多复杂性和功能,因此不能简单地将其作为 IDP 交 ...

  8. DesignPattern-part2

    title: "modern C++ DesignPattern-Part2" date: 2018-04-10T19:08:49+08:00 lastmod: 2018-04-1 ...

  9. Nomad 系列-Nomad+Traefik+Tailscale 集成实现零信任安全

    系列文章 Nomad 系列文章 Traefik 系列文章 Tailscale 系列文章 概述 终于到了令人启动的环节了:Nomad+Traefik+Tailscale 集成实现零信任安全. 在这里: ...

  10. 解决Nginx SSL 代理 Tomcat 获取 Scheme 总是 Http 问题

    背景 公司之前用的是http,但是出于苹果app审核和服务器安全性问题,要改为https,我们公司用的是沃通的ssl,按照沃通的官方文档提供的步骤完成服务器的配置. 架构上使用了 Nginx +tom ...