hp-VPINN:具有域分解的变分物理学神经网络
摘要
我们基于浅层和深层神经网络的非线性逼近,以及通过域分解和投影到高阶多项式空间进行的hp细化,制定了一个hp-变分物理信息神经网络(hp-VPINNs)的通用框架。试探空间是神经网络的空间,它在整个计算域上全局定义,而测试空间包含分段多项式。特别是在本研究中,hp细化对应于全局逼近与局部学习算法相结合,这种算法可以有效地实现网络参数优化的局部化。我们通过函数逼近和求解微分方程的多个数值示例,展示了hp-VPINNs在精度和训练成本方面的优势。
关键词:物理信息学习;VPINNs;变分神经网络;区域分解;自动微分;hp细化;偏微分方程
code : https://github.com/ehsankharazmi/hp-VPINNs
1 引言
神经网络(NN)在求解微分方程中近来受到了广泛关注,参见例如[1–8]。它们通过多种网络结构和激活函数中的隐藏层组成,提供了一种非线性逼近器,其普适逼近性质为求解微分方程提供了替代方法。一般来说,非线性逼近[9,10]将逼近器扩展到非线性空间中,不再局限于线性空间的逼近;它包含不同的方法,如小波分析[11]、字典学习[12]、自适应追踪与压缩感知[13–16]、自适应样条[9]、径向基函数[17]、高斯核函数[18]、以及神经网络[19–21]。
由于神经网络的非线性逼近特性,使用神经网络求解微分方程被构造为优化问题,设计适当的损失函数以优化感兴趣的量至关重要。基于变分/加权残差法[22],开发了若干求解器,如基于最小二乘的深度伽辽金法(DGM)[23],基于配点法的物理信息神经网络(PINNs)[3,24],以及基于伽辽金法的变分物理信息神经网络(VPINNs)[25,26]。沿着这条路径,我们开发了一种名为hp-变分物理信息神经网络(hp-VPINNs)的方法,该方法基于子域Petrov–Galerkin法。神经网络仍作为试探空间,但与上述所有工作相比,子域Petrov–Galerkin法通过区域分解实现h-细化,通过投影到高阶多项式空间实现p-细化。
在本工作中,我们考虑以下问题:
其中有界区域,边界为,,描述由上述控制方程建模的基础物理现象。算子通常由单位算子和带参数的微分算子组成。我们假设是在(1.1)-(1.2)中的神经网络逼近(试探解)。具体来说,神经网络由个隐藏层组成,每层有个神经元和激活函数,其形式如下:
其中输出层的线性映射为,在每个隐藏层中,非线性映射为,其中权重,偏置,且为输入维度。然后我们定义强形式残差、边界残差和初始残差如下:
这些残差是衡量逼近解满足(1.1)-(1.2)程度的指标。理想情况下,当所有残差都完全为零时,精确解可以被恢复。通过将残差投影到适当选择的测试(加权)函数空间上,获得加权残差的积分,然后将其置为零;这就形成了问题的变分形式。具体来说,我们选择一些测试函数,使得
为了求解这些方程导致的非线性系统,我们将其构造为如下的最小化问题:
其中
参数表示损失函数中的权重系数。它们可以由用户指定,或者通过数值实验手动或自动调整;然而,它们的最优界限在文献中仍然是一个开放问题[27]。
在(1.7)中,不同的试探函数和测试函数的选择对应于不同的数值方法。当采用线性逼近时,大多数方法已经在文献中得到了充分的建立和分析。在这里,我们专注于的非线性逼近和各种测试函数的选择,并简要讨论浅层/深层神经网络作为试探函数时的某些测试函数的选择;参见表1中的比较。
狄拉克δ测试函数对应于配点法。这些测试函数将残差投影到有限的配点集上,使得方程在这些点处得到满足。配点法的构造被用于[1]和PINNs[3]中。最近,PINNs在许多物理问题中成功应用,如从散乱/噪声测量中发现湍流模型[28]、高速流[4]、通过生成对抗网络求解随机微分方程[24]、分数阶微分方程[29]和自适应激活函数[30,31]。基于此构造,还开发了一个Python包,名为SciANN[32]。特别地,PINNs使用了以下泛函:
其中残差如(1.4)中所示,配点集为、和。
我们用上标表示与强形式残差相关的损失函数。深度伽辽金法[23,33]也采用了神经网络的非线性逼近,但它的测试函数为,本质上构成了最小二乘法。其他形式包括深度Ritz方法[2]及其扩展的深度Nitsche方法[7],该方法包含必要的边界条件。弱对抗网络[34,35]将问题转化为由弱形式引发的算子范数最小化问题,并考虑测试函数为带有独立参数的深度对抗网络。
变分形式的PINNs,即VPINNs[25],采用了深度神经网络的非线性逼近作为逼近函数。它将残差投影到多项式空间中,形成了一种Petrov–Galerkin法。文献[25]表明,对于浅层网络的情况,VPINNs可以分析地获得变分残差。具体来说,VPINNs形式使用了以下泛函:
测试函数取自正交多项式。上标表示与变分形式残差相关的损失函数。基于问题变分形式的其他构造也被开发出来。VarNet[26,36]将测试函数选为有限元方法的分段线性形函数,而D3M[8]则将问题(1.1)-(1.2)重新表述为一阶方程系统。
图1. VNN连续函数逼近
(A) 全局VNN:
(左图)测试函数,定义在整个计算域上; (中图)精确函数与VNN逼近; (右图)逐点误差。
(B) 局部VNN:
(左列)测试函数,局部定义在各个子域上; (中列)精确函数与VNN逼近; (右列)逐点误差。
虚线蓝色线表示子域边界。VNN的参数为。我们使用学习率为的Adam优化器。
本文中,我们开发了hp-VPINN方法,以统一当前基于残差最小二乘法的深度学习方法,解决偏微分方程。特别是,我们专注于变分形式,通过选择一组在每个子域上不重叠的测试函数;详见下一节。我们的构造通过分部积分减少了微分算子的阶数,因此可以更有效地处理诸如奇点、陡峭解和急剧变化等粗糙解/输入数据;参见第5节中的奇点示例。它还通过hp细化提供了区域分解的灵活性,其中当前细化的选择基于残差的逐点值。因此,它既构建了局部逼近又构建了全局逼近;参见表2。我们还在表1中展示了不同的测试函数选择会导致不同的方法。我们注意到,当前发展中测试函数的最优选择是一个重要的开放问题,尚需进一步分析。本文重点放在高阶分段多项式的基础上。此外,我们讨论了当前构造如何导致PINN构造,并解释了它如何放松输入数据的光滑性要求;参见第2节。
图2. VNN不连续函数逼近:全局(单元素)VNN
上排从左到右依次为:
测试函数,定义在整个计算域上; 精确函数与VNN预测; 逐点误差。
下排:
目标函数与预测在低频和高频域中的表现。
VNN的参数为。我们使用学习率为的Adam优化器。
本文其余部分的组织如下:第2节中,我们介绍了hp-VPINNs的构造。然后在第3节中,我们检验了该方法在逼近多个函数中的效率。第4节和第5节中,我们详细介绍了一维和二维椭圆问题的计算细节。第6节中,我们展示了如何修改该方法以使用线性对流-扩散方程求解逆问题。本文中的代码和部分示例是开源的,可在https://github.com/ehsankharazmi/hp-VPINNs获取。
2 hp-变分物理信息神经网络 (hp-VPINN)
hp-VPINN 的构造基于以下局部化的测试函数,这些测试函数定义在不重叠的子域 , 上,这些子域是集合 或 的分区。在子集 上定义的测试函数为
其中 ,这构成了一种子域方法。非零测试函数是实践中选择的某一阶的多项式。
我们定义元素变分残差为
它在元素 内对允许的局部测试函数施加约束。随后,我们定义变分损失函数为
其中 是元素 中的测试函数总数, 是与元素 相关的张量的第 个条目,而 和 具有与(1.4)相同的形式。关于hp-VPINNs在一维和二维问题中的详细推导,参见第4节和第5节。
将强形式残差投影到测试函数上,除了现有的近似误差和DNN的泛化误差外,还引入了两个主要的截断误差和数值积分误差。增加测试函数的数量以消除截断误差可能会进一步复杂化损失函数,从而在实际操作中增加优化失败的几率。在浅层网络的情况下,变分残差可以通过解析方法得到[25],完全消除了数值积分误差。然而,DNN的隐藏层的组成结构使得几乎不可能解析地计算变分损失函数中的积分。因此,在深度网络的情况下,我们需要采用适当的数值积分技术,这为开发和分析由DNN表示的函数的数值积分方法带来了新的问题。在本研究中,我们采用高斯求积规则。为避免高维问题中的维数灾难,我们可以采用数值方法,如准蒙特卡罗积分[38]或稀疏网格求积法[39,40]。
图3. VNN不连续函数逼近:局部(元素)VNN
虚线蓝色线表示子域边界。
各行的说明如下:
第一行:在每个子域上局部定义的测试函数; 第二行:精确函数与VNN预测; 第三行:逐点误差; 第四行和第五行:精确函数和VNN预测在低频和高频索引中的表现。
VNN的参数为,局部测试函数,每个子域内有个求积点,使用学习率为的Adam优化器。
注释 2.1:域分解为在每个子域中使用独立的网络并将优化任务分配给特定的计算节点提供了机会。然后通过拼接每个子域中的独立网络解来重构整体解。这种并行化策略可以大幅降低总计算成本,然而,它需要在界面(即子域边界)上进行特殊处理,以确保所有独立网络适当地进行通信,以优化总损失函数;参见[37]。然而,正如当前hp-VPINN构造中那样,即使我们将域分解为多个子域,我们仍然使用单个DNN来逼近整个计算域上的解。在这种设置下,我们避免了接口处理的负担,尽管并行化可能并不简单,因为我们只有一个与DNN相关的损失函数。
注释 2.2:激活函数在每个神经元中的形式与(1.3)相似。然而,它也可能根据网络的结构具有不同的定义域和像空间维度[30,31]。DNNs的自适应基视角也见[41]。
现在我们可以讨论该构造与PINN及其他构造的联系。实际上,如果我们将测试函数取为分段常数,如在域上的,我们在(1.5)中得到
当残差在子域内是连续的时,在同一子域中存在一个点使得。类似的解释也适用于(1.5)中的其他两个公式。我们正好得到了PINN的构造。此外,当网络残差不连续时,只要积分是定义良好的,该构造仍然是定义良好的。例如,当我们采用ReLU激活函数()时,对于泊松方程仅属于。因此,我们不能使用PINN构造,但仍然可以通过分部积分或简单地使用子域上的平均值来使用当前的构造。在这种情况下,我们可以将当前构造视为PINN的弱形式。
hp-VPINN看似与[26]中的VarNet相似。然而,在我们的构造中,我们施加了正交性,而VarNet没有。在当前构造中,一个子域上的基元素与另一个子域上的基元素是正交的,而VarNet中没有施加正交性。此外,如果我们在一个子域中取正交基元素,那么我们就有了完整的正交基,这使我们能够在光滑子域上使用光滑解的高阶多项式。而在VarNet中,仅使用了低阶的分段多项式。VarNet可以看作我们之前工作VPINN[25]的一个版本。我们预计正交性将在未来的分析和自适应策略设计中带来便利。
3 变分神经网络 (VNN) 的函数逼近
让我们考虑用逼近目标函数的问题。我们将逼近残差定义为。设置如下:我们令和为零,从而定义相应的损失函数
其中是元素中使用的测试函数数量。带有损失函数(3.1)的VNN构造继承了hp-VPINNs的所有优势,即hp-细化,在每个元素中使用不同的测试函数,以及自适应选择每个元素中适当数量的测试函数的灵活性。
我们构建了一个具有个隐藏层的全连接网络,每层有个神经元,并使用tanh激活函数(除非另有说明)。我们使用勒让德多项式作为测试函数,即。我们还使用具有个求积点的高斯求积规则来计算积分。我们考虑两种不同的逼近方法:(i)全局或单元素VNN,其中,是定义在单个元素上的光滑函数;(ii)局部或元素VNN,其中,局部定义但仅有一个非零;(iii)多元素VNN,其中,局部定义且所有均为非零。在方法(ii)中,网络仅在非零的局部元素上捕捉目标函数。
图7. 一维泊松方程的陡峭解 (4.9):VPINN与PINN的比较
顶部面板展示了VPINN的h细化,分别为单元素(第一行)、两元素(第二行)和三元素(第三行)。
列标题如下:
(左列)精确解与VPINN预测; (中列)逐点误差; (右列)损失函数相对于训练迭代的变化。
VPINN的参数为,每个元素中。PINN的参数为。
网络为全连接结构,采用正弦激活函数,我们使用Adam优化器,学习率为。
示例 3.1(连续函数逼近):我们考虑如下形式的光滑目标函数
该函数定义在上。我们使用VNN通过全局和局部测试函数来逼近目标函数。结果如图1所示。
考虑的函数是光滑且连续的,因此可以使用的VNN准确逼近。使用、、、,我们获得了误差为。通过将域划分为三个等距的子域,我们在每个子域上定义测试函数以局部逼近目标函数。局部VNN的关键点在于,通过聚焦到子域中,我们更加关注于精确逼近的区域。在这种设置下,网络参数被特别优化,使得网络仅在该子域内捕捉函数。相比全局VNN,局部VNN在每个子域中的逼近结果略为更准确。稍后我们将展示此设置如何扩展逼近至局部子域之外。
示例 3.2(不连续函数逼近):我们考虑如下形式的分段连续目标函数
该函数定义在上,并且在处存在大小为6的跳跃。我们使用VNN通过全局和局部测试函数来逼近目标函数。结果如图2、图3和图4所示。
精确解由频率为和的正弦波和不连续性组成。比较傅里叶域中的逼近是很有趣的,其中两个正弦波由低频率索引表示,而不连续性由高频率索引表示。图2展示了使用全局测试函数的全局(单元素)VNN逼近不连续函数的结果,可以看到误差在不连续处达到的数量级。在傅里叶域中,网络学习了目标函数的低频索引,但未能捕捉高频索引。在图3中,我们展示了使用局部测试函数的局部(元素)VNN的结果,其中通过定义靠近不连续的较小子域,确保网络可以非常准确地捕捉高频索引。在图4中,我们展示了多元素VNN的结果,网络能够在傅里叶域中准确捕捉目标函数。我们在模拟中观察到,通常情况下,DNN通过先学习不连续性,然后从低频到高频来回归函数。然而,多元素设置可以通过考虑不同的域分解来优化此学习模式。
示例 3.3 我们考虑示例3.1中给出的目标函数,并研究全局(单元素)VNN在不同激活函数和网络深度下的逼近误差收敛情况。结果如图5所示。
DNN的组合结构赋予了它们高表达能力,因此假设(相对)更深的网络能够提供更准确的回归逼近。从图5可以看到,在VNN构造中通过增加网络深度同时保持宽度不变时,对于各种激活函数,误差以不同的速度下降。误差在某一深度后趋于饱和,主要原因是网络参数无法进一步优化以达到更高的精度。
我们回顾一下,VNN构造中的损失函数基于将网络输出和目标函数的差异投影到多项式函数空间中,在该空间中,成功最小化损失函数会导致收敛。然而,我们观察到范数中的误差也在下降,因此除了准确逼近目标函数外,网络还学习了目标函数的一阶导数(但精度稍低)。精度和收敛率强烈依赖于激活函数的选择,正如我们观察到的,ReLU在学习目标函数的导数方面不如sine和tanh激活函数成功。这是局部VNN的一个重要特征,因为网络可以通过在子域边界处遵循一阶导数的趋势进一步捕捉超出局部支撑的目标函数,而损失函数仅在局部子域上获得;我们将在后续内容中进一步讨论此特性。
超出子域的学习 在之前的局部VNN示例中,我们只在单个子域内训练网络,观察到网络在子域之外稍微超出范围的地方也可以较低精度地捕捉目标函数。实际上,除了学习目标函数外,网络还在该子域内学习了目标函数的导数。目标函数的正则性、VNN的局部化以及网络的结构对于更准确地预测子域外的结果非常重要。图6展示了一个示例,其中目标函数为。我们在对称子域上定义局部测试函数;参见蓝色虚线。我们观察到,在局部学习了该子域内的函数后,网络在子域边界处遵循相同的趋势,因此在子域外进行了外推。图6中展示了子域左右边界的放大图。
4. 一维泊松方程
在这一部分,我们详细讨论了一维问题的hp-VPINN推导。设,其中。我们考虑如下给出的泊松方程
边界条件为
其中和为常数,并假设力项在某些求积点上是可用的。设逼近解,则强形式残差(1.4)变为
我们将区域划分为不重叠的子域,通过定义域分解网格。我们选择一组局部化的不重叠测试函数,如(2.1)所示,非零函数为高阶多项式,其中是阶数为的勒让德多项式。变分残差则为
其中,在每项中,,积分变量属于子域。我们可以通过对的第一项进行分部积分定义以下三种变分残差形式。于是,
其中
由于在上具有紧支撑,式(4.6)和(4.7)中的第一项边界项消失。每种情况下相应的变分损失函数形式为
其中是元素中的测试函数数目。对于每个元素,其中,我们通过适当的仿射映射将变分残差转换为标准域,以计算积分。
4.1 数值结果
我们通过不同的数值示例来检验VPINN的性能。我们构建了一个具有4层隐藏层、每层20个神经元并使用正弦激活函数的全连接神经网络。我们最多使用60阶勒让德多项式,并使用80个Gauss-Lobatto求积点和权重(在每个元素中)来执行积分。我们在Python中编写了我们的构造,并利用Tensorflow的自动微分功能。我们还使用扩展的随机梯度下降Adam算法[42]来优化损失函数。
示例 4.1 我们求解问题(4.1)-(4.2),其精确解形式为
陡峭解:
边界层解:
在每种情况下,我们通过将精确解代入(4.1)来得到力项。结果如图7、8和10所示。
图7展示了VPINN和PINN对带有陡峭解(4.9)的泊松方程的逼近。在VPINN中,我们看到逐点误差是振荡的,这是由于测试函数的模态特性所致。与PINN结果相比,误差小了好几个数量级,但在PINN中误差没有振荡。在其他的边界层精确解的示例中也观察到类似的行为,如图10所示。需要注意的是,对于PINN要准确捕捉解中的剧烈变化,我们需要在剧烈变化的位置附近提供更多的残差点。我们还观察到,在陡峭和边界层情况下,力项变得非常大,导致初始时损失值很大,这有时可能会导致优化失败。我们还观察到,为了正确学习边界层,在PINN的损失函数中边界项被赋予了较大的权重(例如,参见[27]),而在我们的构造中边界的权重较小。
网络超参数的选择,即深度、宽度、激活函数等,基于我们的数值实验,可能不一定是最优选择。作为比较,我们在图9中展示了一个小网络和一个大网络,分别为 和。我们观察到小网络中的优化速度明显较慢。在大网络中我们在40000次迭代后停止优化,损失函数约为,而在小网络中150000次迭代后的损失约为。因此,在这种情况下,较大的网络提供了更准确的解逼近。
示例 4.2 我们求解问题(4.1)-(4.2),其不对称陡峭解形式为
不对称陡峭解:
其中剧烈变化稍微偏离原点。我们假设剧烈变化的位置事先未知,通过将区域进一步划分为更多子域的方式逐步得到;结果如图11所示。
有趣的是,由于解是不对称的而测试函数是对称的,单元素VPINN相较于对称陡峭函数(4.9)的逼近非常不准确。然而,随着元素数量的增加,网络最终捕捉到了该解。
5 二维泊松方程
在这一部分中,我们详细讨论了二维问题的hp-VPINN推导。设,其中。我们考虑如下给出的二维泊松方程:
其边界条件为狄利克雷边界条件,并假设力项在某些求积点上是可用的。设逼近解,则强形式残差(1.4)变为
我们通过分别选择大小为和的有限集和方向的可接受测试函数构造离散有限维测试空间,并使用张量积规则:
变分残差形式为:
我们在和方向上定义网格和,并通过构造不重叠的元素将区域划分为结构化的子域,其中,。因此,变分残差变为:
其中,。我们可以在每个元素中使用不同数量的测试函数,但为了简化推导,我们假设所有元素中测试函数的数量相同。非零部分的和的结构与一维情况类似。因此,局部测试函数在上具有紧支撑。因此,对于所有元素,有:
通过对的第一项进行分部积分,我们可以定义以下变分残差形式,其中与力项的积分相关:
我们将张量的顺序减少为一维,通过将其条目堆叠为大小为的向量。随后,我们定义变分损失函数为:
其中是与元素相关的简化张量的第个条目,的形式与(1.4)相同。我们注意到,变分残差中的积分可以通过适当的仿射映射映射到标准元素。
图12. 二维齐次泊松方程
顶部面板:
(A) 精确解 (5.11) (B) PINN预测 (C) PINN逐点误差
底部面板:
(D列) 通过域分解进行的h细化, 和 2 (E列) hp-VPINN预测 (F列) hp-VPINN逐点误差
在所有情况下,网络为全连接结构,参数为,并采用tanh激活函数。PINN的参数为个随机残差和边界点,。hp-VPINN的参数为每个子域中,个边界点,。我们使用Adam优化器,学习率为。
5.1 数值结果
我们通过不同的数值示例来检验VPINN的性能。我们构建了具有不同深度、宽度和激活函数的全连接神经网络。我们在和方向上采用勒让德多项式,并通过使用张量积规则选择适当数量的高斯求积点来计算每个元素中的积分。我们在Python中编写了我们的构造,并利用Tensorflow的自动微分功能。我们还使用扩展的随机梯度下降Adam算法[42]来优化损失函数。
示例 5.1
我们求解齐次二维泊松方程,即(5.1)中的,定义在双单位正方形区域上。精确解为:
结果如图12所示。
在这种情况下,精确解是光滑的,因此可以通过使用相对较小的网络(,tanh激活函数)获得准确的逼近。我们比较了PINN和hp-VPINN(单域和多子域)的逐点逼近误差。PINN构造使用了从均匀分布中随机抽取的个残差点和个边界点。在hp-VPINN构造中,我们在和方向上各使用5个测试函数,并使用个求积点。在这种情况下,域分解并未提高逼近精度,在所有构造中逐点误差的数量级为。然而,域分解可以在后续的并行计算中使用,其中每个子域可以在单独的计算节点上独立求解,从而进一步降低总计算成本。我们注意到,和构造产生了类似的误差水平,因此我们仅展示了后者的结果。在此未被考虑,因为边界项可能会使损失函数更加复杂。
示例 5.2
我们求解具有以下精确解的二维泊松方程,该解在方向上有一个陡峭变化,在方向上具有正弦行为:
其中通过将精确解代入(5.1)得到力项。结果如图13所示。
在这种情况下,我们使用了一个较宽的网络(,tanh激活函数)来准确捕捉处的陡峭变化。我们通过逐步增加域分解中的子域数量,研究了hp-VPINN构造中的误差收敛情况。在每个子域中,我们在和方向上各使用5个测试函数,并使用个求积点。图13展示了随着和轴上的划分数量增加,误差的收敛情况。对于,误差的数量级为。
示例 5.3
我们求解齐次二维泊松方程,即(5.1)中的,定义在L形区域上。hp-VPINN结果如图14所示。作为对比,我们还展示了通过使用谱元法(SEM)[43]得到的数值解。PINN与SEM的比较见[44]。
在这种情况下,精确解不可用,因此我们将SEM解[43,44]视为基准解(SEM使用了总共12个相等的元素,在和方向上的多项式阶为)。该示例中的难点是准确逼近处的尖锐边缘。我们在[44]中看到,PINN构造在该顶点处产生了最大的误差,而在域的其余部分保持了更好的精度;它使用了从均匀分布中随机抽取的个残差点和个边界点。在hp-VPINN构造中我们也观察到了类似的行为,然而,通过细化域分解,我们报告了在内部区域中获得了更好的精度。在粗分解中,我们将区域划分为三个相等大小的子域,如图14所示。然后,在细分解中,我们将区域划分为总共35个不同大小的子域。基于图15中显示的残差的逐点值,建议进行这种更细的h细化。在这两种情况下,我们在和方向上各使用5个测试函数,并在每个子域中使用个求积点。我们可以看到,在细域分解中,内部区域误差减少了,而尖锐边缘处的误差仍然占主导地位。在所有hp-VPINN构造中,我们使用了一个具有,tanh激活函数的全连接网络。我们还注意到,在该测试用例中,和构造产生了类似的误差水平。
6 对流扩散方程(逆问题与正问题)
在这一部分中,我们讨论了线性和非线性对流扩散方程,包括一个关于线性对流扩散方程的逆问题。
当给定数学模型解的稀疏观测/测量时,目标是准确估计不可观测的量/参数。这类估计通常被表述为受PDE约束的优化问题。稀疏观测、不完整和噪声数据使得从数据映射到未知参数的估计变得具有挑战性。优化问题通常难以通过简单的方法求解。此外,PDE通常通过适当的数值方法求解。例如,有限差分法和谱方法被用来在伴随状态方法中求解PDE【45–48】。其他方法也已被开发,见【49–51】以及其中的众多应用。
图13. 带有陡峭精确解的二维泊松方程
顶部面板:
(A) 精确解 (5.12) (B) PINN预测 (C) PINN逐点误差
底部面板:
(D列) 通过域分解进行的h细化, (E列) hp-VPINN预测 (F列) hp-VPINN逐点误差
在所有情况下,网络为全连接结构,参数为,并采用tanh激活函数。PINN的参数为个随机残差和边界点,。hp-VPINN的参数为每个子域中,个边界点,。我们使用Adam优化器,学习率为。
作为经典数值方法的替代方案,PINN构造可以在逆问题设置中将模型参数引入神经网络参数中【52,53】。物理坐标和未知模型参数的梯度通过自动微分计算,正如在Tensorflow【54】中实现的那样。因此,训练算法可以同时优化神经网络和模型参数。PINN构造还利用了超参数化DNN的能力,可以处理噪声数据输入;例如,见【37,55,56】。另一个方法称为物理约束学习【57,58】,该方法通过数值方式施加物理约束,并使用反向模式自动微分和正向Jacobian传播来提取梯度和Jacobian矩阵。
接下来,我们使用VPINN代替PINN来解决参数估计的逆问题,其中PDE约束在变分环境中施加。我们展示了VPINN构造也可以解决逆问题,尽管在逆问题中VPINN不一定表现得更加准确。
设,其中。我们考虑(1+1)维对流扩散方程(ADE):
边界条件为:
其中常数为对流速度,为扩散系数。当扩散系数较小时,对流占主导,这使得由于施加了无滑移边界条件,解在靠近右边界时变得复杂。ADE问题(6.1)的解析解以无穷级数和的形式给出【59】。我们使用800项计算解析解,并与我们提出的方法进行比较。
设逼近解,并注意到在瞬态问题中,时间可以看作另一个维度,因此变分残差的构造类似于前面的示例。时空域通过构造时间和空间网格和,划分为个结构化的不重叠子域(元素)。图16展示了通过考虑不同的区域分解(即),hp-VPINN方法的h细化。基于构造展示了逐点误差。对于构造,我们也报告了类似的逐点误差。
示例 6.1(扩散系数估计)
我们考虑ADE (6.1)并设为模型参数集,其中对流速度已知为常数,而扩散系数未知。尽管在这种情况下我们有解析解,但我们假设精确解的(观测/测量)值仅作为时间序列在轴上的三个(传感器)位置可用,即。我们随机选择每个传感器处的5个数据点,因此在整个区域中总共有15个测量值;这些点的一个示例如图17中的黑色方块所示。我们将扩散系数估计的逆问题表述如下:给定测量集,估计ADE (6.1)中的扩散系数。结果如图17所示。
在逆问题中,来自给定测量/观测的数据点被添加为变分损失函数(1.9)中的额外项:
我们使用VPINN构造,并构建了一个具有tanh激活函数的全连接神经网络,参数为,并在时空方向上使用勒让德测试函数。我们回顾,参数和是空间和时间中的测试函数数目。这里我们使用了VPINN中的构造。
图14. L形区域中的二维齐次泊松方程
顶部面板:
(A) 参考解 (B) PINN的逐点误差
底部面板:
(C列) 通过域分解进行的自适应h细化 (D列) hp-VPINN的逐点误差 (E列) 损失值随训练迭代的变化
hp-VPINN网络为全连接结构,参数为,使用tanh激活函数。每个子域中的参数为,。我们使用Adam优化器,学习率为。
未知的扩散系数初始化为1,随着网络学习其参数,的值收敛到其精确值。该估计值是在随机选择的点的10个不同案例中取平均的。的平均值收敛性、标准差以及损失函数的值如图17所示。我们观察到,在扩散系数收敛后,逐点误差仅在的右边界附近具有较大幅度。
示例 6.2(具有不连续解的对流方程)
我们通过设和在(6.1)中考虑对流方程。初始条件为:
在这种情况下,精确解为。精确解的双重不连续性随时间推进,给数值方法准确捕捉精确解和不连续处的剧烈变化带来了挑战。图18展示了具有8个隐藏层的深度网络可以准确捕捉解;在不同时间处绘制了预测解与精确解的对比。
示例 6.3(粘性Burger方程)
我们考虑非线性对流扩散方程,即Burger方程:
其中,,并且具有齐次狄利克雷边界条件。
即使初始条件是光滑的,Burger方程在某个时间之后也会形成陡峭的内部层。出现的陡峭解使得大多数数值方法难以准确捕捉该解。在这里,我们使用开发的方法的h细化能力来展示靠近解的陡峭部分的细化网格有助于高效地解析整个解。我们使用了一个具有4个隐藏层、每层20个神经元的全连接网络。我们采用tanh激活函数,并基于构造获得变分形式。测试函数是时空中的20阶切比雪夫多项式。因此,我们还使用切比雪夫点来计算变分残差中的积分。我们展示了的最终结果,如图19所示。图中数据是通过谱元法【43】得到的解。
7 总结与讨论
我们开发了hp-VPINN方法,以统一当前基于最小二乘法的深度神经网络在残差基础上求解偏微分方程的进展。特别是,我们重点研究了子域Petrov–Galerkin方法中的变分形式,其中试探空间为神经网络的空间,测试空间为局部化的不重叠高阶多项式。我们展示了通过分部积分,hp-VPINN可以更有效地处理诸如奇点、陡峭解和剧烈变化等粗糙解/输入数据。
在多个函数逼近和求解微分方程的示例中,我们展示了hp-VPINN的效率和精度,并与PINN进行了比较。我们详细推导了一维和二维问题的方法,导出了相应的变分损失函数,讨论了在求解非光滑解的方程时的hp细化和解的收敛性。关于所提出方法的一些收敛性分析可以在最近关于线性PDE的神经网络工作中找到【60,61】。
在本文中,我们主要集中于投影到高阶多项式空间。当前发展的测试函数的最佳选择是一个重要的开放问题,需要进一步分析。我们预计可以通过设计有效的误差指标并应用自适应策略来确定测试函数的最佳选择。我们的启发式方法是,选择基函数应该类似于谱/hp元方法中的基函数。为了全面理解这些基函数的作用,需要进一步开发细化的误差指标和选择基函数的方法。目前,测试函数的选择要么是通过先验了解底层问题解的定性特性,要么是通过最简单的误差指标——在均匀点上的残差值。在后一种情况下,h细化是在残差值较大的区域施加的。
此外,还需要与其他数值方法(如有限元(FE)和有限差分(FD)方法)进行严格而彻底的比较。然而,这种比较依赖于许多因素,如训练点和基函数的选择、区域划分、网络规模和实现等。我们提出的方法在逆问题中是有前景的,但与经典方法的比较还未完全准备好。我们已将部分示例代码上传至GitHub1,供有兴趣的读者使用,并邀请他们进一步探索这一研究方向。
💙整理不易,希望各位道友能够多多支持宝库,支持邪云宝库!你的一个点赞、一次转发、 随手分享,都是宝库前进的最大动力~
💛2024,不忘初心,宝库会给大家带来更好的内容,让我们2024,一起暴富!