论文速览【Offline RL】——【IQL】Offline reinforcement learning with implicit Q-Learning

2023-05-16

  • 标题:Offline reinforcement learning with implicit Q-Learning
  • 文章链接:Offline reinforcement learning with implicit Q-Learning
  • 代码:ikostrikov/implicit_q_learning
  • openreview:Offline Reinforcement Learning with Implicit Q-Learning
  • 发表:ICLR 2022
  • 领域:离线强化学习(offline/batch RL)—— IL-Based
  • 【本文为速览笔记,仅记录核心思想,具体细节请看原文】

  • 摘要:Offline RL 需要协调两个相互冲突的目标:学得策略要尽量优于收集 Offline 数据集的 behavior policy,同时还要最小化与 behavior policy 的偏差以避免由于 distribution shift 而导致的错误。这种 trade-off 是至关重要的,因为当前大多数 Offline RL 方法需要在训练过程中查询 unseen 的动作的价值来改进策略,为了减少估计误差,这些 ( s , a ) (s,a) (s,a) 应当约束在 behavior policy 诱导的分布附近,或者规范它们价值靠近 behavior policy 的价值。我们提出了一种新的 Offline RL 方法,该方法不需要评估数据集之外的动作,但仍能通过泛化使学习到的策略大大超过数据集中的最佳行为。我们的工作的主要见解是,不去评估最新策略在 unseen 动作下的 Q Q Q 价值,而是通过将 状态下的最优动作的Q价值 看作一个 随机性由动作决定的随机变量 来隐式地估计 policy improvement 步骤,然后将随机变量的估计期望上界作为此状态下最优动作的 Q Q Q 价值,这利用了函数近似器的泛化能力来估计给定状态下的最佳可用动作的价值,而无需直接查询这个 unseen 动作的 Q Q Q 价值。我们的算法在拟合这个上期望值函数和将其备份为一个 Q Q Q 函数之间交替,没有任何显式的策略。然后我们通过 advantage-weighted behavioral cloning 来提取策略,这也避免了查询 OOD 样本的操作。我们将我们的方法称为 implicit Q-learning (IQL),它易于实现,计算效率高,并且只需要额外训练一个具有非对称 L2 损失的 Critic。IQL 在 D4RL 数据集上表现出 SOTA 的性能,我们还演示了 IQL 在 Offline 初始化后使用 Online 交互实现了很强的 fine-turn 性能

文章目录

  • 1. Offline RL 背景
  • 2. 本文方法
    • 2.1 思想
    • 2.2 方法细节
  • 3. 实验

1. Offline RL 背景

  • Offline RL 是这样一种问题设定:Learner 可以获取由一批 episodes 或 transitions 构成的固定交互数据集,要求 Learner 直接利用它训练得到一个好的策略,而且禁止 Learner 和环境进行任何交互,示意图如下
    在这里插入图片描述
    关于 Offline RL 的详细介绍,请参考 Offline/Batch RL简介
  • Offline RL 是近年来很火的一个方向,下图显示了 2019 年以来该领域的重要工作
    在这里插入图片描述
    过去的许多 Offline RL 方法都涉及到 Q Q Q 价值的评估,这就涉及到 distribution shift / extrapolation error 问题,如果是迭代的 multi-step off-policy 评估,还会受到 Iterative error exploitation 问题影响,在 one-step 论文 中这些都有了详细分析。过去的方法从各种角度出发缓解这两个问题,可以如下分类
    在这里插入图片描述

2. 本文方法

2.1 思想

  • 在 Offline 数据集上进行 policy evaluation 时,Bellman 迭代中涉及的 OOD 的 a ′ a' a 会导致 distribution shift,过去 policy constrain 和 value constraint 类方法都无法完全回避此问题,one-step 类方法虽然可以回避,但失去了 multi-step DP 能力。本文通过 expectile regression 进行隐式的策略评估,在完全避免 OOD a ′ a' a 访问以避免 distribution shift 的同时,仍能执行 multi-step DP,从而学到更好的 Q ∗ Q^{*} Q 估计,最后用 AWR 方法(一种优势加权模仿学习)从 Q ∗ Q^* Q 估计中提取策略
  • 本文提出的 IQL 本质上属于 IL-Bsaed 类方法,它学习价值估计只是为了进行优势加权 BC

2.2 方法细节

  • 目标是只在数据集上所含的 ( s , a ) (s,a) (s,a)进行应用 Bellman optimal operator,从而回避 OOD 的 a ′ a' a (文章所谓的 “SARSA-like”)
    L ( θ ) = E ( s , a , s ′ ) ∼ D [ ( r ( s , a ) + γ max ⁡ a ′ ∈ A  s.t.  π β ( a ′ ∣ s ′ ) > 0 Q θ ^ ( s ′ , a ′ ) − Q θ ( s , a ) ) 2 ] (1) L(\theta)=\mathbb{E}_{\left(s, a, s^{\prime}\right) \sim \mathcal{D}}\left[\left(r(s, a)+\gamma \max _{\substack{a^{\prime} \in \mathcal{A} \\ \text { s.t. } \pi_{\beta}\left(a^{\prime} \mid s^{\prime}\right)>0}} Q_{\hat{\theta}}\left(s^{\prime}, a^{\prime}\right)-Q_{\theta}(s, a)\right)^{2}\right] \tag{1} L(θ)=E(s,a,s)D r(s,a)+γaA s.t. πβ(as)>0maxQθ^(s,a)Qθ(s,a) 2 (1) 其中 Q θ ^ Q_{\hat{\theta}} Qθ^ 是 target 网络, β \beta β 是 behavior policy

  • 作者如下使用 expectile regression(期望回归) 方式实现这个操作
    L ( θ ) = E ( s , a , s ′ , a ′ ) ∼ D [ L 2 τ ( r ( s , a ) + γ Q θ ^ ( s ′ , a ′ ) − Q θ ( s , a ) ) ] (2) L(\theta)=\mathbb{E}_{\left(s, a, s^{\prime}, a^{\prime}\right) \sim \mathcal{D}}\left[L_{2}^{\tau}\left(r(s, a)+\gamma Q_{\hat{\theta}}\left(s^{\prime}, a^{\prime}\right)-Q_{\theta}(s, a)\right)\right] \tag{2} L(θ)=E(s,a,s,a)D[L2τ(r(s,a)+γQθ^(s,a)Qθ(s,a))](2) 其中 L 2 τ ( u ) = ∣ τ − 1 ( u < 0 ) ∣ u 2 L_{2}^{\tau}(u)=|\tau-\mathbb{1}(u<0)| u^{2} L2τ(u)=τ1(u<0)u2 是一个非对称 L2 损失,如下所示
    在这里插入图片描述
    τ = 0.5 \tau=0.5 τ=0.5 L 2 0.5 L_{2}^{0.5} L20.5 退化为 MSE; τ \tau τ 越接近 1,模型就越倾向拟合那些 TD error 更大的 transition,从而使 Q Q Q 估计靠近数据集上的上界;当 τ → 1 \tau\to 1 τ1 时可认为得到了 Q ∗ Q^* Q

  • 直接使用 (2) 的问题在于引入了环境随机性 s ′ ∼ p ( ⋅ ∣ s , a ) s'\sim p(·|s,a) sp(s,a),一个大的 TD target 可能只是来自碰巧转入的 “好状态”,即使这个概率很小,也会被 expectile regression 找出来,导致 Q Q Q 价值高估。为此作者又学习了一个独立的 V V V 价值
    L V ( ψ ) = E ( s , a ) ∼ D [ L 2 τ ( Q θ ^ ( s , a ) − V ψ ( s ) ) ] (3) L_{V}(\psi)=\mathbb{E}_{(s, a) \sim \mathcal{D}}\left[L_{2}^{\tau}\left(Q_{\hat{\theta}}(s, a)-V_{\psi}(s)\right)\right] \tag{3} LV(ψ)=E(s,a)D[L2τ(Qθ^(s,a)Vψ(s))](3) 这里 V ψ ( s ) V_\psi(s) Vψ(s) 会近似 max ⁡ Q θ ^ ( s , a ) \max Q_{\hat{\theta}}(s,a) maxQθ^(s,a),然后使用如下 MSE loss 来消除 s ′ s' s 的随机性
    L Q ( θ ) = E ( s , a , s ′ ) ∼ D [ ( r ( s , a ) + γ V ψ ( s ′ ) − Q θ ( s , a ) ) 2 ] (4) L_{Q}(\theta)=\mathbb{E}_{\left(s, a, s^{\prime}\right) \sim \mathcal{D}}\left[\left(r(s, a)+\gamma V_{\psi}\left(s^{\prime}\right)-Q_{\theta}(s, a)\right)^{2}\right] \tag{4} LQ(θ)=E(s,a,s)D[(r(s,a)+γVψ(s)Qθ(s,a))2](4) 总的来看,就是使用 (3) (4) 实现 (2),达成 (1) 的思想,这里 (3) (4) 可以多步迭代计算实现 multi-step DP,且整个过程不需要访问 a ’ a’ a

  • 价值收敛得到 Q ∗ Q^* Q 后,直接用 AWR 方法,通过最大化下式来提取策略
    L π ( ϕ ) = E ( s , a ) ∼ D [ exp ⁡ ( β ( Q θ ^ ( s , a ) − V ψ ( s ) ) ) log ⁡ π ϕ ( a ∣ s ) ] L_{\pi}(\phi)=\mathbb{E}_{(s, a) \sim \mathcal{D}}\left[\exp \left(\beta\left(Q_{\hat{\theta}}(s, a)-V_{\psi}(s)\right)\right) \log \pi_{\phi}(a \mid s)\right] Lπ(ϕ)=E(s,a)D[exp(β(Qθ^(s,a)Vψ(s)))logπϕ(as)] 其中 β ∈ [ 0 , ∞ ) \beta\in[0,\infin) β[0,) 是一个逆温度系数,取值较小时类似 BC;取值较大时会试图做加权 BC 来恢复 max ⁡ Q θ ^ ( s , a ) \max Q_{\hat{\theta}}(s,a) maxQθ^(s,a)注意这个过程也无需访问 a ′ a' a

  • 将上诉过程总结为如下伪代码
    在这里插入图片描述
    注意这里 “策略评估” 和 “策略提取” 是互相解耦的,提取出的策略不会以任何方式影响值函数,因此二者可以同时执行,也可在评估完成后执行,个解耦思路也出现了后来的 POR 方法中。另外,本文使用 Clipped Double Q-Learning 来缓解 Q 价值的高估

3. 实验

  • 在 MuJoCo 的连续控制任务和 Ant Maze 任务上测试结果如下
    在这里插入图片描述
    1. 这里选择的 MuJoCo 数据中都有相当一部分接近最优的轨迹,奖励比较密集,适合于 one-step 和简单 BC,这时 IQL 能取得相媲美的结果;
    2. Antmaze、kitchen 和 adroit 环境中轨迹质量都比较差,需要 agent 具有较强的次优轨迹拼接能力,这时 IQL 通过执行 multi-step DP 能得到更好的 Q ∗ Q^* Q 估计,次优轨迹拼接能力更强,远超过 DT、one-step 等方法;由于更好地缓解了 distribution shift,超过 TD3+BC 和 CQL 等约束类方法
    3. IQL 在训练时间上也有优势
  • 作者在 AntMaze 环境上检查了 expectile regression 中超参数 τ \tau τ 的影响,如下
    在这里插入图片描述
    我个人感觉这里 τ \tau τ 如果设置过大很可能出现价值高估,另外针对 expectile regression 学得 Q ∗ Q^* Q 的证明请参考原文
  • 由于 IQL 初始 offline 训练性能良好,且其使用的 weighted BC 式策略提取器在 online fine-turn 过程中通常由于其他类型的策略约束,IQL 也具有很好的 online fine-turn 能力,如下
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文速览【Offline RL】——【IQL】Offline reinforcement learning with implicit Q-Learning 的相关文章

  • X-Pack的machine learning

    如何使用X Pack的machine learning 最近在使用X Pack中的机器学习功能 xff0c 主要的就是利用非监督的时间序列模型 xff0c 用来检测流量的变化 xff0c 关于X Pack这块的文章好像可以参考的比较少 xf
  • Joint state with name: “base_l_wheel_joint” was received but not found in URDF

    ROS melodic下运行出现 WARN xff1a Joint state with name base l wheel joint was received but not found in URDF 原因是在robot描述文件URD
  • Ubuntu20.04下编译安装ORBSLAM2_with_pointcloud_map总结

    与此物大战六个小时 xff0c 终于解决所有问题 xff0c 写此短文记录一下 一 在github上下载源码后 xff0c 解压缩 xff0c 如下 进行g2o with orbslam2的编译 1 报错信息 xff1a ORBSLAM2
  • 验证手机号 身份证号 邮箱号

    public class ValidateUtil 验证手机号格式是否正确 param phone return public static boolean isMobilePhone String phone if StringUtils
  • Oracle统计多张表的Count数的和

    需求描述 Table1 job1 job1 id name status other column 1 file1 process 2 file2 failed 3 file3 success Table2 job2 job2 id nam
  • Eclipse 在没有互联网连接的 PC 上间歇性挂起

    我从 Eclipse 3 2 开始就遇到过这个问题 但在较新的版本中 这个问题出现得更频繁 每当我访问某些配置菜单项或 Eclipse 解析包含指向某个 Internet URL 的 xmlns 变量的 XML 文件时 Eclipse ID
  • 在 Linux 中离线安装 r 中的 stringi 软件包时出现 icudt 错误

    我已经在我的系统 RedHat Linux 7 中下载了 stringi 1 4 3 tar gz 软件包 但是当我尝试离线安装时 出现如下错误 执行停止 icudt 下载失败 停止 错误 包 stringi 配置失败 这是一个新环境Red
  • Node 提供的 ejs 文件可以使用离线引导吗?

    我是节点和全栈开发的新手 希望我正确地提出这个问题 而不是粗心或冒犯您的特定理解水平 我的开发环境已连接互联网 但生产环境不会连接 我想将 bootstrap css 与节点一起使用 Apache httpd 不是生产环境中的一个选项 本地
  • 获取本地文件的内容而不上传[重复]

    这个问题在这里已经有答案了 我正在编写一个离线网络应用程序 允许用户选择本地文件 修改它 然后也在本地保存副本 是否可以在没有任何服务器的情况下 我可以上传文件并返回其base64 但它不是离线的 应用程序只需要在 Google Chrom
  • iPhone 的缓存/离线地图?

    我想在我的应用程序中使用地图 以便尽可能减少流量 完美的解决方案是缓存地图切片 我知道谷歌地图 许可证 是不可能的 我查看了 OpenStreetMaps 这似乎是一个很好的解决方案 下一个 SDK 我发现的唯一一个来自 CloudMade
  • HTML5仅在离线时使用缓存

    我开始使用HTML5缓存查看包含一个 css 文件和两个 js 文件的简单 HTML 页面 我的问题是 无论我是否离线 都会使用缓存 但是我只是想在离线时使用缓存 有谁知道如何解决这个问题 索引 html文件清单 应用程序缓存清单文件 CA
  • 创建一个独立的离线 HTML5 应用程序以及嵌入其资源的最佳方法

    我正在尝试创建一个 HTML5 文档 该文档可以通过电子邮件发送给人们 其中包含运行它所需的所有标记 js css 和图像 我知道描述离线过程的文章 例如http diveintohtml5 info offline html http d
  • 如何在离线模式下使用 SBT 进行构建

    相当于什么mvn o在SBT 当我检查我的 ivy 存储库时 我可以看到依赖项 jarcache groupId artifactId jars 当我尝试在没有互联网连接的情况下构建它时 它仍然会这样做Resolving 事情并显示未解决的
  • 阻止离线 iPhone Web 应用程序在 Safari 中打开链接

    我正在开发一个可以在离线模式下与移动 Safari 配合使用的网站 我可以将其添加到主屏幕上并从那里加载 但是 一旦从主屏幕打开 单击某些链接将跳出应用程序并在移动 safari 中打开 尽管我在所有链接单击上阻止了 Default 该应用
  • 将数据保存在离线应用程序 React Native 中

    我想使用 React Native 为儿童离线创建一个字母表应用程序 我想问你存储每个字母数据的最佳方式是什么 例如 字母 ID 字母 NAME 字母 IMG SRC 等 我考虑过使用JSON 但我们也决定向您询问一下 也许有更好的方法 如
  • 实现 AVAssetDownloadURLSession 下载 HLS 流时出错

    我正在尝试为流应用程序实现离线模式 目标是能够在用户的设备上下载 HLS 流 以便即使用户离线时也可以观看流 我最近偶然发现本教程 https developer apple com library content documentatio
  • 使用 sqlite 离线存储数据的 Web 表单应用程序

    我有一个 asp net Web 表单应用程序 它在远程服务器上使用 sql server 2005 所有控件均使用 linq to sql 绑定 我正在尝试提供完整的离线功能 所以我想知道是否可以像 sql server db 一样创建一
  • Osmdroid:如何从我自己的位图(图块)创建和加载地图?

    我开始使用 Osmdroid 我想使用这项技术来显示有关 F1 赛道的地图 我有一张大图片 我可以将它切割成更小的图块 我可以修改osmdroid库来上传这些图片吗 我想将这些位图 图块 保存在我的资产文件夹中 我非常不知道如何做到这一点
  • 在没有互联网连接的情况下使用 cabal 安装 Haskell 软件包

    我有一台根本无法访问互联网的机器 我使用通过随身碟从另一台机器获得的安装程序在其上安装了 Haskell 平台 现在我想安装这个包repa在我的家用机器上 无法访问互联网 我该怎么做呢 我的家用计算机运行的是 Linux Debian 我的
  • 为什么缓存清单在桌面上按预期工作时可能无法让移动 Safari 缓存站点?

    我正在本地玩一个简单的网络应用程序 但不太明白为什么它在 iPhone 上没有正确缓存 我正在服务一个 manifest文件具有正确的 MIME 类型 并且当我在桌面 Safari Chrome 和 Firefox 上打开或关闭本地服务器时

随机推荐