近日,谷歌官方博客上发变了一篇题为《Teaching Robots to Understand Semantic Concepts》的文章,探讨了在机器人学习(robotic learning)方面的一些最新进展。机器人学习是指通过机器人自动收集的数据(量很大,但是缺乏标签)与人类的标注数据结合起来从而允许其理解语义概念。通过深度视觉特征(deep visual features),机器人在人类演示中借助其数据理解显性事件,模仿人类的行动,理解语义概念比如「玩具」和「钢笔」从而根据用户指令捡起物体。这次的实验可能为未来在自动机器人系统中结合自监督数据和人类标注数据的工作指出了一条新的道路。
机器学习可以使机器人具备复杂技能,比如抓取和开门。但是,学习这些技能需手动编程机器人试图优化的奖励函数。与之相反,人类可以通过观察别人理解任务目标,或者被简单地告知目标是什么。人类能够做到这点是因为有这个世界的背景知识:当我们看到一个人切苹果时,我们明白目标是切成两半,而不管苹果是什么种类的,或者切苹果的工具是什么样的。相似地,如果我们被告知捡起苹果,我们可以通过语境确定哪个物体是苹果,因为我们知道苹果的意义是什么。
这就是语义概念:切成两半这种显性事件(salient event)和单词所指称的物体概念比如苹果。我们可以教会机器人理解语义概念、并使其遵循通过类别标签或用户提供的实例指定的简单命令吗? 在本文中,我们探讨了在机器人学习(robotic learning)方面的一些最新进展,机器人学习把机器人自动收集的数据(量很大,但是缺乏标签)与人类的标注数据结合起来从而允许其理解语义概念。我们将会描述机器人如何在人类提供的演示中通过其数据理解显性事件,模仿人类的行动,理解语义概念比如「玩具」和「钢笔」以根据用户指令捡起物体。
通过深度视觉特征理解人类的演示
在第一组实验中,我们的目标是帮助机器人通过仅仅观看若干个无标注的人类演示来理解一个任务,比如开门。通过分析这些演示,机器人必须先从语义上理解显性事件,这对任务的成功很重要,接着运用强化学习来执行任务。
人类演示(左)与机器人模仿(右)
小数据集上的无监督学习是机器学习中最具挑战性的场景之一。为了使之可行,我们使用了深度视觉特征(deep visual feature),它来自一个被训练用来参加 ImageNet 图像识别竞赛的大型网络。深度视觉特征对语义概念非常敏感,同时保持对诸如外观和光线的滋扰变量(nuisance variables)的不变性。我们使用这些特征阐释用户提供的演示,结果证明以非监督的形式从少许演示中学习奖励函数确实是可能的,并且无需再训练。
仅仅通过观察开门任务来学习奖励函数的实例。随着任务的完成,奖励函数从零增加到最大值。
在仅通过观察学习了奖励函数之后,我们使用它去指导机器人学习开门任务(仅通过图像评估奖励函数)。借助于大约 10% 时间的初始动作演示,机器人通过已学习的奖励函数把精度提升到了 100%。
学习的进程。
通过自监督和模拟来赶超人类动作
在《时间对比网络:多视角观察的自监督学习》(Time-Contrastive Networks: Self-Supervised Learning from Multi-View Observation)(https://sermanet.github.io/tcn/)中,我们提出了一种通过观察理解世界的全新方法,并借助自监督姿态模仿对其进行了演示。我们的方法主要依赖于监督的时空同现:通过训练来区分来自视频不同时段的帧,从而学习解开现实并将其组织为有用的抽象表征。
以姿态模仿任务为例,表征的不同维度也许编码一个人类或机器人身体的不同关节。我们没有手动定义人与机器人关节之间的映射(由于生理差异这首先是含糊不清的),而是让机器人以端到端的形式学习模仿。当我们的模型同时在人与机器人的观察中被训练,即使没有提供对应关系,它也自然地会发现两者的这种关系。因此我们无须给出人与机器人之间的对应就获得了模仿人类姿态的机器人。
机器人的自监督式人类姿态模拟。
端到端学习的好处的一个有力证据是上述的多对一和高度非线性节点映射。在这个实例中,上下的动作需动用人类的很多关节,而机器人只需动用一个就够了。我们表明机器人已经自己发现了高度复杂的映射,而无须任何明确的人类姿态信息。
利用物体的语义类别进行抓取
上述实验说明人如何通过实例演示使机器人理解任务的语义——显性事件及动作的相关特征,进而给机器人设定具体目标。如果人类不向机器人演示任务,仅仅告诉它怎么做,又会怎么样呢?这仍然需要机器人理解语义,以识别用户指定的语义类别所对应的实物。在《语义抓取的端到端学习》(End-to-End Learning of Semantic Grasping)一文中,我们研究了如何使用人工标注数据和自动收集数据来执行语义抓取任务,该任务中机器人必须从一个塞满的箱子里抓取用户指定类别标签的物体,如「橡皮」或「玩具」。
在我们的语义抓取实验设置中,机器臂的任务是抓取用户指定语义类别的物体(如乐高玩具)。
为了学习如何执行语义抓取任务,机器人首先通过自动抓取多种物体来收集抓取数据集。这些数据可以使机器人抓取物体,但无法让它理解如何将物体与语义标签对应起来。为了使机器人理解语义,我们又进行了少量的人类监督。机器人每成功抓取到一个物体,都会以一个固定姿势将物体放到摄像机前面,如下图所示。
机器人在抓取成功后,将物体放置在摄像机前面。这些图像可用于标注抓取物体的类别。
人类将这些图像的子集进行标注。由于这些图像中机器人使用同一个姿势呈现物体,因此在标注样本上训练分类器,进而在剩余图像上标注标签就比较容易了。图像标注后,机器人可以从中了解实际抓取的物体,并将标签与物体抓取成功后观察到的图像联系起来。
使用这个标注后的数据集,我们可以训练一个双流模型,该模型基于当前图像和机器人可能的行动,可以预测即将抓取到的物体。该模型受到人类视觉皮质中的背腹侧流分解的启发,人类视觉皮质中腹侧流负责对物体的语义类别进行推理,背侧流负责对抓取物的几何形状进行推理。最重要的是,腹侧流可以吸纳包括标注物体图像在内的辅助数据(未必来自机器人),背侧流可以吸纳包含不带有语义标签的抓取物的辅助数据,这使得整个系统可通过大量复杂标注数据进行更高效的训练。通过这种方式,我们可以将有限的人类标注数据和机器人自动收集的数据结合起来,基于想要的语义类别抓取物体,如视频中所示:
展望
我们的实验展示了如何将语义标注数据和机器人自动收集、自动标注的数据结合起来,进而使机器人理解事件、物体类别以及用户演示。未来,我们或许可以想象使用用户标注数据和不断增加的自动收集数据集来训练机器人系统,以提高机器人的能力、减轻设计自动机器人的工程负担。另外,随着机器人系统从真实世界中自动标注的数据不断增加,这些数据不仅可用于改善机器人系统,还可用于训练计算机视觉、语音识别和自然语言处理。
当然,我们不是第一个思考将机器人和语义结合起来的人。自然语言理解、机器感知、抓取、模仿学习领域的大量研究已经考虑如何在机器人系统中结合语义和机器人行为。但是,我们的实验可能为未来在自动机器人系统中结合自监督数据和人类标注数据的工作指出了一条新的道路。
原文链接:https://research.googleblog.com/2017/07/teaching-robots-to-understand-semantic.html