通过观察另一个人的做法来学习一项新技能,即模仿的能力,是人类和动物智力的关键部分。我们能让机器人做同样的事情吗?
伯克利研究中心近日po出的一个新的研究成果中,机器人也可以通过一次性观察,模仿人类的某个动作了。
观察人类之后,即使调整了顺序,机器人依然学会了把桃子放进红碗里👆
让机器人具备这种“模仿”能力有什么意义呢?
伯克利称,这或许将成为我们与机器人沟通的一种新的方式。
之前,人类与机器人的沟通多基于要远程操作机器人或设计奖励函数。这种方法依赖一个成熟的感知系统,因此比较困难。而在模仿系统下,想要让机器人完成一个任务,我们只需简单地向机器人展示我们想让它们做什么就可以了。
其实,这一领域已有很多精彩的研究,比如模仿学习——机器人如何从自己的同类专家(即通过远程操作或动觉教学)中学习。
然而,基于视觉技能的模仿学习通常需要专家多次演示一项技能。
例如,使用原始像素输入访问单个固定对象,这样的任务需要多达200次演示,才能获得良好的性能。
如果演示次数太少,机器人一般很难学会。
此外,当机器人需要模仿表现出某种操作技能的人类时,这个问题变得更加具有挑战性。
首先,机器人的手臂看起来和人类的手臂有很大的不同;
第二,在人类演示和机器人演示之间建立正确的对应关系是非常难的。
只是跟踪和重新绘制运动图还不够简单:这项任务更关键地取决于这个运动如何影响世界中的物体,需要建立起一个基于交互的通信。
为了让机器人能够从一个人类的视频中模仿技能,伯克利这一研究的创新之处在于,让机器人融合以前的经验,而不是从头开始学习每一项技能。
通过结合以前的经验,机器人还应该能够快速地学习操作新对象,同时不改变域的改变,这种改变包括:提供演示的人、变化的背景场景或不同的视角。
伯克利希望通过学习从示范数据中学习来实现这两种能力:小样本模仿(few-shot imitation)和域不变性。这项技术,也被称为元学习,是我们如何让机器人具备通过观察并模仿人类的能力的关键。
点击查看元学习相关资料👇:
http://bair.berkeley.edu/blog/2017/07/18/learning-to-learn/
一次性模仿学习(One-Shot Imitation Learning)
那么,如何利用元学习让机器人快速适应不同的对象呢?
伯克利的方法是将元学习和模仿学习结合起来,使一次性模仿学习成为可能。其核心思想是提供一个特定任务的单一演示,即操纵一个特定对象,机器人可以快速识别任务是什么,并在不同的环境下成功地解决它。
伯克利之前一项关于一次性模仿学习的研究通过学习成千上万的演示,获得了卓越的结果,比如在块堆叠等模拟任务上。
如果想要一个物理机器人能够模仿人类并操纵各种各样的新事物,我们需要开发一个新的系统,它可以学习如何从视频演示中学习,用一个可以在现实世界中实际收集的数据集。首先,讨论通过远程操作收集的单个演示的视觉模拟方法。然后,展示如何将它扩展到从人类的视频中学习。
一次性视觉模拟学习(One-Shot Visual Imitation Learning)
为了使机器人能够从观看视频中学习,伯克利的本次研究结合了模拟学习和有效的元学习算法,也即model-agnostic meta learning(MAML)。
点击查看元学习算法👇
http://bair.berkeley.edu/blog/2017/07/18/learning-to-learn/
在这个方法中,伯克利用带有参数θ的卷积神经网络作为策略表示。从机器人相机和机器人结构(如关节角度和关节速度)的图像映射到机器人在t时刻的动作(如抓手的线速度和角速度)。
以下是伯克利算法的三个主要步骤:
伯克利元学习算法的三个步骤👆
首先,收集一个巨大的数据集,其中包含远程操作机器人执行许多不同任务的演示,在伯克利提供的例子中,这些任务对应于操作不同的对象。在第二步中,运用MAML学习一组初始的策略参数θ,这样,在被提供了某个对象的一个演示之后,可以对那个对象运行梯度下降法找到可概括的策略参数。当使用远程操作演示时,可以通过比较策略的预测动作来计算策略更新:
然后,通过驱动更新策略匹配来自同一对象的另一个演示的操作来优化初始参数θ。在元训练之后,可以要求机器人通过使用该任务的一个演示来计算梯度步骤来操作完全不可见的对象。这一步叫做元测试。
由于该方法没有为元学习和优化引入任何额外的参数,结果证明它是非常数据有效的。因此,只需观看远程的机器人演示,就可以完成推放等多种控制任务:
使用单个演示将物体放置到新容器中。左:演示。右:学会策略。👆
通过域自适应元学习观察人类的一次性模仿
上述方法仍然依赖于远程操作机器人的演示而非人类的演示。为此,伯克利还在上述算法的基础上,设计了一种域自适应一次性模拟方法。
伯克利收集了远程操作机器人和人类完成的许多不同任务的演示。然后,提供人工演示来计算策略更新,并使用执行相同任务的机器人演示来评估更新的策略。该算法的图示如下:
图:域自适应元学习概览
遗憾的是,由于人工演示只是一个人执行任务的视频,它不包含专家操作,所以伯克利也提出,无法计算上面定义的策略更新。因此,其建议学习一个更新策略的损失函数,一个不需要动作标签的损失函数。
学习损失函数背后的直觉是,可以获得一个函数,该函数只使用可获得的输入、未标记的视频,但仍然可以生成用于更新策略参数的梯度,从而产生一个成功的策略。
虽然这似乎是一项不可能完成的任务,但重要的是要记住,在梯度步之后,元训练过程仍然用真正的机器人动作来管理策略。因此,学习损失的作用可能被解释为简单地指导参数更新,以修改策略,以在场景中获取正确的视觉线索,以便元训练的动作输出将产生正确的动作。用时间卷积表示学习的损失函数,它可以在视频演示中提取时间信息:
伯克利将这种方法称为域自适应元学习算法,因为它是从来自不同域的数据中学习(在这里指人类视频),机器人的策略在这个域中运行。伯克利通过这种方法,使PR2机器人能够有效地学习如何将在元训练中看不到的许多不同的物体推向目标位置:
学会通过观察人的动作推送一个新物体👆
通过观察一个人对每个物体的操作,把很多物体放到目标容器中:
学会抓起一个新物体并把它放到之前没见过的碗中👆
伯克利还使用在不同房间用不同的摄像机收集的人类演示来评估这种方法。机器人仍然能很好地完成这些任务:
通过观察不同的角度不同环境下的人来学习推一个新的物体👆
下一步是什么?
下一步是什么?
伯克利称,既然其已经教机器人通过观看一个视频学会操纵新对象,下一步自然是进一步扩展这些方法,设置不同的任务对应于完全不同的运动和目标,比如使用各种各样的工具或玩各种各样的运动。
通过在任务的底层分配中考虑更多的多样性,我们希望这些模型能够实现泛化,允许机器人快速地为新情况制定策略。此外,在这里开发的技术并不是局限于机器人操纵甚至控制的。例如,模仿学习和元学习都被用于语言环境中,在语言和其他顺序决策环境中,学会模仿一些演示是未来工作的一个有趣的方向。