当前位置: 首页 > news >正文

Predictable MDP Abstraction for Unsupervised Model-Based RL

ICML 2023
paper
code

Intro

文章提出了一种用于无监督基于模型强化学的方法,称为可预测MDP抽象(Predictable MDP Abstraction, PMA)。在MBRL中,一个关键部分是能够准确建模环境动力学动态模型。然而,这个预测模型误差可能会降低策略性能,并且在复杂的马尔可夫决策过程中(MDPs),准确的预测可能非常困难。

为了缓解这个问题,作者提出了PMA,它不是在原始MDP上训练预测模型,而是在一个变换后的MDP上训练模型,这个变换后的MDP通过学习动作空间中可预测和易于建模的动作,同时尽可能覆盖原始的状态-动作空间。这样,模型学习变得更容易和更准确,从而允许鲁棒、稳定的基于模型的规划或基于模型的RL。这种变换是在无监督的方式下学习的,在用户指定任何任务之前。然后,可以零样本(zero-shot)解决下游任务,而无需额外的环境交互。作者从理论上分析了PMA,并通过一系列基准环境证明了PMA相对于以前的无监督MBRL方法有显著的改进。

Method

PMA 所构建的MDP过程结构如下
在这里插入图片描述

而对于可预测的MDP抽象需要满足三个需求

  1. 基于隐变量的状态转移函数 p ( s ′ ∣ s , z ) p(s'|s,z) p(ss,z)得到的状态能够尽可能被预测到, 即最小化预测不确定性
  2. 潜在动作的结果应该彼此尽可能不同(即最大化动作多样性以保持原始 MDP 的大部分表现力)
  3. 潜在 MDP 中的转换应尽可能覆盖原始转换(即最小化认知不确定性来鼓励探索)

基于上述需求构建如下信息论目标
max ⁡ π z , π e I ( S ′ ; ( Z , Θ ) ∣ D ) , \max_{\pi_z,\pi_e}I(S';(Z,\Theta)|\mathcal{D}), πz,πemaxI(S;(Z,Θ)D),
其中D表示训练数据集以及Z, Θ \Theta Θ表示潜在预测模型 p ^ z ( s ′ ∣ s , z ; θ ) \hat{p}_z(s^{\prime}|s,z;\theta) p^z(ss,z;θ)参数。该式子进一步分解为:
在这里插入图片描述
这三项就分别满足上述的三个需求。特别的是第三项中,在已知状态转移后最小化参数的不确定性。

原始的互信息估计计算困难,因此对等式(4)第一项做如下近似估计
在这里插入图片描述
而对于information gain部分则是采用对ensemble model的不确定性估计近似
在这里插入图片描述
上述两个部分相加得到额外的奖励函数。结合基于模型的算法训练策略以及潜在动力学模型。而在下游任务进行zero-shot的实验,因为出现OOD的问题,这里加入了集成模型间最大分歧作为惩罚项
u ( s , z ) = − λ ⋅ max ⁡ i , j ∈ [ E ] ∥ μ ( s , z ; θ i ) − μ ( s , z ; θ j ) ∥ 2 . ( 11 ) u(s,z)=-\lambda\cdot\max_{i,j\in[E]}\|\mu(s,z;\theta_i)-\mu(s,z;\theta_j)\|^2.(11) u(s,z)=λi,j[E]maxμ(s,z;θi)μ(s,z;θj)2.(11)

伪代码

在这里插入图片描述

结果

在这里插入图片描述

相关文章:

  • Java面试题集
  • day16|二叉树的属性
  • Android App启动流程和源码详解
  • Flutter 中的 LicensePage 小部件:全面指南
  • 基于transformers框架实践Bert系列2--命名实体识别
  • 【因果推断从入门到精通二】随机实验3
  • 求第 N 个泰波那契数 | 动态规划
  • 教你用U-Mail搭建一个企业邮箱系统
  • ArcGIS Maps SDK for JS:使用queryFeatures方法查询 FeatureLayer 中符合条件的要素
  • 深入浅出:探索堆内存与分配器的奥秘
  • Vue.js Promise 与 async/await 的比较
  • MyBatisPlus使用流程
  • AI--向量的存储和检索
  • Java开发大厂面试第20讲:什么是分布式锁?Redi 怎样实现的分布式锁?
  • 如何为ChatGPT编写有效的提示词:软件开发者的指南
  • FineReport中如何实现自动滚屏效果
  • iOS小技巧之UIImagePickerController实现头像选择
  • java正则表式的使用
  • js中forEach回调同异步问题
  • springboot_database项目介绍
  • Wamp集成环境 添加PHP的新版本
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 一、python与pycharm的安装
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 原生 js 实现移动端 Touch 滑动反弹
  • C# - 为值类型重定义相等性
  • #pragma multi_compile #pragma shader_feature
  • $forceUpdate()函数
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (C++17) optional的使用
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (九)c52学习之旅-定时器
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)Oracle存储过程编写经验和优化措施
  • (转)setTimeout 和 setInterval 的区别
  • (转)母版页和相对路径
  • (转)详解PHP处理密码的几种方式
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .Net Web窗口页属性
  • .NET 药厂业务系统 CPU爆高分析
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • @Builder用法
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [Avalon] Avalon中的Conditional Formatting.
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [codevs 1296] 营业额统计
  • [HTML API]HTMLCollection
  • [Java] 什么是IoC?什么是DI?它们的区别是什么?
  • [Jquery] 实现温度计动画效果