O2O:Offline Meta-Reinforcement Learning with Online Self-Supervision

ICML 2022
paper

Introduction

元强化学习(Meta RL)结合O2O。元RL需要学习一个探索策略收集数据,同时还需学习一个策略快速适应新任务。由于策略是在固定的离线数据集上进行元训练的,因此在适应探索策略收集的数据时,它可能表现得不可预测,该策略与离线数据可能存在系统性差异,从而导致分布偏移。

本文提出两阶段的Meta offline RL算法SMAC,该算法利用带奖励的离线数据对策略进行元训练,然后收集额外无监督的、没有任何奖励信号的在线数据,来弥补这种分布上偏移。在模拟机器人运动与操作任务上,使用额外的无监督在线数据收集可以显着提高元训练策略的自适应能力。

Method

在这里插入图片描述

offline meta-training

采用Actor-crtitc架构的算法。最小化bellman误差优化价值函数:
L c r i t i c ( w ) = E ( s , a , r , s ′ ) ∼ D i , z ∼ q ϕ c ( z ∣ h ) , a ′ ∼ π θ ( a ′ ∣ s ′ , z ) [ ( Q w ( s , a , z ) − ( r + γ Q w ˉ ( s ′ , a ′ , z ) ) ) 2 ] . \begin{aligned} \mathcal{L}_{\mathrm{critic}}(w)& =\mathbb{E}_{(\mathbf{s},\mathbf{a},r,\mathbf{s}^{\prime})\sim\mathcal{D}_{\mathbf{i}},z\sim q_{\phi_{c}}(\mathbf{z}|\mathbf{h}),\mathbf{a}^{\prime}\sim\pi_{\theta}(\mathbf{a}^{\prime}|\mathbf{s}^{\prime},\mathbf{z})} \\ &\left[(Q_{w}(\mathbf{s},\mathbf{a},\mathbf{z})-(r+\gamma Q_{\bar{w}}(\mathbf{s}',\mathbf{a}',\mathbf{z})))^{2}\right]. \end{aligned} Lcritic(w)=E(s,a,r,s)Di,zqϕc(zh),aπθ(as,z)[(Qw(s,a,z)(r+γQwˉ(s,a,z)))2].

离线数据下对策略的优化若是采用SAC,将会困扰于off-policy的自举误差累积(bootstrapping error accumulation)。为解决该问题,采用类似AWAC的方法,对策略隐式约束让它保持在buffer数据附近。
L a c t o r ( θ ) = − E ⁡ s , a , s ′ ∼ D , z ∼ q ϕ c ( z ∣ h ) [ log ⁡ π θ ( a ∣ s ) × exp ⁡ ( Q ( s , a , z ) − V ( s ′ , z ) λ ) ] . \begin{gathered}\mathcal{L}_{\mathrm{actor}}(\theta)=-\operatorname{E}_{\mathbf{s},\mathbf{a},\mathbf{s}^{\prime}\sim\mathcal{D},\mathbf{z}\sim q_{\phi_c}(\mathbf{z}|\mathbf{h})}\bigg[\log\pi_\theta(\mathbf{a}\mid\mathbf{s})\times\\\exp\left(\frac{Q(\mathbf{s},\mathbf{a},\mathbf{z})-V(\mathbf{s}^{\prime},\mathbf{z})}\lambda\right)\bigg].\end{gathered} Lactor(θ)=Es,a,sD,zqϕc(zh)[logπθ(as)×exp(λQ(s,a,z)V(s,z))].
其中 V ( s , z ) = E a ∼ π θ ( a ∣ s , z ) Q ( s , a , z ) V(s,z)=\mathbb{E}_{\mathbf{a}\sim\pi_\theta(\mathbf{a}|\mathbf{s},\mathbf{z})}Q(\mathbf{s},\mathbf{a},\mathbf{z}) V(s,z)=Eaπθ(as,z)Q(s,a,z)

然而,元离线学习存在Z-空间漂移问题,这是由于元学习会训练探索策略 p i θ pi_\theta piθ生成数据。然而元离线学习只使用离线数据训练行为策略 π β \pi_\beta πβ。这样会导致两种策略在训练数据 h = h = { s i , a i , r i , s i ′ } i = 1 N e n c h=\mathbf{h}=\{\mathbf{s}_{i},\mathbf{a}_{i},r_{i},\mathbf{s}_{i}^{\prime}\}_{i=1}^{N_{\mathrm{enc}}} h=h={si,ai,ri,si}i=1Nenc以及其表征的空间 z ∼ q ϕ c ( z ∣ h ) . \mathbf{z}\sim q_{\phi_{c}}(\mathbf{z}\mid\mathbf{h}). zqϕc(zh).的不匹配。

解决办法就是使用额外的、没有奖励标签的在线数据,通过自监督方法生成奖励标签。生成奖励的模型则是使用离线数据集进行训练。
L r e w a r d ( ϕ d , ϕ c , h , z ) = ∑ ( s , a , r ) ∈ h ∥ r − r ϕ d ( s , a , z ) ∥ 2 2 + D K L ( q ϕ c ( ⋅ ∣ h ) ∣ ∣ p z ( ⋅ ) ) . \begin{aligned}\mathcal{L}_{\mathrm{reward}}(\phi_d,\phi_c,\mathbf{h},\mathbf{z})&=\sum_{(\mathbf{s},\mathbf{a},r)\in\mathbf{h}}\left\|r-r_{\phi_d}(\mathbf{s},\mathbf{a},\mathbf{z})\right\|_2^2\\&+D_{\mathrm{KL}}\left(q_{\phi_c}(\cdot\mid\mathbf{h})\right|\left|p_{\mathbf{z}}(\cdot)\right).\end{aligned} Lreward(ϕd,ϕc,h,z)=(s,a,r)hrrϕd(s,a,z)22+DKL(qϕc(h)pz()).
其中 p z p_z pz为z的先验分布。

Self-Supervised Online Meta-Training

首先使用离线训练的探索策略 π θ ( a ∣ s , z ) \pi_\theta(a|s,z) πθ(as,z)与环境交互收集没有奖励的在线数据,其中z采样于先验 p ( z ) p(z) p(z)

为了给在线数据打上奖励标签,算法从离线数据中采样 h o f f l i n e h_{offline} hoffline,从后验分布中采样 z ∼ q ϕ c ( z ∣ h o f f l i n e ) \mathbf{z}\sim q_{\phi_{c}}(\mathbf{z}\mid\mathbf{h}_{\mathrm{offline}}) zqϕc(zhoffline)。然后利用奖励生成模型标记:
r g e n e r a t e d = r ϕ d ( s , a , z ) ,   w h e r e   z ∼ q ϕ e ( z ∣ h ) r_{\mathrm{generated}}=r_{\phi_{d}}(\mathbf{s},\mathbf{a},\mathbf{z}),\mathrm{~where~}\mathbf{z}\sim q_{\phi_{e}}(\mathbf{z}\mid\mathbf{h}) rgenerated=rϕd(s,a,z), where zqϕe(zh)
得到的奖励连同轨迹数据送入buffer执行offline meta learning,训练actor以及critic。在自监督过程中,由于没有观察到环境给出的奖励函数,不对奖励生成模型 r ϕ d r_{\phi_d} rϕd以及隐空间encoder q ϕ e q_{\phi_e} qϕe回传梯度更新,而是只更新策略与Q函数。

由于只有当encoder的数据来自在线数据才会出现Z-空间的分布偏移,而这里采样的来自于offline,所以解决Z变量分布偏移问题。

伪代码

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/438015.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汽车小车车灯无痕修复用的胶是什么胶?

汽车小车车灯无痕修复用的胶是什么胶? 可以使用在小车车灯无痕修复中的胶水,通常使用的车灯无痕修复专用UV胶。 车灯无痕修复专用胶主要成份是改性丙烯酸UV树脂,主要应用在车灯的专业无痕修复领域。它可以用于修复车灯壳的裂缝或破损&#xf…

浅析扩散模型与图像生成【应用篇】(八)——BBDM

8. BBDM: Image-to-Image Translation with Brownian Bridge Diffusion Models 本文提出一种基于布朗桥(Brownian Bridge)的扩散模型用于图像到图像的转换。图像到图像转换的目标是将源域 A A A中的图像 I A I_A IA​,映射到目标域 B B B中得…

基于cnn卷积神经网络的车辆颜色检测识别-图像去雾-图像去雨(改进yolo目标检测-附代码)

– 引言: 开篇简述图像处理在智能交通监控、自动驾驶等领域的关键作用,并强调随着深度学习尤其是卷积神经网络(CNN)的发展,在复杂环境下的车辆颜色精确识别、图像恢复(如去雾和去雨)等难题得以…

数字孪生10个技术栈:数据处理的六步骤,以获得可靠数据。

一、什么是数据处理 在数字孪生中,数据处理是指对采集到的实时或历史数据进行整理、清洗、分析和转化的过程。数据处理是数字孪生的基础,它将原始数据转化为有意义的信息,用于模型构建、仿真和决策支持。 数据处理是为了提高数据质量、整合数…

腾讯云学生服务器多少钱?怎么申请?

2024年腾讯云学生服务器优惠活动「云校园」,学生服务器优惠价格:轻量应用服务器2核2G学生价30元3个月、58元6个月、112元一年,轻量应用服务器4核8G配置191.1元3个月、352.8元6个月、646.8元一年,CVM云服务器2核4G配置842.4元一年&…

图书馆管理系统(2)

接下来实现系统的子菜单,在写一个子模块的时候,其他子模块先屏蔽起来,因为没实现,代码运行就通不过 屏蔽起来写上todo,后面(Ctrl键F)搜索,找todo来实现 先来实现图书管理模块 第一步,先要把图…

Unity3D学习之XLua实践——背包系统

文章目录 1 前言2 新建工程导入必要资源2.1 AB包设置2.2 C# 脚本2.3 VSCode 的环境搭建 3 面板拼凑3.1 主面板拼凑3.2 背包面板拼凑3.3 格子复合组件拼凑3.4 常用类别名准备3.5 数据准备3.5.1 图集准备3.5.2 json3.5.3 打AB包 4 Lua读取json表及准备玩家数据5 主面板逻辑6 背包…

社区店选址案例研究:成功与失败的经验教训

大家好,我是一名鲜奶吧5年的创业者,在社区店经营方面有着丰富的经验。 今天,我将分享一些关于社区店选址的成功与失败案例,希望能给想开实体店或创业的朋友们提供有价值的干货信息。 首先,让我们来看看成功的社区店选…

鸿蒙开发岗成春招最大黑马,“金三银四”应届生如何突围?

一年一度春招时间到,技术岗位已成为众多人才竞相追求的“职业高地”,也是未来职业发展的重要方向之一。鸿蒙人才在春招市场上成为“香饽饽”,与往年不同的是,许多应届生放弃考公执念向程序员进攻,这一现象背后蕴含着深…

【C++】priority_queue和仿函数

priority_queue翻译过来就是优先队列,其实就是我们数据结构中的堆。堆这个东西之前也说过,它分为大根堆和小根堆,它的底层是一个类似数组的连续的空间,逻辑结构是一个完全二叉树,这个完全二叉树如果是小根堆的话父亲小…

高效实用|ChatGPT指令/提示词/prompt/AI指令大全,进阶版

大家好,我是淘小白~ 《高效实用|ChatGPT指令/提示词/prompt/AI指令大全,基础版》整理完了,下面来看下进阶版的吧! 如果对你有用记得点赞、关注、收藏哦~ 划走可能找不着了哦~~ 进阶版指令可用于复杂任务和场景,以及…

01背包问题 刷题笔记

思路 dp 用f[i][j]来表示当体积为j时 考虑前i件物品可以获得的 最大值 记住f[i][j]本身是个价“价值” 考虑两种状态 是否将第i件物品放入背包里面 将背包的体积从小到大递增来进行考虑 首先 考虑条件 如果当前增加的体积放不下下一件物品 则该体积 可以获得的最大值可以直接…

通义灵码-智能编码辅助工具

1.介绍 通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优&a…

经典语义分割(二)医学图像分割模型UNet

经典语义分割(二)医学图像分割模型UNet 我们之前介绍了全卷积神经网络( FCN) ,FCN是基于深度学习的语义分割算法的开山之作。 今天我们介绍另一个语义分割的经典模型—UNet,它兼具轻量化与高性能,通常作为语义分割任务的基线测试模型&#x…

Unity 动画(旧版-新版)

旧版 旧版-动画组件:Animation 窗口-动画 动画文件后缀: .anim 将制作后的动画拖动到Animation组件上 旧版的操作 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c1 : MonoBehaviour {// Start is called before…

【Python】6. 基础语法(4) -- 列表+元组+字典篇

列表和元组 列表是什么, 元组是什么 编程中, 经常需要使用变量, 来保存/表示数据. 如果代码中需要表示的数据个数比较少, 我们直接创建多个变量即可. num1 10 num2 20 num3 30 ......但是有的时候, 代码中需要表示的数据特别多, 甚至也不知道要表示多少个数据. 这个时候,…

SAP - 采购价格确定 ③ 抬头条件和组条件

抬头条件和组条件 当我们创建一个具有多个行项目的采购订单时,我们经常需要条件可以应用到所有的行项目中。相应的,条件也可以应用到特定的行项目。在R/3系统中,条件可以涉及采购凭证的单个行项目(项目条件),多个行项目(组条件)或所有的行项目(抬头条件)。 一些标准…

day14_异常

今日内容 零、 复习昨日 一、日期类 二、异常 零、 复习昨日 1为什么要重写toString Object类toString返回的是对象名字地址,无意义子类重写toString() 返回的对象属性内容 2为什么要重写equals Object类equals判断是对象的地址值是否相等,无意义子类重写equals,为了判断对象的…

贪心算法详解及机器人运动应用Demo

一、引言 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法在有最优子结构的问题中尤为有效。今天,我们将通过一个机器人运动的Demo来详细解析贪心算…

Vision Transformer结构解析

Vision Transformer结构解析 ViT简介ViT三大模块ViT图像预处理模块——PatchEmbed多层Transformer Encoder模块MLP(FFN)模块 基本的Transformer模块Vision Transformer类的实现Transformer知识点 ViT简介 Vision Transformer。transformer于2017年的Att…