Task-Embedded Control Networks for Few-Shot Imitation Learning

发表时间:CoRL 2018 论文链接:https://readpaper.com/pdf-annotate/note?pdfId=4500197057754718210&noteId=2424798567891365120 作者单位:Imperial College London

Motivation:就像人类一样,机器人应该能够利用来自先前学习任务的知识,以便在新的和不熟悉的环境中快速学习新任务。尽管如此,大多数机器人学习方法都专注于从头开始学习单个任务,泛化概念有限,并且没有利用知识更有效地学习其他任务的方法。一种可能的解决方案是元学习(本文也是采用元学习的训练策略,划分了support setquery set),但许多相关方法在扩展到大量任务的能力方面受到限制,并在不忘记先前学习的任务的情况下学习进一步的任务。

解决方法:考虑到这一点,我们引入了任务嵌入式控制网络(包括两个部分,任务嵌入+控制,训练时候是一起优化的),该网络使用来自度量学习的思想来创建一个任务嵌入,该嵌入可以由机器人从一个或多个演示中学习新任务(每个s是一个或者多个任务的平均(类似类别原型))。

实现方式:演示的图像被嵌入到任务的紧凑表示中,可以组合起来创建一个句子sentence。然后将这句话扩展为从该任务的新配置的最新观察,然后以闭环方式通过控制网络发送。任务嵌入网络和控制网络都经过联合优化以产生丰富的embedding。

任务嵌入式控制网络 (TecNets) 以存在任务嵌入的想法为中心,其中相似(在视觉外观方面)的任务应该在空间上彼此接近,而不同的任务应该彼此远离(伪代码第九行损失函数的设计,有点对比学习的思想)。由一个任务嵌入网络和一个控制网络组成,该网络在给定单个或多个演示的情况下,联合训练输出动作以获得不可见任务的新变化。任务嵌入网络负责学习任务的紧凑表示,我们称之为sentence然后控制网络将这个(静态)句子以及当前对世界的观察来输出动作(也就是说s表示了由o到a的映射关系,通过(‖π(o, s) − a‖这个loss),而control network是想通过o和s再得到a(a = π(o, s)),s由test时候的observation得到。TecNets 对可以学习的任务数量没有严格的限制,并且在训练期间不容易忘记先前学习的任务(因为每个任务的s都是保存好的),或者之后。设置在测试期间仅期望演示者的观察结果(例如视觉),这使得它非常适合从人类演示中学习。

是如何不忘记先前学过的任务的? 通过把每一类任务映射成一个s(而每个s在训练的时候都见过,学到的policy π具有通过test时候的s和o映射到对应的a的能力).

我们可以在模拟中训练我们的元学习能力,然后在现实世界中部署,而不需要任何额外的训练:

Task-Embedded Control Networks:

  • A policy π for task T maps observations o to actions a, and we assume to have expert policies π∗ for multiple different tasks.(感觉应该是不同的任务共用一个 π,因为后面说的是universal policy π(o, s))

  • Corresponding example trajectories consist of a series of observations and actions: τ = [(o1, a1), . . . , (oT , aT }), and we define each task to be a set of such examples, T = {τ1, · · · , τK }.(每一个轨迹表示为 T = {τ1, · · · , τK }

  • TecNets aim to learn a universal policy π(o, s) that can be modulated by a sentence s, where s is a learned description of a task T(s 是 T = {τ1, · · · , τK }的平均,表示当前任务。也就是说,每一个轨迹被映射成s

  • The resulting universal policy π(o, s) should emulate the expert policy π∗ for task T.

Task Embedding:

A combined sentence sj ∈ RN is then computed for that task by taking the normalised mean of the example vectors:(s是同类t的平均),然后在通过上述loss去进行学习(联合优化,伪代码的9-11行)。

Control:

对于我们所有的实验,我们发现我们只需要取示例轨迹 τ 的第一帧和最后一帧来计算Task Embedding,因此丢弃中间的帧,从而产生 (width, height, 6) 的输入。(只用整个轨迹的第一帧和最后一帧)。

然后将来自任务嵌入网络的sentence平铺并逐通道连接到控制网络的输入(如图 2 所示),从而产生(宽度、高度、3+N)的输入图像,其中 N 表示sentence向量的长度。

也就是说s表示了由o到a的映射关系(‖π(o, s) − a‖),而control network是想通过o和s再得到a(a = π(o, s))

实验:two simulated experimental domains; a real-world robot arm

Simulated Reaching:Input to the control network consists of the (current) arm joint angles, end-effector position, and the 80 × 64 RGB image, whilst the taskembedding network receives only images (first and last).

Simulated Pushing:The control network input consists of a 125×125 RGB image and the robot joint angles, joint velocities, and end-effector pose, whilst the task-embedding network again receives images only.

Real-world:our TecNet is trained in simulation with a dataset of 1000 tasks with 12 examples per task.

结论:该方法的工作原理是通过嵌入网络学习任务的紧凑描述,该网络可用于条件控制网络来预测同一任务不同示例的动作。only visual information is available。与许多其他元学习方法不同,我们的方法能够在不忘记旧任务的情况下持续学习新任务,而不会失去其少样本能力。此外,我们证明了小样本能力可以在仿真中进行训练,然后部署在现实世界中。一旦部署,机器人就可以继续从单个或多个演示中学习新任务。

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

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

相关文章

JVM上篇:内存与垃圾回收篇-07-方法区

笔记来源:尚硅谷 JVM 全套教程,百万播放,全网巅峰(宋红康详解 java 虚拟机) 文章目录 7. 方法区7.1. 栈、堆、方法区的交互关系7.2. 方法区的理解7.2.1. 方法区在哪里?7.2.2. 方法区的基本理解7.2.3. HotSp…

fastapi 下怎么正确使用 async和await?

fastapi操作异步和同步请求 声明:异步“请求” 和 异步“方法调用” 的区别【关键点】 1、同步、异步方法 同步阻塞1.1 仅同步请求的并发测试 1.2 仅异步请求的并发测试 1.3 同步请求 和 异步请求 的并发 2、异步方法阻塞的解决方案2.1 使用线程池执行同步阻塞2.2 …

无人机之基本结构篇

无人机(Unmanned Aerial Vehicle, UAV)作为一种无人驾驶的飞行器,其基本结构涵盖了多个关键组件,这些组件共同协作以实现无人机的自主飞行和执行各种任务。以下是无人机基本结构的详细解析: 一、飞机平台系统 机身&am…

C++中 inline 的含义是什么?

在C中,inline是一个关键字,它向编译器发出一个请求(注意,这是一个请求而不是命令),请求编译器尝试将函数的调用替换为函数体本身的代码。这样做的目的是减少函数调用的开销,特别是对于那些体积小…

vue2表单校验:添加自定义el-form表单校验规则

前言 在vue2表单校验:el-form表单绑定数组并使用rules进行校验_vue2 rules校验-CSDN博客中,使用form原生的rules对表单中每个控件的必填、格式等做了校验。但是保存时,除了验证每一个控件的输入合乎要求外,还需要验证控件之间的数…

SpringBoot集成kafka-生产者发送消息

springboot集成kafka发送消息 1、kafkaTemplate.send()方法1.1、springboot集成kafka发送消息Message对象消息1.2、springboot集成kafka发送ProducerRecord对象消息1.3、springboot集成kafka发送指定分区消息 2、kafkaTemplate.sendDefault()方法3、kafkaTemplate.send(...)和k…

WIN/MAC 图像处理软件Adobe Photoshop PS2024软件下载安装

目录 一、软件概述 1.1 基本信息 1.2 主要功能 二、系统要求 2.1 Windows 系统要求 2.2 macOS 系统要求 三、下载 四、使用教程 4.1 基本界面介绍 4.2 常用工具使用 4.3 进阶操作 一、软件概述 1.1 基本信息 Adobe Photoshop(简称PS)是一款…

springboot嵌入式数据库实践-H2内嵌数据库(文件、内存)

本文章记录笔者的嵌入式数据库简单实现, 记录简要的配置过程。自用文章,仅作参考。 目录 本文章记录笔者的嵌入式数据库简单实现, 记录简要的配置过程。自用文章,仅作参考。 嵌入式数据库 -------------------------------具…

前端手写源码系列(三)——手写_deepClone深浅拷贝

目录 一、基本类型和引用类型二、深浅拷贝概念三、浅拷贝实现方式1、Object.assign()2、Array.prototype.concat() 修改新对象会改到原对象3、Array.prototype.slice() 四、深拷贝实现方式1、JSON.parse(JSON.stringify())2、手写递归方法3、函数库lodash 五、手写深拷贝 一、基…

Linux系统(centos7)增加一个开机自启任务

任务背景 已经上线了一个java的springboot项目,使用start.sh脚本进行启动,脚本内容为: #!/bin/bashnohup java -jar /opt/javaProject/PracticeSpring-0.0.1-SNAPSHOT.jar > /opt/javaProject/run.log 2>&1 & 现在&#xff…

16岁激活交学费银行卡需要本人实名电话卡,线下营业厅不给办,怎么办?

16岁激活交学费银行卡需要本人实名电话卡,线下营业厅不给办,怎么办? 话卡办理规定: 根据《民法典》和《电话用户真实身份信息登记规定》的相关要求,未满16周岁的用户通常需要在监护人的陪同下办理电话卡,并…

uniapp微信小程序 分享功能

uniapp https://zh.uniapp.dcloud.io/api/plugins/share.html#onshareappmessage export default {onShareAppMessage(res) {if (res.from button) {// 来自页面内分享按钮console.log(res.target)}return {title: 自定义分享标题,path: /pages/test/test?id123}} }需要再真机…

IntelliJ IDEA智能代码补全​和集成AI助手说明及操作

IntelliJ IDEA的智能代码补全和集成AI助手是开发者提高编码效率和代码质量的重要工具。以下是对这些功能的详细说明及操作指南: 一、智能代码补全 1. 功能说明 IntelliJ IDEA的智能代码补全功能利用先进的算法和上下文分析,为开发者提供准确、快速的代…

程序猿必备技能-Bat脚本

Batch 脚本(批处理脚本)是在 Windows 操作系统中使用的一种脚本语言,用于自动化执行一系列命令。Batch 脚本是由 .bat 或 .cmd 文件扩展名标识的文本文件,这些文件可以被 Windows 的命令行解释器(如 cmd.exe&#xff0…

衡石科技BI的API如何授权文档解析

授权说明​ 授权模式​ 使用凭证式(client credentials)授权模式。 授权模式流程说明​ 第一步,A 应用在命令行向 B 发出请求。 第二步,B 网站验证通过以后,直接返回令牌。 授权模式结构说明​ 接口说明​ 获取a…

shell之getopts

getopts 是一个常用于解析命令行选项的bash内建命令。它的基本语法是: getopts optstring name [arg...]optstring列出了对应的Shell Script可以识别的所有参数。比如: 如果 Shell Script可以识别-a,-f以及-s参数,则optstring就是…

【贪心 决策包容性 】757. 设置交集大小至少为2

本文涉及知识点 贪心 决策包容性 LeetCode757. 设置交集大小至少为2 给你一个二维整数数组 intervals ,其中 intervals[i] [starti, endi] 表示从 starti 到 endi 的所有整数,包括 starti 和 endi 。 包含集合 是一个名为 nums 的数组,并…

Quasar V2.16.4 新版发布,基于 Vue 3 的前端开发框架,一套代码发布到多端

Quasar 又发布新版本了,性能优秀的 Vue 组件开发框架,时隔3年再次推荐给大家。 早在2021年,我就写了一篇简单的文章向大家推荐了 Quasar 这款 Vue.js 开发框架,如今3年过去了,Quasar 发展得很好,更新频率依…

H5开发有哪些技巧?

随着现代社会的飞速发展,网页开发已经从传统的HTML、CSS、JavaScript往H5发展。H5也称为HTML5,可以理解为是HTML的升级版,具有更加优秀的性能、更加完善的功能和更加多样的体验。因其灵活性和跨平台特性,成为了各类移动应用和网页…

数学建模学习(128):使用Python结合CILOS与熵法的多准则决策权重确定

本文介绍方法为:结合CILOS与熵法的多准则决策权重,请理解为主,代码可以当作模板使用。 文章目录 1 引言2 问题背景2.1. 熵法 (Entropy Method)2.2 准则影响损失法 (CILOS Method)2.3 Python代码实现2.4 结果的决策指导意义2.4 结论参考文献1 引言 多准则决策(Multi-Criter…