工科的同学想必离不开各种各样的模拟器,模拟器使各种工程学科能够用最少的人力快速制作原型。
在机器人技术领域,物理模拟为机器人提供了一个安全而廉价的虚拟操场,机器人可以利用深强化学习(DRL)等技术获得物理技能。
然而,由于仿真中的手工衍生物理并不完全匹配真实世界,完全在仿真中训练的控制策略在真实硬件上测试时可能失败ーー这是一个被称为仿真到真实(sim-to-real)或域适应的问题。
基于知觉的任务(如抓取)的模拟与真实的差距已经用 RL-cycleGAN 和 RetinaGAN 解决了,但是由于机器人系统的动态性仍然存在差距。
RL-cycleGAN和RetinaGAN在新智元之前的推送《Google X教你用模拟器训练机器人,准确率超93%,ICRA2021已发表》中有介绍。
这让我们不禁要问,我们能从一些真实的机器人轨迹中学到更精确的物理模拟器吗?如果是这样,这样一个改进的模拟器可以用标准的 DRL 训练来改进机器人控制器,使其在现实世界中成功。
基于这个想法,Google 和 X 团队共同在ICRA2021上发表了一篇论文《SimGAN: 混合模拟器识别领域适应通过对抗性的强化学习》,文中提出把物理模拟器作为一个可学的组件,由 DRL 训练具有特殊的奖励功能,惩罚在模拟中产生的轨迹(即,随着时间的推移机器人的运动),少量轨迹之间的差异,收集真实的机器人运动轨迹。
本文作者超半数为华人,第一作者Yifeng Jiang,是斯坦福大学计算机科学专业的二年级博士生,由C. Karen Liu博士指导。
他在佐治亚理工学院获得了电子与计算机工程学士学位。在进入研究生院之前,在上海交通大学获得了学士学位,是密歇根大学上海交通大学联合研究所的成员。他的研究兴趣是机器人应用的计算机动画和物理模拟,以及统计技术如何在这些领域中发挥作用,除此之外对数值优化,人类认知和运动学习也很感兴趣。
文中使用生成对抗性网络(GANs)来提供这种奖励,并制定了一个混合模拟器,它结合了可学习的神经网络和分析物理方程,来平衡模型的表达性和物理正确性。在机器人运动任务上,该方法优于多个强基线,包括领域随机化。
一个可学习的混合模拟器传统的物理模拟器是一个程序,用来解决微分方程,在虚拟世界中模拟运动或相互作用的物体。
对于这项工作,有必要建立不同的物理模型来代表不同的环境——如果一个机器人在床垫上行走,床垫的变形需要考虑在内(例如,与有限元分析一起)。
然而,由于机器人在现实世界中可能遇到的场景的多样性,这种特定环境的建模技术将是冗长的(甚至是不可能的) ,这就是为什么采用基于机器学习的方法是有用的。
虽然模拟器可以完全从数据中学习,但如果训练数据不包括足够广泛的各种情况,那么学习的模拟器如果需要模拟未经训练的情况,就可能违反物理定律(即偏离现实世界的动力学)。
因此,在如此有限的模拟器中训练的机器人在现实世界中更有可能失败。
为了克服这一复杂性,文中构造了一个混合模拟器,结合了可学习的神经网络和物理方程。
具体地说,研究人员使用一个可学习的仿真参数函数来代替通常由人工定义的模拟器参数ーー接触参数(如摩擦系数和恢复系数)和电机参数(如电机增益) ,因为接触的未建模细节和电机动态是产生仿真间隙的主要原因。
与传统的模拟器将这些参数视为常数不同,在混合模拟器中,这些参数是状态相关的ーー它们可以根据机器人的状态而改变。
例如,电机在较高的速度下会变得较弱。这些典型的未建模物理现象可以使用与状态相关的模拟参数函数来捕获。
此外,虽然接触和电机参数通常难以识别和易于变化,由于磨损,我们的混合模拟器可以自动学习他们从数据。例如,模拟器不再需要手动指定机器人脚的参数,而是从训练数据中学习这些参数。
混合模拟器的另一部分由物理方程组成,确保模拟遵循物理学的基本定律,如能量守恒,使其更接近真实世界,从而减少模拟与真实世界的差距。
在之前的床垫例子中,可学习的混合模拟器能够模拟床垫的接触力。由于学习的接触参数是状态相关的,模拟器可以根据机器人脚相对于床垫的距离和速度来调节接触力,模拟可变形表面的刚度和阻尼的影响。
因此,我们不需要为可变形的表面专门设计一个解析的模型。
使用GAN模拟器学习成功地学习上面讨论的模拟参数函数将导致一个混合模拟器,可以产生类似真正的机器人的轨迹。
使这种学习成为可能的关键是为轨迹之间的相似性定义一个度量标准。
GAN最初设计用于生成具有相同分布或风格(style)的合成图像,只有少量真实图像,可用于生成与真实图像无法区分的合成轨迹。
GAN有两个主要部分,一个是学习生成新实例的生成器,另一个是判别器,评估新实例与训练数据的相似程度。
在这种情况下,可学习的混合模拟器作为 GAN 生成器,而 GAN 鉴别器提供相似性评分。
将模拟模型的参数与现实世界中收集到的数据进行拟合,这一过程称为系统辨识过程(SysID) ,已经成为许多工程领域中的常见做法。
例如,可变形表面的刚度参数可以通过测量表面在不同压力下的位移来确定。这个过程通常是手动的和繁琐的,但是使用 GANs 可以更有效率。例如,SysID 经常需要一个手工制作的度量标准来衡量模拟轨迹和真实轨迹之间的差异。对于 GANs,这样的度量是由鉴别器自动学习的。此外,为了计算差异度量,传统的 SysID 需要将每个模拟轨迹配对到使用相同控制策略生成的对应实际轨迹。
由于 GAN 鉴别器只采用一个轨迹作为输入,并计算在现实世界中chuxian的可能性,因此不需要这种一对一的配对。
使用强化学习学习模拟器和优化策略把所有的东西融合到一起,我们将模拟学习形式化为一个 RL 问题。神经网络从少量的现实轨迹中学习状态相关的接触和电机参数。对神经网络进行优化,使模拟轨迹与实际轨迹之间的误差最小。
需要注意的是,在一段较长的时间内尽量减少这种错误是很重要的ー一种能够准确预测更远的未来的模拟将导致更好的控制政策。RL 非常适合这一点,因为它随着时间的推移优化了累积的奖励,而不仅仅是优化了单步奖励。
在学习了混合模拟器并且变得更加准确之后,我们再次使用 RL 在模拟中改进机器人的控制策略。
结果表明,SimGan优于多个sota模型基线,包括领域随机化(DR)和直接细化目标域(FT)。
仿真与现实的差距是阻碍机器人利用强化学习能力的关键瓶颈之一。
通过学习一个模拟器来应对这个挑战,这个模拟器可以更忠实地模拟真实世界的动态,同时只使用少量的真实世界数据。可以成功地部署在此模拟器中改进的控制策略。为了达到这个目的,我们在经典物理模拟器的基础上增加了可学习的组件,并使用对抗性的强化学习语言来训练这个混合模拟器。
到目前为止,我们已经测试了它在运动任务中的应用,我们希望通过将它应用于其他机器人学习任务,如导航和操作,来构建这个通用框架。