导语这篇文章发表于2018年,这篇论文第一次把图网络技术应用在了机械系统建模上,而且从建模和控制的角度都取得了SOTA的成果。文章用Graph Neural Network(GNN)对物理系统进行建模和训练,目标是模拟实际系统反馈结果,从而将此系统应用于预测、推断和控制任务中。本文是对线上论文解读活动内容的整理,课程录播视频已上线,详情见下文。
扫描下方二维码,获取面向复杂系统的人工智能读书会论文列表:
Graph Networks as Learnable Physics Engines for Inference and Control论文地址:https://arxiv.org/abs/1806.01242
本科和硕士攻读的专业分别是物理和计算机,基于这样的背景,在博士期间,他主要专注于使用计算机方法来解决物理研究中的一些挑战,目前主要是集中研究人工智能和数据科学。
https://campus.swarma.org/course/1786?from=wechat
本文要解决的问题是如何用 Graph Neural Network(GNN)做一个物理引擎,所谓的物理引擎指的是对一个物理系统的建模,经过训练后的建模结果对输入做出的反馈和和实际系统给出的反馈一样。同时将这个引擎应用于预测、推断和控制任务中。- 第一次把图网络技术用在了机械系统建模上,而且从建模和控制的角度都取得了 SOTA 的成果,朝着更具人类特征的机器迈出了一步。
- 此模型在身体和关节之中有共同结构的系统中最有效(如游泳运动员),但在没有机会分享的情况下(如猎豹)不太成功,在长轨迹预测中误差也会增加。
- 未来的一些关键方向包括,在现实世界中使用我们的控制方法,通过仿真中的预训练模型支持仿真到真实的转换,扩展我们的模型来处理随机环境,以及对系统结构和参数进行系统辨识。我们的方法在基于想象的规划框架(Hamrick et al.,2017;Pascanu et al.,2017)以及具有类似 GN 规则的集成架构(Wang et al.,2018)中也可能有用。
在真实世界中,假如你面前有一个机械狗,你按住它的狗头,它的头就会低下去。在虚拟世界中用图网络物理引擎模拟这个机械狗,把这个头部受力的信息输入给物理引擎,物理引擎给出的模拟状态是头部位置下降。这就相当于图网络学会了一个物理系统怎样对外面的受力作出反应。图网络不仅很好地学习了动力学,预测出了“机器蛇”的运动行为,而且还能够在学好的动力学上做控制,即给定目标位置,让“机器蛇”模型演化中间的运动状态。这样做的好处是,把整个机械狗系统搞成了一个机器学习系统,我们用控制机器学习的手段对机械狗进行控制。之前有人用强化学习去做,他们能够完成对简单的系统的建模,他们优点在于可以用大量的数据,但缺点在于对于有多个部分联动的物理系统建模的就不够完善,GNN就适合建模这种内部有多个组件的物理系统。强化学习方法有,Mujoco based planner,Mujoco是目前机器人强化学习中最流行的仿真器,DDPG是深度确定性策略梯度,SVG是随机梯度下降,这些模型作为基础对比。1. 制造引擎,引擎目标如下,能对输入的反应必须和真实系统相同或近似;图1:一个好的引擎能对输入的反应必须和真实系统相同
引擎就是一个图网络,他的结点是代表关节,连边代表链接关节的骨骼。推断:输入当前状态,可观测变量,输出是更新状态,隐藏变量。控制:输入 action 并作为优化参数,通过 model 模拟优化,最终选择最优的动作去执行,迭代进行这个过程,最终可以完成对系统的控制。
算法的关键模块
图3:对物理系统的建模
图3代表在物理系统中,我们可以用一个 Graph(global feature(g),node feature(n), edge feature(e) )来对他建模,把臂表示成节点,把关节表示成连边,分别用具体数据可如下:
有了当前的状态和动作(动作指的就是施加在关节上的力),随着物理系统的运动,我们可以得到一个数据的序列。我们就可以用当前的状态和动作去预测未来的状态了。由于每个状态都可以表示成一个Graph,所以我们可以用一个 Graph 到Graph 的映射来完成这个预测过程,作者提出了一个基本的 Graph 到 Graph 映射组件,叫做Graph Network(GN) block,一个 GN block 接受一个 Graph,经过运算,输出一个Graph。
输入为全局信息(g),所有节点信息 ni 组成的集合和所有连边信息 ej 组成的集合,连边信息中的 sj 和 rj 指的是 sender 和 reciver,也就是连边的出发节点和到达节点。
中间运算过程和输出,fe 指连边信息的更新,他会用到全局信息、这条连边之前的信息,和与这条连边相关的节点信息,映射成下一时刻的连边信息 ej*。fn 指节点信息的更新,他会用到所有和他相连的连边信息、这个节点之前的信息和全局信息,映射成下一时刻的节点信息 ni*。fg 是指在所有连边和节点都更新之后,用全部的连边信息和节点信息结果更新全局信息。
图6(c)和(d)可应用于预测模型中,图(c)用两个 GNs 的原因是允许所有节点和边通过第一个 GN 的 G′ 输出进行通信。初步测试表明,这比单个 IN/GN 具有更大的性能优势。图(d)是基于递归 GN 的前向模型,该模型包含三个 RNN 子模块(gru,Cho et al.,2014))分别应用于所有边、节点和全局特征,然后再由 GN 块组成。图(e),应用于推断模型中,递归核心以 Gd 和隐藏图 Gh 作为输入,将它们连接起来并传递给 GN 块。GN 块返回的图被拆分成输出 G* 和更新的隐藏图G*h。1. 预测
a. 对于单个系统的预测模型,基于 GN 的模型可以在随机控制下进行非常精确的预测
上图显示,在 Swimmer6 模型中,预测和真实情况很接近。上图显示,几乎所有模型结果都优于固定预测基线(输出状态等于输入状态)。以上图 (a)-(b)表明,在我们测试的 7 个模拟控制系统中,有 6 个系统的 GN 模型的误差低于基于 MLP 的模型。对于具有大量重复结构的系统,如 Swimmer,这一点尤为明显;而对于具有很少重复结构的系统,如摆锤,GN 和 MLP 基线之间的差异可以忽略不计。这些结果表明,基于 GN 的预测模型对于学习各种复杂物理系统的预测动力学非常有效。以上图(c)-(d)表明,从训练到测试数据,以及在不同的动作分布中,GN 的泛化效果优于 MLP 基线。对于Swimmer6,从训练到测试数据以及从学习的 DDPG 试剂记录的数据的误差相对增加,对于 GN 模型比 MLP 基线更小。我们推测 GN 的高级泛化是隐式正则化的结果,因为它在所有身体和关节上共享参数的归纳偏好;MLP原则上可以将其计算的不相交子集用于每个身体和关节,这可能会削弱泛化。b. 多个系统的预测模型,非常灵活,可解决系统属性间广泛变化和不同结构的系统间变化。
图10:不同Swimmer模型中,数据训练和无训练评估结果上图10显示,当在一个由 3-6,8-9 链接组成的 Swimmer 的混合数据集上训练时,GN模型再次学会了做出准确的向前预测。同时,训练了 3-6、8-9 个环节的 Swimmer 的 GN 模型,将零基础模型应用在 7 个和 10-15 个环节的 Swimmer,7和 10 环节准确,并从 11-15 环节逐渐下降。同时,它们的轨迹在视觉上非常接近实际情况。我们通过在多个具有完全不同结构的系统上训练一个单独的 GN 模型来进一步推动这一点,并发现了类似的积极结果(参见图2,红色和黄色条)。这突出了 GN 和 MLP 模型在一般适用性方面的一个关键区别,GN可以自然地操作可变结构的输入,而 MLP 需要固定大小的输入。为了评估我们的方法在现实世界的适用性,我们训练了基于 GN 的前向模型,这些模型是在执行叠加任务的人工控制下,基于真实 JACO 本体感觉的数据。我们发现前馈 GN 性能不如递归 GN 预测模型准确。上图显示了来自测试集的代表性预测轨迹以及总体性能。这些结果表明,基于 GN 的前向模型是一种很有前途的模型学习方法。
上图表明,没有系统识别模块的基线 GN 模型(黑条)表现最差。一个总是提供真实静态参数(中间蓝条)的模型,因此不需要系统辨识,表现最好。一个没有显式访问真实静态参数,但带有系统识别模块(浅蓝色条)的模型通常表现良好,有时非常接近观察到真实参数的模型。但是,当同一个模型的 ID 阶段中隐含参数与其预测阶段(红色条)不同(但来自同一分布)时,其性能与没有 ID 信息的模型(黑色)相似或更差。
图14:钟摆模型中系统辨识分析
上图中是在钟摆中的系统识别分析,(a)在20步ID阶段,控制输入被应用到三个不同长度、不可观测的摆上,这使得系统可以识别。(b)在随后的 80 步预测阶段,模型的预测轨迹(虚线)将密切跟踪地面真实情况(实线)。(c)在ID阶段,没有控制的输入应用于相同的系统,这使得系统可识别。(d)该模型预测的穿越系统轨迹与实际情况有很大不同。
图15:基于图网络MPC控制的模型对机械臂的形态和手掌位置模拟
我们训练了一个 GN 向前模型,并将其用于MPC,通过梯度下降优化控制输入,在已知的奖励函数下使预测的报酬最大化。我们发现基于 GN 的 MPC 可以支持我们所有控制系统的规划,包括一系列奖励功能。图10显示了在 20 步规划地平线下,分别与目标姿势和目标手掌位置匹配的模拟 JACO 轨迹帧。
图16:在Swimmer不同物理模拟系统中,不同模型评估结果
尽管 MPC 中使用的 Swimmer6 GN 模型经过训练,可以在随机动作下进行一步预测,但其游泳性能接近于使用真正的 Mujoco 物理作为模型的更复杂的规划算法,以及在系统上训练的 DDPG 代理的游泳性能(见上图中a)。当我们使用随机动作和 DDPG 代理轨迹的混合训练 GN 模型时,与 Mujoco planner 和学习的 DDPG 代理基线相比,我们的方法在性能上没有任何差异。与我们的正向模型如何在多个系统中学习精确的预测类似,我们还发现它们可以支持多个系统的MPC(在本视频中,一个模型用于钟摆、Cartpole、Acrobot、Swimmer6 和Cheetah)。我们还发现基于 GN 的 MPC 可以在控制环境下支持零基础泛化,对于训练有 3-6、8-9 个链接的游泳者,以及在 7、10-15 个链接的游泳者上进行测试。图上图 b 显示,对于许多游泳运动员来说,它的表现几乎和 Mujoco 基线一样好。由于现实世界中的控制设置通常是部分可观察的,我们使用 MPC 系统识别 GN 模型对在部分观测下的钟摆、车柱、游泳者、猎豹和 Jaco。该模型在前向预测实验中被训练,具有一个 ID 阶段,应用 20 个随机控制输入来隐式推断隐藏的属性。我们的结果表明,我们有系统识别模块的 GN 前向模型能够控制这些系统。d. 基于模型的强化学习:
图17:Swimmer6 SVG强化学习模型的学习曲线
在第二种基于模型的控制方法中,我们使用 SVG 联合训练了 GN 模型和策略函数(Heess等人,2015),其中模型用于将误差梯度反向传播到策略,以优化其参数。关键的是,我们的 SVG 代理不使用预先训练的模型,而是同时训练模型和策略。与无模型代理(SVG(0))相比,我们基于 GN 的 SVG 代理(SVG(1))在较少的事件后实现了更高级别的性能(上图)。但是,对于具有多个前向步骤(SVG(2-4)),基于 GN 的代理的性能并没有显著提高,在某些情况下甚至更差(SVG(5+)。本文引入了一个新的方法来学习和控制复杂系统,这个方法为图网络(GN)法。第一次把图网络技术用在了机械系统建模上,并与经典的物理引擎不同,此模型没有具体的物理定律先验知识,而是利用其以对象和关系为中心的偏置先验,通过对当前状态/下一个状态对的监督训练来学习近似它们。按照意识和智能的概念,只要一台机器具备了自我模拟(Self-emulating)的能力,它就具备了“意识”,那此模型应用到的 MPC 概念可能更接近于人内部的意识-控制-行为概念,也就往智能方向更进一步。为更好的进行学习,交流与讨论,本系列读书会是闭门读书会,我们会选取其中的少数几期进行直播。本次读书会的目的是通过闭门分享讨论的形式,我们将为大家提供更加沉浸,深度,自由的交流环境。此外,本次读书会还将选拔数名进行过高质量分享的青年学者免费参与我们后续的闭门研讨活动:“集智-凯风研读营”。研读营是集智年度最高水准的闭门科学研讨活动,是集智科学家们的年度聚会。
网络几何与深度学习—2018集智凯风研读营
从7月5日起,每周日晚上 20:00-21:30(暂定),持续时间预计 2-3 个月,今天为系列读书会第二期。
集智俱乐部QQ群|877391004
商务合作及投稿转载|swarma@swarma.org
◆ ◆ ◆
搜索公众号:集智俱乐部
加入“没有围墙的研究所”
让苹果砸得更猛烈些吧!
👇点击“阅读原文”,了解更多论文信息