【NeurIPS】解决离线强化学习中的互模拟缺陷,FaceChain团队联合出品

news2024/12/26 2:26:29

一、论文

本文介绍被机器学习顶级国际会议NeurIPS 2023接收的论文 "Understanding and Addressing the Pitfalls of Bisimulation-based Representations in Offline Reinforcement Learning",https://arxiv.org/abs/2310.17139

开源代码

https://github.com/zanghyu/Offline_Bisimulation

二、背景

1.)强化学习中的状态表示学习

强化学习作为机器学习基本模式之一受到了广泛的关注,然而当考虑到更贴近现实的控制任务时,深度强化学习方法的适用性仍然受到制约,这主要是由于强化学习智能体与环境的交互方式的限制。因为现实世界中,许多应用都是基于高维传感器输入的,如图像等数据。在这种高维观测空间进行强化学习的策略更新往往导致样本效率的降低,进而加大了对数据量的需求,弱化了深度强化学习的应用潜力。原则上,能够有效抽象高维观测数据并提升深度强化学习样本效率的方法是状态表征学习。状态表征学习, 与无监督学习中的表征学习算法类似,是将智能体在环境当中的观测通过一定的辅助任务映射到低维表征空间的方法,其使用的辅助任务能够通过引入一定归纳偏置进而令映射后的低维表征存在某些特定特征。

2.)考虑因果不变性的互模拟表示学习算法

因果不变性,即给定一系列特征时,我们只关注在不同条件下与目标变量始终必要相关的特征,基于这些不变特征上构建的预测器理论上能够很好地推广到数据分布中所有可能的变化。考虑因果不变性的状态表征方法的核心技术手段是利用类似于自监督学习的算法,通过预定义的辅助任务使智能体学到与强化学习任务相关的环境内在结构和特征。

      图片来自DBC论文[1]

如图所示,在一个驾驶任务中,需要区分出哪些特征是和任务相关的(如,道路,车),哪些是无关的(如,房子,树)等信息。对于该驾驶任务而言,上面两幅图对应的状态应该在特征空间内非常接近,因为它们与任务相关的信息基本完全一致;而右下角的图由于既没有车,道路形式也与上面两幅图不同,因此在特征空间中的距离应该和上面两幅图的较远。这类问题其实核心是在考虑表征与控制任务之间的关系,确切的说,是考虑的表征的因果不变性。这其中最具有代表性的算法为以互模拟度量为核心的表示学习算法[1,2,3]。其中,以SimSR算法[3]为例,给定奖励函数r(x,a),转移函数P(⋅|x,a),策略π 的情况下,有:

从该式可以看出,该算子可以通过迭代更新达到不动点,而达到该不动点时表示这个算子对应的表征ϕ(x)ϕ(y) 能够表示图像观测x 和y 在隐空间上的距离,而这个距离是通过两个状态的奖励之差以及他们对应的下一状态之间的距离来加权得到的。DBC算法[1]、MICo算法[2]、SimSR算法[3]等以互模拟为核心的算法都在强化学习上取得了不错的效果,大幅提高了强化学习的样本效率。

3.)离线强化学习

一般而言,强化学习算法往往需要大量的数据才能实现最佳性能。在收集数据成本高昂的情况下,离线强化学习方法通过学习以前收集的数据中的有效策略, 提供了一种有吸引力的替代方案。然而,从有限的数据中捕捉环境的复杂结构仍然是离线强化学习方法面临的挑战。这涉及到在离线数据上预训练状态表征, 然后在固定表示上学习策略。虽然受到各种动机的驱使,以前的方法主要可以分为两类:i)通过预测和控制环境的某些方面的辅助任务来隐式塑造代理对环境的表示,例如,最大化访问状态的多样性[4,5],依据子轨迹上的不同样本的关注度进行对比学习[6],或者捕捉环境的时间相关信息[7];ii)利用行为度量(如互模拟度量)通过评估状态表征上行为的相似性,来捕捉环境中的复杂结构。 前一种方法在离线强化学习设置中理论和实践上都验证了它们的有效性,而 后一种方法在数据有限的情况下的适应性尚不清楚。

三、方法

1.)Motivation

多个最近的研究表明,在离线任务上,相比 各种自监督目标而言,基于互模拟的算法的结果明显较差。通过建立贝尔曼算子和互模拟关系算子之间的联系,我们发现在离线环境中经常出现的transition的缺失可能会破坏互模拟原则。这意味着在有限数据集上互模拟估计可能失效。 具体来说,我们定义互模拟误差和互模拟贝尔曼残差如下:

接着我们可以建立二者之间的联系,以实现互模拟理论的实际应用:

因此我们可以通过最小化互模拟贝尔曼残差来最小化互模拟误差。此外,在数据集固定且有限的情况下,有以下定理:

这代表应用互模拟算子并最小化相关的互模拟贝尔曼残差并不能保证学得的表征对下游任务足够充分。理想情况下,如果我们能够获取不动点,那么我们就可以直接最小化近似值和不动点之间的误差(即互模拟近似误差)。然而,由于数据集的静态性和不完整性,明确获取不动点是不可行的。

2.)Method

2.1)Expectile-based Bisimulation Operator

我们借助统计学中的expectile概念来让固定数据集上的互模拟算子尽量实现“样本内更新“的效果,以尽量避免数据集外样本的外推误差错误。因此我们定义算子如下:

根据该式,我们可以得出以下引理及定理:

该式说明,当𝜏 →1 时,我们实际上是在对数据集中的动作(a'i,a'j)近似求取最大的G∼((si,ai),(sj,aj))。当 我们设定 𝜏 = 1 时,基于期望分位数的互模拟算子实现了完全的样本内学习,即我们只考虑在数据集中具有对应动作的状态对;当𝜏 →0.5 时,该式退化为原本的互模拟等式,变为行为策略的互模拟贝尔曼残差的期望。

2.2)Reward Scaling

此外,我们额外分析了reward scale对bisimulation operator的影响。具体来说:

我们可以建立拟合价值函数的边界:

他们说明了确保与互模拟度量的实例化保持一致,然后选择最大可能的reward scale来最小化状态价值误差是至关重要的。

四、实验结果

我们在基于物理状态输入的D4RL数据集和基于图像输入的V-D4RL数据集上分别进行了测试,测试结果如下:

五、展望与应用

强化学习中的表征学习对于控制任务而言至关重要,将来的一个重要研究方向是将大模型为基础的文本或图像信息与控制任务对应的状态表征做进一步对齐。这里,互模拟为基础的表征算法可能是一个重要的未来研究方向,可能对多模态数据与控制任务的对齐起到关键性作用。

六、参考:

[1]: Amy Zhang, Rowan Thomas McAllister, Roberto Calandra, Yarin Gal, Sergey Levine: Learning Invariant Representations for Reinforcement Learning without Reconstruction. ICLR 2021

[2]: Pablo Samuel Castro, Tyler Kastner, Prakash Panangaden, Mark Rowland: MICo: Improved representations via sampling-based state similarity for Markov decision processes. NeurIPS 2021: 30113-30126

[3]: Hongyu Zang, Xin Li, Mingzhong Wang: SimSR: Simple Distance-Based State Representations for Deep Reinforcement Learning. AAAI 2022: 8997-9005

[4]: Hao Liu, Pieter Abbeel: Behavior From the Void: Unsupervised Active Pre-Training. NeurIPS 2021: 18459-18473

[5]: Benjamin Eysenbach, Abhishek Gupta, Julian Ibarz, Sergey Levine: Diversity is All You Need: Learning Skills without a Reward Function. ICLR (Poster) 2019

[6]: Mengjiao Yang, Ofir Nachum: Representation Matters: Offline Pretraining for Sequential Decision Making. ICML 2021: 11784-11794

[7]: Max Schwarzer, Nitarshan Rajkumar, Michael Noukhovitch, Ankesh Anand, Laurent Charlin, R. Devon Hjelm, Philip Bachman, Aaron C. Courville: Pretraining Representations for Data-Efficient Reinforcement Learning. NeurIPS 2021: 12686-12699

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】进阶学习:计算一个人BMI(身体质量指数)指数

【Python】进阶学习:计算一个人BMI(身体质量指数)指数 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教…

android seekbar thumb 上添加进度值并居中

环境:android studio 、java 项目需要在进度条的滑块上显示进度值并居中, UI设计图: 代码实现效果图: 浅色模式: 深色模式: 由于一开始没有自定义seekbar, 使用源码Seekar, 滑块要求时带圆角,所以需要设置thumbOffset 使滑条和滑块衔接顺畅。想实现UI效果,需要对文…

Hadoop大数据应用:HDFS 集群节点缩容

目录 一、实验 1.环境 2.HDFS 集群节点缩容 二、问题 1.数据迁移有哪些状态 2.数据迁移失败 一、实验 1.环境 (1)主机 表1 主机 主机架构软件版本IP备注hadoop NameNode (已部署) SecondaryNameNode (已部署…

为什么手机和电视ip地址不一样

在数字化时代,我们每天都会与各种电子设备打交道,其中最常见的就是手机和电视。当我们连接到互联网时,这些设备都会被分配一个独特的IP地址,用于在网络上进行标识和通信。然而,您可能已经注意到,即使手机和…

【linux线程(二)】线程互斥与线程同步

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux线程 1. 前言2. 多线程互…

pip 配置镜像加速安装

在使用pip安装Python第三方库时,默认是使用pip官网的非常慢,可通过配置国内镜像源加速下载速度,以下是如何使用国内镜像源安装Python库的两种常见方式: 临时使用镜像源安装 如果你只是想临时使用某个镜像源安装单个或几个库&…

让el-input与其他组件能够显示在同一行

让el-input与其他组件能够显示在同一行 说明&#xff1a;由于el-input标签使用会默认占满一行&#xff0c;所以在某些需要多个展示一行的时候不适用&#xff0c;因此需要能够跟其他组件显示在同一行。 效果&#xff1a; 1、el-input标签内使用css属性inline 111<el-inp…

Mac-自动操作 实现双击即可执行shell脚本

背景 在Mac上运行shell脚本&#xff0c;总是需要开启终端窗口执行&#xff0c;比较麻烦 方案 使用Mac上自带的“自动操作”程序&#xff0c;将shell脚本打包成可运行程序(.app后缀)&#xff0c;实现双击打开即可执行shell脚本 实现细节 找到Mac上 应用程序中的 自动操作&am…

1 redis7概述

Redis7 1 Redis简介 Redis之所以称之为字典服务&#xff0c; 是因为 Redis 是一个 key-value存储系统。 支持存储的 value类型很多&#xff0c; 包括 String(字符串)、List(链表)、Set(集合)、Zset(sorted set --有序集合)和 Hash&#xff08;哈希类型&#xff09;等。 Redis…

Flink通讯模型—Akka与Actor模型

Carl Hewitt 在1973年对Actor模型进行了如下定义&#xff1a;"Actor模型是一个把Actor作为并发计算的通用原语". Actor是异步驱动&#xff0c;可以并行和分布式部署及运行的最小颗粒。也就是说&#xff0c;它可以被分配&#xff0c;分布&#xff0c;调度到不同的CPU&…

2024.3.14 C++

思维导图 封装类 用其成员函数实现&#xff08;对该类的&#xff09;数学运算符的重载&#xff08;加法&#xff09;&#xff0c;并封装一个全局函数实现&#xff08;对该类的&#xff09;数学运算符的重载&#xff08;减法&#xff09;。 #include <iostream>using nam…

202012青少年软件编程(图形化) 等级考试试卷(二级)

青少年软件编程(图形化) 等级考试试卷(二级)2020年12月 第1题:【 单选题】 实现角色一直移动, 碰到舞台边缘发出声音, 正确的选项是?( ) A: B: C: D: 【正确答案】: B 【试题解析】 : 第2题:【 单选题】 执行下图所示的程序, 得到的结果是?( ) A:…

c++ 面试100个题目中的编程题目

88、下列程序的运行结果是? #include <stdlib.h> #include <stdio.h> #include <string.h> #include <iostream> const char* str = "vermeer"; using namespace std; int main(){ const char* pstr = str;cout << "The add…

SAT和SMT介绍及求解器使用

一、SAT 1、介绍 &#xff08;1&#xff09;定义 SAT即命题逻辑公式的可满足性问题/布尔可满足性问题。即给定一个与或非和变量组成的命题公式&#xff0c;判断是否存在一些结果使得这个公式成立 它是第一个被确认为NP完全的问题。 输入&#xff1a;析取范式&#xff08;C…

Linux 大页内存 Huge Pages 虚拟内存

Linux 大页内存 Huge Pages 虚拟内存 - 秋来叶黄 - 博客园 (cnblogs.com) Linux为什么要有大页内存&#xff1f;为什么DPDK必须要设置大页内存&#xff1f;这都是由系统架构决定的。一开始为了解决一个问题&#xff0c;设计了对应的方案&#xff0c;随着事物的发展&#xff0c…

【CesiumJS-5】绘制动态路线实现飞行航线、汽车轨迹、路径漫游等

实现效果 前言 Cesium中&#xff0c;动态路线绘制的核心是借助CZML格式&#xff0c;CZML是一种用来描述动态场景的JSON数组,可以用来描述点、线、多边形、体、模型及其他图元,同时定义它们是怎样随时间变化的&#xff1b; CZML主要做三件事&#xff1a; 1.添加模型信息 2.添加…

Hadoop大数据应用:Yarn 节点实现扩容与缩容

目录 一、实验 1.环境 2.Yarn 节点扩容 3.Yarn 节点缩容 二、问题 1.yarn启动服务报错 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构软件版本IP备注hadoop NameNode &#xff08;已部署&#xff09; SecondaryNameNode &#xff08;已部署&…

【vue baidu-map】marker鼠标悬浮点击事件失效

要实现的效果&#xff1a;鼠标悬浮或者点击标注点会出现弹窗 验证过鼠标点击悬浮代码没问题&#xff0c;最后发现是控件样式影响的 ::v-deep #bjmap .BMap_noprint {inset: 10px 90% auto auto !important; } 只要增加上述样式&#xff0c;鼠标悬浮事件就会失效

QT使用dumpcpp为COM生成h及cpp的方式,COM是C#的dll注册的

目录 1.C#的dll注册为COM&#xff0c;采用bat的方式 2.通过qt的dumpcpp来生成h及cpp文件 3.h文件和cpp文件处理。 台达数控系统的C#的dll dumpcpp用的tlb文件 dumpcpp生成的原生h文件 dumpcpp生成的原生cpp dump生成后的的原生cpp文件修改后的cpp文资源 dump生成后的的…

【探索Linux】—— 强大的命令行工具 P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)

阅读导航 引言一、UDP协议1. UDP简介2. UDP的特点3. UDP的使用场景4. UDP的局限性 二、TCP协议1. TCP简介2. TCP的特点3. TCP的应用场景 三、UDP 和 TCP 的异同温馨提示 引言 在上一篇文章中&#xff0c;我们深入探讨了Linux网络编程的基石——套接字&#xff08;Socket&#…