李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力

jopen 6年前
   <p style="text-align: center;"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/35a699742814617881f66b2c00705d82.jpg" /></p>    <p>摘要: 在本论文中,我们提出了一种名为神经任务编程(NTP)的新型机器人学习框架,该方法可以通过较少的示范和神经程序引导进行学习。NTP 可将输入的规范性任务(例如任务的视频演示)递归地将其分解成更精细的子任务规范, 这些规范被传递到分级神经程序,通过可调用的底层子程序是与环境进行交互。同时,我们在三个机器人操纵任务中验证了我们的方法,在试验中,NTP 展示了在显示分层结构和组合结构的顺序任务的强泛化能力化。 实验结果表明,NTP 在学习长度不定、可变拓扑和不断变化的未知任务的学习和拓展有较好的效果。</p>    <h2><strong>背景</strong></h2>    <p>自越来越强调“人机协作”的今天,机器人通常在某些特定环境中与人进行长时间的交互,如物体分类、装配、和清理等。但是以往的机器人通常需要在固定的场景下才能与人交互,如何让机器人能适应复杂的操作任务、新的任务目标和周围环境,则是机器人技术中的一个重大挑战。</p>    <p>设想一个仓库中的物体分类任务,这通常包括分类、检索、打包等具体任务,每个任务又可以分解为若干个动作,如抓取、移动、放下等,这些动作构成了如抓取和放置等子任务,如果在考虑到不同的对象、排序、子任务的排列组合,当中的变化将会非常复杂,例如,将四类物品分类放到四个容器中,这当中的组合会有 256 中之多。本文中,我们希望解决复杂任务规划的两个主要挑战,即a)从新的概念化到新的任务目标的学习策略,以及b)与长期环境交互的基本原生代码模块的组合。</p>    <h2><strong>神经任务编程(NTP)原理</strong></h2>    <p>NTP 的关键基本思想在是跨任务学习和与共享域中的可重用表示。NTP 对一个描述任务过程和最终目标时间序列的任务规范进行解释,并将其分层策略实例转化为一个神经程序。NTP 从输入规范中解码生成任务目标,并将其分解为子任务并与周边环境进行交互和反馈直至搭成目标,每个程序调用环境观察和任务规范(输入),并输出下一个子程序和相应的子任务规范。</p>    <p style="text-align:center"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/0a900f1f790c406a12966b114fb54d9d.jpg" /></p>    <p>如上图所示,在给定输入、任务规范和当前环境的情况下,NTP 模型预测需要运行什么样的子程序,并作为下一级子任务的输入,并判断当前程序是否结束,否则将继续循环执行任务 。</p>    <h2><strong>测试</strong></h2>    <p>该研究团队通过对模拟和实际机器人实验中的单臂操作任务模拟对 NTP 进行评估。任务包括:堆叠方块,目标分类和清理桌子。</p>    <p style="text-align:center"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/618750fc3f65815e9e879b70bd45a04b.jpg" /></p>    <p>该研究的两个目标:I. 在同一个域中学习多项任务;以及 II. 通过单一例子形成在测试中的泛化能力。</p>    <p style="text-align:center"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/1b71a665f96169c00fa3721e4cb28c8c.jpg" /></p>    <p>如图所示,机器手可从模拟的 Demo 环境(包括图像、视频、VR 输入)中进行学习并完成积木的堆叠;</p>    <p style="text-align:center"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/aa8d755e120b941cdbcf1ea27af0e2ce.jpg" /></p>    <p>NTP 编程:通过分级的任务条件输出策略归纳程序,调用 Robot API 进行操作。</p>    <p style="text-align:center"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/4defaf12393e6b66c1f1ef8d7adbdc0a.jpg" /></p>    <p>上图展示了在堆叠方块任务中 NTP 的样本执行轨迹图。任务是按指定要求堆叠字母块,顶层程序作为输入参与整个演示,预测下一个运行的子程序,并为特定输入作为指定任务的一部分,底层 API 调用机器人作出相应的动作(如 Move_to (Blue)、Grasp (Blue)等)。当程序结束符(EOP)为 True,当前程序停止并返回其调用程序。</p>    <p style="text-align:center"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/4aea7730b7135546223a822c223b185a.jpg" /></p>    <p>如果环境发生变化(如人为破坏已完成的任务),机器人会探测到环境的变化并重复任务。</p>    <p style="text-align:center"><img alt="李飞飞团队最新研究:神经任务编程NTP,让机器人具有强大泛化能力" src="https://simg.open-open.com/show/f0dd66eeffb305850525ea6f3d8cd545.jpg" /></p>    <p>任务结构的变化包括:改变完成条件(任务语义),可变子任务排列(任务拓扑)和更大的任务量(任务的长度)。随着任务数量的增加,NTP 可以为新的任务师范及目标生成更好的结果。</p>    <p>完整演示视频见:<a href="/misc/goto?guid=4959011287378624164">https://v.qq.com/x/page/k0559x1cyys.html?start=37</a></p>    <p>类似的研究还有雷锋网之前介绍过的 BAIR《<a href="/misc/goto?guid=4959011287484513786">One-Shot Visual Imitation Learning via Meta-Learning</a>》的论文,都是通过一次性学习形成的泛化能力让机器人快速掌握新技能。相比之下,BAIR 的论文更偏于算法的迭代改进,而 Visual Lab 的研究则从任务结构出发提出了一种新的学习框架。雷锋网认为,虽然李飞飞团队之前的研究更多是在计算机视觉领域,但正是如此,才有可能从机器人领域研究者习惯的视角外去思考问题,这篇论文提出的新思路也值得机器人研究者注意。</p>    <p>来自: <a href="/misc/goto?guid=4959011287582873456" id="link_source2">雷锋网</a></p>