目录
译:基于卷积神经网络的高效混合物理信息神经网络
摘要:本文开发了一个用于偏微分方程(PDEs)的混合物理信息神经网络(hybrid PINN)。作者借鉴了卷积神经网络(CNN)和有限体积方法的思想。与物理信息神经网络(PINN)及其变体不同,本文提出的方法使用微分算子的近似来求解偏微分方程,而不是使用自动微分(AD)。本文的主要贡献是采用局部拟合的方法给出近似。结果证明,本文的方法具有收敛速度。这也将避免神经网络给出错误预测的问题,这在PINN中有时会发生。据作者所说,这是机器学习PDE求解器具有收敛速度的第一部作品,例如在数值方法中。数值实验验证了算法的正确性和有效性。本文也证明了本文的方法可以应用于逆问题和曲面偏微分方程,尽管没有证明。
一、介绍
事实上,除了全连接结构,偏微分方程还有许多DNN求解方法。例如,有一种基于卷积神经网络(CNN)的求解器。算子可以被核函数的卷积所逼近。这启发我们用另一种近似代替自动微分(AD)来改进PINN。事实上,AD为我们提供了DNN相对于输入的更精确的导数。然而,它丢失了域的邻域信息,而邻域信息对于偏微分方程的解的逼近是至关重要的。
总之,本文贡献如下:
1、发展了一种新的方法来逼近任意几何上的微分算子,即,将函数值和PDE输出的局部线性组合等同起来,然后,用最小二乘法计算线性组合的系数。该方法称为局部拟合法。
2、用合成的近似矩阵代替AD来计算偏微分方程的残差。这将避免使DNN的计算图复杂化。
3、证明了混合算法的收敛速度,为该算法提供了理论保证。此外,这是第一个用于求解PDE的具有收敛速度的机器学习算法。
二、案例研究与动机
本节概述PINN及其变体的基本思想。然后通过案例分析和混合PINN的动机说明了它们的不完善。
A、PINN及其变化的概述
考虑以下抽象的PDE问题:
(2)
(3)
其中表示线性或非线性微分算子,
表示边界值算子,域
是有界开集,
是一个d维的欧几里得空间。
为了解决(2)和(3),建立一个输入x输出u的DNN,让这个DNN能够预测(2)和(3)的解。为了实现这个目标,使用AD来计算PDE 的残差,并将其作为损失函数的一部分。称这个DNN为PINN。PINN的结构如图1所示。
是一个预先选择的点集,在均方误差类型中有以下PDE残差来强制满足(2):
(4)
另外,有以下边界值残差来强制预测也满足边界条件(3):
(5)
其中为边界条件设置的预选点。因此,总损失为:
(6)
通过最小化MSE, PINN可以预测(2)和(3)在中任意点的解。这就是PINN的结构。
最近,Kharazmi等人[20],[21]报道了PINN的一些变体,如VPINN和hp-VPINN。本质上,采用了以下积分形式的约束,而不是对PDE施加点态约束:
其中是一组预先选择的基函数。
B、案例研究
虽然PINN及其变体在科学计算和工程中得到了广泛的应用,但它们在理论上并不完善。本节将使用一些基本示例来说明这些要点。
例1:考虑以下常微分方程(ODE)问题。
(7)
(8)
显然,(7)和(8)的精确解是u(x) = 0,并且解是唯一的。假设用点集{0,±1}的PINN来求解(7)和(8),然后,通过(4)(5)(6),损失函数为
(9)
通过最小化(9),期望MSE→0。让我们假设理想情况,也就是MSE = 0。在理想情况下,我们有u"(0) = u(−1)= u(1) = 0。然而,PINN的预测可能如图2所示。
注意u"(0) = 0意味着x = 0处的解在局部是一条水平线。因此,实际上,任何在±1处等于零的函数,以及在0附近等于非零常数的函数,都是这个PINN的潜在预测。不幸的是,它们不是(7)和(8)的解。
例2:考虑下面的ODE问题。
(10)
(11)
精确解为u(x)=(x+1/2),并且是唯一的。再考虑用PINN解这个问题。这一次,让我们假设[−1,1]中除了0以外有大量的点,但不失一般性。因此损失函数为
其中是(-1,0)∪(0,1)上的点集,可以想象这个点集在(−1,0)∪(0,1)中是任意稠密的,即
,考虑MSE = 0的理想情况。即使在这种情况下,理论上也无法避免图3中的解。
对于VPINN,错误的预测也是可能的,如例3所示。
例3:考虑[−1,1]中的简单函数拟合问题u(x) = 0。我们的目标是在给定一组点的情况下,用VPINN拟合u(x)。如[20]中所建议的,我们将测试函数设为K阶的Legendre多项式。损失函数如下
(12)
其中,是第j阶Legendre多项式。
是节点
对应的正交权值。接下来考虑理想状态下的MSE=0,那么,由于Legendre多项式[23]的正交性,任意阶数大于K的Legendre多项式都可以预测VPINN。
在数值分析中,VPINN和hp-VPINN的原型分别是有限元法和谱法。这种现象在有限元法和谱法中不会发生。这是因为,在这些数值方法中,解是用有限元空间中的函数近似的。在有限元方法和谱方法的协调中,该空间与测试函数空间相同。然后,通过双线性形式的连续性和矫顽力,数值解收敛于精确解。在例3中,这等价于我们的预测u(x),它是的线性组合,对于j = 0,…, K。在非协调有限元方法中,跟踪函数空间和测试函数必须满足Ladyzhenskaya-Babuška-Brezzi (LBB)条件[24],才能保证数值算法的可解性和唯一性。
而在VPINN中,u(x)是由神经网络给出的。它与产生的线性空间不相同,也不满足LBB条件。在有限元理论中,这就是所谓的变分犯罪[24],因为trail函数空间和test函数空间是匹配的。因此,本例中提出的错误预测在实践中是可能的。hp-VPINN和VPINN有同样的问题。
C、混合PINN的动机
从例1-3可以看出,由于PINN的函数空间太大,PINN及其变化在理论上并不完美。因此,在训练过程中,有不可忽视的机会满足损失函数的不希望的临界点。在本节中,我们将找出一些解决这个问题的线索。
PINN及其变体的一个特点是它们都依赖于AD技术。实际上,PINN不是解PDE的唯一方法。在Tensorflow的教程网站上有一个关于热方程的例子:https://github.com/tensorflow/examples/
blob/master/community/en/pdes.ipynb。在这个例子中,拉普拉斯算子通过与核的卷积运算进行了离散化。这个核正是笛卡尔网格[25]上的一个有限差分模板。
基于此,本文提出改进PINN的方法:在传统的数值方法中加入CNN的结构,用数值方法代替AD来逼近微分算子。然而,Tensorflow教程中建议的方法只适用于区间、平方和三次域。因此,必须为一般的几何图形开发一个更一般的算法。
为此,考虑中的局部网格,如图4所示。
在有限体积法或广义差分法[26]中,处的拉普拉斯算子
可以离散为
. (13)
即在P0处的线性微分算子可以用函数值在P0及其相邻点P1-P5处的线性组合来逼近。虽然(13)是基于图4,但同样的思想可以应用于任何维度。对于CNN来说,(13)实际上是一个卷积运算。如果我们能在(13)中找到一组合理的系数,那么我们可以用它作为在P0处算子Δ的近似值。
在自由度位于节点上的有限元方法中,(13)由偏微分方程的弱公式给出。在广义差分法中,(13)由对偶网格上的积分得到。当然,我们可以简单地应用这些数值格式来近似微分算子。然而,这些数值格式对网格的依赖性很大,建立格式需要大量复杂的计算。另一方面,如果我们已经有了这些数值格式,在解出一个线性系统后,我们可以得到偏微分方程的数值解。那么,我们就不再需要机器学习求解器了。
因此,我们应该提出一种既适合机器学习框架,又继承数值方法特性的方法。这种方法的线索可以在CNN核中找到。如果我们考虑(1)中的数字作为有限差分格式在相应点的权值,那么我们可以验证该格式对于1,x, y, xy是精确的。这与有限差分理论[27]一致。在数值积分中,我们有单项法则,即,一旦求积法则或积积法则对某一组多项式是精确的,那么求积法则或积积法则在精度为[28]的特定阶数下是可行的。我们可以模仿这个规则来解决我们的问题;如果数值格式对于一组多项式是精确的,为什么不使格式(13)对于一组多项式是精确的,这样就可以确定系数?
下面是该算法的路线图。首先选择一组基函数,如多项式,满足定理1中的条件。接下来,建立一个最小二乘问题来找出一个线性组合的系数,如(13)。这将给我们一个保证收敛速度的微分算子的近似值。最后,使用DNN作为偏微分方程解的替代模型,然后最小化由近似算子给出的偏微分方程的残差。
三、混合PINN方法
本节将根据第二节的结果描述确定微分算子逼近的局部拟合方法。
A、局部拟合方法
我们用图4来说明我们的算法。假设我们寻找在P0上Δ的近似值。注意图4中有六个未知数,所以理论上,应该找到六个独立的方程。根据第二节的分析,可以要求(13)对于{1,x, y, x^2, xy, y^2}是精确的,即:
(14)
其中是
处的坐标。如果系数矩阵(14)是满秩的,那么这个系统是唯一可解的,就得到了在P0处Δ的近似。
然而,实际情况比这要复杂得多。首先,不能保证(14)是唯一可解的。实际上,它取决于点的位置和使用的多项式类型。例如,在这个问题中,如果有笛卡尔网格点P0 =(0,0)(中心),P1 =(0,1)(上),P2 =(−1,0)(左),P3 =(0,−1)(下),P4 =(1,0)(右),然后用和
拟合系数,然后有
这是一个矛盾。
另一方面,未知数的数量并不总是与多项式的数量匹配。让表示次数不大于k的d维齐次多项式的集合,而
表示d维k次齐次多项式集。同时,让
和
分别表示
d和
中的元素数。在[24]里,
和
。然后,每个点的未知数数量由网格或点云给出(见备注1)。例如,在上面的矛盾系统例子中,我们只有5个未知数。但是,没有k∈N使得ρ(2, k) = 5因为ρ(d, k)在d和k上都是增加的,并且ρ(2,1) = 3<5<6 = ρ(2,2)。
为了克服所有这些问题,我们使用了软、硬约束的最小二乘法。考虑一个一般情况而不是(13)。设,以及
为网格中直接连接P0的m个相邻点。假设用下面的方程来寻找在P0处Δ的近似值:
(15)
一旦给出一个网格,我们可以计算它的邻接矩阵。通过邻接矩阵,我们可以知道网格中每个点的邻接点的数量,然后,每个点的未知数的数量就明确了。假设网格点周围的最小未知数为,而最大未知数为
。然后,选择最大值
使
,最小值
使
,现在就有了以下最小二乘问题:
(16)
其中W1和W2分别为硬约束[(16)中的第一项]和软约束[(16)中的第二项]的惩罚常数。通常有W1 > W2。最小二乘问题(16)的目标是精确满足硬约束。即对于中的多项式,格式(15)是精确的。如果存在剩余自由度,我们要求方案对于更高阶多项式尽可能精确,以控制这些剩余自由度。这个要求对所有的点都不是强制性的,所以称之为软约束。通过求解(16),将得到在P0处Δ的近似。
虽然这里使用拉普拉斯算子作为例子来说明该算法,定理1和推论1表明此算法对于任何n阶线性微分算子在相应的条件下都是正确的。
定理1:设是一个有至少(n + 1)次连续偏导数(n≥1)的函数,
是
中的n阶线性微分算子,由
和
组成。假设
近似为
(17)
其中是网格中直接连接P0的相邻点,如果(17)对
中的所有多项式都是精确的,即,
(18)
然后有
(19)
其中, C是一个常数,与h无关。证明略。
定理1给出了n阶微分算子的近似。使用类似的技术,可以展示(19)对于更一般的微分算子是成立的。这个结果已经在没有证明的推论中显示出来了。
推论1:在定理1的条件下,设是
中
和
的线性微分算子。因此有相同的估计,如(19)所示。求出(16)后,可以将合成系数逐行排列。这将形成一个稀疏矩阵A,它是线性算子L的矩阵形式的近似。这种方法被称为局部拟合方法。A只有O(N)个非零元素,其中N是网格点的数量。则L[u](x)可以被Au近似,其中u为网格点x处u的函数值的列向量。
利用局部拟合的方法,将得到算子的近似,而近似的准确性由定理1和推论1保证。此外,通过相邻点的线性组合计算偏微分方程的残差,将域中的训练点连接在一起。因此,没有一个点像在PINN中那样被孤立地训练。因此,可以避免第二节(例1-3)中提到的现象。这是这项工作的主要贡献之一。在完成这一节之前,有以下两点备注。
备注1:本文建立了基于域网格的近似及其理论。然而,算法只需要这些点的位置以及它们的邻近点在哪里。一旦有了这些信息,就可以用函数在中心点的值及其邻近点的值来近似函数在中心点的微分。因此,该算法也适用于点云。对于点云,唯一需要做的就是根据某种标准计算出每个点的相邻点。例如,可以收集一个以某半径点为中心的球中的所有点。该方法将局部拟合方法推广到高维问题。
备注2:对于高阶微分算子,有时节点的数量不足以建立合理的方案。例如,对于中的四阶双调和算子
,必须用至少四阶多项式来拟合这个算子。这需要ρ(2,4) = 15的方程然后大约有15个节点。然而,在
的网格中,通常没有这么多相邻点。在这种情况下,可以模仿有限元中的想法,在边缘或元素上添加额外的自由度。例如,可以在边缘的中间或每个元素的中心添加一些额外的节点。这将弥补自由度的不足。或者,可以添加相邻点的相邻点来增加自由度。例如,在图4中,可以用P1-P5处的函数值以及P1-P5的邻近点来近似P0处的
。这类似于紧致有限差分格式。
B、混合PINN算法
这一部分总结了混合PINN的算法,并对其进行了分析。一旦逼近了微分算子,就可以将其与神经网络结合起来求解偏微分方程。
假设解决以下PDE问题:
(23)
(24)混合PINN算法在算法1中进行了总结。
混合PINN的结构如图5所示。
备注3:根据定理1,算法1中的可选为
。对于低阶偏微分方程,比如泊松方程,这是一个很好的选择。对于高维情况下的高阶方程,可以增大自由度,如备注2所示。或者,可以使用其他类型基函数来减少工作负载,这是以后的工作。
备注4:正如在第一节中提到的,使用近似矩阵来计算PDE的残差,而不是AD。但是绝不能完全抛弃AD。正如将在第四节中看到的,可以结合AD和近似矩阵在一个问题中,这样可以享受灵活性和准确性。
注意,边界值算子可以包括边界上的导数,例如外部法向量导数。在这种情况下,可以用AD来计算边界的导数。下面的数值实验表明,这是处理边值算子的一种很好的方法。
一旦开发出数值偏微分方程的新算法,数学家自然会问:新算法的优势是什么?与数值方法和PINN相比,混合PINN继承了数值方法的高精度和PINN的灵活性。这意味着我们不需要写下弱公式,形成刚度矩阵和质量矩阵,定理1保证了结果的准确性。与PINN相似,混合PINN也能方便地求解反问题,这在数值计算中需要做大量的工作。混合PINN的仿真时间比PINN短得多。混合PINN的另一个优点是,只要问题的几何和PDE是固定的,我们总是可以使用相同的近似算子A来解决问题。这将节省大量时间,因为下面的数值实验表明,一旦我们有A,训练解需要一些时间。这一特性表明,混合PINN适合迁移学习。
另一个读者的潜在问题是,如果已经有了A,可以通过解线性系统或最小二乘问题来解决PDE。那么,为什么需要神经网络呢?首先,尽管证明了A是的合理近似,并且数值实验表明A在大多数情况下是可逆的,但不能保证A在所有情况下都是可逆的。另一方面,即使A是可逆的或者我们找到了A的广义逆,我们也只能在网格点上得到结果。对于定义域中的其他点,我们需要做插值。然而,神经网络自然是一个很好的插值器。一旦我们训练了神经网络,我们就可以直接预测域内任何一点的解,而不需要额外的操作。有些问题,例如,逆问题,需要在定义域内部加上额外的值。在这种情况下,混合PINN可以直接施加限制,但当附加点不在网格上时,数值方法需要特殊处理。
在第二节中,本文提到了关于PINN、VPINN和hp-VPINN的两个问题。一种是基于AD的偏微分方程的残差,它只给出孤立点的约束,中间的解将失去控制。另一种是在VPINN和hp-VPINN中,而DNN的函数空间失控,因此积分公式可能不足以得到正确的解。然而,混合PINN对这两个问题都没有影响,因为PDE已经被局部拟合逼近,其截断误差具有收敛速度。
四、实验
由于CNN启发了我们的算法,所以在这里做了一个相似性总结。从CNN的角度来看,算法1中的卷积核为A。但是不同的是CNN的核不再是3 × 3。这是因为我们是在网格或图形上计算“卷积”,而不是在笛卡尔网格上。填充数据就是边界条件,而不是传统CNN中的零填充或相同填充。我们的算法中没有池,因为我们不需要压缩数据。stride为1,因为我们需要在网格中的每个点上建立方程。同样,通道的数量是1,因为通常解是一个标量。
A.收敛速率测试
在这个测试验证了混合PINN至少具有一阶收敛速度,如定理1所示。考虑以下问题:
(25)
(26)
其中,以及
.
分别对规则网格(如图6所示)和不规则网格(如图7所示)的收敛速度进行了测试。图6和图7中的红色点为边界点。
在(16)中选取W1 = 100, W2 = 1,硬约束采用中的二阶多项式,软约束采用三阶多项式。一旦我们得到矩阵A,我们使用一个有4个隐藏层的神经网络,每层100个神经元来预测解。
实验结果如表一、表二所示。
可以看到,当网格尺寸小于或等于0.1时,误差的减小比定理1中所期望的一阶快得多。这意味着当网格尺寸减少一倍时,误差减少不止一倍。从求解A和训练DNN的时间对比可知,对于不规则网格,混合PINN中查找A的时间更多。
本文还研究了DNN的准确性与结构的关系。改变了每一层的层数和神经元数,误差如表三所示。
如表所示,虽然有少数例外,但当层数和神经元数量增加时,精度几乎也在增加。然而,一个更大的DNN架构需要更多的计算能力。
B、变系数偏微分方程的检验
在定理1中,假设算子是线性的。在这个测试中,将证明混合PINN也适用于拟线性算子。考虑以下问题:
(27)
(28)
其中
作者在尺寸为0.05的网格上解决了这个问题。所有其他参数与测试1保持一致。离散的L2误差为1.313956e−04。
C、三维情况的测试
本节测试了三维Helmholtz方程的混合PINN。
(29)
(30)
其中,
是波数,以及
不同时期的解变化很快。在尺寸为0.06的网格上解决这个问题,并保持所有其他参数相同。离散的L2误差为2.041547e−01。x = 0.8, y = 0.8, z = 0.2处的三维解切片如图9所示。实验还表明,混合PINN可以解决平滑性差的问题。
D、复杂几何形状
为了在复杂几何上测试混合PINN,解(25)-(30)用
模拟的网格如图10所示。
网格点解如图11所示。
由于在这种情况下很难产生均匀分布的随机点,所以仅通过网格点上的值计算离散的L2误差,为3.204727。由于面积大,误差比较大。请注意网格尺寸从27.9到104.1,如图10所示。此外相对误差约为1.671e−4。
E、Test for Surface PDE
本节测试了Surface PDE的混合。唯一不同的是,应该将多项式集和
替换为曲面上的多项式集。将以单位球
为例,考虑球坐标变换
:
由于可以用(θ, φ)参数化,因此可以定义
,使
上的多项式定义为
。作者重复在[9]中所做的实验,并解决以下问题:
(31)
实验中使用的样本网格如图12所示。
结果如表4所示,解如图13所示。
为了进行比较,使用在[9]中介绍的PINN重做实验。将样本点与表4中的网格点保持一致,并计算相同的L2范数。结果如表V所示。
通过对比表IV和表V,可以看到混合PINN在计算时间和精度上都有巨大的优势。
F、反问题的测试
在这个测试中证明了混合PINN可以解决反问题,考虑以下问题:
结果:a的精确值为2,神经网络训练时间为19.4567(s),对a的预测为1.985,解的离散L2误差为5.607821e−06。