CN116324795A - 使用网格表示和图形神经网络模拟物理环境 - Google Patents
使用网格表示和图形神经网络模拟物理环境 Download PDFInfo
- Publication number
- CN116324795A CN116324795A CN202180067682.6A CN202180067682A CN116324795A CN 116324795 A CN116324795 A CN 116324795A CN 202180067682 A CN202180067682 A CN 202180067682A CN 116324795 A CN116324795 A CN 116324795A
- Authority
- CN
- China
- Prior art keywords
- grid
- node
- graph
- edge
- physical environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 114
- 238000000034 method Methods 0.000 claims abstract description 164
- 238000004088 simulation Methods 0.000 claims abstract description 122
- 230000008569 process Effects 0.000 claims abstract description 79
- 238000012545 processing Methods 0.000 claims description 70
- 230000006870 function Effects 0.000 claims description 29
- 239000012530 fluid Substances 0.000 claims description 26
- 230000003993 interaction Effects 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000001419 dependent effect Effects 0.000 claims description 5
- 230000033001 locomotion Effects 0.000 claims description 5
- 230000001133 acceleration Effects 0.000 abstract description 18
- 238000013461 design Methods 0.000 abstract description 4
- 238000005457 optimization Methods 0.000 abstract description 4
- 239000002245 particle Substances 0.000 description 127
- 238000012549 training Methods 0.000 description 39
- 230000003044 adaptive effect Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 13
- 239000000463 material Substances 0.000 description 13
- 238000010801 machine learning Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/08—Fluids
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书描述了一种模拟***,该模拟***使用图形神经网络执行物理环境的模拟。在时间步序列中的一个或多个时间步中的每个时间步处,***可以使用图形神经网络处理在当前时间步处的物理环境的当前状态的表示,以生成在下一时间步处的物理环境的下一状态的预测。该***的一些实施方式适用于硬件加速。除了执行模拟,该***还可用于基于测量的真实世界数据来预测物理量。该***的实施方式是可微分的并且也可用于设计优化和用于优化控制任务。
Description
相关申请的交叉引用
本申请要求在2020年10月2日提交的“SIMULATING PHYSICAL ENVIRONMENTSUSING GRAPH NEURAL NETWORKS(使用图形神经网络模拟物理环境)”的美国临时专利申请序列号63/086,964的申请日的权益,该申请的全部内容通过引用并入本文。
背景技术
本说明书涉及使用机器学习模型处理数据。
机器学习模型接收输入并基于接收到的输入生成输出,例如预测输出。一些机器学习模型是参数模型,并基于接收到的输入和基于模型参数的值生成输出。
一些机器学习模型是深度模型,它们采用多层模型为接收到的输入生成输出。例如,深度神经网络是一种深度机器学习模型,它包括一个输出层和一个或多个隐藏层,每个隐藏层对接收到的输入应用非线性变换以生成输出。
发明内容
本说明书一般描述了一种模拟***,该模拟***在一个或多个位所的一个或多个计算机上实现为计算机程序,该***使用图形神经网络执行物理环境的模拟。特别地,在时间步序列中的一个或多个时间步中的每一个,***可以使用图形神经网络处理在当前时间步处的物理环境的当前状态的表示以生成在下一时间步处的物理环境的下一状态的预测。
由本说明书中描述的模拟***生成的模拟(例如,其表征在时间步序列上的物理环境的预测状态)可用于多种目的中的任何一种。在一些情况下,可以将模拟的视觉表示生成为例如视频,并提供给模拟***的用户。在一些情况下,可以处理模拟的表示以确定满足可行性准则,并且可以响应于满足可行性准则来构建物理装置或***。例如,模拟***可以生成飞机机翼上气流的空气动力学模拟,并且物理构造飞机机翼的可行性准则可以是飞机机翼上的力或应力不超过阈值。在一些情况下,与物理环境交互的代理(例如,强化学习代理)可以使用模拟***来生成环境的一个或多个模拟,其模拟代理在环境中执行各种动作的效果。在这些情况下,作为确定是否在环境中执行某些动作的一部分,代理可以使用环境的模拟。
贯穿本说明书,实体的“嵌入”可以指代作为数值的有序集合(例如,数值的向量或矩阵)的实体的表示。可以将实体的嵌入生成为例如处理表征实体的数据的神经网络的输出。
根据第一方面,提供了一种由一个或多个数据处理装置执行的用于模拟物理环境的状态的方法,该方法包括对于多个时间步中的每一个:获取定义在当前时间步处的物理环境的状态的数据,其中,定义在当前时间步处的物理环境的状态的数据包括定义网格的数据,其中,网格包括多个网格节点和多个网格边,其中,每个网格节点与相应的网格节点特征相关联;生成在当前时间步处的物理环境的状态的表示,该表示包括表示图形的数据,该图形包括:多个节点,每个节点与相应的当前节点嵌入相关联;以及多个边,每个边与相应的当前边嵌入相关联,其中,表示在当前时间步处的物理环境的状态的图形中的每个节点对应于相应的网格节点;在一个或多个更新迭代中的每一个处更新图形,包括在每个更新迭代处:使用图形神经网络处理定义图形的数据,以更新图形中每个节点的当前节点嵌入和图形图中每个边的当前边嵌入;在更新后,处理图形中每个节点的相应当前节点嵌入,以生成与图形中每个节点对应的相应动力学特征;以及基于以下确定在下一时间步处的物理环境的状态:(i)与图形中的节点对应的动力学特征,以及(ii)在当前时间步处的物理环境的状态。
在一些实施方式中,网格涵盖物理环境。
在一些实施方式中,网格表示物理环境中的一个或多个对象。
在一些实施方式中,对于多个网格节点中的每一个,与网格节点相关联的网格节点特征包括在当前时间步处的网格节点的状态,其中,在当前时间步处的网格节点的状态包括:位置坐标,位置坐标表示网格节点在当前时间步处的物理环境参考系中的位置。
在一些实施方式中,对于多个网格节点中的每一个,与在当前时间步处的网格节点相关联的网格节点特征进一步包括在环境中对应于在当前时间步处的网格节点的位置处的流体密度、流体粘度、压力或张力中的一个或多个。
在一些实施方式中,对于多个网格节点中的每一个,与网格节点相关联的网格节点特征还包括在一个或多个先前时间步中的每一个处的网格节点的相应状态。
在一些实施方式中,生成在当前时间步处的物理环境的状态的表示包括生成图形中的每个节点的相应的当前节点嵌入,包括对于图形中的每个节点:使用图形神经网络的节点嵌入子网络处理包括对应于图形中的节点的网格节点的特征的一个或多个的输入,以生成图形中的节点的当前节点嵌入。
在一些实施方式中,对于图形中的每个节点,对于节点嵌入子网络的输入还包括物理环境的一个或多个全局特征。在一些实施方式中,物理环境的全局特征包括施加到物理环境的力、物理环境的重力常数、物理环境的磁场或其组合。
在一些实施方式中,图形中的每个边连接图形中的相应的节点对,其中,图形包括多个网格空间边和多个世界空间边,其中,生成在当前时间步处的物理环境的状态的表示包括:对于由网格中的边连接的每个网格节点对,确定对应的图形节点对由图形中的网格空间边连接;以及对于在物理环境的参考系中具有相隔小于阈值距离的相应位置的每一个网格节点对,确定对应的图形节点对由图形中的世界空间边连接。
在一些实施方式中,生成在当前时间步处的物理环境的状态的表示包括生成图形中的每个边的相应的当前边嵌入,包括对于图形中的每个网格空间边:使用图形神经网络的网格空间边嵌入子网络处理输入以生成网格空间边的当前边嵌入,所述输入包括:与图形中的网格空间边连接的图形节点对应的网格节点的相应位置、表征与图形中的网格空间边连接的图形节点对应的网格节点的相应位置之间的差异的数据或其组合。
在一些实施方式中,该方法还包括:对于图形中的每个世界空间边:使用图形神经网络的世界空间边嵌入子网络处理输入以生成世界空间边的当前边嵌入,所述输入包括:与图形中的世界空间边连接的图形节点对应的网格节点的相应位置、表征与图形中的世界空间边连接的图形节点对应的网格节点的相应位置之间的差异的数据或其组合。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个节点的当前节点嵌入,包括对于图形中的每个节点:使用图形神经网络的节点更新子网络处理输入以生成节点的更新节点嵌入,所述输入包括:(i)节点的当前节点嵌入,以及(ii)连接到节点的每个边的相应当前边嵌入。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个边的当前边嵌入,包括对于图形中的每个网格空间边:使用图形神经网络的网格空间边更新子网络处理输入以生成网格空间边的更新边嵌入,所述输入包括:(i)网格空间边的当前边嵌入,以及(ii)由网格空间边连接的每个节点的相应当前节点嵌入。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个边的当前边嵌入,包括对于图形中的每个世界空间边:使用图形神经网络的世界空间边更新子网络处理输入以生成世界空间边的更新边嵌入,所述输入包括:(i)世界空间边的当前边嵌入,以及(ii)由世界空间边连接的每个节点的相应当前节点嵌入。
在一些实施方式中,处理图形中每个节点的相应当前节点嵌入以生成与图形中每个节点对应的相应动力学特征,包括对于每个图形节点:使用图形神经网络的解码器子网络处理图形节点的当前节点嵌入,以生成图形节点的相应动力学特征,其中,动力学特征表征了与图形节点对应的网格节点的网格节点特征的变化率。
在一些实施方式中,基于(i)对应于图形中的节点的动力学特征以及(ii)在当前时间步处的物理环境的状态来确定在下一时间步处的物理环境的状态,包括对于每个网格节点:基于(i)在当前时间步处的网格节点的网格节点特征以及(ii)网格节点特征的变化率来确定在下一时间步处的网格节点的网格节点特征。
在一些实施方式中,该方法还包括对于多个时间步中的一个或多个:为网格的每个网格节点确定相应的一组一个或多个重新网格化参数;以及基于重新网格化参数来适配网格的分辨率,包括:拆分(split)网格中的一个或多个边;坍缩(collapse)网格中的一个或多个边;或两者。
在一些实施方式中,为网格的每个网格节点确定相应的一组一个或多个重新网格化参数包括:在更新后,使用重新网格化神经网络处理每个图形节点的相应的当前节点嵌入,以生成与图形节点对应的网格节点的相应的重新网格化参数。
在一些实施方式中,基于重新网格化参数适配网格的分辨率包括基于重新网格化参数识别应被拆分的网格的一个或多个网格边,包括对于一个或多个网格边:为连接到网格边的网格节点使用重新网格化参数确定网格边的定向边长;以及响应于确定网格边的定向边长超过阈值,确定应当拆分网格边。
在一些实施方式中,基于重新网格化参数适配网格的分辨率包括基于重新网格化参数识别应被坍缩的网格的一个或多个网格边,包括对于一个或多个网格边:使用重新网格化参数确定将通过坍缩网格边创建的新网格边的定向边长;以及响应于确定新网格边的定向边长不超过阈值,确定网格边应被坍缩。
在一些实施方式中,当从属于权利要求10时,其中,该方法由数据处理装置执行,数据处理装置包括一个或多个计算机并且包括一个或多个硬件加速器单元;其中,在一个或多个更新迭代中的每一个处更新图形包括使用包括L个消息传递块的处理器***来更新图形,其中,每个消息传递块具有相同的神经网络架构和单独的神经网络参数集;该方法还包括:顺序地应用消息传递块来在多次迭代中处理定义图形的数据;以及使用一个或多个硬件加速器单元顺序地应用消息传递块来处理定义图形的数据。
在一些实施方式中,该方法由包括多个硬件加速器的数据处理装置执行,该方法包括在硬件加速器上分布使用消息传递块的处理。
在一些实施方式中,物理环境包括包含物理对象的真实世界环境;其中,获取定义在当前时间步处的物理环境的状态的数据包括从物理对象获取定义物理对象的形状的2D或3D表示的对象数据;其中,输入交互数据,交互数据定义物理对象与真实世界环境的交互;其中,生成在当前时间步处的物理环境的状态的表示使用对象数据和交互数据来生成物理环境的状态的表示;并且其中,确定在下一时间步处的物理环境的状态包括确定以下的一个或多个:i)更新的对象数据,其定义物理对象的形状的更新的2D或3D表示;ii)应力数据,其定义在物理对象上的应力的2D或3D表示;iii)定义对象嵌入其中的流体中的速度、动量、密度或压力场的数据。
在一些实施方式中,交互数据包括表示施加到对象的力或变形的数据;生成在当前时间步处的物理环境的状态的表示包括将每个网格模式与定义网格节点是否是对象的一部分的网格节点特征相关联;并且确定在下一时间步处的物理环境的状态包括确定更新的对象数据,更新的对象数据定义物理对象的形状的更新的2D或3D表示或者在物理对象上的压力或应力的表示。
在一些实施方式中,物理环境包括包含物理对象的真实世界环境,其中,确定在下一时间步处的物理环境的状态包括确定在一个或多个下一时间步处的物理对象的形状的表示;并且其中,方法还包括将真实世界环境中的物理对象的形状或运动与形状的表示进行比较以验证模拟。
根据第二方面,提供了一种使用任一前述方面的方法设计对象形状的方法,其中,定义在当前时间步处的物理环境的状态的数据包括表示对象的形状的数据;其中,确定在下一时间步处的物理环境的状态包括确定在下一时间步处的对象的形状的表示;并且其中,设计对象的方法包括通过图形神经网络反向传播目标函数的梯度,以调整表示物理对象的形状的数据,以确定优化目标函数的对象的形状。
在一些实施方式中,该方法进一步包括制作具有优化目标函数的形状的物理对象。
根据第三方面,提供了一种使用任一前述方面的方法来控制机器人的方法,其中,物理环境包括包含物理对象的真实世界环境;其中,确定在下一时间步处的物理环境的状态包括确定物理对象的形状或配置的表示;其中,确定在下一时间步处的物理环境的状态包括确定物理对象的形状或配置的预测表示;并且其中,方法还包括通过控制机器人以优化目标函数使用预测表示来控制机器人朝向物理对象的目标位所、形状或配置操纵物理对象,所述目标函数取决于预测表示和物理对象的目标位所、形状或配置之间的差异。
根据第四方面,提供了一种由一个或多个数据处理装置执行的用于模拟物理环境的状态的方法,该方法包括对于多个时间步中的每个时间步:获取定义在当前时间步处的物理环境的状态的数据;生成在当前时间步处的物理环境的状态的表示,该表示包括表示图形的数据,该图形包括多个节点以及多个边,每个节点与相应的当前节点嵌入相关联,每个边与相应的当前边嵌入相关联;在一个或多个更新迭代中的每一个处更新图形,包括在每个更新迭代处:使用图形神经网络处理定义图形的数据以更新图形中每个节点的当前节点嵌入和图形中每个边的当前边嵌入;在更新后,处理在图形中的每个节点的相应当前节点嵌入,以生成与图形中每个节点对应的相应动力学特征;并基于:(i)与图形中的节点对应的动力学特征,以及(ii)在当前时间步处的物理环境的状态来确定下一时间步处的物理环境的状态。
在一些实施方式中,定义在当前时间步处的物理环境的状态的数据包括在当前时间步处的物理环境中的多个粒子中的每一个的相应的特征,并且其中,表示当前时间步处的物理环境的状态的图形中的每个节点对应于相应的粒子。
在一些实施方式中,多个粒子包括包含在流体、刚性固体或可变形材料中的粒子。
在一些实施方式中,对于多个粒子中的每一个,在当前时间步处的粒子的特征包括粒子在当前时间步处的状态,其中,粒子在当前时间步处的状态包括在当前时间步处的粒子的位置。
在一些实施方式中,对于多个粒子中的每一个,粒子在当前时间步处的状态还包括粒子在当前时间步处的速度、粒子在当前时间步处的加速度或两者。
在一些实施方式中,对于多个粒子中的每一个,粒子在当前时间步处的特征还包括粒子在一个或多个先前时间步中的每一个处的相应状态。
在一些实施方式中,对于多个粒子中的每一个,粒子在当前时间步处的特征还包括粒子的材料特性。
在一些实施方式中,生成在当前时间步处的物理环境的状态的表示包括为图形中的每个节点生成相应的当前节点嵌入,包括对于图形中的每个节点:使用图形神经网络的节点嵌入子网络处理包括与节点对应的粒子的特征的一个或多个的输入以生成节点的当前节点嵌入。
在一些实施方式中,对于图形中的每个节点,对于节点嵌入子网络的输入还包括物理环境的一个或多个全局特征。
在一些实施方式中,物理环境的全局特征包括施加到物理环境的力、物理环境的重力常数、物理环境的磁场或其组合。
在一些实施方式中,图形中的每个边连接图形中相应的节点对,并且其中,生成在当前时间步处的物理环境的状态的表示包括:识别物理环境中具有间隔小于阈值距离的相应位置的每个粒子对;并且对于每个识别出的粒子对,确定图形中对应的节点对由边连接。
在一些实施方式中,图形中每个边的当前边嵌入是预定义的嵌入。
在一些实施方式中,生成在当前时间步处的物理环境的状态的表示包括为图形中的每个边生成相应的当前边嵌入,包括对于图形中的每个边:使用图形神经网络的边嵌入子网络处理输入以生成边的当前边嵌入,该输入包括:与边连接的节点对应的粒子的相应位置、与边连接的节点对应的粒子的相应位置之间的差异、与边连接的节点对应的粒子相应位置之间的差异的大小或其组合。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个节点的当前节点嵌入包括,对于图形中的每个节点:使用图形神经网络的节点更新子网络处理输入以生成节点的更新的节点嵌入,该输入包括:(i)节点的当前节点嵌入,以及(ii)连接到节点的每个边的相应当前边嵌入。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个边的当前边嵌入包括,对于图形中的每个边:使用图形神经网络的边更新子网络处理输入以生成边的更新的边嵌入,该输入包括:(i)边的当前边嵌入,以及(ii)由边连接的每个节点的相应当前节点嵌入。
在一些实施方式中,处理图形中每个节点的相应当前节点嵌入以生成对应于图形中每个节点的相应动力学特征包括,对于每个节点:使用图形神经网络的解码器子网络处理该节点的当前节点嵌入以生成节点的相应动力学特征,其中,动力学特征表征与节点对应的粒子的位置的变化率。
在一些实施方式中,每个节点的动力学特征包括对应于该节点的粒子的加速度。
在一些实施方式中,基于(i)对应于图形中节点的动力学特征以及(ii)在当前时间步处的物理环境的状态确定在下一时间步处的物理环境的状态包括:对于每个粒子,基于(i)粒子在当前时间步处的位置以及(ii)与粒子对应的节点的动力学特征确定粒子在下一时间步处的相应位置。
在一些实施方式中,定义在当前时间步处的物理环境的状态的数据包括定义网格的数据,其中,网格包括多个网格节点和多个网格边,其中,每个网格节点与相应的网格节点特征相关联,并且其中,表示在当前时间步处的物理环境的状态的在图形中的每个节点对应于相应的网格节点。
在一些实施方式中,网格涵盖物理环境。
在一些实施方式中,网格表示物理环境中的一个或多个对象。
在一些实施方式中,对于多个网格节点中的每一个,与网格节点关联的网格节点特征包括网格节点在当前时间步处的状态,其中,网格节点在当前时间步处的状态包括:表示网格节点在当前时间步处的网格参考系中的位置的位置坐标、表示在当前时间步处的物理环境的参考系中的网格节点的位置的位置坐标或两者。
在一些实施方式中,对于多个网格节点中的每一个,与在当前时间步处的网格节点相关联的网格节点特征还包括在当前时间步处对应于网格节点的环境中的位置处的流体密度、流体粘度、压力或张力中的一个或多个。
在一些实施方式中,对于多个网格节点中的每一个,与网格节点相关联的网格节点特征还包括网格节点在一个或多个先前时间步的每一个处的相应状态。
在一些实施方式中,生成在当前时间步处的物理环境的状态的表示包括为图形中的每个节点生成相应的当前节点嵌入,包括对于图形中的每个节点:使用图形神经网络的节点嵌入子网络处理包括与图形中的节点对应的网格节点的特征中的一个或多个的输入以生成图形中的节点的当前节点嵌入。
在一些实施方式中,对于图形中的每个节点,对于节点嵌入子网络的输入还包括物理环境的一个或多个全局特征。
在一些实施方式中,物理环境的全局特征包括施加到物理环境的力、物理环境的重力常数、物理环境的磁场或其组合。
在一些实施方式中,图形中的每个边连接图形中的相应节点对,其中,该图形包括多个网格空间边和多个世界空间边,其中,生成在当前时间步处的物理环境的状态的表示包括:对于由网格中的边连接的每个网格节点对,确定对应的图形节点对由图形中的网格空间边连接;并且对于在物理环境的参照系中具有相隔小于阈值距离的相应位置的每一个网格节点对,确定对应的图形节点对由图形中的世界空间边连接。
在一些实施方式中,生成在当前时间步处的物理环境的状态的表示包括为图形中的每个边生成相应的当前边嵌入,包括对于图形中的每个网格空间边:使用图形神经网络的网格空间边嵌入子网络处理输入以生成网格空间边的当前边嵌入,该输入包括:与图形中网格空间边连接的图形节点对应的网格节点的相应位置、表征与图形中网格空间边连接的图形节点对应的网格节点相应位置之间的差异的数据或其组合。
在一些实施方式中,该方法还包括,对于图形中的每个世界空间边:使用图形神经网络的世界空间边嵌入子网络处理输入以生成世界空间边的当前边嵌入,该输入包括:与图形中世界空间边连接的图形节点对应的网格节点的相应位置、表征与图形中世界空间边连接的图形节点对应的网格节点的相应位置之间的差异的数据或其组合。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个节点的当前节点嵌入包括,对于图形中的每个节点:使用图形神经网络的节点更新子网络处理输入以生成节点的更新的节点嵌入,该输入包括:(i)节点的当前节点嵌入,以及(ii)连接到节点的每个边的相应当前边嵌入。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个边的当前边嵌入包括,对于图形中的每个网格空间边:使用图形神经网络的网格空间边更新子网络处理输入以生成网格空间边的更新边嵌入,该输入包括:(i)网格空间边的当前边嵌入,以及(ii)由网格空间边连接的每个节点的相应当前节点嵌入。
在一些实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个边的当前边嵌入包括,对于图形中的每个世界空间边:使用图形神经网络的世界空间边更新子网络处理输入以生成世界空间边的更新边嵌入,该输入包括:(i)世界空间边的当前边嵌入,以及(ii)由世界空间边连接的每个节点的相应当前节点嵌入。
在一些实施方式中,处理图形中每个节点的相应当前节点嵌入以生成对应于图形中每个节点的相应动力学特征包括,对于每个图形节点:使用图形神经网络的解码器子网络处理图形节点的当前节点嵌入以生成图形节点的相应动力学特征,其中,动力学特征表征与图形节点对应的网格节点的网格节点特征的变化率。
在一些实施方式中,基于(i)对应于图形中节点的动力学特征以及(ii)在当前时间步处的物理环境的状态确定在下一时间步处的物理环境的状态包括,对于每个网格节点:基于以下来确定在下一时间步处的网格节点的网格节点特征:(i)在当前时间步处的网格节点的网格节点特征,以及(ii)网格节点特征的变化率。
在一些实施方式中,该方法还包括对于多个时间步的一个或多个:确定网格的每个网格节点的相应的一组一个或多个重新网格化参数;并且,基于重新网格化参数适配网格的分辨率,包括:拆分网格中的一个或多个边,坍缩网格中的一个或多个边或两者。
在一些实施方式中,确定网格的每个网格节点的相应的一组一个或多个重新网格化参数包括:在更新之后,处理每个图形节点的相应当前节点嵌入以生成与图形节点对应的网格节点的相应重新网格化参数。
在一些实施方式中,基于重新网格化参数适配网格的分辨率包括基于重新网格化参数识别应该被拆分的网格的一个或多个网格边,包括对于一个或多个网格边:使用连接到网格边的网格节点的重新网格化参数确定网格边的定向边长;并且响应于确定网格边的定向边长超过阈值,确定应拆分网格边。
在一些实施方式中,基于重新网格化参数适配网格的分辨率包括基于重新网格化参数识别应该被坍缩的网格的一个或多个网格边,包括对于一个或多个网格边:使用重新网格化参数确定将通过坍缩网格边创建的新网格边的定向边长;并且响应于确定新网格边的定向边长没有超过阈值,确定网格边应该被坍缩。
根据第五方面,提供了一个或多个非暂时性计算机存储介质,其存储指令,该指令当由一个或多个计算机执行时,使该一个或多个计算机执行任一前述方面的相应方法的操作。
根据第六方面,提供了一种***,包括:一个或多个计算机;以及,一个或多个存储设备,其通信地耦合到一个或多个计算机,其中,一个或多个存储设备存储指令,该指令当由一个或多个计算机执行时,使一个或多个计算机执行任何前面的方面的相应方法的操作。
本说明书中描述的主题可以在特定实施例中实施以实现以下优点中的一个或多个。
复杂物理的逼真模拟器对许多科学和工程学科来说都是无价的。然而,传统的模拟***的创建和使用可能非常昂贵。构建传统的模拟器可能需要多年的工程努力,并且通常必须在狭窄的设置范围内权衡通用性以换取准确性。此外,高质量的模拟器需要大量的计算资源,这使得扩展变得令人望而却步。本说明书中描述的模拟***可以在大量时间步上以更高的精度并且比一些传统的模拟***使用更少的计算资源(例如,存储器和计算能力)生成复杂物理环境的模拟。在某些情况下,模拟***可以比传统模拟***快一个或多个数量级地生成模拟。例如,模拟***可以通过单次通过神经网络来预测下一时间步处的物理环境的状态,而传统的模拟***可能需要在每个时间步处执行单独的优化。
模拟***使用图形神经网络生成模拟,该图形神经网络可以直接从训练数据中学习模拟复杂的物理学,并且可以泛化隐式学习的物理学原理,以在与训练数据中直接表示的不同的条件下准确模拟更广泛的物理环境。这也允许***泛化到比训练中使用的设置更大和更复杂的设置。相比之下,一些传统的模拟***需要对物理原理进行明确编程,并且必须手动适应被模拟的每个环境的具体特性。
模拟***可以执行基于网格的模拟,例如,其中,由网格表示每个时间步处的物理环境的状态。执行基于网格的模拟可以使模拟***能够比其他可能方式更准确地模拟某些物理环境,例如,包括很难建模为不相连的粒子云的变形表面或体积的物理环境。执行基于网格的模拟还可以使模拟***能够在模拟过程中动态适配网格的分辨率,例如,以在需要更高精度的模拟部分增加网格的分辨率,从而提高模拟的整体准确性。通过动态适配网格的分辨率,与一些传统的模拟***相比,模拟***能够使用更少的计算资源生成给定精度的模拟。
本说明书的主题的一个或多个实施例的细节在附图和下面的描述中阐述。从描述、附图和权利要求中,该主题的其他特征、方面和优点将变得显而易见。
附图说明
图1是示例物理环境模拟***的框图。
图2图示了物理环境模拟***的示例操作。
图3图示了物理环境的示例模拟。
图4是用于模拟物理环境的示例过程的流程图。
图5A图示了示例常规网格和示例自适应网格。
图5B图示了示例世界空间边和示例网格空间边。
图6A图示了与真实值和基于格的模拟相比较的自适应重新网格化模拟的示例。
图6B图示了由物理环境模拟***生成的泛化模拟的示例。
图7图示了在自适应重新网格化中使用的示例操作。
图8图示了具有自适应重新网格化的示例模拟。
图9图示了由物理环境模拟***生成的示例模拟,其中,被模拟的物理环境由粒子集合表示。
图10图示了由物理环境模拟***针对不同类型的材料生成的示例模拟。
各种附图中相同的附图标记和标号指示相同的元件。
具体实施方式
图1是可以模拟物理环境的状态的示例物理环境模拟***100的框图。物理环境模拟***100是在其中实现了下文描述的***、组件和技术的、在一个或多个位所中的一个或多个计算机上实现为计算机程序的***的示例。
“物理环境”通常指任何类型的物理***,包括例如流体、刚性固体、可变形材料、任何其他类型的物理***或其组合。物理环境的“模拟”可以包括在时间步序列中的每个时间步处的环境的相应模拟状态。在一个时间步处的物理环境的状态可以用例如粒子集合或网格来表示,这将在下面更详细地描述。第一时间步处的环境的状态可以例如由***100的用户作为输入提供给物理环境模拟***100。在时间步序列中的每个时间步处,***100可以处理输入并在下一时间步处生成对物理环境的状态的预测140。物理环境的示例模拟在图3中示出。
虽然一些物理环境(诸如包括例如流体的那些)可以被有效地模拟为独立粒子集(例如,如图9和10所示),但是其他物理环境(诸如包括例如可变形材料和复杂结构的那些)以相同的方式模拟可能更具挑战性。特别是,通过粒子表示来模拟此类***可能在计算上效率低下并且容易失败。相反,这样的物理环境可以更恰当地由网格来表示,该网格可以例如涵盖整个物理环境,或者表示环境中一个或多个对象的相应表面(例如,如图3、6A、6B和8所示)。
物理环境模拟***100可用于通过基于粒子的表示或基于网格的表示来模拟不同物理环境的动力学。应当理解,下文描述的示例物理环境仅用于说明目的,并且模拟***100可以用于模拟包括任何类型的材料或物理对象的任何类型的物理环境的状态。下面将依次描述物理环境的基于粒子的表示的模拟和物理环境的基于网格的表示的模拟。
模拟***100可以处理在当前时间步处的物理环境102的当前状态以预测在下一时间步处的物理环境140的下一状态。
物理环境102的当前状态可以表示为独立粒子的集合,其中,每个粒子与粒子特征集相关联(例如,如图9所示)。与粒子相关联的粒子特征可以例如由指定粒子的空间位所(例如空间坐标)以及可选地与该粒子相关联的各种物理属性的向量来定义,所述物理属性包括例如时间步处的质量、速度、加速度等。更具体地说,包括N个粒子的物理环境的当前状态X可以表示为X=(x0,…,xN-1),其中,xi是粒子i的特征的向量表示。在当前时间步处与粒子相关联的特征可以进一步指定在一个或多个先前时间步处与粒子相关联的粒子特征,这将在下面更详细地描述。表示物理环境的粒子数量N可以是例如100、1000、10000、100000或任何其他合适的粒子数量。
粒子i在时间t的特征集xi可以由表征粒子各种物理属性的状态向量来定义为例如其中,/>为粒子在时间t的位置,fi定义了表示与粒子对应的静态材料属性的特征(例如,值0可以表示沙子,值1可以表示水等),/>是粒子在时间步s处的速度,并且C是指定特征集中包含的先前速度/>(例如,粒子在C个先前时间步的每个处的速度)的数量的预定义数量。例如,如果C=1,则粒子i在当前时间步处的特征集xi包含了与前一时间步对应的速度,并且如果C=5,则粒子i在当前时间步处的特征集xi包括与之前5个时间步中的每一个相对应的速度。常数C可以是模拟***100的预确定超参数。
通常,模拟***100可以通过将物理环境在时间t的当前状态X=(x0,…,xN-1)映射到物理环境在时间t+1的下一状态来对物理环境的动力学进行建模。粒子的动力学可能受到环境的全局物理方面(诸如,施加到物理环境的力、物理环境的重力常数、物理环境中的磁场等)以及粒子间的相互作用(诸如粒子之间的能量和动量交换)的影响。
模拟***100的图形神经网络150可以包括编码器模块110、更新器模块120、解码器模块130。
编码器110可以包括节点嵌入子网络111和边嵌入子网络112。在每个时间步处,编码器110可以被配置为处理定义物理环境102的当前状态的数据(例如,=(x0,…,xN-1))以生成物理环境102的当前状态的表示,其可以包括例如图形114。“图形”(例如G=(V,E))是指包括一组节点V和边E的数据结构,使得每个边连接相应的节点对。为了生成图形114,在每个时间步处,编码器110可以为定义物理环境102的当前状态的数据中包括的N个粒子中的每一个分配一个节点,并实例化图形114中节点对之间的边。
为了确定图形114中的哪些节点对应该由边连接,在每个时间步处,编码器110可以识别物理环境102的当前状态中具有相隔小于阈值距离的相应位置(例如,如由它们相应的空间坐标定义)的每个粒子对,并实例化此类粒子对之间的边。可以通过任何适当的搜索算法(例如kd树算法)执行对相邻节点的搜索。
除了将节点分配给每个粒子并实例化对应于粒子的节点对之间的边,在每个时间步处,编码器110可以为图形114中的每个节点生成相应的节点嵌入。为了生成图形114中的节点的嵌入,编码器110的节点嵌入子网络111可以处理与该节点表示的粒子相关联的粒子特征。
除了表示物理环境102的当前状态的数据之外,对于节点嵌入子网络111内的输入还可以包括物理环境的全局特征106,例如施加到物理环境的力、物理环境的重力常数、物理环境的磁场或任何其他适当的特征或其组合。具体地,在每个时间步处,在节点嵌入子网络111处理节点特征以生成节点的嵌入之前,全局特征106可以被连结到与图形114中的每个节点相关联的节点特征上。(与图形中的节点关联的节点特征是指与该节点表示的粒子相关联的粒子特征)。
在每个时间步处,编码器110还可以为图形114中的每个边生成边嵌入。通常,连接图形114中的节点对的边的边嵌入可以表示由节点对表示的对应粒子的逐对属性。在每个时间步处,对于图形114中的每个边,编码器110的边嵌入子网络112可以处理与图形114中由边连接的节点对相关联的特征,并生成边的相应的当前边嵌入。具体地,边嵌入子网络112可以基于例如在时间步处与由边连接的节点相对应的粒子的相应位置、在时间步处与由边连接的节点相对应的粒子的相应位置之间的差异、在时间步处与由边连接的节点相对应的粒子的相应位置之间的差异的大小或其组合来生成在图形114中连接节点对的每个边的嵌入。
在一些实施方式中,代替确定粒子的逐对属性并在此基础上生成嵌入,可以预确定图形114中每个边的当前边嵌入。例如,每个边的边嵌入可以被设置为可训练的固定偏置向量,例如,其分量是模拟***100的参数并且在***100的训练期间被训练的固定向量。
在生成表示物理环境102在该时间步处的当前状态的图形114之后,模拟***100将定义图形114的数据提供给更新器120,更新器120通过多个内部更新迭代更新图形114以为时间步生成更新图形115。“更新”图形指的是在每个更新迭代处,通过例如基于图形中相邻节点的节点和/或边嵌入更新在图形中的一些或全部节点和边的节点和/或边嵌入,在图形中包括的节点和边之间执行消息传递步骤(例如,信息传播步骤)。换言之,在每个更新迭代处,更新器120将输入图形,例如Gt=(V,E),映射到输出图形Gt+1=(V,E),其中,输出图形可能具有与输入图形相同的结构(例如,相同的节点V和边E)但不同的节点和边嵌入。这样,在每个更新迭代处,模拟***100可以模拟粒子间相互作用,例如粒子对其相邻粒子的影响。内部更新交互的数量可以是例如1、10、100或任何其他适当的数量,并且可以是模拟***100的预确定超参数。
更具体地,更新器120可以包括节点更新子网络121和边更新子网络122。在每个更新迭代中,节点更新子网络121可以处理图形114中包括的节点的当前节点嵌入和图形114中连接到节点的每个边的相应当前边嵌入,以生成节点的更新节点嵌入。此外,在每个更新迭代处,边更新子网络122可以处理边的当前边嵌入和由边连接的每个节点的相应当前节点嵌入,以生成边的更新边嵌入。例如,连接节点i到节点j的边的更新边嵌入e′i,j以及节点i的更新节点嵌入v′i可以表示为:
e′i,j←fe(ei,j,vi,vj)v′i←fv(vi,∑je′i,j) (1)
其中,fe和fv分别表示边更新子网络122和节点更新子网络121执行的操作。
更新器120的最终更新迭代生成定义在时间步处的最终更新图形115的数据。可以将定义更新图形115的数据提供给模拟***100的解码器130。解码器130是神经网络,其被配置为处理与图形中节点相关联的节点嵌入以生成节点的一个或多个动力学特征116。在每个时间步处,解码器130可以被配置为处理在更新图形115中每个节点的相应节点嵌入(例如,更新的节点嵌入)以生成对应于更新图形115中每个节点的相应动力学特征116,例如,表征与节点对应的粒子的位置的变化率的特征。
在一个示例中,节点的动力学特征116可以包括例如对应于该节点的粒子的加速度。在另一示例中,节点的动力学特征116可以包括例如对应于该节点的粒子的速度。节点和边嵌入子网络(111、112)、节点和边更新子网络(121、122)以及解码器130可以具有使它们能够执行它们的所描述的功能的任何合适的神经网络架构。例如,它们可以具有任何适当数量(例如2层、5层或10层)的任何适当的神经网络层(例如,卷积层、完全连接层、循环层、注意力层等)并连接成任何适当的配置(例如,作为层的线性序列)。
***100可以向预测引擎160提供定义与更新图形115中的节点相关联的动力学特征116的数据。预测引擎160被配置为处理与图形中的节点相关联的动力学特征116以生成物理环境140的下一状态。具体地,在每个时间步处,预测引擎160可以处理定义对应于更新图形114中的每个节点的动力学特征116的数据,以及定义物理环境102的当前状态的数据,以对于由更新图形115中的节点表示的每个粒子确定粒子在下一时间步处的相应位置。预测引擎160还可以生成任何其他适当的数据,包括例如粒子在下一时间步处的相应速度。因此,在当前时间步处,模拟***100可以确定物理环境140的下一状态。
例如,在每个时间步t处,解码器130可以处理定义更新图形115的数据,并为更新图形115中的节点表示的每个粒子i生成加速度的值。在每个时间步处,每个粒子的加速度的值可以被提供给预测引擎160,预测引擎160可以对其进行处理以预测每个粒子在下一时间步处的位置。一般来说,每个粒子的加速度/>可以定义为下一步和当前步之间的平均加速度,例如定义为/>其中,/>是粒子在时间t的速度,并且Δt是常数,并且为清楚起见被省略。因此,在每个时间步处,基于粒子i的加速度/>粒子i在前一时间步处的位置/>以及粒子在当前时间步处的位置/>粒子在下一时间步处的位置(例如,物理环境140的下一状态)可以由预测引擎160如下确定:
因此,在每个时间步处,模拟***100可以处理物理环境102的当前状态并生成物理环境140的下一状态。
在每个时间步处,***100可以提供物理环境140的下一状态作为物理环境102在下一时间步处的当前状态。***100可以在多个时间步上重复该过程,并且从而生成模拟物理环境的状态的预测状态的轨迹。模拟可用于多种目的中的任何一种。在一个示例中,可以例如作为视频生成模拟的视觉表示,并将其提供给模拟***100的用户(例如,如图形10所示)。
如上所述,模拟***100可用于模拟表示为粒子的物理环境。然而,一些物理环境可以更恰当地表示为网格,例如,跨环境的网格(例如,如图8所示)或者表示环境中的一个或多个对象的网格(例如,如图3和6B中所示)。为了模拟这样的***,在每个时间步处,模拟***100可以处理定义物理环境102的当前状态的数据——其中这样的数据指定网格,基于网格生成图形114,在多个更新迭代上更新图形114以生成更新图形115,并基于更新图形115预测物理环境140的下一状态。接下来将更详细地描述该过程的各个方面。
包括例如连续场、可变形材料和/或复杂结构的物理环境可以用网格Mt=(V,EM)表示。“连续场”一般指例如与跨区域连续变化的物理质量(例如,速度、压力等)相关联的空间区域。例如,速度场中的每个空间位所都可以具有与其相关联的速度的特定值。
通常,“网格”是指包括多个网格节点V和网格边EM的数据结构,其中,每个网格边EM连接网格节点对。网格可以定义非常规(非结构化)格,该格将几何域(例如,表面或空间)的细分指定为具有特定形状(例如三角形或四面体形状)的较小元素(例如,单元或区域)。每个网格节点可以与物理环境中的相应空间位所相关联。在一些实施方式中,网格可以表示环境中一个或多个对象的相应表面。在一些实施方式中,例如,如果物理环境表示连续场,例如速度场或压力场,网格可以涵盖(例如,覆盖)物理环境。将在下面参考图2更详细地描述物理环境的网格表示的示例。
类似于上述基于粒子的表示,网格中的每个网格节点可以与当前网格节点特征相关联,当前网格节点特征表征环境中对应于网格节点的位置处的物理环境的当前状态。例如,在涉及具有连续场的物理环境的模拟的实施方式中,诸如例如在流体动力学或空气动力学模拟中,每个网格节点可以表示在与网格节点对应的环境中的位置处的流体粘度、流体密度或任何其他适当的物理方面。
作为另一个例子,在涉及具有对象的物理环境的模拟(例如,结构力学模拟)的实施方式中,每个网格节点可以表示对象上的一个点,并且可以与表征对象上的点的特定于对象的网格节点特征相关联,所述网格节点特征例如对象上相应点的位置、该点处的压力、该点处的张力以及任何其他适当的物理方面。此外,每个网格节点还可以与网格节点特征相关联,该特征包括环境中对应于网格节点的位置处的流体密度、流体粘性、压力或张力中的一个或多个。通常,网格表示不限于上述物理***,并且也可以通过网格表示并使用模拟***100模拟其他类型的物理***。
在所有实施方式中,并且类似于上述基于粒子的表示,与每个网格节点相关联的网格节点特征还可以包括网格节点在一个或多个先前时间步的每一个处的相应状态。
如上所述,模拟***100可用于处理定义物理环境102的当前状态的数据(例如,由网格表示,例如Mt=(V,EM))并生成定义物理环境140的下一状态的预测的数据。
具体地,在每个时间步处,编码器110可以处理当前状态102以通过将图形节点分配给包括在网格Mt中的每个网格节点V来生成图形114。此外,对于由网格边连接的每个网格节点V的对,编码器110可以实例化图形114中对应节点对之间的边,称为网格空间边EM。
在网格表示物理环境中的一个或多个对象的实施方式中,编码器110可以处理定义网格的数据并识别网格中的每一网格节点V的对并实例化图形114中每个对应节点对之间的称为世界空间边EW的边,所述网格节点V的对具有在世界空间W中(例如,在物理环境的参考系中)分开小于阈值距离的相应空间位置。具体而言,编码器110被配置为在尚未通过网格空间边连接的图形节点对之间实例化世界空间边。示例世界空间边和网格空间边在图5B中示出。
换句话说,编码器110可以将网格Mt=(V,EM)变换成对应的图形G=(V,EM,EW),其包括节点V,并且其中,一些节点对由网格空间边EM连接,并且一些节点对由世界空间边EW连接。通过网格空间边和世界空间边表示物理环境102的当前状态允许***100模拟网格节点对之间的交互,所述节点在网格空间中彼此移开很远(例如,它们是由多个其他网格节点和网格边分开)但在世界空间中彼此基本相近(例如,它们在物理环境的参考系中具有接近的空间位所),例如,如参考图5B所示。特别地,在图形中包括世界空间边允许在空间上接近的图形节点之间更有效的消息传递并且因此允许在更新器120中使用更少的更新迭代(即,消息传递步骤)的更准确的模拟,从而减少模拟期间的计算资源的消耗。
与对于上述基于粒子的表示类似,除了生成图形114之外,***100的编码器110还可以生成分别与图形114中的节点和边相关联的节点和边嵌入。
具体地,在每个时间步处,编码器110的节点嵌入子网络111可以处理与图形114中的每个节点相关联的特征(例如,网格节点特征),并生成图形中的每个节点的相应的当前节点嵌入114。除了表示物理环境102的当前状态的数据外,对于节点嵌入子网络111的输入还可以包括物理环境的全局特征106,例如施加到物理环境的力、物理环境的重力常数、物理环境的磁场或任何其他适当的特征或它们的组合。在每个时间步处,在节点嵌入子网络111处理节点特征以生成节点的嵌入之前,全局特征106可以连结到与图形114中的每个节点相关联的节点特征上。
在每个时间步处,图形神经网络150可以生成图形114中的每个边的边嵌入。例如,对于图形114中的每个网格空间边EM,图形神经网络150的网格空间边嵌入子网络可以处理与由网格空间边EM连接的图形节点对相关联的特征,并生成网格空间边的相应的当前边嵌入。具体地,网格空间边嵌入子网络可以基于以下来为图形114中的每个网格空间边EM生成边嵌入:对应于由在图形中的网格空间边连接的图形节点的网格节点的相应位置、表征与由图形中的网格空间边连接的图形节点对应的网格节点的相应位置之间的差异的数据或其组合。
类似地,在每个时间步处,对于图形114中的每个世界空间边EW,图形神经网络的世界空间边嵌入子网络可以处理与由世界空间边EW连接的图形节点对相关联的特征,并生成世界空间边的相应的当前边嵌入。具体地,世界空间边嵌入子网络可以基于以下来为图形114中的每个世界空间边EW生成边嵌入:与由图形中的世界空间边连接的图形节点对应的网格节点的相应位置、表征与图形中世界空间边所连接的图形节点对应的网格节点的相应位置之间的差异的数据或其组合。
因此,在每个时间步处,编码器110可以处理网格并生成具有关联图形节点嵌入、网格空间边嵌入以及在一些实施方式中还有世界空间边嵌入的图形114G=(V,EM,EW)。
在生成定义图形114的数据之后,在每个时间步处,模拟***100可以将图形114提供给更新器120,更新器120可以通过多个内部更新迭代来更新图形114,以生成该时间步的最终更新图形115。如上所述,在每个更新迭代处,更新器120的节点更新子网络121可以处理输入以生成节点的更新的节点嵌入,该输入包括(i)节点的当前节点嵌入,以及(ii)连接到节点的每个边的相应当前边嵌入。
在图形114包括网格空间边和世界空间边的实施方式中,更新器120的边更新子网络122可以包括网格空间边更新子网络和世界空间边更新子网络。在每个更新迭代处,网格空间边更新子网络可以被配置为处理输入以生成网格空间边的更新的边嵌入,该输入包括:(i)网格空间边的当前边嵌入,以及(ii)由网格空间边连接的每个节点的相应当前节点嵌入。此外,在每个更新迭代处,世界空间边更新子网络可以被配置为处理输入以生成世界空间边的更新的边嵌入,该输入包括:(i)世界空间边的当前边嵌入,以及(ii)由世界空间边连接的每个节点的相应的当前节点嵌入。
网格空间边更新子网络(fM)、世界空间边更新子网络(f)和节点更新子网络(fV)可以具有任何适当的神经网络架构,其使它们能够执行它们的描述的功能。例如,它们可以包括以任何适当的配置(例如,作为层的线性序列)连接的任何适当的神经网络层(例如,卷积层、完全连接层、循环层、注意力层等);仅作为一个特定示例,它们每个都可以使用具有残差连接的MLP来实现。
在以下情况下,消息传递的每个更新都可以通过消息传递块来实现。因此,图形神经网络可以实现为一组L个相同的消息传递块,每个块具有单独的网络参数集。也就是说,消息传递块可以是相同的,即具有相同的神经网络架构,但每个都可以有单独的神经网络参数集。每个消息块可以实现等式3定义的网格空间边更新子网络、世界空间边更新子网络和节点更新子网络,即,用于处理和更新网格空间边嵌入的网格空间边更新子网络、用于处理和更新世界空间边嵌入的世界空间边更新子网络以及用于处理和更新节点嵌入以及更新的网格空间和世界空间边嵌入的节点更新子网络。然后可以按顺序应用消息传递块,即每个(除了接收当前输入图形的第一个之外)被应用于前一个块的输出,以在多次迭代中处理定义图形的数据。
更新器120的最终更新迭代生成表示该时间步处的最终更新图形115的数据。在每个时间步处,定义更新图形115的数据可以被提供给解码器130。解码器130处理与图形115中每个节点相关联的节点嵌入,并为每个节点生成一个或多个动力学特征116,所述一个或多个动力学特征116表征对应于图形115中的图形节点的网格节点的网格节点特征的变化率。动力学特征116可以表示来自更新图形115的任何合适的网格节点特征的变化率,该特征例如是位置、速度、动量、密度或任何其他适当的物理方面。
在每个时间步处,预测引擎160可以基于以下部分来确定下一时间步处的网格节点特征:(i)网格节点在当前时间步处的网格节点特征,以及(ii)网格节点的变化率,通过例如将网格节点特征的变化率积分任何适当的次数。例如,对于一阶***,预测引擎160可以基于网格节点i在当前时间步处的位置和对应于网格节点i的动力学特征pi来将下一时间步处的网格节点i的位置/>确定为:
因此,通过在下一时间步处确定所有网格节点的网格节点特征,模拟***100可以确定物理环境140的下一状态。
训练引擎可以通过对训练数据集使用例如监督学习技术来训练图形神经网络150。训练数据可以包括训练示例集,其中,每个训练示例可以指定:(i)可以由图形神经网络150处理的训练输入,以及(ii)应该由图形神经网络150通过处理训练输入而生成的目标输出。训练数据可以由例如真实值物理模拟器(例如物理引擎)或以任何其他适当的方式例如从捕获的真实世界数据生成。例如,在基于粒子的实施方式中,每个训练示例中的训练输入可以对于环境中的每个粒子包括例如指定在时间t处在环境中粒子i的特征的向量可选地,噪声(例如,零均值固定方差随机噪声)可以被添加到训练输入;这可以提高在推断期间的推演(rollout)的稳定性。对于环境中的每个粒子,目标输出可以包括例如粒子i在时间t处的加速度/>
在每次训练迭代中,训练引擎可以从训练数据中采样一批一个或多个训练示例,并将它们提供给图形神经网络150,图形神经网络150可以处理在训练示例中指定的训练输入以生成对应的输出。训练引擎可以评估目标函数,该目标函数衡量以下两者之间的相似性:(i)训练示例指定的目标输出,以及(ii)图形神经网络生成的输出,该目标函数例如是交叉熵或平方误差目标函数。具体来说,目标函数L可以基于预测的每粒子加速度如下所示:
其中,dθ是图形神经网络模型,并且θ表示图形神经网络150的参数值。训练引擎可以例如使用反向传播技术确定目标函数的梯度,并且可以使用梯度(例如,使用任何适当的梯度下降优化算法,例如Adam)更新图形神经网络150的参数值。训练引擎可以在图形神经网络150的训练期间未使用的验证数据集上确定图形神经网络的性能度量。在基于网格的实施方式中,训练引擎可以以与上述类似的方式训练图形神经网络150,但训练输入可以包括网格节点特征,而不是粒子特征。
此外,在基于网格的实施方式中,可以通过使用例如特定于特定类型物理环境的真实值模拟器生成训练数据。因此可以通过使用不同类型的训练数据来训练图形神经网络150,其中,每个训练数据由不同的真实值模拟器生成并且特定于特定类型的物理环境。
在图形神经网络150的训练之后,***100可以用于模拟不同类型的物理环境的状态。例如,从在训练期间用粒子(或网格节点)的声音进行的单个时间步预测,***100可以有效地泛化到不同类型的物理环境、不同的初始条件、数千个时间步以及至少多一个数量级的粒子(或网格节点)。
在一些实施方式中,模拟***100可以在模拟过程中自适应地调整模拟网格的分辨率。网格的“分辨率”通常是指用于表示网格中物理环境的区域的网格节点和/或网格边的数量。对于多个时间步的一个或多个,***100可以识别网格的哪些区域需要“更高”分辨率(例如,更多节点和/或边)或“更低”分辨率(例如,更少节点和/或边)并使网格中的节点和/或边适应所需的分辨率。举例来说,如果由网格表示的物理环境包括流体和与流体接触的固体边界,则***100可以动态地增加表示其中预期速度场的高梯度的壁边界周围的地区的网格区域中的分辨率。在图5A、6A和8中图示了自适应分辨率的示例。
在一个示例中,***100可以根据尺寸调整场方法动态地调整网格的分辨率。更具体地,为了动态地调整网格分辨率,***100可以迭代地对网格应用三种操作:拆分网格中的一个或多个边、坍缩网格中的一个或多个边以及翻转网格中的一个或多个边。在图7中图示了这些操作。
“拆分”将第一网格节点连接至第二网格节点的网格边可以指代由(至少)两个新网格边和新网格节点替换网格边。第一新网格边可以将第一网格节点连接到新网格节点,并且第二新网格边可以将第二网格节点连接到新网格节点。在拆分网格边时,创建新节点。通过平均第一网格节点和第二网格节点的网格节点特征确定新网格节点的网格节点特征。更具体地,***100在以下情况下确定将网格节点i连接到网格节点j的网格边uij应该被拆分:
其中,Sij是对应于节点i和j的平均尺寸调整场张量,并且更具体地定义为:
换言之,当***100确定以上等式5中定义的条件对于网格边为真时,***100确定网格边无效并且应当被拆分。节点的尺寸调整场张量S可以是方阵,例如2×2矩阵。
“坍缩”连接第一网格节点和第二网格节点的网格边可以指移除第二网格节点,使得第一网格节点通过网格边连接到网格中的不同网格节点,而不是第二网格节点。如果坍缩操作没有创建任何新的无效网格边,例如满足等式6中定义的关系的网格边,则***100可以确定应该坍缩网格边。
“翻转”连接网格节点对的网格边可以指移除网格边并实例化在网格中的不同的第二网格节点对之间的新的网格边,其中,第二网格节点对最初不是由网格边连接,并且其中,新网格边可以例如在方向上基本上垂直于原始网格边。如果满足以下准则,***100可以确定应该翻转网格边:
其中,SA是对应于节点i、j、k和l的平均尺寸调整场张量。
如上所述,***100可以迭代地执行前述操作以便动态调整网格的分辨率。例如,对于多个时间步的一个或多个,***100可以识别满足等式7中定义的关系的所有可能的网格边并拆分它们。接下来,***100可以识别满足等式9中定义的关系的所有可能的网格边并翻转它们。接下来,***100可以识别满足等式7中的关系的所有可能的网格边并坍缩它们。最后,***100可以识别满足等式9的所有可能的网格边并翻转它们。以这种方式,***100可以在消耗比传统模拟***更少的计算资源的同时动态调整网格的分辨率以优化模拟的质量。总的来说,这些操作可以被称为由重新网格化器R执行。重新网格化器R可以是域独立的,例如,可以独立于重新网格化器被应用到的网格所表示的物理环境的类型。
在一些实施方式中,***100可以为网格的每个网格节点确定相应的一组一个或多个重新网格化参数(例如,包括尺寸调整场张量S),并且基于重新网格化参数适配网格的分辨率。在每个时间步处,***100可以通过使用称为重新网格化神经网络的神经网络处理更新图形115(例如,通过更新器120的最后更新迭代生成的图形)中图形节点的相应当前节点嵌入来确定网格中网格节点的重新网格化参数,其中,图形节点对应于网格节点。重新网格化神经网络可以具有使其能够执行它的所描述的功能的任何适当的神经网络架构,它的所描述的功能例如是处理图形节点的节点嵌入以生成网格中对应网格节点的一个或多个重新网格化参数。具体而言,重新网格化神经网络可以包括任何适当数量(例如,2层、5层或10层)并以任何适当配置(例如,作为层的线性序列)连接的任何适当神经网络层(例如,全连接层或卷积层)。
因此,在每个时间步处,***100可以生成表示物理环境140的下一状态的数据并且额外地为网格中的每个网格节点生成重新网格化参数集。基于重新网格化参数,并通过使用域独立的重新网格化器R,***100可以在下一时间步处动态调整网格的分辨率。例如,***100可以基于还没有适配的在时间步t+1处的原始网格Mt+1、在时间步t+1处的重新网格化参数St+1和域无关的重新网格化器R确定在时间步处t+1处的适配的网格M′t+1为:
M′t+1=R(Mt+1,St+1) (11)
***100可以例如通过对训练数据集使用监督学***滑的弯曲动力学。作为另一个例子,在计算流体动力学模拟中,域特定的重新网格化器可以被配置为生成重新网格化参数以细化其中预期速度场的高梯度的壁边界周围的网格。***100可以训练重新网格化神经网络以优化测量以下两个部分之间的误差(例如,L2误差)的目标函数:(i)重新网格化神经网络为网格节点生成的重新网格化参数,和(ii)由域特定的重新网格生成器生成的“目标”重新网格化参数。
通过在使用域特定的重新网格化器生成的训练数据上训练重新网格化神经网络,该***使重新网格化神经网络能够隐式地学习在域特定的重新网格化器中编码的潜在重新网格化原则并将它们泛化到新的、以前未预见的域。学习的自适应重新网格化可以允许***100使用更少的计算资源生成更准确的模拟,如上所述。通常,节点的重新网格化参数可以指使得能够实现动态重新网格化的任何合适的参数。尺寸调整场张量(如上所述)是重新网格化参数的一个例子。也可以使用其他可能的重新网格化参数,例如参考以下内容描述的重新网格化参数:Martin Wicke et al.,“Dynamic local remeshing forelastoplastic simulation,”ACM Trans.Graph.,29(4),2010(Martin Wicke等人,“用于弹塑性模拟的动态局部重新网格划分”,ACM Trans。图.,29(4),2010)。
在训练之后,在每个时间步处,***100可以处理包括表示物理环境的当前状态的网格的输入并且为该时间步的网格中的每个网格节点生成重新网格化参数集。
图2图示了由物理环境模拟***(例如,图1中的***100)的编码器模块、更新器模块和解码器模块对于表示网格的图形执行的操作。具体来说,编码器210生成物理环境的当前状态的表示(例如,将网格转换为图形),更新器220执行多个消息传递步骤(例如,更新图形),并且解码器230提取对应于图形中的节点的动力学特征。
这些图形包括由圆圈(250,255)表示的节点集以及由线(240,245)表示的边集,其中,每个边连接两个节点。图形200可以被认为是物理环境的简化表示(表示环境的实际图形可能具有比图2中描绘的多得多的节点和边)。
在此图示中,物理环境包括第一对象和第二对象,其中,对象可以彼此交互(例如,碰撞)。第一对象由被描绘为空心圆集的节点250表示,并且第二对象由被描绘为阴影圆集255的节点255表示。对应于第一对象的节点250通过被描绘为实线的网格空间边240(EM)连接。对应于第二对象的节点255也由网格空间边240(EM)连接。除了网格空间边之外,图形还包括被描绘为虚线的世界空间边245(EW)。世界空间边245连接表示第一对象的节点250和表示第二对象的节点255。具体而言,世界空间边245可以允许模拟未被内部网格空间交互捕获的外部动力学,诸如例如碰撞。
如上所述,编码器210生成物理环境的当前状态的表示。在这个图示中,编码器210生成表示两个对象并且包括节点、网格空间边和世界空间边的图形。更新器220在图形中的节点和边之间执行消息传递。具体地,如上所述,更新器220分别基于相邻节点和边的节点嵌入和边嵌入来更新节点嵌入和边嵌入。例如,如图2所示,基于每个相邻节点的节点嵌入以及连接该节点到所有相邻节点的所有边的边嵌入来更新节点嵌入。在最后一次更新迭代之后,更新器220生成更新图形。
解码器230处理更新后的图形并提取图形中每个节点的动力学特征260。例如,在该图示中,动力学特征260可以是对应于由图形中节点表示的每个网格节点的加速度。加速度可以是例如第一对象与第二对象碰撞的结果。根据动力学特征,模拟***100可以确定物理环境的下一状态,例如,表示第一对象和第二对象的网格节点的位置。
图3图示了由物理环境模拟***(例如,图形1中的***100)生成的物理环境300的示例模拟。在此图示中,物理环境由网格表示。特别地,用于生成模拟100的编码器、更新器和解码器的操作在上面的图2中在网格的图形表示上示出。
图4是用于模拟物理环境的状态的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位所的一个或多个计算机的***执行。例如,按照本说明书适当编程的物理环境模拟***,例如图1的模拟***100,可以执行流程400。
***获取定义在当前时间步处的物理环境的状态的数据(402)。在一些实施方式中,定义在当前时间步处的物理环境的状态的数据包括物理环境中的多个粒子中的每一个在当前时间步处的相应的特征。表示当前时间步处的物理环境的状态的在图形中的每个节点可以对应于包含在例如流体、刚性固体或可变形材料中的相应粒子。在一些实施方式中,对于多个粒子中的每一个,粒子在当前时间步处的特征包括粒子在当前时间步处的状态(例如,位置、速度、加速度和/或材料特性)。粒子在当前时间步处的状态还可以包括粒子在一个或多个先前时间步中的每一个处的相应状态。
在一些实施方式中,定义在当前时间步处的物理环境的状态的数据进一步包括定义包括多个网格节点和多个网格边的网格的数据。在这样的实施方式中,表示当前时间步处的物理环境的状态的图形中的每个节点可以对应于相应的网格节点。网格可以例如涵盖物理环境和/或表示物理环境中的一个或多个对象。每个网格节点可以与相应的网格节点特征相关联。
例如,对于每个网格节点,网格节点特征可以包括网格节点在当前时间步处的状态,包括例如表示当前时间步处网格节点在网格参考系中的位置的位置坐标、表示网格节点在当前时间步处的物理环境的参考系中的位置的位置坐标或两者。在另一示例中,对于每个网格节点,网格节点特征还可以包括在环境中对应于当前时间步处网格节点的位置处的以下中的一个或多个:流体密度、流体粘度、压力或张力。在又一示例中,与网格节点相关联的网格节点特征还可包括网格节点在一个或多个先前时间步的每一个处的相应状态。
***生成在当前时间步处的物理环境的状态的表示(404)。该表示可以是例如表示图形的数据,该图形包括多个节点以及多个边,每个节点都与相应的当前节点嵌入相关联,每个边都与相应的当前边嵌入相关联。图形中的每个边可以连接图形中相应的节点对。
生成在当前时间步处的物理环境的状态的表示可以包括为图形中的每个节点生成相应的当前节点嵌入。例如,***可以使用图形神经网络的节点嵌入子网络来处理包括对应于节点的粒子的一个或多个特征的输入,以生成该节点的当前节点嵌入。在一些实施方式中,对于节点嵌入子网络的输入进一步包括物理环境的一个或多个全局特征,例如,施加到物理环境的力、物理环境的重力常数、物理环境的磁场或其组合。
生成在当前时间步处的物理环境的状态的表示还可以包括:识别物理环境中具有相隔小于阈值距离的相应位置的每个粒子对;并且对于每个识别的粒子对,确定图形中对应的节点对由边连接。图形中每个边的当前边嵌入可以是例如预定义的嵌入。
在一些实施方式中,生成在当前时间步处的物理环境的状态的表示还可以包括为图形中的每个边生成相应的当前边嵌入。例如,对于图形中的每个边,***可以利用图形神经网络的边嵌入子网络处理输入以生成边的当前边嵌入,该输入包括:与该边连接的节点对应的粒子的相应位置、与该边连接的节点对应的粒子的相应位置之间的差异、与该边连接的节点对应的粒子的相应位置之间的差异的大小或者其组合。
在其中定义当前时间步处的物理环境的状态的数据进一步包括定义网格的数据的实施方式中,生成在当前时间步处的物理环境的状态的表示(包括为图形中的每个节点生成相应的当前节点嵌入)还可以包括,对于图形中的每个节点:使用图形神经网络的节点嵌入子网络处理输入以生成图形中节点的当前节点嵌入,该输入包括对应于图形中节点的网格节点的一个或多个特征。
在这样的实施方式中,图形可以进一步包括多个网格空间边和多个世界空间边。在这样的实施方式中,生成在当前时间步处的物理环境的状态的表示包括:对于由网格中的边连接的每个网格节点对,确定对应的图形节点对由图形中的网格空间边连接;并且对于在物理环境的参考系中具有分隔小于阈值距离的相应位置的每一网格节点对,确定对应的图形节点对由图形中的世界空间边连接。该***可以为图形中的每个边生成相应的当前边嵌入,包括对于图形中的每个网格空间边,使用图形神经网络的网格空间边嵌入子网络处理输入以生成网格空间边的当前边嵌入,该输入包括:与由图形中的网格空间边连接的图形节点对应的网格节点的相应位置、表征与图形中网格空间边连接的图形节点对应的网格节点的相应位置之间的差异的数据或者它们的组合。
***可以针对图形中的每个世界空间边,使用图形神经网络的世界空间边嵌入子网络处理输入以生成世界空间边的当前边嵌入,该输入包括:与图形中世界空间边所连接的图形节点对应的网格节点的相应位置、表征与图形中世界空间边连接的图形节点对应的网格节点的相应位置之间的差异的数据或其组合。
***在一个或多个更新迭代中的每一个处更新该图形(406)。更新图形可以包括,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个节点的当前节点嵌入和图形中每个边的当前边嵌入。例如,对于图形中的每个节点,***可以使用图形神经网络的节点更新子网络处理输入以生成节点的更新的节点嵌入,该输入包括:(i)节点的当前节点嵌入,以及(ii)连接到节点的每个边的相应当前边嵌入。作为另一个示例,***可以使用图形神经网络的边更新子网络处理输入以生成边的更新的边嵌入,该输入包括:(i)边的当前边嵌入,以及(ii)由边连接的每个节点的相应当前节点嵌入。
在包括网格的实施方式中,在每个更新迭代处,使用图形神经网络处理定义图形的数据以更新图形中每个边的当前边嵌入可以包括,对于图形中的每个网格空间边,使用图形神经网络的网格空间边更新子网络处理输入以生成网格空间边的更新的边嵌入,该输入包括:(i)网格空间边的当前边嵌入,以及(ii)由网格空间边连接的每个节点的相应当前节点嵌入。此外,对于图形中的每个世界空间边,***可以使用图形神经网络的世界空间边更新子网络处理输入以生成世界空间边的更新的边嵌入,该输入包括:(i)世界空间边的当前边嵌入,以及(ii)世界空间边连接的每个节点的相应当前节点嵌入。
在更新之后,***处理图形中每个节点的相应当前节点嵌入以生成对应于图形中每个节点的相应动力学特征(408)。例如,对于每个节点,***可以使用图形神经网络的解码器子网络处理该节点的当前节点嵌入,以生成该节点的相应的动力学特征,其中,动力学特征表征了对应于节点的粒子的位置(例如,加速度)上的变化率。
在包括网格的实施方式中,处理图形中每个节点的相应当前节点嵌入以生成对应于图形中每个节点的相应动力学特征可以包括,对于每个图形节点,使用图形神经网络的解码器子网络处理图形节点的当前节点嵌入,以生成图形节点的相应动力学特征,其中,该动力学特征表征与图形节点对应的网格节点的网格节点特征的变化率。
***基于以下确定下一时间步处的物理环境的状态:(i)对应于图形中节点的动力学特征,以及(ii)当前时间步处的物理环境的状态(410)。例如,对于每个粒子,***可以基于以下确定粒子在下一时间步处的相应位置:(i)粒子在当前时间步处的位置,以及(ii)对应于粒子的节点的动力学特征。
在包括网格的实施方式中,基于(i)与图形中节点对应的动力学特征以及(ii)当前时间步处的物理环境的状态确定下一时间步处的物理环境的状态可以包括,对于每个网格节点,基于以下确定在下一时间步处的网格节点的网格节点特征:(i)网格节点在当前时间步处的网格节点特征,以及(ii)网格节点特征的变化率。
此外,在包括网格的实施方式中,对于一个或多个时间步,***可以为网格的每个网格节点确定相应的一组一个或多个重新网格化参数,并且通过例如拆分网格中的一个或多个边、坍缩网格中的一个或多个边或两者来基于重新网格化参数适配网格的分辨率。在这样的实施方式中,为网格的每个网格节点确定相应的一组一个或多个重新网格化参数可以包括,在更新之后,使用重新网格化神经网络处理每个图形节点的相应当前节点嵌入以生成与图形节点对应的网格节点的相应的重新网格化参数。
在一些实施方式中,***可以基于重新网格化参数识别应该被拆分的网格的一个或多个网格边。这可以包括,对于一个或多个网格边,使用连接到网格边的网格节点的重新网格化参数来确定网格边的定向边长,并且响应于确定网格边的定向边长超过阈值,确定应拆分网格边。***还可以基于重新网格化参数来识别应当被坍缩的网格的一个或多个网格边。这可以包括,对于一个或多个网格边,使用重新网格化参数确定将通过坍缩网格边创建的新网格边的定向边长,并且响应于确定新的网格边的定向边长没有超过阈值,确定网格边应该被坍缩。
图5A图示了示例常规网格和示例自适应网格。自适应网格可以由如上所述的物理环境模拟***(例如,图1中的***100)生成。与具有相同网格节点数的常规网格相比,自适应重新网格化的过程可以实现明显更精确的模拟。
图5B图示示例世界空间边和网格空间边。特别地,与网格空间相比,在网格空间中彼此定位相当远的两个节点可以在世界空间中彼此非常接近地定位。这些节点可以通过世界空间边连接。
图6A图示了与真实值和基于格的模拟相比的示例自适应重新网格化模拟。自适应重新网格化(例如,如上文参考图5A所述)可以生成比基于格的模拟更接近真实值的模拟。
图6B图示了由物理环境模拟***(例如,图1中的***100)生成的示例泛化模拟。该***在包含大约2,000个网格节点的物理环境表示上被训练。训练后,***可以扩展到更大和更复杂的环境,例如,使用20,000个或更多网格节点表示的环境。
图7图示了在自适应重新网格化中使用的示例操作。顶部图示了示例拆分操作,中间图示了示例翻转操作,并且底部图示了示例坍缩操作。
图8图示了具有自适应重新网格化的示例空气动力学模拟。特别是,翼尖(右手面板)的表示包括亚毫米级细节,而整个模拟域(左手面板)仍然可以适当地由网格表示。
图9图示了由物理环境模拟***生成的示例模拟,其中,被模拟的物理环境由粒子集合表示。如上文参考图1所述,模拟***可以包括编码器模块、更新器模块(例如,图9中的处理器)和解码器模块。在每个时间步处,编码器模块可以处理物理环境的当前状态(例如,由粒子集合表示)并生成图形。在每个时间步处,更新器模块可以通过多个内部更新迭代来更新图形以生成更新的图形。在每个时间步处,解码器可以处理更新的图形并提取与更新图形中每个节点相关联的动力学特征。基于动力学特征,***可以确定物理环境的下一状态。
图10图示了由物理环境模拟***针对不同类型的材料生成的示例模拟。在这种情况下,每个环境都通过粒子集合来表示。这些材料包括水、粘稠物(即粘性、可塑性变形材料)和沙子。
上述***和方法的实施方式的一个优点是它们可以被配置用于硬件加速。在此类实施方式中,该方法由数据处理装置执行,该数据处理装置包括一个或多个计算机并包括一个或多个硬件加速器单元,例如一个或多个GPU(图形处理单元)或TPU(张量处理单元)。这样的实施方式涉及在一个或多个更新迭代中的每一个处更新图形,包括使用包括L个消息传递块的处理器***来更新图形,其中,每个消息传递块可以具有相同的神经网络架构和单独的神经网络参数集。该方法还可以包括:顺序地应用消息传递块以在多次迭代中处理定义图形的数据;以及,使用一个或多个硬件加速器顺序地应用消息传递块以处理定义图形的数据。在一些实施方式中,处理是使用消息传递块执行的,即处理器***分布在硬件加速器上。因此,提供了一种特别适用于使用硬件加速器单元的实施方式的模拟方法,其不同于不能利用硬件加速的一些传统手段。
该***可用于基于测量的真实世界数据预测物理量。因此,在上述***和方法的一些实施方式中,物理环境包括真实世界环境,其包括真实的物理对象。然后获取定义在当前时间步处的物理环境的状态的数据可以包括从物理对象获取定义物理对象的形状的2D或3D表示的对象数据。例如,对象的图像可以由诸如深度相机的相机捕获。然后该方法可以涉及输入定义物理对象与真实世界环境的交互的交互数据。例如,交互数据可以定义诸如致动器的第二物理对象的形状,第二物理对象将与所述物理对象交互并且可以使所述物理对象变形;或者它可以定义施加到物理对象上的力;或者它可以定义一个场,诸如物理对象受到的速度、动量、密度或压力场。下面给出了一些更详细的例子。交互数据可以但不必从真实世界环境中获取。例如,它可能在一种情况下从真实世界环境中获取,但在另一情况下则不可。
然后,该方法可以使用对象数据和交互数据来生成在当前例如初始时间步处的物理环境的状态的表示。该方法然后可以通过确定以下中的一个或多个来确定下一时间步处的物理环境的状态:i)更新的对象数据,其定义物理对象的形状的更新的2D或3D表示;ii)应力数据,其定义物理对象上应力的2D或3D表示;以及iii)定义其中嵌入对象的流体中的速度、动量、密度或压力场的数据。
例如,在实施方式中,网格节点特征可以包括节点类型特征,例如指示节点类型的独热向量,诸如定义网格节点是否为对象的一部分的网格节点特征。节点类型特征可以指示一种或多种类型的边界,例如以下中的一项或多项:网格节点是物理对象的一部分还是物理对象的边界;网格节点是属于另一个物理对象(例如致动器)还是该另一个物理对象的边界;网格节点是否是流体节点,即物理对象嵌入其中的流体的一部分;网格节点是否定义了边界,诸如墙、障碍物、流入或流出边界;网格节点是否定义了固定点,例如对象的固定附着点。然后使用对象数据生成物理环境的状态的表示可能涉及为每个网格节点的模式类型特征分配值。
交互数据可用于将值分配给未定义物理对象的部分的网格节点,例如以为嵌入对象的流体中的速度、动量、密度或压力场分配值,或者为第二物理对象的初始位置或施加的力分配值。在第二物理对象(诸如致动器)的情况下,不是被模拟,节点的动力学特征可以例如使用下一步世界空间速度作为输入被更新以定义第二物理对象的运动。
仅作为示例,如果物理对象与力、致动器或流体流相互作用,则更新的对象数据可以定义在比当前(初始)时间晚的时间处的物理对象的形状的表示;和/或,对对象的应力或压力的表示;和/或,由与物理对象的相互作用产生的流体流动的表示。
在上述***和方法的一些实施方式中,如前所述,物理环境包括包含物理对象的真实世界环境,并且确定在下一时间步处的物理环境的状态包括确定在一个或多个下一时间步处的物理对象的形状的表示。然后该方法还可以涉及将现实世界环境中的物理对象的形状或移动与形状的表示进行比较以验证模拟。在某些情况下,例如在形状混乱地演变的情况下,可以通过视觉进行比较,以通过估计模拟与真实世界环境中物理对象的形状或移动所定义的真实值的视觉相似性来验证模拟是否准确。此外,或者相反,这种比较可以通过计算和比较表示真实世界环境中的物理对象的统计数据和模拟来进行。
上述***和方法是可微分的并且可以用于设计优化。例如,如前所述,定义当前时间处的物理环境的状态的数据可以包括表示对象形状的数据,并且确定下一时间步处的物理环境的状态可以包括确定下一时间步处的对象的形状的表示。设计对象形状的方法然后可以包括通过(可微分的)图形神经网络反向传播目标函数的梯度以调整表示物理对象形状的数据以确定优化目标函数(例如最小化目标函数定义的损失)的对象的形状。可以根据对象的一个或多个设计准则来选择目标函数,例如以最小化对象中的应力,例如通过在定义物理环境的状态的数据中包含力或变形的表示,目标函数可以是对象在受到力或变形时其中的应力的测量。该过程可能包括制作具有设计形状(即,具有优化目标函数的形状)的物理对象。物理对象可以例如用于机械结构的一部分。
上述***和方法也可用于现实世界的控制,特别是最优控制任务,例如以协助机器人操纵可变形对象。因此,如前所述,物理环境可以包括包含物理对象的真实世界环境,所述物理对象例如是要拾取或操纵的对象。确定下一时间步处的物理环境的状态包括例如通过捕获对象的图像而确定物理对象的形状或配置的表示。确定下一时间步处的物理环境的状态可以包括:例如当受到例如来自机器人的致动器的力或变形时,确定物理对象的形状或配置的预测表示。该方法还可以包括使用预测表示来控制机器人,以通过控制机器人优化目标函数来例如使用致动器朝向物理对象的目标位所、形状或配置操纵物理对象,所述目标函数根据预测表示和物理对象的目标位所、形状或配置之间的差异。控制机器人可能涉及基于预测的表示向机器人提供控制信号以例如使用机器人的致动器使机器人执行动作,以操纵物理对象来执行任务。例如,这可能涉及使用具有至少部分基于目标函数值的奖励的强化学习过程控制机器人,例如致动器,以学习执行涉及操纵物理对象的任务。
本说明书结合***和计算机程序组件使用术语“被配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的***意味着***已经在其上安装了软件、固件、硬件或它们的组合,其在运行中使得***执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序意味着一个或多个程序包括当由数据处理装置执行时使该装置执行操作或动作的指令。
本说明书中描述的主题和功能操作的实施例可以被实现在数字电子电路中、在有形地实施的计算机软件或固件中、在计算机硬件(包括本说明书中公开的结构及其结构等同物)中或在它们的一个或多个的组合中。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非暂时性存储介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备或它们中的一个或多个的组合。可替换地或另外,程序指令可以编码在人工生成的传播信号上,该信号例如为机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。
术语“数据处理装置”指代数据处理硬件,并且涵盖用于处理数据的所有种类的装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。该装置也可以是或进一步包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置可以可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或它们中的一个或多个的组合的代码。
计算机程序(其也可以被称为程序、软件、软件应用、app、模块、软件模块、脚本或代码)可以以任何形式的编程语言编写,该任何形式的编程语言包括编译或解释语言或者声明性或过程语言,并且该计算机程序可以以任何形式部署,包括作为独立程序或作为适于在计算环境中使用的模块、组件、子例程或其他单元。程序可以但不需要对应于文件***中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于所讨论的程序的单个文件中或者在多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机上或在位于一个站点处或跨多个站点分布并通过数据通信网络互连的多个计算机上执行。
在本说明书中,术语“引擎”广泛用于指代被编程为执行一个或多个特定功能的基于软件的***、子***或过程。通常,引擎将被实现为安装在一个或多个位所中的一个或多个计算机上的一个或多个软件模块或组件。在某些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,可以在相同的一个计算机或多个计算机上安装和运行多个引擎。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路(例如FPGA或ASIC)或由专用逻辑电路和一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以是基于通用或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括或可操作地耦合以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,该一个或多个大大容量存储设备用于存储数据,例如是磁盘、磁光盘或光盘。但是,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一个设备中,该另一个设备例如是移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器),此处仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如:半导体存储器设备,例如EPROM、EEPROM和闪存存储器设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及键盘和定点设备(例如,鼠标或轨迹球)的计算机上实现,用户可以通过键盘和定点设备向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机可以通过下述方式来与用户交互:向由用户使用的设备发送文档和从由用户使用的设备接收文档;例如,通过响应于从web浏览器接收到的请求将网页发送到用户设备上的web浏览器。此外,计算机可以通过向个人设备(例如,运行消息收发应用的智能电话)发送文本消息或其他形式的消息并且反过来从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集部分,即推断、工作负载。
可以使用机器学习框架(例如,TensorFlow框架、Microsoft认知工具包框架、Apache Singa框架或Apache MXNet框架)来实现和部署机器学习模型。
本说明书中描述的主题的实施例可以实现在计算***中,该计算***包括例如作为数据服务器的后端组件,或者包括例如应用服务器的中间件组件,或者包括例如具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面、web浏览器或app的客户端计算机的前端组件,或者包括一个或多个这样的后端、中间件或前端组件的任何组合。***的组件可以通过任何形式或介质的数字数据通信——例如,通信网络——互连。通信网络的示例包括局域网(LAN)和广域网(WAN)(例如,因特网)
计算***可包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,HTML页面)发送到用户设备,例如,用于向与用作客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。可以在服务器处从该设备接收在用户设备处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对任何发明的范围或可以要求保护的内容的范围的限制,而是作为可以特定于特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的场境中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的场境中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管特征可以在上面被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变化。
类似地,虽然在附图中描绘了操作并且以特定顺序在权利要求中记载了操作,但是这不应该被理解为要求以所示的特定顺序或以先后顺序执行这些操作,或者执行所有示出的操作,以实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和***通常可以集成在单个软件产品中或打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,在权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或先后顺序来实现期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。
Claims (31)
1.一种由一个或多个数据处理装置执行的用于模拟物理环境的状态的方法,所述方法包括对于多个时间步中的每一个时间步:
获取定义在当前时间步处的所述物理环境的所述状态的数据,其中,定义在当前时间步处的所述物理环境的所述状态的所述数据包括定义网格的数据,其中,所述网格包括多个网格节点和多个网格边,其中,每一个网格节点与相应的网格节点特征相关联;
生成在当前时间步处的所述物理环境的所述状态的表示,所述表示包括表示图形的数据,所述图形包括多个节点和多个边,所述多个节点中的每一个节点与相应的当前节点嵌入相关联,所述多个边中的每一个边与相应的当前边嵌入相关联,其中,表示在当前时间步处的物理环境的所述状态的所述图形中的每一个节点与相应的网格节点相对应;
在一个或多个更新迭代中的每一个更新迭代处更新所述图形,包括在每一个更新迭代处:
使用图形神经网络处理定义所述图形的数据,以更新所述图形中每一个节点的当前节点嵌入和所述图形图中每一个边的当前边嵌入;
在所述更新后,处理所述图形中每一个节点的相应的当前节点嵌入,以生成与所述图形中每一个节点相对应的相应的动力学特征;以及
基于(i)与所述图形中的节点相对应的所述动力学特征、以及(ii)在当前时间步处的所述物理环境的所述状态,确定在下一时间步处的所述物理环境的状态。
2.根据权利要求1所述的方法,其中,所述网格涵盖所述物理环境。
3.根据权利要求1所述的方法,其中,所述网格表示所述物理环境中的一个或多个对象。
4.根据权利要求1-3中任一项所述的方法,其中,对于所述多个网格节点中的每一个网格节点,与该网格节点相关联的所述网格节点特征包括在当前时间步处的该网格节点的状态,其中,在当前时间步处的该网格节点的状态包括:
位置坐标,所述位置坐标表示该网格节点在当前时间步处在所述物理环境的参考系中的位置。
5.根据权利要求4所述的方法,其中,对于所述多个网格节点中的每一个网格节点,与在当前时间步处的该网格节点相关联的所述网格节点特征进一步包括以下一项或多项:在所述环境中与在当前时间步处的该网格节点相对应的位置处的流体密度、流体粘度、压力或张力。
6.根据权利要求4-5中任一项所述的方法,其中,对于所述多个网格节点中的每一个网格节点,与该网格节点相关联的所述网格节点特征还包括在一个或多个先前时间步中的每一个处的该网格节点的相应状态。
7.根据权利要求1-6中任一项所述的方法,其中,生成在当前时间步处的所述物理环境的所述状态的所述表示包括生成所述图形中的每一个节点的相应的当前节点嵌入,包括对于所述图形中的每一个节点:
使用所述图形神经网络的节点嵌入子网络处理输入以生成所述图形中的该节点的当前节点嵌入,所述输入包括与所述图形中的该节点相对应的网格节点的所述特征中的一个或多个。
8.根据权利要求7所述的方法,其中,对于所述图形中的每一个节点,对所述节点嵌入子网络的所述输入还包括所述物理环境的一个或多个全局特征。
9.根据权利要求8所述的方法,其中,所述物理环境的所述全局特征包括施加到所述物理环境的力、所述物理环境的重力常数、所述物理环境的磁场或其组合。
10.根据权利要求1-9中任一项所述的方法,其中,所述图形中的每一个边连接所述图形中的相应的节点对,其中,所述图形包括多个网格空间边和多个世界空间边,其中,生成在当前时间步处的所述物理环境的所述状态的所述表示包括:
对于由所述网格中的边连接的每一个网格节点对,确定对应的图形节点对由所述图形中的网格空间边连接;以及
对于在所述物理环境的参考系中具有相隔小于阈值距离的相应位置的每一个网格节点对,确定对应的图形节点对由所述图形中的世界空间边连接。
11.根据权利要求10所述的方法,其中,生成在当前时间步处的所述物理环境的所述状态的所述表示包括生成所述图形中的每一个边的相应的当前边嵌入,包括对于所述图形中的每一个网格空间边:
使用所述图形神经网络的网格空间边嵌入子网络处理输入以生成该网格空间边的当前边嵌入,所述输入包括:与所述图形中的该网格空间边所连接的图形节点相对应的网格节点的相应位置、表征与所述图形中的该网格空间边所连接的图形节点相对应的网格节点的相应位置之间的差异的数据或其组合。
12.根据权利要求10-11中任一项所述的方法,还包括对于所述图形中的每一个世界空间边:
使用所述图形神经网络的世界空间边嵌入子网络处理输入以生成该世界空间边的当前边嵌入,所述输入包括:与所述图形中的该世界空间边所连接的图形节点相对应的网格节点的相应位置、表征与所述图形中的该世界空间边所连接的图形节点相对应的网格节点的相应位置之间的差异的数据或其组合。
13.根据权利要求1-12中任一项所述的方法,其中,在每一个更新迭代处使用所述图形神经网络处理定义所述图形的数据以更新所述图形中每一个节点的当前节点嵌入包括,对于所述图形中的每一个节点:
使用所述图形神经网络的节点更新子网络处理输入以生成该节点的更新节点嵌入,所述输入包括:(i)该节点的当前节点嵌入,以及(ii)连接到该节点的每一个边的相应的当前边嵌入。
14.根据权利要求10-13中任一项所述的方法,其中,在每一个更新迭代处使用所述图形神经网络处理定义所述图形的数据以更新所述图形中每一个边的当前边嵌入包括,对于所述图形中的每一个网格空间边:
使用所述图形神经网络的网格空间边更新子网络处理输入以生成该网格空间边的更新边嵌入,所述输入包括:(i)该网格空间边的当前边嵌入,以及(ii)由该网格空间边连接的每一个节点的相应的当前节点嵌入。
15.根据权利要求10-14中任一项所述的方法,其中,在每一个更新迭代处使用所述图形神经网络处理定义所述图形的数据以更新所述图形中每一个边的当前边嵌入包括,对于所述图形中的每一个世界空间边:
使用所述图形神经网络的世界空间边更新子网络处理输入以生成该世界空间边的更新边嵌入,所述输入包括:(i)该世界空间边的当前边嵌入,以及(ii)由该世界空间边连接的每一个节点的相应的当前节点嵌入。
16.根据权利要求1-14中任一项所述的方法,其中,处理所述图形中每一个节点的相应的当前节点嵌入以生成与所述图形中每一个节点相对应的相应的动力学特征包括,对于每一个图形节点:
使用所述图形神经网络的解码器子网络处理该图形节点的当前节点嵌入,以生成该图形节点的相应的动力学特征,其中,所述动力学特征表征与该图形节点相对应的网格节点的网格节点特征的变化率。
17.根据权利要求16所述的方法,其中,基于:(i)与所述图形中的所述节点相对应的所述动力学特征以及(ii)在当前时间步处的所述物理环境的状态来确定在所述下一时间步处的所述物理环境的状态包括,对于每一个网格节点:
基于(i)在当前时间步处的该网格节点的所述网格节点特征以及(ii)所述网格节点特征的所述变化率来确定在所述下一时间步处的该网格节点的网格节点特征。
18.根据权利要求1-17中任一项所述的方法,还包括对于所述多个时间步中的一个或多个时间步:
为所述网格的每一个网格节点确定相应一组的一个或多个重新网格化参数;以及
基于所述重新网格化参数来适配所述网格的分辨率,包括:拆分所述网格中的一个或多个边、坍缩所述网格中的一个或多个边或两者。
19.根据权利要求18所述的方法,其中,为所述网格的每一个网格节点确定相应一组的一个或多个重新网格化参数包括:
在所述更新后,使用重新网格化神经网络处理每一个图形节点的相应的当前节点嵌入,以生成与该图形节点相对应的网格节点的相应的重新网格化参数。
20.根据权利要求18-19中任一项所述的方法,其中,基于所述重新网格化参数来适配网格的所述分辨率包括基于所述重新网格化参数来识别应被拆分的所述网格的一个或多个网格边,包括对于一个或多个网格边:
对于连接到所述网格边的网格节点使用所述重新网格化参数确定所述网格边的定向边长;以及
响应于确定所述网格边的所述定向边长超过阈值,确定所述网格边应被拆分。
21.根据权利要求18-20中任一项所述的方法,其中,基于所述重新网格化参数来适配所述网格的所述分辨率包括基于所述重新网格化参数来识别应被坍缩的所述网格的一个或多个网格边,包括对于一个或多个网格边:
使用所述重新网格化参数确定将通过坍缩所述网格边创建的新网格边的定向边长;以及
响应于确定所述新网格边的所述定向边长不超过阈值,确定所述网格边应被坍缩。
22.根据从属于权利要求10时的权利要求10-21中任一项所述的方法,其中,所述方法由数据处理装置执行,所述数据处理装置包括一个或多个计算机并且包括一个或多个硬件加速器单元;
其中,在一个或多个更新迭代中的每一个更新迭代处更新所述图形包括使用包括L个消息传递块的处理器***来更新所述图形,其中,每一个消息传递块具有相同的神经网络架构和单独的神经网络参数集;所述方法还包括:
顺序地应用所述消息传递块来在多个迭代中处理定义所述图形的数据;以及
使用所述一个或多个硬件加速器单元顺序地应用所述消息传递块来处理定义所述图形的所述数据。
23.根据权利要求22所述的方法,其中,所述方法由包括多个硬件加速器的数据处理装置执行,所述方法包括在所述硬件加速器上分布使用所述消息传递块的所述处理。
24.根据权利要求1-23中任一项所述的方法,其中,所述物理环境包括包含物理对象的真实世界环境;其中,
获取定义在当前时间步处的所述物理环境的所述状态的所述数据包括从所述物理对象获取定义所述物理对象的形状的2D或3D表示的对象数据;其中,
输入交互数据,所述交互数据定义所述物理对象与所述真实世界环境的交互;其中,
生成在当前时间步处的所述物理环境的所述状态的所述表示使用所述对象数据和所述交互数据来生成所述物理环境的所述状态的所述表示;并且其中,
确定在所述下一时间步处的所述物理环境的所述状态包括确定以下中的一个或多个:i)更新对象数据,所述更新对象数据定义所述物理对象的所述形状的更新2D或3D表示;ii)应力数据,所述应力数据定义在所述物理对象上的应力的2D或3D表示;iii)定义所述对象被嵌入的流体中的速度、动量、密度或压力场的数据。
25.根据权利要求24所述的方法,其中,所述交互数据包括表示施加到所述对象的力或变形的数据;生成在当前时间步处的所述物理环境的所述状态的所述表示包括将每一个网格模式与定义所述网格节点是否是所述对象的一部分的网格节点特征相关联;并且确定在所述下一时间步处的所述物理环境的所述状态包括确定更新对象数据或者在所述物理对象上的压力或应力的表示,所述更新对象数据定义所述物理对象的所述形状的更新2D或3D表示。
26.根据权利要求1-25中任一项所述的方法,其中,所述物理环境包括包含物理对象的真实世界环境,其中,确定在所述下一时间步处的所述物理环境的所述状态包括确定在一个或多个下一时间步处的所述物理对象的形状的表示;并且其中,所述方法还包括将所述真实世界环境中的所述物理对象的形状或移动与所述形状的所述表示进行比较以验证模拟。
27.一种使用根据权利要求1-23中任一项所述的方法设计对象的形状的方法,其中,定义在当前时间步处的所述物理环境的所述状态的所述数据包括表示对象的形状的数据;其中,确定在所述下一时间步处的所述物理环境的所述状态包括确定在所述下一时间步处的所述对象的形状的表示;并且其中,设计所述对象的所述方法包括使目标函数的梯度反向传播通过所述图形神经网络,以调整表示所述物理对象的形状的所述数据,以确定优化所述目标函数的所述对象的形状。
28.根据权利要求27所述的方法,还包括制作具有优化所述目标函数的所述形状的物理对象。
29.一种使用根据权利要求1-23中任一项所述的方法控制机器人的方法,其中,所述物理环境包括包含物理对象的真实世界环境;其中,确定在所述下一时间步处的所述物理环境的所述状态包括确定所述物理对象的形状或配置的表示;其中,确定在所述下一时间步处的所述物理环境的所述状态包括确定所述物理对象的所述形状或配置的预测表示;并且其中,所述方法还包括通过控制所述机器人以优化目标函数,使用所述预测表示来控制所述机器人朝向所述物理对象的目标位所、形状或配置操纵所述物理对象,所述目标函数取决于所述预测表示和所述物理对象的所述目标位所、形状或配置之间的差异。
30.一种或多种存储指令的非暂时性计算机存储介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行根据权利要求1-29中任一项所述的相应方法的操作。
31.一种***,包括:
一个或多个计算机;以及
一个或多个存储设备,所述一个或多个存储设备通信耦合到所述一个或多个计算机,其中,所述一个或多个存储设备存储指令,所述指令在由所述一个或多个计算机执行时,使所述一个或多个计算机执行根据权利要求1-29中任一项所述的相应方法的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063086964P | 2020-10-02 | 2020-10-02 | |
US63/086,964 | 2020-10-02 | ||
PCT/EP2021/077174 WO2022069740A1 (en) | 2020-10-02 | 2021-10-01 | Simulating physical environments using mesh representations and graph neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116324795A true CN116324795A (zh) | 2023-06-23 |
Family
ID=78078259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180067682.6A Pending CN116324795A (zh) | 2020-10-02 | 2021-10-01 | 使用网格表示和图形神经网络模拟物理环境 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230359788A1 (zh) |
EP (1) | EP4205014A1 (zh) |
JP (1) | JP7492083B2 (zh) |
KR (1) | KR20230065343A (zh) |
CN (1) | CN116324795A (zh) |
WO (1) | WO2022069740A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114580252A (zh) * | 2022-05-09 | 2022-06-03 | 山东捷瑞数字科技股份有限公司 | 一种用于流体仿真的图神经网络仿真方法及*** |
WO2023242378A1 (en) * | 2022-06-15 | 2023-12-21 | Deepmind Technologies Limited | Simulating Physical Environments with Discontinuous Dynamics Using Graph Neural Networks |
CN115018073A (zh) | 2022-08-09 | 2022-09-06 | 之江实验室 | 一种基于图神经网络的时空感知信息预测方法和*** |
GB2623618A (en) * | 2023-08-14 | 2024-04-24 | Rolls Royce Plc | Fluid flow simulation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114911B2 (en) | 2010-05-24 | 2018-10-30 | Fujitsu Limited | Fluid structure interaction simulation method and apparatus, and computer-readable storage medium |
-
2021
- 2021-10-01 JP JP2023520222A patent/JP7492083B2/ja active Active
- 2021-10-01 KR KR1020237012447A patent/KR20230065343A/ko unknown
- 2021-10-01 CN CN202180067682.6A patent/CN116324795A/zh active Pending
- 2021-10-01 EP EP21786472.7A patent/EP4205014A1/en active Pending
- 2021-10-01 US US18/027,174 patent/US20230359788A1/en active Pending
- 2021-10-01 WO PCT/EP2021/077174 patent/WO2022069740A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022069740A1 (en) | 2022-04-07 |
EP4205014A1 (en) | 2023-07-05 |
KR20230065343A (ko) | 2023-05-11 |
US20230359788A1 (en) | 2023-11-09 |
JP7492083B2 (ja) | 2024-05-28 |
JP2023544175A (ja) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7492083B2 (ja) | メッシュ表現およびグラフニューラルネットワークを使用した物理的環境のシミュレーション | |
KR102318772B1 (ko) | 도메인 분리 뉴럴 네트워크들 | |
US20200104709A1 (en) | Stacked convolutional long short-term memory for model-free reinforcement learning | |
Allen et al. | Physical design using differentiable learned simulators | |
CN114219076A (zh) | 量子神经网络训练方法及装置、电子设备和介质 | |
EP3612356B1 (en) | Determining control policies for robots with noise-tolerant structured exploration | |
US9613449B2 (en) | Method and apparatus for simulating stiff stacks | |
Kontolati et al. | Learning in latent spaces improves the predictive accuracy of deep neural operators | |
Han et al. | CoolVox: Advanced 3D convolutional neural network models for predicting solar radiation on building facades | |
Gao et al. | Physics-based deep learning for probabilistic fracture analysis of composite materials | |
Massegur Sampietro et al. | Recurrent Multi-Mesh Convolutional Autoencoder Framework for Spatio-Temporal Aerodynamic Modelling. | |
CN115066686A (zh) | 使用对规划嵌入的注意操作生成在环境中实现目标的隐式规划 | |
Hung et al. | Automatic clustering method for real-time construction simulation | |
CN116968024A (zh) | 获取用于生成形封闭抓取位姿的控制策略的方法、计算设备和介质 | |
Nastorg et al. | Ds-gps: A deep statistical graph poisson solver (for faster cfd simulations) | |
Gao et al. | Accelerating liquid simulation with an improved data‐driven method | |
Du | Deep Learning for Physics Simulation | |
WO2023242378A1 (en) | Simulating Physical Environments with Discontinuous Dynamics Using Graph Neural Networks | |
Wang et al. | Stacked generative machine learning models for fast approximations of steady-state Navier-Stokes equations | |
CN111724487A (zh) | 一种流场数据可视化方法、装置、设备及存储介质 | |
Rabault | Deep reinforcement learning applied to fluid mechanics: materials from the 2019 flow/interface school on machine learning and data driven methods | |
WO2023227586A1 (en) | Simulating physical environments using fine-resolution and coarse-resolution meshes | |
Hu et al. | Better Neural PDE Solvers Through Data-Free Mesh Movers | |
CN117688823B (zh) | 一种岩土颗粒轨迹预测方法、电子设备及介质 | |
Huang et al. | Predicting brittle fracture surface shape from a versatile database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |