选自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:清理桌子:模拟及真实情况。右表模拟状态下叉子和碗个数对应的成功率。
本文为机器之心编译,转载请联系本公众号获得授权。