返回介绍

数学基础

统计学习

深度学习

工具

Scala

三十七、IN [2016]

发布于 2023-07-17 23:38:24 字数 78202 浏览 0 评论 0 收藏 0

  1. 关于对象object、关系relation、物理physic 的推理reasoning 是人类智能的核心,也是人工智能的主要目标。论文 《Interaction Networks for Learning about Objects, Relations and Physics》 提出了交互网络interaction network:IN模型,该模型可以推理复杂系统中的对象如何交互、支持动态预测dynamical prediction、以及推断系统的摘要属性abstract property(即系统的整体属性,如物理系统的势能)。

    IN 结合了三种强大的方法:结构化模型structured model、仿真simulation、深度学习deep learning

    • 结构化模型可以利用对象之间关系的丰富的、显式的知识,这种知识与对象本身无关,从而支持跨各种上下文的通用推理。
    • 仿真是近似approximating 动态系统,预测复杂系统中的元素如何受到彼此的交互影响、以及系统动态影响的有效方法。
    • 深度学习将通用架构和高效的优化算法结合在一起,可以在具有挑战性的现实环境中提供高可扩展的学习和推断能力。

    IN 明确地将对关系的推理与对对象的推理分开,每个任务分配不同的模型,即:以对象为中心的推理object-centric reasoning 、以关系为中心的推理 relation-centric reasoning。这使得 IN 可以自动地将学习泛化到任意数量的、任意顺序的对象和关系,并且还可以通过新颖的、组合的方式重新组合IN学到的、关于对象和关系的知识。

    IN 模型将关系作为显式的输入,使得模型可以针对不同的输入数据有选择地处理不同的潜在交互,而不必被迫考虑每种可能的交互,也不必由固定的架构fixed architecture施加特定的交互。

    论文评估了IN 在推理几个物理领域的能力:n 体问题n-body problem 、刚体碰撞问题rigid-body collision 、非刚体动力学问题non-rigid dynamics。实验结果表明:可以训练IN 模型从而精确模拟数千个 time step 上数十个对象的物理轨迹。

    IN 是第一个通用的、可学习的物理引擎,并且是强大的通用框架,可用于在各种复杂的现实世界领域中进行对象和关系的推理。

37.1 模型

  1. 为描述我们的模型,我们以物理系统的推理为例(如下图所示),并从简单的模型构建完整的interaction network:IN

    • 为了预测单个对象的动力学dynamics ,可以使用对象为中心的函数object-centric functionfO$ f_O $ 。该函数在时间t$ t $ 输入对象的状态ot$ \mathbf{\vec o}_t $ ,并输出下一个时刻的状态ot+1$ \mathbf{\vec o}_{t+1} $ 。

      如果两个或者多个对象由相同的动力学方程控制,那么fO$ f_O $ 可以独立地应用到每个对象,从而预测它们各自的、未来的状态。

      但是,如果对象之间彼此交互,那么fO$ f_O $ 还不足以预测未来的状态,因为fO$ f_O $ 无法捕获对象之间的关系。例如:假设有两个物体以及它们之间的一个有向关系,那么第一个物体(sendero1$ o_1 $ )通过它们之间的相互作用影响第二个物体 (receivero2$ o_2 $ )。

      如下图所示,一个固定的物体、一个自由移动的质点通过弹簧连接,则固定物体(sender)通过弹簧影响自由质点(receiver)的动力学。

    • 可以通过以关系为中心的函数relation-centric functionfR$ f_R $ 来预测交互作用的效应 effectet+1$ \mathbf{\vec e}_{t+1} $ 。fR$ f_R $ 将o1,o2$ o_1,o_2 $ 的当前状态、以及它们之间的关系属性r$ \mathbf{\vec r} $ (如弹簧常数)作为输入。同时也对fO$ f_O $ 进行修改,使得它可以接受交互效应et+1$ \mathbf{\vec e}_{t+1} $ 。即:

      et+1=fR(o1,t,o2,t,r),o2,t+1=fO(o2,t,et+1)

  2. 上面的公式仅考虑两个对象以及它们之间关系的简单系统。通过将对象和关系表示为图G=(O,R)$ \mathcal G=(\mathcal O,\mathcal R) $ ,可以将上述公式扩展到更大、更复杂的系统,其中节点对应于对象、边对应于关系。

    我们假设一个带属性的、有向的多图multigraphG=(O,R)$ \mathcal G=(\mathcal O,\mathcal R) $ 。多图意味着两个对象之间可以存在多种不同的关系,如刚性作用rigid interaction、磁性作用magnetic interaction

    • O={o1,,on}$ \mathcal O=\{o_1,\cdots,o_n\} $ 为对象集合,n$ n $ 为对象数量。
    • 每个对象oi$ o_i $ 具有状态oiRds$ \mathbf{\vec o}_{i } \in \mathbb R^{d_s} $ ,其中状态可以是静态的(如质量、尺寸),也可以是动态的(如位置、速度)。所有对象的状态构成对象状态矩阵ORn×ds$ \mathbf O\in \mathbb R^{n\times d_s} $ 。
    • 每个对象oi$ o_i $ 受到静态的外部效应 external effectxiRdx$ \mathbf{\vec x}_i\in \mathbb R^{d_x} $ ,如重力。这里暂不考虑时间变化的动态外部效应。所有对象的外部效应构成对象外部效应矩阵ORn×dx$ \mathbf O\in \mathbb R^{n\times d_x} $ 。
    • R={R1,,Rm}$ \mathcal R=\{R_1,\cdots,R_m\} $ 为关系集合,m$ m $ 为关系数量。第j$ j $ 个关系Rj=<oj1,oj2,rj>$ R_j=$ 由三元组组成,分别代表 sender 对象oj1$ o_{j_1} $ 、receiver 对象oj2$ o_{j_2} $ 、关系属性rjRdr$ \mathbf{\vec r}_j\in \mathbb R^{d_r} $ 。

    basic IN 模型定义为:

    fm(G)=BRm×(2ds+dr),ϕR(B)=ERm×defa(G,X,E)=CRn×dc,ϕO(C)=PRn×dpIN(G)=ϕO(fa(G,X,ϕR(fm(G))))

    其中:

    • fm()$ f_m(\cdot) $ 为编组函数marshalling function,它将对象及其它们之间的关系重排为三元组向量:

      bj=[oj1||oj2||rj]R2ds+dr

      其中 || 表示向量拼接。

      所有三元组构成关系矩阵BRm×(2ds+dr)$ \mathbf B\in \mathbb R^{m\times (2d_s+d_r)} $ 。

    • ϕR()$ \phi_R(\cdot) $ 为关系模型relational model,它通过在每条边Rj$ R_j $ 的三元组向量bj$ \mathbf{\vec b}_j $ 上应用函数fR()$ f_R(\cdot) $ 从而得到这个关系的交互效应interaction effectej$ \mathbf{\vec e}_j $ :

      ej=fR(bj)Rde

      所有关系的交互效应组成交互效应矩阵ERm×de$ \mathbf E\in \mathbb R^{m\times d_e} $ 。

    • 聚合函数fa()$ f_a(\cdot) $ 在 receiver 对象oi$ o_{i} $ 上聚合所有以它为receiver 的交互效应{ej}jr=i$ \left\{\mathbf{\vec e}_j\right\}_{j_r = i} $ ,然后拼接对象状态oi$ \mathbf{\vec o}_i $ 、外部效应xi$ \mathbf{\vec x}_i $ ,从而得到对象模型的输入ci$ \mathbf{\vec c}_i $ :

      ci=fa({ej}jr=i||oi||xi)Rdc

      所有对象模型的输入为对象模型输入矩阵CRn×dc$ \mathbf{C}\in \mathbb R^{n\times d_c} $ 。

    • ϕO()$ \phi_O(\cdot) $ 为对象模型object model,它通过在每个对象oi$ o_i $ 的ci$ \mathbf{\vec c}_i $ 上应用函数fO()$ f_O(\cdot) $ 从而得到预测结果pi$ \mathbf{\vec p}_i $ :

      pi=fO(ci)Rdp

      所有对象模型的输出为预测结果矩阵PRn×dp$ \mathbf P\in \mathbb R^{n\times d_p} $ 。

  3. 这个基础的 IN 可以预测动态系统中状态的演变。对于物理仿真,P$ \mathbf P $ 可以等于对象的下一时刻的状态Ot+1$ \mathbf O_{t+1} $ 。

    还可以使用其它组件来扩展 IN,从而对系统进行摘要推断abstract inference。例如,不是将P$ \mathbf P $ 作为输出,而是通过另外一个聚合函数g()$ g(\cdot) $ 进行组合,并输出到摘要模型ϕA()$ \phi_A(\cdot) $ 中。此时将对整个系统返回单个输出qRdq$ \mathbf{\vec q}\in \mathbb R^{d_q} $ 。我们将在实验中使用 IN 预测系统的整体势能从而探索这种变体。

  4. IN 分别对每个bj$ \mathbf{\vec b}_j $ 和ci$ \mathbf{\vec c}_i $ 应用相同的fR$ f_R $ 和fO$ f_O $ ,这使得关系推理和对象推理能够处理任意数量的、任意顺序的对象和关系。但是,必须满足一个额外的约束条件才能保证这一点:fa$ f_a $ 函数必须在对象上和关系上是可交换的commutative和关联的associative。使用sum 操作可以满足这个要求,但是除法操作不行。

  5. IN 模型的通用定义和函数、算法的选择无关,这里我们描述了一种易于学习的实现,该实现能够对具有非线性关系和动态的复杂系统进行推理。

    定义RrRm×n$ \mathbf R_r\in \mathbb R^{m\times n} $ 为二元矩阵,表示m$ m $ 个关系中 receiver 对象的 one-hot 索引;定义RsRm×n$ \mathbf R_s\in \mathbb R^{m\times n} $ 为二元矩阵,表示m$ m $ 个关系中 sender 对象的 one-hot 索引。定义RaRm×dr$ \mathbf R_a\in \mathbb R^{m\times d_r} $ 为m$ m $ 个关系的属性特征{rj}$ \left\{\mathbf{\vec r}_j\right\} $ 组成的矩阵。

    • 根据定义有:fm(G)=B=[(RrO)||(RsO)||Ra]Rm×(2ds+dr)$ f_m(\mathcal G) = \mathbf B=[(\mathbf R_r\mathbf O)||(\mathbf R_s\mathbf O)||\mathbf R_a]\in \mathbb R^{m\times (2d_s+d_r)} $ 。

      即,每个关系的三元组由 receiver 状态、sender 状态、关系属性而组成。

    • B$ \mathbf B $ 的每一行应用fR$ f_R $ (一个 MLP)从而构成了交互效应矩阵E$ \mathbf E $ :(每一行代表一个关系)

      E=[fR(b1)fR(bm)]Rm×de
    • fa$ f_a $ 首先将 receiver 对象oi$ o_{i} $ 上聚合所有以它为receiver 的交互效应{ej}jr=i$ \left\{\mathbf{\vec e}_j\right\}_{j_r = i} $ ,然后拼接对象状态oi$ \mathbf{\vec o}_i $ 、外部效应xi$ \mathbf{\vec x}_i $ ,即:

      fa(G,X,E)=C=[O||X||(RrE)]Rn×(dc)
    • C$ \mathbf C $ 的每一行应用fO$ f_O $ (另一个 MLP)从而得到输出矩阵P$ \mathbf P $ :(每一行代表一个对象)

      P=[fO(c1)fO(cn)]Rn×dp
    • 为了推断系统的摘要属性,我们首先在P$ \mathbf P $ 上聚合所有节点的输出,得到向量p$ \mathbf{\vec p} $ :

      p=i=1npiRdp

      然后将p$ \mathbf{\vec p} $ 作为ϕA$ \phi_A $ (另一个 MLP)的输入,然后返回一个向量qRdq$ \mathbf{\vec q}\in \mathbb R^{d_q} $ ,它代表系统的一个abstract 的、全局的属性。

  6. 训练 IN 需要在ϕR$ \phi_R $ 和ϕO$ \phi_O $ 的可训练参数上优化目标函数。注意,fm$ f_m $ 和fa$ f_a $ 涉及的是不包含可训练参数的矩阵运算。

  7. 由于ϕR$ \phi_R $ 和ϕO$ \phi_O $ 分别在所有关系和所有对象之间共享,因此训练它们是高效的。这类似于 CNN ,由于 CNN 的参数共享使得 CNN 非常高效。

    CNN 将局部邻域的像素视为相关的交互实体,每个像素实际上是 receiver 对象、相邻像素是 sender 对象。卷积算子类似于ϕR$ \phi_R $ ,其中fR$ f_R $ 是作用于每个邻域的局部的非线性核函数。skip connection 大体上类似于 INO$ \mathbf O $ 同时作为ϕR$ \phi_R $ 和ϕO$ \phi_O $ 的输入。

37.2 实验

  1. 我们探索了两种类型的物理推理任务:预测系统的未来状态、估计系统的 abstract 属性(尤其是势能)。

    我们在三个复杂的物理领域中进行实验:

    • n 体系统 n-body system:所有n$ n $ 个物体相互之间都施加了万有引力(如太阳系),因此有n(n1)$ n(n-1) $ 个关系输入到我们的模型中。

      • 在整个模型过程中,对象的质量各不相同,而所有其它固定属性均保持常量。
      • 训练是在包含 6body 的训练集上进行的,但是测试时我们分别测试了 3-body6-body12-body
    • 弹跳球bouncing ball :固定盒子中的球,其中移动的球可能会相互碰撞,也可能和固定的墙壁碰撞。墙被表示为对象,其形状属性为一个矩形,inverse-mass 为零(质量无穷大)。一共有n$ n $ 个对象(包括墙)之间的n(n1)$ n(n-1) $ 个关系输入到我们的模型中。

      • 碰撞比万有引力更难模拟,并且数据分布更具有挑战性:每个球只有在不到 1% 的时间发生碰撞,其它所有时间都遵循直线运动。因此,该模型必须了解:尽管两个对象之间存在刚性关系,但是仅在它们接触时才存在有意义的、碰撞的相互作用。
      • 对象的属性之间也各不相同,包括形状shape、质量等,以及恢复系数restitution coefficiency (关系的一种属性)。
      • 训练是在装有 6 个球的盒子的训练集上进行的,其中盒子有四种不同尺寸。但是测试时我们分别测试了 3 个球、6 个球、9 个球。
    • 线条 string:由带质量的线条(通过弹簧连接的、带重量的质点)和位于线条下方静态的、刚性的圆组成。线条上的n$ n $ 个质点通过弹簧依次相连,因此具有2(n1)$ 2(n-1) $ 个关系。另外线条上的n$ n $ 个质点还和刚体圆具有刚体关系,因此还具有2n$ 2n $ 个关系。

      • 重力加速度是外部输入。
      • 训练是在 15 个质点的线条上进行的。但是测试时我们分别测试了 5 个质点的线条、15 个质点的线条、30 个质点的线条。
      • 在训练时,随机选择线条一端的质点始终保持静止,就好像固定在墙上一行,而其它质点可以自由移动。但是测试时,我们还测试了两端都固定的线条、两端都未固定的线条,从而评估泛化能力。

    我们使用物理引擎模拟了这些系统对象的 2D 轨迹,并记录它们的状态序列{Ot}$ \{\mathbf O_t\} $ 。 我们的模型将每个系统G$ \mathcal G $ 的状态O$ \mathbf O $ 、物理关系R$ \mathcal R $ 、外部效应X$ \mathbf X $ 作为输入。每个对象状态进一步分解为动态状态(如位置、速度),以及静态属性(如质量、大小、形状)。关系属性表示弹簧常数或恢复系数之类的量。输入为当前时刻的系统。

    • 预测实验prediction experiment的目标是输出对象在随后 time step 的速度。
    • 势能估计实验energy estimation experiment 的目标是当前time step 的势能。

    我们还为 prediction experiment 生成了包含未来多个时间步的 rollout 版本,从而评估模型在创建视觉的真实的仿真visually realistic simulation模拟时的有效性。此时,时刻t$ t $ 预测的输出速度vt$ v_t $ 将用于更新t+1$ t+1 $ 时刻的速度vt+1$ v_{t+1} $ 和位置。如下图所示,每一列包含三个 panel,分别代表三个视频帧,每帧代表 1000rollout step

    • 前两列表示n 体系统的真实情况和模型预测、中间两列表示弹跳球的真实情况和模拟预测、最后两列表示线条的真实情况和模拟预测。

    • 上方的 pannel 表示对系统进行训练的结果、中间和底部的 pannel 表示模型对于不同大小、结构的系统的泛化:

      • 对于 n 体系统,训练针对 6-body、泛化针对 3-body,12-body
      • 对于弹跳球,训练针对 6-ball、泛化针对 3-ball,12-ball
      • 对于线条,训练针对 15 个质点且固定线条的一端、泛化针对 20 个质点且固定线条的 0 个末端或 2 个末端。

  2. 训练集:每个训练、验证、测试数据集都是通过在 1000time step 上仿真 2000 个场景,并随机采样 100万200k200k 个单步的 (输入, 目标)pair 对组成。我们报告模型在测试集的性能。

    • 模型训练 2000epoch,在每个 epoch 对数据进行随机混洗。

    • 我们使用mini-batch 随机梯度下降,batch size = 100,并且数据分布保持平衡使得对象之间有相似的目标统计分布。

    • 我们尝试在训练的初始阶段,将少量高斯噪声添加到20%数据的输入位置、速度,然后在 epoch50~250 期间降低到 0% 。噪音的标准差是验证集每个对象相应位置、速度标准差的 0.05 倍。

      它使得模型能够体验物理上不可能由物理引擎生成的状态,并学会将其投影回附近的可能的状态。

      我们报告的误差结果并没有看出有噪音、无噪音结果的明显差异,但是经过噪音训练的模型的 rollout 在视觉上更逼真,并且静态对象在很多step 上的漂移 drift 也较小。

  3. 模型架构:

    • fR,fO,fA$ f_R,f_O,f_A $ 都使用 MLP,我们通过对隐层维度、层数进行网格搜索从而选择最佳的模型结构。
    • 所有训练目标和评估结果都采用预测值和真实直之间的均方误差 MSE
  4. baseline:很少有文献可以和我们的模型进行比较。我们考虑几种 baseline

    • 常量速度的 baseline:输出速度和输入速度相同。
    • MLPbaseline:具有两层的 300 维隐层,将所有输入数据展平为向量从而作为输入。
    • 移除了ϕR$ \phi_R $ 的 IN 的变体:将交互效应E$ \mathbf E $ 设置为零矩阵(因此只有对象的状态)。
  5. 实验结果:

    • prediction experiment:实验结果表明,IN 可以在训练后非常准确地预测下一步动态,其测试误差要比 baseline 低几个量级。每个物理领域的动力学主要取决于对象之间的交互,因此 IN 能够学习利用这些关系进行预测。

      • 没有交互的 IN 变体,其执行方式和效果与恒定速度的baseline 相似。
      • 全连接的基准MLP 理论上可以学习对象之间的交互,但是它不会受益于关系和对象之间的共享学习,而是被迫为每个对象并行地学习交互。

    • energy estimation experiment :实验结果表明,IN 的准确性要高得多。IN 总体上学习了重力势能和弹簧势能函数,并将它们应用于各自物理领域的关系中。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文