李林 编译自 Google Research Blog
量子位 出品 | 公众号 QbitAI
机器人可以通过机器学习获得复杂的技能,如抓取物体、开门等。
然而,学习这些技能需要我们先人工设置奖励函数,机器人随后再对它进行优化。
而人类,只通过观察别人的做法或者听别人讲,就能理解任务的目标。这依靠的是我们自己先前对世界的了解:看到有人切苹果,我们就会知道目标是“制造两块苹果”,与苹果是什么品种、用什么样的刀无关;如果有人告诉我们拿起苹果,我们就知道要抓住的对象是哪一个,因为我们知道在所处环境中“苹果”这个词的所指是什么。
这就是语义概念:比如“制造两块苹果”这个事件,以及类似“苹果”这样的词表示的对象类别。
我们可以教机器人理解语义概念,让他们遵循分类标签或者用户提供的示例这些简单指令来行动吗?
本文讨论了我们最近关于机器人学习的一些工作,这些工作把机器人自主收集的经验和人类标注的数据结合起来。机器人自动收集的经验数量巨大,但缺乏人类提供的标签;人类标注的数据则能帮机器人理解语义。
我们将描述机器人如何用它们的经验来理解人类演示中的突出事件,模仿人类动作,理解玩具、笔等语义类别,来根据用户指令拾取物体。
通过深度视觉特征理解人类演示
第一组实验来自我们的论文“Unsupervised Perceptual Rewards for Imitation Learning”。
论文项目地址:
https://sermanet.github.io/rewards/
我们的目标是让机器人能通过少量人类标注的示范,理解像开门这样的任务。通过分析这些演示,机器人必须理解与任务成功相关的语义突出事件,然后用强化学习来执行。
△ 人类演示(左)和机器人模仿(右)
在非常小的数据集上的无监督学习是机器学习中最具挑战性的场景之一。
为了使这种学习可行,我们从ImageNet预训练过的大型图像识别神经网络中提取特征。已知这种特征对于语义概念是非常敏感的,同时不受外观和照明等妨扰变量的影响。
我们用这些功能来理解用户提供的示范,并且不依靠重新训练从几个范例中以无监督的方式学习奖励函数。
△ 奖励函数的例子是通过观察开门任务学到的。 任务完成后,奖励从零增加到最高。
通过观察学习奖励函数后,我们用它来引导机器人学习开门任务,只使用图像来评估奖励函数。通过初步的动作演示和奖励函数,机器人动作的准确率从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://arxiv.org/abs/1707.01932
△ 在我们的语义抓取实验中,机械臂的任务是根据用户指定的语义类别抓取相应物体。
为了学习语义抓取,我们的机器人先像上一项研究描述的那样,通过自主尝试拾取各种对象来收集大量数据。有了这些数据,机器人就能够拾取对象,但不能理解如何将它们与语义标签相关联。
为了让机器人理解语义,我们引入了适度的人类监督。每次机器人成功地抓住一个物体,它会以规定的姿势将其呈现给相机,如下图所示。
△ 机器人抓取物体后,会将它放到摄像头前。这些照片可以用来标记实际抓取物体的类别。
然后,这些图像的一个子集由人类进行标注。由于图像中物体的姿势一致,很容易通过训练一个分类器,来把这些标签添加到其他图像上。
经过标注的图像会告诉机器人该拾取哪些物体,也能告诉机器人实际拾取了哪个对象。
用这个有标记的数据集,我们可以训练一个双流模型,根据当前图像和机器人的动作来预测哪些对象将被抓取。
我们采用的双流模型灵感来源于人类视觉皮层中观察到的腹背分解,腹侧流负责识别物体类别,背流同时解释正确抓取所需的几何图形关系。
关键的是,腹侧流可以包含对象标签的辅助数据,背流可以包含不具有语义标签的辅助数据,从而允许整个系统更有效地使用更大量的异质标记数据。
以这种方式,我们可以将有限数量的人类标签与大量自动收集的机器人数据结合在一起,以便根据所需的语义类别来掌握对象,如下面的视频所示:
未来的工作
我们的实验显示了有限的语义标签数据可以与机器人自动收集并标记的数据相结合,以使机器人能够理解事件、对象类别和用户演示。
将来,我们可以想象,机器人系统能通过有限的用户标注数据和不断增加的自动收集标注数据集,结合起来进行训练,提高机器人能力并减轻设计机器人的工程负担。
此外,机器人系统在现实世界中收集了越来越多自动注释的数据,这种辅助数据来源不仅能用来改进机器人系统,计算机视觉,语音识别和自然语言处理系统都能从中受益。
当然,机器人和语义学的交叉并不是我们开创的。自然语言理解、机器人感知、抓取和模仿学习领域,都对如何在机器人系统中结合语义和行为做了广泛的研究。
然而,我们上面讨论的这些实验,可能为未来自动机器人系统中自监督和人类标注数据的结合指出了一条路。
【完】
“