模仿学习IQ-Learn:Inverse soft-Q Learning for Imitation

news2024/11/24 18:16:53

论文地址:IQ-Learn: Inverse soft-Q Learning for Imitation

项目地址:IQ-Learn: Inverse soft-Q Learning for Imitation

一、相关概念:

强化学习(RL):目标是学习一个最大化指定奖励函数的策略。

模仿学习(IL):它不需要仔细手工设计奖励函数,因为它完全依赖于专家行为数据,这使得它更容易扩展到能够收集专家行为(如视频游戏或驾驶)的实际任务。

Behavioral Cloning (BC):采用监督学习的方法将环境观察映射到专家行为。

缺点:BC 无法保证模型将推广到看不见的环境观测。当智能体最终处于与任何专家轨迹不同的情况时,BC 容易出现故障。例如,在上图中,如果汽车代理偏离专家轨迹并坠毁,则不知道该怎么办。为了避免犯错误,BC 需要有关环境中所有可能轨迹的专家数据,这使其成为一种数据效率严重低下的方法。

数据集聚合(DAGGER):被提出以交互方式收集更多的专家数据,以从错误中恢复。然而,这需要一个人参与其中,而这种与专家的交互式访问通常是不可行的。相反,我们想模仿人类用来修复错误的试错过程。在上面的例子中,如果汽车可以与环境交互学习“如果我这样做,那么我就会崩溃”,那么它可以自我纠正以避免这种行为。

逆强化学习(IRL):将模仿学习表述为从专家数据中学习奖励函数的问题,使得通过环境交互优化奖励的策略与专家匹配,与强化学习问题相反

二、基于IRL的模仿学习如何工作?

2016 年,Ho 和 Ermon 将逆强化学习作为两个 AI 模型之间的最小最大值博弈(minimax game),与 GAN生成模型相似。在这种形式中,智能体策略模型(generator)生成与环境交互的行为,以使用 RL 从奖励模型中获得最高奖励,而奖励模型(“鉴别器discriminator”)试图将智能体策略行为与专家行为区分开来。与 GAN 类似,鉴别器充当奖励模型,指示操作的专家程度。

因此,如果策略做了一些不像专家的事情,它就会从鉴别器那里得到低回报,并学会纠正这种行为。这个 minimax 游戏有一个独特的平衡解,称为鞍点解(由于优化的几何鞍形)。在均衡状态下,鉴别器学习奖励,使得基于该奖励的政策行为趋向专家行为。通过对策略和鉴别器的这种对抗性学习,可以使用很少的演示来达到专家的表现。受这种启发的技术被称为对抗性模仿(Adversarial Imitation)

设置对抗性模仿学习,智能体和鉴别器玩最小最大值游戏。鉴别器学习区分策略和专家行为,根据行为的专家程度给予奖励,而智能体使用鉴别器奖励来学习策略,以产生更像专家的行为。

不幸的是,由于对抗性模仿是基于 GAN 的,因此它受到同样的限制,例如模式崩溃(mode collapse)和训练不稳定,因此训练需要仔细的超参数调整和梯度惩罚等技巧。此外,强化学习的过程使训练变得复杂,因为不可能通过简单的梯度下降来训练生成器。GAN和RL的这种融合形成了一种非常脆弱的组合,这在像Atari这样基于图像的复杂环境中效果不佳。由于这些挑战,行为克隆仍然是最普遍的模仿方法。

三、Learning Q-functions for Imitation

这是一种非对抗性模仿方法,学习Q函数来恢复专家行为。

在 RL 中,Q 函数测量智能体从当前状态开始并选择特定操作可以获得的未来奖励的预期总和。通过使用神经网络学习 Q 函数,该神经网络将智能体的当前状态和潜在动作作为输入,可以预测智能体获得的总体预期未来奖励。由于预测的是总体奖励,而不仅仅是采取这一步的奖励,因此确定最优策略非常简单,只需在当前状态下依次采取预测 Q 函数值最高的行动即可。这种最优策略可以表示为 Q 函数在给定状态下所有可能行动的 argmax。因此,Q 函数是一个非常有用的量,它提供了环境中奖励函数和最优行为策略之间的联系

在 IL 中,由于以往方法存在上述问题,简单、稳定、数据高效的方法一直遥不可及。此外,对抗性方法的不稳定性也使得逆 RL 计算难以解决。对 IL 采用非对抗方法可能会解决该领域面临的许多难题。在 RL 中,Q 函数可以从奖励函数中确定最佳行为策略,它的显著成功是否值得 IL 借鉴?

四、Inverse Q-Learning (IQ-Learn)

逆 Q 学习(IQ-Learn)算法直接从专家行为数据中学习 Q 函数。我们的主要见解是,Q 函数不仅可以代表最优行为策略,而且还可以代表奖励函数,因为对于给定策略而言,从单步奖励到 Q 函数的映射是双射(既是单射又是满射)的。这就避免了逆向模仿公式中对政策和奖励函数进行困难的最小博弈,只需用一个变量(Q 函数)来表示这两个函数。将这一变量变化插入原始的逆向 RL 目标中,就会产生一个更简单的、只涉及单一 Q 函数的最小化问题;我们将其称为逆向 Q-learning 问题。我们的逆 Q-learning 问题与对抗 IL 的 minimax 游戏有着一一对应的关系,因为每个潜在的 Q 函数都可以映射到一对判别器和生成器网络。这意味着我们既保持了 IRL 的通用性和唯一均衡特性,又产生了一种可用于模仿的简单非对抗算法。

为了直观地理解我们的方法,下面是一种可视化方法--现有的 IRL 方法解决的是一个涉及策略(π) 和奖励 (r) 的最小博弈(minimax game)问题,通过利用 RL(如左图所示),在唯一的鞍点(saddle point solution)(π∗, r∗)上找到与专家行为相匹配的政策。IQ-Learn 提出了一个从奖励到 Q 函数的简单转换,从而通过策略 (π) 和 Q 函数 (Q) 来解决这个问题,找到相应的解 (π∗, Q∗)(如右图所示)。现在最重要的是,如果我们知道了 Q 函数,那么我们就明确知道了它的最优策略:这个最优策略就是简单地选择在给定状态下能使 Q 函数最大化的(softmax)行动。因此,IQ-Learn 不需要 RL 来寻找策略!

现在,我们不需要在所有可能的奖励和策略空间中进行优化,而只需要沿着该空间中与 Q 函数及其最优策略的选择(红线)相对应的流形进行优化。沿着流形 J∗ 的新目标是凹形的,且只取决于 Q 函数变量,因此可以使用简单的梯度下降方法找到唯一的最优点。

在学习过程中,对于离散的行动空间,IQ-Learn 会优化目标 J∗,在流形上采取与 Q 函数(绿线)相关的梯度步骤,最终收敛到全局最优鞍点。对于连续行动空间,计算精确梯度往往难以实现,因此 IQ-Learn 额外学习了策略网络。它会分别更新 Q 函数(绿线)和策略(蓝线),以保持接近流形。

这种方法非常简单,只需修改更新规则,就能利用专家示范和可选的环境互动来训练 Q 网络。IQ-Learn 更新是一种对比学习形式,其中专家行为的奖励较高,而政策行为的奖励较低;奖励的参数使用 Q 函数。在离散行动空间的现有 Q-learning 算法和连续行动空间的soft actor-critic (SAC)方法的基础上,只需不到 15 行的代码就能轻松实现。

五、IQ-Learn 优点

  • 它使用梯度下降法优化单一训练目标,并为 Q 函数学习单一模型。
  • 在数据非常稀少的情况下,甚至在单一专家示范的情况下,它也能表现出色。
  • 实施简单,可在两种环境下工作:可访问环境(在线 IL)或不可访问环境(离线 IL)。
  • 它可以扩展到复杂的基于图像的环境,并已证明理论上可以收敛到唯一的全局最优。
  • 最后,它还可用于恢复奖励,并为策略行为增加可解释性。

尽管这种方法非常简单,但我们惊讶地发现,在 OpenAI Gym、MujoCo 和 Atari 等流行的模仿学习基准测试中,它的表现大大超过了许多现有方法,包括那些更加复杂或针对特定领域的方法。在所有这些基准测试中,IQ-Learn 是唯一一种依靠少量专家示范(少于 10 次)就能成功达到专家级性能的方法。采用简单 LSTM 策略的 IQ-Learn 在复杂的开放世界环境 Minecraft 中也有出人意料的出色表现,它能够从人类玩家的视频中学习解决各种任务,如建造房屋、创建瀑布、笼养动物和寻找洞穴。

我们还尝试在只有部分专家数据可用的情况,或者专家的环境或目标发生了变化的情况下进行模仿,这更接近现实世界。我们能够证明,IQ-Learn 可以在没有专家行动的情况下进行模仿,只依赖专家的观察,从而实现从视频中学习。此外,IQ-Learn 对专家行为和目标在环境中的分布变化具有令人惊讶的鲁棒性,对新的未知环境具有很强的泛化能力,并能充当meta-learner

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

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

相关文章

java-Spring-(MyBatis框架-xml管理)

目录 前置条件 xml与注解比较 1.1 xml定义 1.2 和SQL注解比较 建包准备 插入数据 ​编辑 更新数据 删除数据 查询数据 查看单字段查询 🏷💣前置条件 创建一个spring boot 初始化的项目 🏷💣xml与注解比较 1.1 xml定义 …

WebGL开发框架比较

WebGL开发框架提供了一套丰富的工具和API,使得在Web浏览器中创建和操作3D图形变得更加容易。以下是一些流行的WebGL开发框架及其各自的优缺点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.Three.js 优点&#xff1a…

iText生成PDF文件

导语: 本文基于 iText7 :7.1.16 生成。 官方文档链接:iText 从版本入口可进入到下面页面 一、引言 常见生成PDF文件的有两种方法,一是先生成 word文档,然后将word转换成PDF文件;另一种则是直接生成PDF文件…

javaEE--多线程学习-进程调度

进程调度不明白?看这一篇文章就够了,逻辑衔接严密,文末附有关键面试题,一个海后的小故事让你瞬间明白这里面的弯弯绕绕! 目录 1.什么是进程? 2.进程控制块(PCB) 2.1 一个PCB就是一…

多数据源注解使用

<dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot-starter</artifactId><version>3.5.0</version> </dependency> 1.使用mybatis-plus 如何配置多数据源&#xff0c;application-loc…

《QT实用小工具·三十五》基于PathView,Qt/QML做的一个可以无限滚动的日历控件

1、概述 源码放在文章末尾 改项目实现了基于PathView&#xff0c;Qt/QML做的一个可以无限滚动的日历控件&#xff0c;下面是demo演示&#xff1a; 项目部分代码如下所示&#xff1a; import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4Bu…

Qt:学习笔记一

一、工程文件介绍 1.1 main.cpp #include "widget.h" #include <QApplication> // 包含一个应用程序类的头文件 //argc&#xff1a;命令行变量的数量&#xff1b;argv&#xff1a;命令行变量的数组 int main(int argc, char *argv[]) {//a应用程序对象&…

深度学习突破:LLaMA-MoE模型的高效训练策略

在人工智能领域&#xff0c;大模型&#xff08;LLM&#xff09;的崛起带来了前所未有的进步&#xff0c;但随之而来的是巨大的计算资源需求。为了解决这一问题&#xff0c;Mixture-of-Expert&#xff08;MoE&#xff09;模型架构应运而生&#xff0c;而LLaMA-MoE正是这一架构下…

屌爆了,国产智能体的爆发性增长:一周数据揭秘

前言 自从4.19接入国内智能体 探索国产智能体&#xff1a;从GPTs使用热潮到本土模型的崛起 截止到今天(4.26)&#xff0c;仅仅一周时间&#xff0c;数据太让我意外了&#xff0c;这篇文章就来总结一下&#xff01; 这一次&#xff0c;我为国产智能体崛起&#xff0c;代言!!! 惊…

释放Stable Diffusion 无限可能

最近在整理大语言模型的系列内容&#xff0c;Stable Diffusion 是我下一篇博客的主题。关注 Stable Diffusion&#xff0c;是因为它是目前最受欢迎和影响力最大的多模态生成模型之一。Stable Diffusion 于 2022 年 8 月发布&#xff0c;主要用于根据文本的描述产生详细图像&…

《欢乐钓鱼大师》攻略,钓友入坑必备!

欢迎来到《欢乐钓鱼大师》&#xff01;在这个游戏里&#xff0c;你可以尽情享受垂钓的乐趣&#xff0c;通过不断更换和升级高阶鱼竿&#xff0c;轻松地钓到各种稀有鱼类。因为许多玩家在挑战关卡时遇到了一些困难&#xff0c;所以今天我给大家带来了《欢乐钓鱼大师攻略指南》&a…

第 3 篇 : Netty离线消息处理(可跳过)

说明 仅是个人的不成熟想法, 未深入研究验证 1. 修改 NettyServerHandler类 package com.hahashou.netty.server.config;import com.alibaba.fastjson.JSON; import io.netty.channel.Channel; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHan…

Vue3中使用无缝滚动插件vue3-seamless-scroll

官网&#xff1a;https://www.npmjs.com/package/vue-seamless-scroll 1、实现效果文字描述&#xff1a; 表格中的列数据进行横向无缝滚动&#xff0c;某一列进行筛选的时候&#xff0c;重新请求后端的数据&#xff0c;进行刷新 2、安装&#xff1a;npm i vue3-seamless-scrol…

从Kafka的可靠性设计体验软件设计之美

目录 1. Kafka可靠性概述 2. 副本剖析 2.1 什么是副本 2.2 副本失效场景 2.3 数据丢失场景 2.4 解决数据丢失方案 3. 日志同步机制 4. 可靠性分析 1. Kafka可靠性概述 Kafka 中采用了多副本的机制&#xff0c;这是大多数分布式系统中惯用的手法&#xff0c;以此来实现水平扩…

异步日志方案spdlog

异步日志方案spdlog spdlog 是一款高效的 C 日志库&#xff0c;它以其极高的性能和零成本的抽象而著称。spdlog 支持异步和同步日志记录&#xff0c;提供多种日志级别&#xff0c;并允许用户将日志输出到控制台、文件或自定义的接收器。 多线程使用和同步、异步日志没有关系是…

10.接口自动化测试学习-Pytest框架(2)

1.mark标签 如果在每一个模块&#xff0c;每一个类&#xff0c;每一个方法和用例之前都加上mark标签&#xff0c;那么在pytest运行时就可以只运行带有该mark标签的模块、类、接口。 这样可以方便我们执行自动化时&#xff0c;自主选择执行全部用例、某个模块用例、某个流程用…

indexDB 大图缓存

背景 最近在项目中遇到了一个问题&#xff1a;由于大屏背景图加载速度过慢&#xff0c;导致页面黑屏时间过长&#xff0c;影响了用户的体验。从下图可以看出加载耗时将近一分钟 IndexDB 主要的想法就是利用indexDB去做缓存&#xff0c;优化加载速度&#xff1b;在这之前&am…

自动驾驶传感器篇: GNSSIMU组合导航

自动驾驶传感器篇&#xff1a; GNSS&IMU组合导航 1.GNSS1.1 GNSS 系统概述1.2 GNSS系统基本组成1. 空间部分&#xff08;Space Segment&#xff09;&#xff1a;2. 地面控制部分&#xff08;Ground Control Segment&#xff09;&#xff1a;3. 用户设备部分&#xff08;Use…

python爬虫-----深入了解 requests 库下篇(第二十六天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

电影交流|基于SprinBoot+vue的电影交流平台小程序系统(源码+数据库+文档)

电影交流平台目录 目录 基于SprinBootvue的电影交流平台小程序系统 一、前言 二、系统设计 三、系统功能设计 1用户信息管理 2 电影信息管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取…