offline RL | TD3+BC:在最大化 Q advantage 时添加 BC loss 的极简算法
- 题目:A Minimalist Approach to Offline Reinforcement Learning ,NeurIPS 2021,8 7 7 5。
- pdf 版本:https://arxiv.org/pdf/2106.06860.pdf
- html 版本:https://ar5iv.labs.arxiv.org/html/2106.06860 (感觉写的蛮好的)
- open review:https://openreview.net/forum?id=Q32U7dzWXpc
- github:https://github.com/sfujim/TD3_BC
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 的极简算法的更多相关文章
- 【原创】linux命令bc使用详解
最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下: echo "obase=10;ibase=16;CFFF" | bc 用完以后就对bc进行了进一步的了解, ...
- bc命令详解
基础命令学习目录首页 原文链接:https://www.cnblogs.com/lovevivi/p/4359296.html 最近经常要在linux下做一些进制转换,看到了可以使用bc命令,如下: ...
- 软件协作工具Trello
软件协作工具Trellohttps://trello.com/ Q群里conan发了个UE4的RODEMAP的trello链接,感受了一下Trello这款软件协作工具.(https://trello. ...
- Shell expr的用法 bc 命令 let命令
Shell expr的用法 bc 命令 let命令 数学运算 let命令 expr命令 bc命令 $(()) $[] http://www.80ops.cn/archives/245. ...
- bc命令详解与实例
bc: bc 是一种高精度的可交互执行的计算机语言.它在一些浮点数的运算中应用广泛. 一般情况下我们直接输入 bc ,便可进入其工作环境.当然,它还有其他的参数 -h 显示帮助信息并退出 -i 强制进 ...
- Linux基础命令---bc
bc bc是一种算数语言,其语法和c语言类似,可以交互执行.通过命令行选项可以获得一个标准的数学库.如果请求,在处理任何文件之前定义数学库.BC从处理所有文件的代码开始.命令行中列出的文件按所列顺序排 ...
- bc - An arbitrary precision calculator language
bc(1) General Commands Manual bc(1) NAME bc - An arbitrary precision calculator language SYNTAX bc [ ...
- Linux命令之bc - 浮点计算器、进制转换
用途说明 Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision calcu ...
- LINUX任意精度计算器BC用法
[用途说明] Bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下.手册页上说bc是An arbitrary precision cal ...
- Chrome offline game & source codes hacker
Chrome offline game & source codes hacker dino === little dinosaur chrome://dino/ 手动 offline htt ...
随机推荐
- 文心一言 VS 讯飞星火 VS chatgpt (69)-- 算法导论6.5 8题
八.HEAP-DELETE(A,i)操作能够将结点 i 从堆 A 中删除.对于一个包含 n个元素的堆,请设计一个能够在 O(lgn)时间内完成的 HEAP-DELETE 操作. 文心一言: 要在 O( ...
- [USACO22DEC] Cow College B 题解
洛谷 P8897 AcWing 4821 题目描述 有\(n\)头奶牛,每头奶牛愿意交的最大学费为\(c_i\),问如何设置学费,可以使赚到的钱最多. \(1\le n\le 10^5,1\le c_ ...
- 不要再傻傻分不清 hash、 chunkhash 和 contenthash 啦
hash.contenthash 和 chunkhash 是通过散列函数处理之后,生成的一串字符,可用于区分文件. 文件名不带哈希值 webpack.config.js 文件中,output 中定义输 ...
- C#/.NET/.NET Core优秀项目和框架每周精选(坑已挖,欢迎大家踊跃提交PR或者Issues中留言)
前言 注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯). 每周精选优秀的C#/.NET/.NET Core项目和框架,帮助 ...
- tomcat配置域名绑定项目
有时候我们需要根据访问的不同域名,对应tomcat中不同的项目例如:一个网站同时做了两套,pc版和手机版.手机版对应的域名是m.we-going.com,就需要在tomcat配置文件中加入以下代码:& ...
- 上位机使用JS SerialPort进行串口通信, 包含开发环境搭建和完整示例代码
在嵌入式开发中,我们经常需要使用上位机(PC)与一些电路模块进行通信, 用于获取一些传感器的数据,或者发送命令控制相应的电路模块.NodeJS目前支持使用SerialPort模块进行串口通信,本文主要 ...
- 文心一言 VS 讯飞星火 VS chatgpt (92)-- 算法导论8.3 5题
五.用go语言,在本节给出的第一个卡片排序算法中,为排序 d 位十进制数,在最坏情况下需要多少轮排序?在最坏情况下,操作员需要记录多少堆卡片? 文心一言: 你提到的第一个卡片排序算法可能是指的基数排序 ...
- MySQL系列之MyCat——架构图、准备、安装、配置文件、垂直分表、MyCAT核心特性——分片(水平拆分)、范围分片、枚举分片、Mycat全局表、E-R分片
文章目录 1. MyCAT基础架构图 2. MyCAT基础架构准备 2.1 环境准备: 2.2 删除历史环境: 2.3 创建相关目录初始化数据 2.4 准备配置文件和启动脚本 2.5 修改权限,启动多 ...
- Go with Protobuf
原文在这里. 本教程为 Go 程序员提供了使用Protocol buffer的基本介绍. 本教程使用proto3向 Go 程序员介绍如何使用 protobuf.通过创建一个简单的示例应用程序,它向你展 ...
- ProcessingJS
ProcessingJS 图形 rect(x, y, w, h)(在新窗口中打开) ellipse(x, y, w, h) triangle(x1, y1, x2, y2, x3, y3) line( ...