全世界机器人,联合起来!
Robots of the world, unite!
从经验中进行学习很可能是让机器人处理复杂的现实世界问题的一个关键,这些问题包括帮助老人做家务,协助他们的日常活动,再到学校和医院里的工作,以及某些过于危险或人类不愿意去做的任务。但是,如果每一个机器人只能通过自身的经验来掌握所有的这些任务技巧,那么要掌握足够多的有用技能所需要花的时间就太长了。我们能不能通过让多个机器人合作性的相互学习来克服这一缺陷呢?
虽然机器学习算法在自然语言处理和语音识别上已经有了巨大的进步,但是,抽象的高水平推理,即让人们可以用词语对复杂的概念进行沟通,对机器来说依然是一个难以覆盖到的领域。但是,机器人可以通过网络,有时候称为云机器人,同步地把经验传输给彼此,也就是让机器人可以相互学习的能力。
虽然只能在低级别的技能中做到,但这确实是事实。人和动物在适应性的运动控制上做得很好,运动控制包含了一个封闭的协调反馈回路,涉及感知、反应、肌肉等。现实世界中,机器人在这些基本的技巧上依然很难做好,因为环境的多变和复杂性要求有精确的行为,需要保证不会被干扰项轻易地愚弄。如果我们让机器人把自身经验传递给彼此,那么它们能学会在感知现实环境的情况下,通过紧密协作来执行动态任务吗?
此前,我们曾写过博客,介绍多个机器人 如何能把各自经验汇总,学习抓取物体任务。今天,我们要讨论的是一个新的实验——通过多机器人合作来完成通用目的技能学习的三个可能方法:直接从经验中学习行动技巧、学习物体内部物理模型、通过人类协助学习技能。在这三个例子中,多个机器人分享彼此的经验,搭建了一个通用的技能模型。机器人们学习的这些技能依然是相对简单的,比如推物体或者开门。但是,通过合作来更快速高效的学习这些技能,机器人未来可能会掌握更加丰富的行为指令集,最终会让它们在人类的日常生活中起到大的作用。
用无模型的增强学习从原始经验中进行学习
也许,让机器人彼此学习的一个最简单的方法就是把所有关于成功和失败的经验信息都汇总到一起。人类和动物通过直接试错进行学习,积累技巧。之所以称之为“无模型”,是因为并没有形成关于环境的明确模型,在这种“无模型”的学习中,它们通过即刻展示的行为发现变化,进而增强和探索可以得到更大回馈的变化。通过与深度神经网络的结合,“无模型”的算法最近已经被证明可以取得惊人的效果,在Atari 游戏系统和围棋对弈中,也取得了关键性的成功。拥有多个机器人让我们可以使用分享的经验来进行实验,以加速现实世界中这一类型的直接学习。
在实验中,我们给机器人的任务是移动手臂,触碰目标位置,或者接触并开门。每一个机器人都拥有一个复制版的神经网络,让它可以对特定情况下特定的任务的价值进行评估。通过在这一网络中进行搜索,机器人能快速地决定哪一种行动才是值得去做的。当一个机器人开始行动时,我们会在它所选择的行动上增加噪音,这样,行为的结果有时候会比此前的观察更好一些, 有时候又会更差一些。这能让每一个机器人都可以探索处理某一任务的不同方法。关于机器人所采取的行动、它们的行为以及最终结果的记录,最终都会被发送到一个中央处理器中。服务器会搜集所有机器人的信息,并循环使用,改进用于评估不同状态和行动的神经网络。我们采用的这种“无模型”的算法会对好的和坏的经验都进行评估,并把结果运用到新的网络中,新的网络将能更好地理解行动和成功之间的关系。这样,在每一个常规的间隔中,每一个机器人都会从服务器上获得升级后的神经网络的复制版本,然后开始使用这些新的神经网络中的信息指导行动。考虑到这些设计版的神经网络在评估现实世界中的真实行动会做得更好,机器人自身也会获得更好的结果。这种良性循环在任务的不断改进中得到重复。在下面图片中,一个机器人正在试着完成开门任务。
在几个小时的练习后,计算机会把自己学习接近目标、通过与门手的接触和推拉进行开门的原始经验分享出来。在开门这一任务中,计算机学会了处理挂钩和门手之间的物理联系,在这一过程中,并不需要对现实世界进行具体的建模,见下面这个例子:
通过与物体相互作用学习
对于单个技巧的学习来说,直接试错的增强学习是一个绝佳的方法。但是,人和动物并不是通过独立的试错进行学习的。对于自身的环境,我们会建立一个精神模型,并会想象,通过自己的行动,世界会发生什么样的改变。
我们可以从最简单的物理作用谈起,让我们的机器人学习从对自身经验的反应上,学习基本的因果关系。在这个实验中,我们让机器人与许多不同的常见家庭日用品玩游戏,随机地把这些东西放到一个盒子中。
机器人又再次分享了自己的经验,并共同建立了一个简单的预测模型尝试预测,世界会对它们的行动作出什么回应。这一预测模型在获得了现有的图像和机器人可能会执行的行动方案 后,可以产生对未来的摄像头照片的简单预测,虽然有些模糊。
上排:机器人的手臂与常用家居用品的互动
下排:获得原始图像和一个行动序列后,预测未来的摄像头照片
一旦这一模型的训练完成,机器人就能使用它来执行带有目的性的操作任务,比如,基于用户命令的任务。在我们的原型中,用户只需要简单地点击一下目标物体,再点击一下目标方位,就能命令机器人去移动这一物体:
在这一实验中,机器人并没有获得任何关于物体和物理的任何形象:他们看到的只是任务要求的特定像素,来移动到特定的位置。但是,由于他们在过往分享的经验中,见到了如此多的物体交互,它们能预测到某一具体的行动是如何影响到特定的像素的。为了让这种对物体的理解能够出现,必须要给机器人提供足够广泛的体验。这对时间或者分享的经验提出了要求。下面是关于这一项目的一个扩展视频。
在人类的帮助下进行学习
目前为止,我们讨论了如何让机器人完整地从自身进行学习。但是,人类的指导也很重要的,人类不仅要告诉机器人如何行动,还有如何帮助机器人。对于许多任务的技巧改如何部署,人类有着大量的洞见,把这些洞 见转移给机器人,以帮助它们更快地进行学习,这一点也是很自然的。在下一个实验中,我们会给每一个机器人提供不同的门,把手把手地给它们展示,如何打开这些门。这些展示会被编入一个统一的机器人战略中,叫策略。这一策略是一个深度的神经网络,能把摄像头的图片转化成机器人行动,并储存在中央处理器中。下面的视频展示的就是人类向机器人展示开门技巧:
接下来,多个机器人将联合通过试错学习过程提升这一策略。每一个机器人都在使用最新可用的策略,来尝试打开自己面对的门,其中一些会加入噪音。这些尝试会让每一个机器人策划出一个更好的开门策略,同时从整体上提升策略。
不出意外的,我们发现,在连续性的任务和逐渐增加难度的情况下,机器人的学习效率得到了提升。在我们的实验中,每一个机器人最开始都是在一个特定地位和方向训练开门,也就是人类协助员此前展示的方位。随着在任务的完成上做得越来越好,协助员开始改变位置和门的方位,增加难度,但是又控制在不会让机器人完全失败的水平。这能让机器人逐渐增加自己的技能,并扩展自己可以处理的困境。人类指导和试错学习的结合,使得机器人能在几个小时内集体学会开门的技巧。由于机器人都是在不同的门上进行的学习,所以,最后汇成的成功策略,将是这些机器人自身也没有经历过的。
在以上的三个例子中,能够沟通并交互经验的能力使得机器人能学得更快,也更有效率、在我们把机器人学习和深度学习的结合中,这变得尤为重要,正如上面几个例子中所讨论的那样。此前,我们已经看到,在拥有合适的训练数据的情况下,深度学习会发挥其最大的作用。比如,著名的ImageNet 使用了超过150万 标签样本。虽然对于单个机器人来说,花上数年时间来要掌握这些数据也不是不可能,但是,通过多机器人的分享,在几周内就获得同样量级的经验,岂不是更好。除了训练时间大大缩短,多样化的经验也能带来许多好处:一个真实的部署可能包含了不同位置和环境背景下的多个机器人,通过即时信息的分享,多样化的实验可以建立一个统一的高度集成化的代表。
当然,今天,机器人可以学习的这种类型的行为还是相当受限的。即使是基本的任务,比如拾起物体或者开门,都还是比较前沿的研究。在所有的这些实验中,人类的参与依然是必须的,他们要通过对目标功能的详细描述,来告诉机器人该学习什么。但是,随着算法的改进,和机器人部署的范围扩宽,它们分享经验的能力将对于协助我们人类的生活有着指导性的意义。
相关链接:机器人技能瞬间共享 机器人是怎么快速教会其他机器人的