O2O : Finetuning Offline World Models in the Real World

CoRL 2023 Oral
paper
code

Intro

算法基于TD-MPC,利用离线数据训练世界模型,然后在线融合基于集成Q的不确定性估计实现Planning。得到的在线数据将联合离线数据共同训练目标策略。

Method

在这里插入图片描述

TD-MPC

TD-MPC由五部分构成:

  1. 状态特征提取 z = h θ ( s ) z = h_\theta(s) z=hθ(s)
  2. 隐动力学模型 z ′ ‘ = d θ ( z , a ) z'`=d_\theta(z,a) z=dθ(z,a)
  3. 奖励模型 r ^ = R θ ( z , a ) \hat{r}=R_\theta(z,a) r^=Rθ(z,a)
  4. planning policy a ^ = π θ ( z ) \hat{a}=\pi_\theta(z) a^=πθ(z)
  5. 终止状态下的 q ^ = Q θ ( z , a ) \hat{q}=Q_\theta(z,a) q^=Qθ(z,a)

通过联合训练进行优化,损失函数为:
L ( θ ) = E ( s , a , r , s ′ ) 0 : h ∼ B ⌊ ∑ t = 0 h ( ∥ z t ′ − s g ( h ϕ ( s t ′ ) ) ∥ 2 2 ⏟ Latent dynamics + ∥ r ^ t − r t ∥ 2 2 ⏟ Reward + ∥ q ^ t − q t ∥ 2 2 ⏟ Value − Q θ ( z t , a ^ t ) ⏟ Action ) ⌋ ( 1 ) \mathcal{L}(\theta)=\mathbb{E}_{(\mathbf{s},\mathbf{a},r,\mathbf{s}^{\prime})_{0:h}\sim\mathcal{B}}\left\lfloor\sum_{t=0}^{h}\left(\underbrace{\|\mathbf{z}_{t}^{\prime}-\mathrm{sg}(h_{\phi}(\mathbf{s}_{t}^{\prime}))\|_{2}^{2}}_{\text{Latent dynamics}}+\underbrace{\|\hat{r}_{t}-r_{t}\|_{2}^{2}}_{\text{Reward}}+\underbrace{\|\hat{q}_{t}-q_{t}\|_{2}^{2}}_{\text{Value}}-\underbrace{Q_{\theta}(\mathbf{z}_{t},\hat{\mathbf{a}}_{t})}_{\text{Action}}\right)\right\rfloor(1) L(θ)=E(s,a,r,s)0:hB t=0h Latent dynamics ztsg(hϕ(st))22+Reward r^trt22+Value q^tqt22Action Qθ(zt,a^t) (1)
在Offline 设定下,分布偏移将导致Q估计以及隐模型以及价值函数的错误估计。启发于IQL,通过只对in-sample的动作尽心TD-backups来估计,缓解过估计问题。因此对模型价值函数利用离线数据进行训练时,此时Q函数采用IQL中的期望回归方法优化
L V ( θ ) = ∣ τ − 1 { Q ϕ ( z t , a t ) − V θ ( z t ) < 0 } ∣ ( Q ϕ ( z t , a t ) − V θ ( z t ) ) 2 , \mathcal{L}_{V}(\theta)=|\tau-1_{\{Q_{\phi}(\mathbf{z}_{t},\mathbf{a}_{t})-V_{\theta}(\mathbf{z}_{t})<0\}}|(Q_{\phi}(\mathbf{z}_{t},\mathbf{a}_{t})-V_{\theta}(\mathbf{z}_{t}))^{2}, LV(θ)=τ1{Qϕ(zt,at)Vθ(zt)<0}(Qϕ(zt,at)Vθ(zt))2,
同时对planning policy采用AWR的更新,即 exp ⁡ ( β ( Q ϕ ( z t , a t ) − V θ ( z t ^ ) ) ) log ⁡ π θ ( a t ∣ z t ) \exp(\beta(Q_\phi(\mathbf{z}_t,\mathbf{a}_t)-V_\theta(\hat{\mathbf{z}_t})))\log\pi_\theta(\mathbf{a}_t|\mathbf{z}_t) exp(β(Qϕ(zt,at)Vθ(zt^)))logπθ(atzt)

Uncertainty Estimation as Test-Time Behavior Regularizatio

离线训练的模型依旧存在OOD数据过估计,需要在线微调。文章提出基于不确定性估计的planning实现在线交互过程中的动作选择。planning一定程度缓解基于约束的离线算法导致的在现阶段探索能力不足。进而导致算法样本效率低的问题。

首先构建集成Q函数模型,计算基于标准差的不确信度,作为惩罚项对奖励进行调整,实现保守的在线planning。
R ^ = γ h ( Q θ ( z h , a h ) − λ u h ) + ∑ t = 0 h − 1 γ t ( R θ ( z t , a t ) − λ u t ) , u t = s t d ( { Q θ ( i ) ( z t , a t ) } i = 1 N ) \hat{\mathcal{R}}=\gamma^{h}\left(Q_{\theta}(\mathbf{z}_{h},\mathbf{a}_{h})-\lambda u_{h}\right)+\sum_{t=0}^{h-1}\gamma^{t}\left(R_{\theta}(\mathbf{z}_{t},\mathbf{a}_{t})-\lambda u_{t}\right),\quad u_{t}=\mathrm{std}\left(\{Q_{\theta}^{(i)}(\mathbf{z}_{t},\mathbf{a}_{t})\}_{i=1}^{N}\right) R^=γh(Qθ(zh,ah)λuh)+t=0h1γt(Rθ(zt,at)λut),ut=std({Qθ(i)(zt,at)}i=1N)

除此外,还维护两个buffer分别存储离线数据于在线数据,通过balance sampling数据训练模型、策略以及价值函数。

结果

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Amazon Q Developer 实战:从新代码生成到遗留代码优化(下)

简述 本文是使用 Amazon Q Developer 探索如何在 Visual Studio Code 集成编程环境&#xff08;IDE&#xff09;&#xff0c;从新代码生成到遗留代码优化的续集。在上一篇博客《Amazon Q Developer 实战&#xff1a;从新代码生成到遗留代码优化&#xff08;上&#xff09;》中…

java基础篇(1)

JDK是什么?有哪些内容组成?JDK是Java开发工具包 JVM虚拟机: Java程序运行的地方 核心类库: Java已经写好的东西&#xff0c;我们可以直接用开发工具: javac、java、jdb、jhat.. JRE是什么?有哪些内容组成? JRE是Java运行环境 JVM、核心类库、运行工具 JDK&#xff0c;JRE&…

Linux网络编程:传输层协议|UDP|TCP

知识引入&#xff1a; 端口号&#xff1a; 当应用层获得一个传输过来的报文时&#xff0c;这时数据包需要知道&#xff0c;自己应该送往哪一个应用层的服务&#xff0c;这时就引入了“端口号”&#xff0c;通过区分同一台主机不同应用程序的端口号&#xff0c;来保证数据传输…

Java1.8基于BS版 vue+ uniapp+ springboot专业团队自主研发的一套上门家政APP系统成品源码,支持商用(后台端介绍)

Java1.8基于BS版 vue uniapp springboot专业团队自主研发的一套上门家政APP系统成品源码&#xff0c;支持商用&#xff08;后台端介绍&#xff09; 家政服务后台端 家政服务后台端是一个专为家政服务行业设计的管理系统&#xff0c;用于处理业务运营、用户端管理、师傅端调度、…

Spring boot 随笔 1 DatasourceInitializer

0. 为啥感觉升级了 win11 之后&#xff0c;电脑像是刚买回来的&#xff0c;很快 这篇加餐完全是一个意外&#xff1a;时隔两年半&#xff0c;再看 Springboot-quartz-starter 集成实现的时候&#xff0c;不知道为啥我的h2 在应用启动的时候&#xff0c;不能自动创建quartz相关…

FL Studio怎么给钢琴加延音 FL Studio怎么用钢琴做伴奏

在使用钢琴音色进行音乐创作的时候&#xff0c;可以对钢琴进行延音处理&#xff0c;这样处理的音色给人的感觉会更加的饱满丰富&#xff0c;同时&#xff0c;给钢琴加了延音之后&#xff0c;钢琴的声音时值也会相应的变长&#xff0c;听起来更加的柔和。今天就和大家讲一讲&…

STM32使用HAL库UART接收不定长数据-1

使用STM32的HAL库实现UART串口不定长数据的接收 使用STM32的UART接收数据的时候&#xff0c;经常会遇到接收长度不固定的数据&#xff0c;比如一帧数据可能是10个字节&#xff0c;也可能是12个字节。这种数据称为不定长数据。 现有的很多通信协议是不定长的&#xff0c;比如mo…

vue3_组件间通信方式

目录 一、父子通信 1.父传子&#xff08; defineProps&#xff09; 2.父传子&#xff08;useAttrs&#xff09; 3.子传父&#xff08;ref&#xff0c;defineExpose &#xff09; 4.子传父&#xff08;defineEmits&#xff09; 5.子传父&#xff08;v-model&#xff09; …

数据库 mysql 的彻底卸载

MySQL卸载步骤如下&#xff1a; &#xff08;1&#xff09;按 winr 快捷键&#xff0c;在弹出的窗口输入 services.msc&#xff0c;打开服务列表。 &#xff08;2&#xff09;在服务列表中&#xff0c; 找到 mysql 开头的所有服务&#xff0c; 右键停止&#xff0c;终止对应的…

【问题随记】tightvnc 连接后灰屏

问题描述 刚刚入手了官方发的 OrangePi AI Pro&#xff0c;想用 tight vnc 来连接开发板&#xff0c;就不用连接屏幕那么麻烦了。结果连接后&#xff0c;没能显示 OrangePi AI Pro 桌面。 问题解决 看一下现有的桌面环境。 apt list --installed | grep desktop从中可以看到…

游戏找不到d3dcompiler43.dll怎么办,分享5种有效的解决方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到某个文件。其中&#xff0c;找不到d3dcompiler43.dll是一个常见的问题。这个问题通常出现在运行某些游戏或应用程序时&#xff0c;由于缺少了d3dcompiler43.dll文件&#xff0c;导致程…

【PTA】7-3 拯救007(C++)代码实现 易错点反思

题目见下: 输入样例 14 20 25 -15 -25 28 8 49 29 15 -35 -2 5 28 27 -29 -8 -28 -20 -35 -25 -20 -13 29 -30 15 -35 40 12 12 //输入上述数据后输出“Yes” AC代码如下: #include<bits/stdc++.h> using namespace std; #define sz 100 typedef struct node{int …

基于javacv ffmpeg 使用原生ffmpeg命令

基于javacv ffmpeg 使用原生ffmpeg命令 1. ffmpeg2. ffprobe 相关阅读&#xff1a; javacv ffmpeg使用笔记 测试过程中&#xff0c;发现ffmpeg-6.0-1.5.9-linux-x86_64.jar 存在问题&#xff08;ffmpeg原生命令执行失败&#xff09;&#xff0c;降级到ffmpeg-5.1.2-1.5.8-linux…

Mixly 开启WIFI AP UDP收发数据

一、开发环境 软件&#xff1a;Mixly 2.0在线版 硬件&#xff1a;ESP32-C3&#xff08;立创实战派&#xff09; 固件&#xff1a;ESP32C3 Generic(UART) 测试工工具&#xff1a;NetAssist V5.0.1 二、实现功能 ESP32开启WIFI AP&#xff0c;打印接入点IP地址&#xff0c;允许…

直播预告|手把手教你玩转 Milvus Lite !

Milvus Lite&#xff08;https://milvus.io/docs/milvus_lite.md&#xff09;是一个轻量级向量数据库&#xff0c;支持本地运行&#xff0c;可用于搭建 Python 应用&#xff0c;由 Zilliz 基于全球最受欢迎的开源向量数据库 Milvus&#xff08;https://milvus.io/intro&#xf…

Pandas读取文本文件为多列

要使用Pandas将文本文件读取为多列数据&#xff0c;你可以使用pandas.read_csv()函数&#xff0c;并通过指定适当的分隔符来确保正确解析文件中的数据并将其分隔到多个列中。 假设你有一个以逗号分隔的文本文件&#xff08;CSV格式&#xff09;&#xff0c;每一行包含多个值&a…

二分查找算法介绍(边界值、循环条件、值的变化、二分查找的原理、异常处理)

一、二分查找法原理介绍 二分查找是经典的查找算法之一&#xff0c;其原理也非常简单。 对于已排序的数组&#xff08;假设是整型&#xff0c;如果非整型&#xff0c;如果有排序和大小比较的定义&#xff0c;也可以使用二分查找&#xff09;&#xff0c;我们每次判断中间值与目…

单位企业是如何禁用USB接口的(公司禁止USB接口的三大方法)

在当前信息化时代&#xff0c;单位企业对于数据安全的重视程度日益增加&#xff0c;尤其是防止通过USB接口导致的数据泄露和恶意软件传播。 为了构建一个更加安全的办公环境&#xff0c;许多企业采取措施禁用USB接口。 以下是公司禁止USB接口的三大常用方法&#xff1a; 1. 部…

AI绘画Stable Diffusion最新整合包,开源免费 AI 绘图工具神器,解压即用!

写在前面 众所周知现在的AI绘画可谓是热火朝天&#xff0c;前有国外的Midjourney&#xff0c;后有国内各大平台推出的 各种AI工具等&#xff0c;但是目前的这些线上的AI绘画都会有生成次数、时长等限制&#xff0c;有时候还得排队等待出图&#xff0c;所以免费开源的 Stable D…

大话设计模式解读01-简单工厂模式

本系列的文章&#xff0c;来介绍编程中的设计模式&#xff0c;介绍的内容主要为《大话设计模式》的读书笔记&#xff0c;并改用C语言来实现&#xff08;书中使用的是.NET中的C#&#xff09;,本篇来学习第一章&#xff0c;介绍的设计模式是——简单工厂模式。 1 面向对象编程 …