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 ...
随机推荐
- 基础版本:用KNN算法实现预测facebook签到位置模型的训练(内含数据集下载)
实现模型的训练一般的流程便是 # 导包 # 导入数据 # 数据处理 # 特征工程 # KNN算法预估流程 # 模型评估 接下来便实现以上流程 实现该模型训练我们需要导入一下的函数 1 # 导包 2 3 ...
- 从0开发属于自己的nestjs框架的mini 版 —— ioc篇
如今,nodejs的框架也是层出不穷,偏向向底层的有 express.koa. Fastify,偏向于上层有阿里的 Egg.thinkjs .还有国外的 nestjs. 在这里我更喜欢 nestjs, ...
- MySQL5.5+配置主从同步并结合ThinkPHP5设置分布式数据库
前言: 本文章是在同处局域网内的两台windows电脑,且MySQL是5.5以上版本下进行的一主多从同步配置,并且使用的是集成环境工具PHPStudy为例.最后就是ThinkPHP5的分布式的连接,读 ...
- mysql 命令安装
1. mysql 下载安装好压缩文件,下面我们进入正题,少废话. 09:39:112023-08-05 先到 mysql 官方网站下载:https://dev.mysql.com/downloa ...
- TRL 正式推出,来训练你的首个 RLHF 模型吧!
我们正式向大家介绍 TRL--Transformer Reinforcement Learning.这是一个超全面的全栈库,包含了一整套工具用于使用强化学习 (Reinforcement Learni ...
- Python 潮流周刊#16:优雅重要么?如何写出 Pythonic 的代码?
你好,我是猫哥.这里每周分享优质的 Python.AI 及通用技术内容,大部分为英文.标题取自其中两则分享,不代表全部内容都是该主题,特此声明. 本周刊由 Python猫 出品,精心筛选国内外的 25 ...
- 移动优先与响应式Web设计
1.加速度计-设备置向 2.下拉更新-Iscroll 3.滑动以得到更多选项-panel 4.Sketch a Search 雅虎 画圈搜索 5.<Tapeworthy> 移动用户的行为特 ...
- 4、Spring之依赖注入
依赖注入就是对类的属性进行赋值 4.1.环境搭建 创建名为spring_ioc_xml的新module,过程参考3.1节 4.1.1.创建spring配置文件 <?xml version=&qu ...
- api接口对接如何实现,php如何对接api
API接口对接是现代软件开发中不可或缺的一部分,它允许不同的应用程序之间进行数据交换和服务调用.在PHP中,可以使用多种方式实现API接口的对接,包括基于HTTP协议的传统方法以及现代的API客户端库 ...
- API数据接口获取商品详情数据该怎么操作
随着电商行业的快速发展,获取商品详情数据是电商应用的重要功能之一.为了提高用户的购物体验,开发者可以利用API接口获取商品详情数据,方便用户了解商品的具体信息和特点.在本文中,我们将介绍如何使用API ...