Offline RL : Context-Former: Stitching via Latent Conditioned Sequence Modeling

paper

基于HIM的离线RL算法,解决基于序列模型的离线强化学习算法缺乏对序列拼接能力。

Intro

文章提出了ContextFormer,旨在解决决策变换器(Decision Transformer, DT)在轨迹拼接(stitching)能力上的不足。轨迹拼接是离线RL中一个重要的能力,它允许算法通过组合次优的轨迹片段来获得更优的策略。ContextFormer通过集成基于上下文信息的模仿学习(Imitation Learning, IL)和序列建模,模仿有限数量专家轨迹的表示,来实现次优轨迹片段的拼接。实验结果表明,ContextFormer在多模仿学习设置下具有竞争力,并且在与其他DT变体的比较中表现出色。

两个定义

在这里插入图片描述
在这里插入图片描述上述两个定义分别给出基于隐变量的条件序列模型建模方式,以及使用专家序列,通过度量经过embedding后的变量距离,使得待优化策略应满足靠近专家策略,远离次优轨迹策略。对于定义二有如下形式化的目标来优化上下文隐变量表征
J z ∗ = min ⁡ z ∗ , I ϕ E τ ∗ ∼ π ∗ ( τ ) [ ∥ z ∗ − I ϕ ( τ ∗ ) ∥ ] − E τ ^ ∼ π ^ [ ∥ z ∗ − I ϕ ( τ ^ ) ∥ ] , \mathcal{J}_{\mathbf{z}^{*}}=\operatorname*{min}_{\mathbf{z}^{*},I_{\phi}}\mathbb{E}_{\tau^{*}\sim\pi^{*}(\tau)}[\|\mathbf{z}^{*}-I_{\phi}(\tau^{*})\|]\\-\mathbb{E}_{\hat{\tau}\sim\hat{\pi}}[\|\mathbf{z}^{*}-I_{\phi}(\hat{\tau})\|], Jz=z,IϕminEτπ(τ)[zIϕ(τ)]Eτ^π^[zIϕ(τ^)],

Method

在这里插入图片描述

ContextFormer的训练过程包括两个关键模型:Hindsight Information Extractor I ϕ I_{\phi} Iϕ和Contextual Policy。Hindsight Information Extractor使用BERT作为编码器,并采用VQ-VAE(Vector Quantization Variational Autoencoder)损失来训练。Contextual Policy则是一个基于潜在条件的序列模型(DT),通过上下文信息作为目标来优化策略接近专家策略。

根据定义4.1建模序列模型以及 I ϕ I_{\phi} Iϕ,通过监督学习方式优化上下文策略 π z \pi_z πz以及HI extractor。
J π z , I ϕ = E τ ∼ ( π ∗ , π ^ ) [ ∥ π z ( ⋅ ∣ I ϕ ( τ ) , s 0 , a 0 , ⋯ , I ϕ ( τ ) , s t ) − a t ∥ ] , ( 4 ) \mathcal{J}_{\pi_{\mathbf{z}},I_{\phi}}=\mathbb{E}_{\tau\sim(\pi^{*},\hat{\pi})}[\|\pi_{\mathbf{z}}(\cdot|I_{\phi}(\tau),\mathbf{s}_{0},\mathbf{a}_{0},\cdots,I_{\phi}(\tau),\mathbf{s}_{t})-\mathbf{a}_{t}\|], (4) Jπz,Iϕ=Eτ(π,π^)[πz(Iϕ(τ),s0,a0,,Iϕ(τ),st)at],(4)
其中 π ^ a n d π ∗ \hat{\pi}\mathrm{~and~}\pi^{*} π^ and π分别表示次优策略以及专家策略。同时,基于定义4.2对 I ϕ I_\phi Iϕ以及上下文embedding z ∗ z^* z进行优化。
J z ∗ , I ϕ = min ⁡ z ∗ , I ϕ E τ ^ ∼ π ^ ( τ ) , τ ∗ ∼ π ∗ ( τ ) [ ∥ z ∗ − I ϕ ( τ ∗ ) ∥ − ∣ ∣ z ∗ − I ϕ ( τ ^ ) ∣ ∣ ] ( 5 ) \mathcal{J}_{\mathbf{z}^{*},I_{\phi}}=\min_{\mathbf{z}^{*},I_{\phi}}\mathbb{E}_{\hat{\tau}\sim\hat{\pi}(\tau),\tau^{*}\sim\pi^{*}(\tau)}[\|\mathbf{z}^{*}-I_{\phi}(\tau^{*})\|-||\mathbf{z}^{*}-I_{\phi}(\hat{\tau})||] (5) Jz,Iϕ=z,IϕminEτ^π^(τ),τπ(τ)[zIϕ(τ)∣∣zIϕ(τ^)∣∣]5

除此外,对于 I ϕ I_\phi Iϕ还需VQ-loss进行优化,三者联合构成了VQ-VAE的训练损失函数。
在这里插入图片描述

伪代码

在这里插入图片描述
(伪代码Training部分的第二步,VQ-loss应对应公式20)

结果

在这里插入图片描述

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

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

相关文章

新定义单片机的说明

新定义的官网是https://www.rdsmcu.com/shop/#/,主要经营的是1T系列的51单片机,之前从他们官网上申请了评估板,自己页玩了一段时间,不过玩的不多,特开此专栏记录学习过程,并帮助刚入门的道友快速上手。 我申请的是评估…

DQL(数据查询)

目录 1. DQL概念 2. DQL - 编写顺序 3. 基础查询 3.1 查询多个字段 3.2 字段设置别名 3.3 去除重复记录 3.4 案例 4. 条件查询 4.1 语法 4.2 条件 4.3 案例: 5. 聚合函数 5.1 常见的聚合函数: 5.2 语法 5.3 案例: 6. 分组查…

VScode SSH连接远程服务器报错

一、报错 通过VScode SSH插件远程连接服务器,输入密码后没有连接成功,一直跳出输入密码界面,在输出界面里,一直是Waiting for server log或者是显示Cannot not find minimist 二、处理 🐱: 这个时候应该…

力扣每日一题 5/25

题目: 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,以及整数 indexDifference 和整数 valueDifference 。 你的任务是从范围 [0, n - 1] 内找出 2 个满足下述所有条件的下标 i 和 j : abs(i - j) > indexDifference 且abs(nums…

CTF网络安全大赛web题目:字符?正则?

题目来源于&#xff1a;bugku 题目难度&#xff1a;难 题目描  述: 字符&#xff1f;正则&#xff1f; 题目htmnl源代码&#xff1a; <code><span style"color: #000000"> <span style"color: #0000BB"><?php <br />highl…

C-数据结构-链式存储栈(二次封装)

/* 二次封装 借用已经实现双向链表结构来实现 栈 出栈入栈操作类似于 从头节点开始的插入和删除 */ llist.h #ifndef LLIST_H__ #define LLSIT_H__ #define LLIST_FORWARD 1 #definr LLIST_BACKWARD 2 typedef void llist_op(const void *);//回调函数 typedef int llist_cmp…

分组排序取最大sql理解

分组排序取最大sql理解 --用户过滤&#xff08;只能看到当前用户对应部门用户权限表中的部门&#xff09; select h.pk_tbdept from jygyl_bmyhqxb h left join jygyl_bmyhqxb_b b on h.pk_bmyhqx b.pk_bmyhqx where isnull(h.dr,0) 0 and isnull(b.dr,0) 0 and b.pk…

类图的六大关系

类图中的六大关系包括&#xff1a;继承关系、实现关系、关联关系、聚合关系、组合关系和依赖关系。 1. 继承关系 继承是一种类与类之间的关系&#xff0c;表示一种泛化和特化的关系。子类继承父类的特性和行为。 class Animal {void eat() {System.out.println("This an…

TensorFlow.js

什么是 TensorFlow.js&#xff1f; TensorFlow.js 是一个基于 JavaScript 的机器学习库&#xff0c;它是 Google 开发的 TensorFlow 的 JavaScript 版本。它使得开发者能够在浏览器中直接运行机器学习模型&#xff0c;而不需要依赖于后端服务器或云服务。TensorFlow.js 的主要…

【JavaEE 初阶(十)】JVM

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多进阶知识 目录 1.前言2.JVM内存区域划分3.类加载3.1双亲委派模型 4.垃圾回收&#xff08;GC&#xff0…

【智能优化算法】粒子群优化算法(PSO)【附python实现代码】

写在前面&#xff1a; 首先感谢兄弟们的订阅&#xff0c;让我有创作的动力&#xff0c;在创作过程我会尽最大能力&#xff0c;保证作品的质量&#xff0c;如果有问题&#xff0c;可以私信我&#xff0c;让我们携手共进&#xff0c;共创辉煌。 路虽远&#xff0c;行则将至&#…

【软件设计师】下午题总结-数据流图、数据库、统一建模语言

下午题总结 1 试题一1.1 结构化语言 2 试题二弱实体增加权限增加实体间联系和联系的类型 3 试题三3.1 UML关系例子 3.2 例子&#xff08;2016上半年&#xff09;3.3 设计类分类3.3.1 接口类3.3.2 控制类3.3.3 实体类 3.4 简答题3.4.1 简要说明选择候选类的原则3.4.2 某个类必须…

Kafka SSL认证

证书生成 在kafka安装目录下/certificates生成keystore和trust文件&#xff0c;在其中一台机器声生成证书&#xff0c;然后将 生成的server.keystore.jks和server.truststore.jks文件拷贝其他broker节点上去即可 1.生成keystore [rootm1 certificates]# keytool -keystore se…

Mantine UI:简洁、灵活的 React UI 库

介绍 Mantine UI Mantine UI 是一个由 React 驱动的现代 UI 库&#xff0c;旨在简化开发人员构建用户界面的过程。它提供了一系列经过优化和可访问的组件&#xff0c;适用于各种项目&#xff0c;从简单的网站到复杂的应用程序。Mantine UI 的特点包括&#xff1a; 可定制性&a…

Android-okhttp调接口传参简单举例

步骤1&#xff1a;在主线程中创建thread调接口 new Thread(new Runnable() {Overridepublic void run() {getServiceList();}}).start();步骤2&#xff1a;okhttp调接口 private void getServiceList(){Message msg new Message();try{OkHttpClient okHttpClient new OkHttp…

【网络安全】网络安全协议的重要性

一.网络安全 1.什么是网络安全 网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断。 2.网络安…

WPF密码输入框明文掩码切换

1&#xff0c;效果 2&#xff0c;代码&#xff1a; WPF的PasswordBox不能像Winform中的PasswordBox那样&#xff0c;通过PasswordBox.PasswordChar(char)0显示明文。所以这里使用无外观控件构筑掩码明文切换。 无外观控件遵守Themes/Generic.xaml文件配置. <ResourceDicti…

视觉检测实战项目——九点标定

本文介绍九点标定方法 已知 9 个点的图像坐标和对应的机械坐标,直接计算转换矩阵,核心原理即最小二乘拟合 {𝑥′=𝑎𝑥+𝑏𝑦+𝑐𝑦′=𝑎′𝑥+𝑏′𝑦+𝑐′ [𝑥1𝑦11𝑥2𝑦21⋮⋮⋮𝑥9𝑦91][𝑎𝑎′𝑏𝑏′𝑐𝑐′]=[𝑥1′𝑦…

[Linux]磁盘管理

一.Linux磁盘管理的原理 磁盘分区与Linux的目录是借助"挂载机制"链接的&#xff0c;将一个分区与一个目录连接起来。访问目录&#xff0c;相当于访问某块分区 lsblk命令: lsblk命令可以查看磁盘分区&#xff0c;以及每个分区所挂载的目录 lsblk -f 可以查看更细节的…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(十九)- JUC(5)

synchronized优化原理 轻量级锁 如果一个对象有多个线程访问&#xff0c;但多线程访问的时间是错开的&#xff08;没有竞争&#xff09;&#xff0c;可以用轻量级锁优化 Slf4j(topic "c.ExerciseTransfer")public class Test {​static final Object obj new Obj…