昨天,Google Research 发布了两个新项目,它们是与一个打乒乓球的机器人相关的。该Google机器人团队教会了一个机器人手臂与其他人进行 300 多拍的对打,并能以“业余选手”的精度接发球。虽然考虑到有些人打乒乓球很糟糕,这可能听起来并不那么令人印象深刻,但同样的技术可以用于训练机器人执行其他需要密切人机交互的“动态、高加速度任务”。
乒乓球对于机器人来说是一项有趣的训练任务,因为它具有两个互补的特性:它既需要快速精确的移动,又是一个发生在固定且可预测环境中的结构化游戏。机器人用来做决策的学习算法必须努力才能获得好的表现,但乒乓球桌的限制减少了它需要应对的世界范围。另外,打乒乓球本身就是一项需要双方参与的任务,这对训练很有帮助:机器人可以与另一个机器人(或模拟程序)或真人一起训练。所有这些使得它成为探索人机交互和强化学习技术(机器人通过实践学习)的绝佳平台。
Google 的工程师们使用同一款机器人设计了两个独立的项目:Iterative-Sim2Real,将于今年晚些时候在CoRL上展示;以及GoalsEye,将于下周在IROS上展示。Iterative-Sim2Real 是训练机器人与人类进行 300 拍合作对打的项目,而 GoalsEye 则让机器人能够以业余选手般的精度,将球准确地回击到球台上的特定目标点。
Iterative-Sim2Real 旨在克服教会机器模仿人类行为的“先有鸡还是先有蛋”的问题。研究团队解释说,如果一开始没有好的机器人策略(机器人的一套规则),就无法收集到关于人们如何与之互动的优质数据。但是,如果没有人类行为模型作为起点,就无法制定出机器人策略。另一种解决方案是完全在现实世界中训练机器人。然而,这个过程“通常很慢,成本高昂,并且存在安全方面的挑战,当涉及人类时,这些挑战会进一步加剧。”换句话说,这需要很长时间,而且人们可能会被挥舞着乒乓球拍的机器人手臂弄伤。
Iterative-Sim2Real 通过使用一个非常简单的人类行为模型作为起点,然后在模拟和现实世界中与人类一起训练机器人来绕过这个问题。在每次迭代之后,人类行为模型和机器人策略都会得到改进。使用五名人类受试者,通过 Iterative-Sim2Real 训练的机器人,其表现优于一种名为sim-to-real plus fine-tuning(模拟到现实加微调)的替代方法。其少于五拍就结束的对打次数显著减少,平均对打长度增加了 9%。
另一方面,GoalsEye 则着手解决另一套训练问题,它教会机器人将球回击到任意位置,例如“左后角”或“网前右侧”。模仿学习——机器人通过人类表现数据制定比赛策略——在高节奏环境下很难进行。影响人类击打乒乓球的变量太多,以至于跟踪机器人学习所需的一切几乎是不可能的。强化学习通常适用于这种情况,但可能会很慢且样本效率不高——尤其是在初期。(换句话说,需要大量的重复才能制定出相当有限的比赛策略。)
GoalsEye 试图通过一个初始的“小型、弱结构化、非目标性数据集”来克服这两类问题,该数据集使机器人能够学习击打乒乓球时发生的基本情况,然后允许它进行自我练习,以教会它精确地将球击打到特定点。在接受了初始的 2,480 次演示训练后,机器人只能在 9% 的时间里将球回击到 30 厘米(约 1 英尺)的范围内。但在进行了约 13,500 次的自我练习后,其准确率达到了 43%。
虽然教会机器人玩游戏可能显得微不足道,但研究团队认为,解决乒乓球方面的这类训练问题具有潜在的实际应用。Iterative-Sim2Real 使机器人能够通过与人类互动进行学习,而 GoalsEye 则展示了机器如何在“精确、动态的环境”中从非结构化数据和自我练习中学习。最坏的情况是:如果 Google 的宏伟目标未能实现,至少他们可以建造一个机器人乒乓球教练。