学界 | 斯坦福提出神经任务编程NTP:让机器人从层级任务中学习

选自arXiv

机器之心编译

参与:朱乾树、蒋思源

斯坦福视觉与学习实验室与加州大学提出神经任务编程(NTP),它可以将指定任务作为输入,并递归地将该任务分解成更精细的具体子任务而进行学习。

论文地址:https://arxiv.org/abs/1710.01813

摘要: 在本篇论文中,我们提出一个新的称为神经任务编程(Neural Task Programming/NTP)的机器人学习框架,它支持从演示和神经网络程序归纳中进行 few-shot 学习。NTP 以指定任务(例如,任务的视频演示)作为输入,并将这一任务递归地分解成更精细的具体子任务。这些特定子任务被馈送到分级神经网络程序(hierarchical neural program),其中底层程序是与环境交互的可调用子程序。我们通过三个机器人任务来检验我们的方法。NTP 通过显式分层结构和组合结构的序列任务实现了模型的强泛化能力。实验结果表明,NTP 学习可以通过不断增加的长度,可变拓扑(variable topologies)和多变的目标来应用于未知的任务。

复杂操作任务中的自主性,如目标分类、装配和整理,需要通过机器人与环境之间的长时间交互进行一系列的决策。在复杂的任务中进行规划,适应新任务目标和初始条件绝对是是机器人领域长期面临的挑战 [6,13]。

实验表明 NTP 囊括了三种任务结构的变化:

1)任务长度:因问题大小的增加而改变步数(例如,具有更多的传送对象);

2)任务拓扑:灵活的排列和子任务的组合达到相同的终极目标(例如,以不同的顺序操纵对象);

3)任务语义:不同的任务定义和完成条件(例如,将对象放入不同的容器)

图 1:(上)测试时,NTP 实例化一个条件任务策略(一个神经网络程序),通过解释示范任务来执行指定的任务。策略与环境通过机器人 API 相互作用。(下)我们通过模拟和真实的环境中的块堆叠(A,B),目标分类(C,D)和清理桌子(图 8)任务评估 NTP。

成果总结:

1)我们的主要贡献是提出一个新颖的建模框架:NTP,其可以实现层次化任务的元学习(meta-learning)。

2)我们在模拟和实际机器人实验中对单臂操作任务建模以评估 NTP,这些任务包括:块堆叠(Block Stacking),目标分类(Object Sorting)和清理桌子(Table Clean-up)。

3)实验表明,NTP 使知识传播和基于泛化的一次性演示适用于长度增加、拓扑和语义改变的新任务,而不受限于初始配置。

4)我们还表明 NTP 可以通过视觉输入(图像和视频)进行端到端的训练。

图 2: 神经任务编程(NTP)给定一个输入程序,一个指定任务,结合当前环境评测,NTP 模型预测子程序是否继续运行,以特定任务的顺序子程序作为输入,还是应该停止当前程序。

图 3:块堆叠任务中 NTP 的样本执行轨迹图。任务是按指定要求堆叠字母块(block_D 堆在 block_E 之上,block_B 堆在 block_D 之上,等等)。顶层程序 block_stacking 作为输入参与整个演示(红色窗口),并预测下一个运行的子程序是 pick_and_place,它应该是将橙色窗口标记为特定输入作为指定任务的一部分。底层 API 调用机器人移动并关闭/打开手指。当程序结束符(EOP)为 True,当前程序停止并返回其调用方程序。

环境配置

我们的实验评价的目的是为了回答以下问题:

(1)NTP 是否概括了变化的所有三个维度:长度、拓扑和语义,如图 4 所示。

(2)NTP 是否直接以图像作为输入而不必使用标注真值。

(3)NTP 是否适用于复杂多变的现实任务。我们用三个机器人操作任务评估了 NTP:目标分类、块堆叠、清理桌子。每个任务需要完成多个步骤,并且可以递归地分解为重复的子任务。

图 4:任务结构的变化包括改变完成条件(任务语义),可变子任务排列(任务拓扑)和更大的任务容量(任务长度)。我们评估 NTP 模型对这三个变体类型的泛化能力。

图 5:任务长度:对模拟目标分类的评估。y 轴代表进行 100 次评估的平均成功率和 x 表示未知任务实例中的目标数。NTP 适用于日益增长的任务,而这是基准程序做不到的。

图 6:语义任务:块堆叠的模拟评估。x 轴是用于训练的任务数量。y 轴是整体成功率。图 A 和图 B 展示了随着任务数量的增加,NTP 和其变量能为新的任务示范和目标生成更好的结果。

图 7:可视化的 NTP:NTPVID(检测器)对图片使用对象检测器用于生成下一步的运行状态。NTP(E2E)是一种端到端模型,完全针对没有低级状态信息的图像进行训练。我们注意到,在部分观测案例(仅视频)中,与完全观察到的样例(NTP(全态))相比,可以看到类似的学习趋势,尽管性能有些损失。

表 1:机器人实例评估:锯木机器人在模拟训练的 NTP 模型中 20 个未知的块堆叠任务和 10 个未知分类任务的结果。NTP 失败表示算法错误,Manip 表示硬件交互错误(例如,抓取失败与碰撞)

表 2:动态对抗:在模拟对抗环境中块堆叠任务的评估结果。我们发现,使用 GRU 的 NTP 会发生间歇性故障,表现更差。

图 8:清理桌子:模拟及真实情况。右表模拟状态下叉子和碗个数对应的成功率。

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2017-10-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据科学与人工智能

【DS】Doc2Vec和Logistic回归的多类文本分类

Doc2vec是一个NLP工具,用于将文档表示为向量,是word2vec方法的推广。 为了理解doc2vec,最好理解word2vec方法。但是,完整的数学细节...

2784
来自专栏机器之心

专栏 | Detectron精读系列之一:学习率的调节和踩坑

50912

Scikit-Learn的简介:Python机器学习库

如果你是一名Python程序员,或者你正在寻找一个强大的库,可以将机器学习运用到实际系统中,那么你要认真考虑一下scikit-learn。

1.1K7
来自专栏企鹅号快讯

机器学习系统设计03-机器学习入门应用案例

@[Markdown, 机器学习] Github源代码下载 参考书籍:《机器学习系统设计》 应用案例说明 我们有一个数据集,是一个网站每小时的web访问量,随着...

2325
来自专栏鸿的学习笔记

一个关于Scikit-Learn的简明介绍:Python机器学习库

如果你是一个Python程序员,或者你正在寻找一个牛逼的库,使你可以应用机器学习到生产系统上,那么你会要认真考虑的库就是scikit-learn。在这篇文章中,...

984
来自专栏机器之心

业界 | OpenAI提出新型神经网络:自动计算词对象,实现实体消岐

3007
来自专栏SIGAI学习与实践平台

时空建模新文解读:用于高效视频理解的TSM

接着之前的《浅谈动作识别TSN,TRN,ECO》,我们来谈谈最近 MIT和IBM Watson 的新文 Temporal Shift Module(TSM)[1...

1293
来自专栏人工智能

通过JS库Encog实现JavaScript机器学习和神经学网络

在本文中,你会对如何使用 JavaScript 实现机器学习这个话题有一些基本的了解。

1.6K10
来自专栏程序员宝库

使用 JavaScript 实现机器学习和神经学网络

英文:JeffHeaton 译文: 云+社区/白加黑大人 https://cloud.tencent.com/developer/article/103589...

39010
来自专栏AI科技大本营的专栏

学习笔记 | Fast.ai深度学习实战课程Lesson2——带你深入了解CNN

Fast.ai 深度学习是我们此前推出的系列课程,共9节课,并且已经进行了汉化。课程主讲人是资深深度学习研究者Jeremy Howard 教授,他本人连续两年在...

6918

扫码关注云+社区

领取腾讯云代金券