隐性行为克隆——机器人的复杂行为模仿学习的新表述

介绍

论文地址:https://arxiv.org/pdf/2109.00137.pdf
源码地址:https://github.com/opendilab/DI-engine.git

近年来,人们对机器人学习进行了大量研究,并取得了许多成果。其中,模仿学习法尤其受到关注。这是一种从人类等专家从实际机器人操作中获得的数据中学习策略的方法。模仿学习的优点包括:它不需要设计奖励函数,而且可以使用直接操作机器人的数据,无需考虑建模误差,而建模误差可能是模拟现实中的一个问题。由于这些优点,已经证实经过良好调整的基于模仿学习的措施可以在现实世界中取得成功,目前正在对其进行积极研究。

请观看这段视频,作者在视频中实际解释了这项研究的内容,以便更好地理解。

现有研究和问题

明确的政策

模仿学习中常用的一种方法叫做 “显式策略”。这是一种将根据观察结果生成机器人行为的策略建模为连续函数的方法,具体表示如下。
_θ_的获得是为了最小化人类给出的轨迹与策略轨迹之间的误差。

然而,众所周知,这一明确政策难以应对以下两个挑战

不连续性

这指的是包含离散情况(如动作序列)的任务的特点。下图显示的任务是将一个蓝色方块插入一个小盒子中,但要实现这一点,需要离散地切换操作顺序,即从左到右推一次,然后从后面推到盒子一侧。然而,这无法用连续建模的 "显式策略 "来表示。

多种模式

这是指实现一个目标有多种方法。在下图中,任务是将蓝色和黄色的积木分开并放入两个盒子中,但为了实现目标,需要移动的积木既可以来自蓝色,也可以来自黄色,这就使得任务具有了多模式性。这就给处理这种多模式任务带来了困难。

建议方法

为了应对现有研究的挑战,本文以另一种方式重新表述了模仿学习,这就是下文中的 “隐性政策”。

隐性政策

具体来说,它引入了基于能量的模型(EBM)。与前一个系统测量与目标轨迹的接近程度不同,"显式策略 "系统对观测和行动的 EBM 学习如下:
在 EBM 中,在给定状态下选择某种行动的概率可表示为可以表示为其中,z(x,θ) 为归一化常数。

然而,由于_很难计算所有y_的_z,因此_采用了_如下的抽样近似_方法:损失函数由该概率的负对数似然来计算。损失函数也是用这个概率的负对数似然来计算的,学习和推理都是通过这些来进行的。

特殊性

现在,我们来回顾一下上述表述所获得的特性。首先,以下结果表明,离散性问题得到了解决。问题集是将一个不连续的函数正确地表示为教师数据,而显式策略不可避免地会在两者之间完成,而隐式策略能够以不连续的形式表示。
下图显示了学习函数的问题设置,O 代表样本。在这个问题中,存在多值和多模态函数,以往的方法很难对其进行近似,但隐式策略将数值集中在样本附近,表明它比显式策略更好地表示了这一问题。

试验

隐式策略用于执行实际的机器人控制任务。观测内容包括图像输入、机器人关节角度、角速度和位置姿态,而关节角度的位置控制指令和速度控制指令则被设置为动作。
您可以在这里观看实验结果视频。

模拟实验

利用各种模拟环境和任务,与传统方法进行了比较。基本上,在几乎所有任务中,该方法的性能都明显优于传统方法。

所有这些任务都涉及离散性和多模态性,结果似乎证实了隐式政策在处理这些特征方面的优势。

野外实验

机械手用于执行多项任务,在实际机器上移动积木块。首先,如左图所示,将红色和绿色积木块放入任一目标的任务,我们的方法取得了约 90% 的成功率,而传统方法只有约 55% 的成功率。这项任务具有高度的多模态性,我们已经证实,我们的方法能够应对隐式规则中固有的多模态性。接下来,在插入需要调整 1 毫米的图块(如图像中央的图块)的任务中,需要离散地切换动作序列,如图所示。在这项任务中,系统的 "隐含策略 "特性也大大优于传统方法,成功率约为 80%。最后,我们还尝试了将大量蓝色和黄色图块分离并放置到目标中的任务,如右图所示。即使是这种离散任务和多模态任务的复杂组合,成功率也达到了约 50%,这证明系统能够将学习到的行为结合起来,并产生新的行为。此外,机器人还能对人类的干预(如移动木块)立即做出反应,并将其送回目标位置,这证明所获得的策略非常稳健。

总结

在本文中,我们重点讨论了模仿学习的传统方法(显式策略)无法处理的离散性和多模态问题,并提出了一种可以处理这些问题的新方法(隐式策略)。在模拟和真实机器上的实验表明,它的性能明显优于传统方法,而且在真实机器上非常稳健。

需要改进的一个方面是,与之前的 "显式政策 "相比,计算成本有所增加,因此如果能进一步降低计算成本,就有可能完成更多的动态任务。

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

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

相关文章

无线通信 | 发射系统架构:两次变频发射机和直接变频发射机

微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 本节目录 一、发射系统架构 1、两次变频发射机 2、直接变频发射机…

微信小程序 vant-weapp的 SwipeCell 滑动单元格 van-swipe-cell 滑动单元格不显示 和 样式问题 滑动后删除样式不显示

在微信小程序开发过程中 遇到个坑 此处引用 swipeCell 组件 刚开始是组件不显示 然后又遇到样式不生效 首先排除问题 是否在.json文件中引入了组件 {"usingComponents": {"van-swipe-cell": "vant/weapp/swipe-cell/index","van-cell-gro…

图新地球-如何快速绘制各种形状的箭头(一分钟小视频演示)

0.序 随着近几年测绘成果的完善,很多检察院、规划院、自然资源局等政府与事业单位,日常的应用也都不在仅仅局限于原来的卫星影像底图了,很多院都应用上了无人机航测高分辨率影像以及倾斜模型。 可能经常需要再道路中央标注汽车行驶方向、掉头…

AQS源码解析(ReentrantLock)

什么是AQS:Juc中的大多数同步器都是围绕着一些相同的基础行为,比如等待队列,条件队列,共享,独占获取变量这些行为,抽象出来就是基于AQS(AbstractQueuedSynchronizer)实现的。所以可以把AQS看成这…

Iterator 与 ListIterator:Java 集合框架中的遍历器比较

Iterator 与 ListIterator:Java 集合框架中的遍历器比较 1、Iterator1.1 特点 2、ListIterator2.1 特点 3、Iterator 和 ListIterator 的区别4、示例4.1 使用 Iterator 遍历 Set4.2 使用 ListIterator 遍历 List 并修改 5、总结 💖The Begin&#x1f49…

智慧农业新纪元:解锁新质生产力,加速产业数字化转型

粮食安全乃国家之根本,“浙江作为农业强省、粮食生产重要省份,在维护国家粮食安全大局中肩负着重大使命。浙江粮食产业经济年总产值已突破4800亿元,稳居全国前列,然而,同样面临着规模大而不强、质量效益有待提升、数字…

全网超详细客户端连接Redis

使用官方Redis Insight(不支持中文) 下载地址 https://redis.io/insight/ RedisInsight - The Best Redis GUI 下载信息可随便填写 添加redis 点击链接

艺术与技术的交响曲:CSS绘图的艺术与实践

在前端开发的世界里,CSS(层叠样式表)作为网页布局和样式的基石,其功能早已超越了简单的颜色和间距设置。近年来,随着CSS3的普及,开发者们开始探索CSS在图形绘制方面的潜力,用纯粹的代码创造出令…

Kafka 高并发设计之数据压缩与批量消息处理

《Kafka 高性能架构设计 7 大秘诀》专栏第 6 章。 压缩,是一种用时间换空间的 trade-off 思想,用 CPU 的时间去换磁盘或者网络 I/O 传输量,用较小的 CPU 开销来换取更具性价比的磁盘占用和更少的网络 I/O 传输。 Kafka 是一个高吞吐量、可扩展…

【PostgreSQL】PostgreSQL简史

博主介绍:✌全网粉丝20W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

【教学类-67-04】20240718毛毛虫ABC排序

背景需求 【教学类-67-01】20240715毛毛虫AB排序-CSDN博客文章浏览阅读747次,点赞17次,收藏8次。【教学类-67-01】20240715毛毛虫AB排序https://blog.csdn.net/reasonsummer/article/details/140443310【教学类-67-02】20240716毛毛虫ABB排序-CSDN博客文…

Atcoder ABC351 A-E 题解

A: 打卡题 题目描述 一中队和二中队正在进行一场棒球比赛&#xff0c;一中队是第一棒。 目前&#xff0c;比赛已进行到第九局上半&#xff0c;第九局下半即将开始。 一中队在 第i局 (1 < i < 9) 上半场得到了 Ai 分&#xff0c;二中队在 第j局 (1 < j < 8) 下…

数据结构之跳表SkipList、ConcurrentSkipListMap

概述 SkipList&#xff0c;跳表&#xff0c;跳跃表&#xff0c;在LevelDB和Lucene中都广为使用。跳表被广泛地运用到各种缓存实现当中&#xff0c;跳跃表使用概率均衡技术而不是使用强制性均衡&#xff0c;因此对于插入和删除结点比传统上的平衡树算法更为简洁高效。 Skip lis…

2-37 基于matlab的IMU姿态解算

基于matlab的IMU姿态解算,姿态类型为四元数&#xff1b;角速度和线加速度的类型为三维向量。IMU全称是惯性导航系统&#xff0c;主要元件有陀螺仪、加速度计和磁力计。其中陀螺仪可以得到各个轴的加速度&#xff0c;而加速度计能得到x&#xff0c;y&#xff0c;z方向的加速度&a…

云计算数据中心(三)

目录 四、自动化管理&#xff08;一&#xff09;自动化管理的特征&#xff08;二&#xff09;自动化管理实现阶段&#xff08;三&#xff09;Facebook自动化管理 五、容灾备份&#xff08;一&#xff09;容灾系统的等级标准&#xff08;二&#xff09;容灾备份的关键技术&#…

NXP i.MX8系列平台开发讲解 - 3.19 Linux TTY子系统(二)

专栏文章目录传送门&#xff1a;返回专栏目录 Hi, 我是你们的老朋友&#xff0c;主要专注于嵌入式软件开发&#xff0c;有兴趣不要忘记点击关注【码思途远】 目录 1. Linux 串口驱动 1.1 Uart 驱动注册流程 1.2 uart 操作函数 1.3 line discipline 2. Linux tty应用层使用…

Windows安装部署MySQL8.0

1.版本及下载 1.版本介绍&#xff1a; Alpha 版&#xff1a;开发版&#xff0c;公司内部使用 Beta 版&#xff1a;完成开发后&#xff0c;用户体验版 RC 版&#xff1a;生产环境发布之前的一个小版本或称候选版 GA 版&#xff1a;正式发布版本&#xff08;咱们要用的&…

代码随想录算法训练营Day26 | 491.递增子序列 | 46.全排列 | 47.全排列 II | 332.重新安排行程 | 51.N皇后 | 37.解数独

今日任务 491.递增子序列 题目链接&#xff1a; https://leetcode.cn/problems/non-decreasing-subsequences/description/题目描述&#xff1a; Code class Solution { public:vector<vector<int>> findSubsequences(vector<int>& nums) {vector&l…

SSE(Server Sent Event)实战(2)- Spring MVC 实现

一、服务端实现 使用 RestController 注解创建一个控制器类&#xff08;Controller&#xff09; 创建一个方法来创建一个客户端连接&#xff0c;它返回一个 SseEmitter&#xff0c;处理 GET 请求并产生&#xff08;produces&#xff09;文本/事件流 (text/event-stream) 创建…

leetcode145. 二叉树的后序遍历,递归法+迭代法,全过程图解+步步解析,一点点教会你迭代法后序遍历

leetcode145. 二叉树的后序遍历&#xff0c;递归法迭代法 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[3,2,1] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#…