论文笔记-学习用图形网络网络模拟器模拟复杂物理

原始文件

在这里,我们为学习模拟和单一模型的实现提供了一个通用的框架,它可以在各种具有挑战性的物理领域(包括流体、刚性固体和可变形材料的相互作用)产生最先进的性能。我们的框架(我们称之为“图网络模拟器”(GNS))用粒子来表示物理系统的状态,粒子在图中表示为节点,通过学习消息传递来计算动力学。我们的结果表明,我们的模型可以从预测训练期间包含数千个粒子状态的单个时间步长扩展到不同的初始条件、数千个时间步长,并在测试期间添加至少一个数量级的粒子。我们的模型对跨各种评估指标的超参数选择具有鲁棒性:长期性能的主要决定因素是消息传递步骤的数量,通过用噪声破坏训练数据来减少错误的累积。我们的GNS框架是迄今为止最精确的通用学习物理模拟器,有望解决各种复杂的正反问题。

复杂物理的现实模拟器对于许多科学和工程学科来说是无价的,但是传统模拟器的创建和使用可能非常昂贵。建立一个模拟器可能需要数年的工程工作,通常需要在狭窄的设置范围内牺牲通用性来获得准确性。高质量的模拟器需要大量的计算资源,对其进行扩展是禁止的。由于缺乏对基础物理和参数的了解或难以近似,即使是最好的也往往是不准确的。传统模拟器的一个有吸引力的替代方案是使用机器学习直接从观测数据中训练模拟器,但对于大的状态空间和复杂的动力学,标准的端到端学习方法很难克服。

这里,我们提出一个从数据中学习模拟的通用框架——“图形网络模拟器”(GNS)。我们的框架施加了归纳偏差,其中丰富的物理状态由相互作用的粒子的图形表示,而复杂的动力学由节点之间学习的消息传输来近似。

我们在深度学习框架中实现了GNS框架,发现它可以学习精确模拟流体、刚性固体和可变形材料相互作用的各种物理系统。我们的模型也可以很好地扩展到比训练过的系统更大的系统和更长的时间范围。虽然以前的学习模拟方法高度集中于特定的任务,但我们发现单个GNS模型在几十个实验中表现良好,并且通常对超参数选择具有鲁棒性。我们的分析表明,性能由以下关键因素决定:其计算长程相互作用的能力,具有空间不变性的归因偏差,以及可以减少长期模拟轨迹上误差累积的训练程序。

通用可学模拟

我们假设t时刻世界的状态,状态轨迹可以用k个时间步应用物理动力学得到。一个模拟器,S: X → X,通过将以前的状态映射到未来的因果状态来模拟动力学。我们将模拟的“展开”轨迹表示为:,这是通过迭代计算的。模拟器计算反映当前状态如何变化的动态信息,并使用它将当前状态更新为预测的未来状态。一个例子是数值微分方程的求解器:这些方程计算动态信息,即时间导数,积分器是更新机制。

可学习的模拟器使用参数化函数逼近器()来计算动态信息,并且其参数可以针对一些训练目标进行优化。表示动态信息,其语义由更新机制决定。你可以把更新机制想象成一个被采用的函数,并用它来预测下一个状态,即。这里,我们假设一个简单的更新机制(一个欧拉积分器),y代表加速度。但是,也可以使用调用多次的更复杂的更新程序,例如高阶积分器。

模拟图上的消息传递

我们可以学习的模拟方法是采用物理系统基于粒子的表示,即n个粒子的每个xi代表其状态。物理动力学近似为粒子间的相互作用,例如粒子间能量和动量的交换。粒子间相互作用的建模方法决定了模拟方法的质量和普适性,例如,可以模拟的效果和材料的类型,以及在哪种情况下方法的效果是好还是差。我们对学习这些互动很感兴趣。原则上,它应该允许我们了解任何系统的动力学都可以表示为粒子动力学。因此,不同的值应该使粒子之间的相互作用函数跨越很大的范围,这是非常重要的。

基于粒子的模拟可以看作是图形化的消息传输。节点对应粒子,边对应粒子间的配对关系,在此基础上计算相互作用。我们可以在这个框架中理解SPH等方法——节点间传递的消息可能对应使用密度核来评估压力。

我们使用基于粒子的模拟器和图上消息传输之间的对应关系来定义基于GN的一般性。我们的工作分为三步——编码器、处理器和解码器。

编码器定义。编码器:基于粒子的状态表示x作为潜图嵌入,其中)。节点嵌入是粒子状态的学习函数。添加有向边,在具有潜在交互作用的粒子节点之间创建路径。边缘嵌入是对应的粒子ri;J的成对性质的学习功能,如它们位置之间的位移,弹簧常数等。图形级嵌入可以表示重力和磁场等全局属性(虽然在我们的实现中,我们只是将它们作为输入节点函数附加)。

处理器定义。处理器:通过m个学习消息传递步骤计算节点之间的交互,生成一系列更新的潜在图。它返回最终的图形。消息传递允许信息传播并遵守约束:所需的消息传递步骤的数量可能会随着交互的复杂性而增加。

解码器定义。解码器:来自最终潜像的节点)。学习应该使表示反映相关的动态信息,例如加速度,以便在语义上对更新过程有意义。

输入和输出表示。每个粒子的输入状态向量分别代表该位置的前一个速度序列,具有捕捉静态物质特性(如水、沙、质量、刚度、边界粒子)的特性。如果适用,系统的总体特性g包括外力和总体材料特性。监督学习的预测目标是每个粒子的平均加速度。注意,在我们的数据集中,我们只需要向量:使用有限差分来计算和。

编码器详情。编码器通过为每个粒子分配一个节点并在“连接半径”r内的粒子之间添加边来构建图形结构G0,该结构反映了粒子的局部相互作用,并在相同分辨率下对所有模拟保持不变。为了生成卷展栏,在每个时间步长,图形的边由最近邻算法重新计算,以反映当前粒子位置。

编码器将sum实现为多层感知器(MLP ),它将节点特征和边特征编码成大小为128的潜在向量和。

我们测试了编码器的两种变体,以区分它们是使用绝对位置信息还是相对位置信息。对于绝对变量,的输入是上述具有全局特征的xi。的输入,即ri;j实际上不携带任何信息,所以它被丢弃,其中固定偏差向量被设置为可训练的。相对编码器变体旨在对绝对空间位置施加恒定的感应偏置。通过屏蔽被迫忽略xi的圆周率信息。提供相对位置位移,其大小为。两种变体都将全局属性g连接到每个xi,然后将其传递给”。

处理器详细信息。我们的处理器使用与内部边缘和节点更新函数的MLP结构相同的MGN(其中m为超级参数)栈,以及* * *享受或不* * *享受的参数。我们使用的GN没有全局函数或者全局更新(类似于交互网络),输入输出潜在节点和边属性之间存在残差连接。

解码器详情。我们解码器的学习功能是MLP。在解码器之后,欧拉积分器用于更新未来的位置和速度,因此它对应于加速度并且具有2D或3D维度,这取决于物理域。如上所述,监督训练的目标仅仅是这些向量。

神经网络的参数化。所有MLP都有两个隐藏层(带ReLU激活),后面是一个不活动的输出层,每个层的大小是128。所有MLP(输出解码器除外)后面都跟有LayerNorm(层。我们通常会发现训练的稳定性提高了。

软件。我们使用TensorFlow 1、Sonnet 1和“图网”库来实现该模型。

训练噪音。对复杂和混沌的模拟系统进行建模需要一个模型来减少长期部署过程中的误差积累。因为我们在基本事实单步数据上训练我们的模型,所以我们永远不会向它们提供被这种累积噪声破坏的输入数据。这意味着,当我们通过向模型提供自己的噪声并以之前的预测作为输入来生成泛化时,其输入不在训练分布范围内的事实可能会导致更大的误差,从而迅速积累进一步的误差。我们用一个简单的方法使模型对噪声输入更鲁棒:在训练过程中,我们用随机行走噪声破坏模型的输入位置和速度,因此训练分布更类似于引入时产生的分布。

正规化。我们使用训练期间在线计算的统计数据,将所有输入和目标向量的元素标准化为零均值和单位方差。初步实验表明,归一化可以加快训练速度,但融合性能没有明显提高。

损失函数和优化程序。我们从训练轨迹中随机抽取粒子状态对,计算目标加速度,根据每个粒子的预测加速度计算L2损失,即。我们使用最小批量2,并使用Adam optimizer来优化此损失的模型参数。我们最多执行20M的梯度更新步骤,指数学习率从下降到。虽然模型可以用更少的步骤进行训练,但我们避免使用过高的学习率来减少数据集之间的差异,使设置之间的比较更加公平。

在训练过程中,我们通过在五个不变的验证轨迹上进行全长演示来定期评估我们的模型,并记录相关的模型参数,以获得最佳的演示MSE。当我们观察到MSE的下降可以忽略时,我们就停止训练。在GPU/TPU硬件上,对于更小更简单的数据集,MSE通常在几个小时之内。对于更大更复杂的数据集,可能需要长达一周的时间。

模型效果和动画:/these/bb 7 CFD 1d-20a 8-4f 08-8a2b-a 64 DD 04 e 37b 6