加速PDE多解计算,基于牛顿信息神经算子的非线性偏微分方程多解求解方法

文摘   2024-11-15 18:21   北京  
最近不少道友后台反馈说收不到公众号的推文,我查了相关规则发现,微信公众号发布了新规则,只有点亮小星星才能第一时间收到文章推送,步骤如下:

点击上方蓝字关注我吧!

牛顿信息神经算子用于求解非线性偏微分方程《Newton Informed Neural Operator for Solving Nonlinear Partials Differential Equations》

摘要

求解具有多个解的非线性偏微分方程(PDEs)在物理学、生物学和工程学等多个领域中具有重要意义。然而,传统的数值方法(如有限元法和有限差分法)在处理非线性求解器时常常面临挑战,特别是在多解问题的情况下。这些方法在依赖牛顿法等求解器时,可能在分叉点附近由于问题病态性而难以收敛,导致计算成本显著增加。

在本文中,我们提出了一种新方法——Newton Informed Neural Operator,用于非线性PDE的求解。该方法通过学习牛顿求解器,将传统数值技术与牛顿非线性求解器相结合,能够在每次迭代中高效地学习非线性映射。此方法允许在一次学习过程中计算出多个解,同时相比现有的神经网络方法,所需的监督数据点更少。


Reproducibility Statement

代码可用性: 实验使用的代码可以通过以下地址访问:

https://github.com/xlliu2017/learn_newton,以及补充材料。数据集可通过仓库中的 URL 下载。仓库包括所有必要的脚本、函数和辅助文件以复现实验结果。

配置透明性: 包括超参数、模型架构和优化设置在内的所有配置信息,均在附录中明确提供。

1 引言

神经网络已广泛应用于求解偏微分方程(PDEs),并覆盖生物学、物理学和材料科学等多个领域【21, 9】。虽然现有的大量研究主要集中于具有唯一解的PDE,但对于具有多解的非线性PDE,其求解仍然是一个显著的挑战【39, 10】,但这类问题在诸多实际应用中广泛存在【1, 3, 31, 36, 14, 13】。本文旨在求解以下具有多解的非线性PDE:

其中, 是方程的定义域,中的一个非线性函数,,而 是一个二阶椭圆算子,其形式为

其中系数函数)已知,并满足

其中是常数。

针对PDE的求解,已有多种神经网络方法被开发,包括PINN【33】、Deep Ritz方法【45】、DeepONet【29】、FNO【25】、MgNO【16】和OL-DeepONet【26】。这些方法可以大致分为两类:函数学习算子学习 方法。在函数学习中,目标是直接学习方程的解。然而,这些方法往往只能在每次学习过程中找到一个解,且在存在多解时问题可能变为病态。而算子学习的目标是逼近PDE中参数函数与唯一解之间的映射,但该方法无法在单次训练中同时处理多个解或找到这些解。我们将在下一节中对此进行更详细的讨论。

本文提出了一种求解具有多解的非线性PDE的新型神经网络方法。该方法基于算子学习,能够在单次训练过程中捕获多个解,从而克服神经网络函数学习方法的局限性。此外,我们通过结合传统的牛顿方法【35, 1】改进了网络结构设计。这一结合使得算子学习的问题变得良定,因为牛顿方法在局部是良定的,从而确保了一个鲁棒的算子。该方法克服了直接应用算子网络于此类问题时所面临的挑战。此外,我们在训练过程中利用了牛顿信息,使得该方法即便在监督数据点有限的情况下也能高效运行。我们将这种网络称为 Newton Informed Neural Operator(牛顿信息神经算子)。需要说明的是,我们并未为神经算子设计特定的网络结构,而是将牛顿信息引入到训练过程中。具体而言,牛顿方法被嵌入到了损失函数中,详细内容见第3.3节。

如前所述,我们的方法结合了经典的牛顿方法,其通过将非线性PDE转化为迭代过程,在每次迭代中求解线性函数。该方法的一大优势在于,一旦算子被有效学习,就无需在每次迭代中都求解线性方程。这一特点显著减少了计算时间,特别是在材料科学、生物学和化学等领域中处理复杂系统时。此外,当牛顿信息神经算子经过良好训练后,即使面对不在训练数据中的初始猜测值,也可以用来计算新的解。在Gray-Scott模型的数值示例中,我们展示了这一能力。总的来说,牛顿信息神经算子通过学习牛顿非线性求解器,能够高效地求解具有多解的非线性PDE。它解决了传统非线性求解器耗时的问题,并且相比现有的神经网络方法需要更少的监督数据点。此外,由于无需像传统牛顿方法那样反复求解非线性系统,它进一步节省了时间。一旦神经算子被学习,它还可以计算超出监督数据之外的新解。

本文结构如下:在下一节(第2节),我们将探讨具有多解的非线性PDE,并讨论神经网络方法求解PDE的相关研究。在第3节中,我们将回顾求解PDE的经典牛顿方法,并介绍结合牛顿方法的牛顿信息神经算子以应对具有多解的非线性PDE问题。此外,我们将在本节中分析牛顿信息神经算子的逼近误差和泛化误差。最后,第4节中我们展示了神经网络求解非线性PDE的数值结果。第一个示例证明牛顿信息神经算子需要极少的数据进行训练,第二个示例显示其速度显著快于传统牛顿方法,最后一个示例突出其能够发现不在监督数据中的新解。

2 背景与相关工作

2.1 具有多解的非线性PDE

生物学、物理学和材料科学中描述自然现象的重要数学模型往往基于非线性偏微分方程(PDEs)【5】。这些模型因其内在的非线性特性而呈现出复杂的多解问题。典型示例包括物理学中的弦理论、化学中的反应扩散系统以及生物学中的模式形成【20, 12】。然而,实验技术(如同步辐射和激光方法)仅能观测这些多解的一部分。因此,迫切需要开发计算方法以揭示这些非线性模型,提供对其底层物理和生物机制的深入理解【17】。由此,识别这些解的高效数值技术对理解这些复杂系统至关重要。尽管近年来非线性PDE数值方法取得了一些进展,但在大规模系统中仍存在显著的计算挑战。特别是,对于实际应用中的大规模系统,采用牛顿方法及其变体通常面临高昂的计算成本。针对这些挑战【15, 19】,本文提出了一种基于牛顿方法的算子学习方法,用于高效求解非线性PDE。

2.2 相关工作

目前,已经开发了许多使用神经网络求解偏微分方程(PDEs)的方法。总体而言,这些方法可以分为两大类:函数学习算子学习

函数学习方法

在函数学习中,神经网络用于直接近似PDE的解。函数学习方法的目标是直接学习解函数本身。以Raissi等人提出的基于物理信息的神经网络(PINN)方法【33】和Deep Ritz方法【45】为例,这些方法被广泛应用于函数学习。然而,当问题存在多解时,由于病态性问题的存在,这类方法的任务变得尤为困难。尽管采用了不同的初始数据和训练方法,仍很难获得高精度的解学习。即使获得了高精度解,每次学习过程通常只能发现一个解。神经网络学习的特定解受初始条件和训练方法的强烈影响。然而,分析这些因素与学习解之间的关系仍然是一项艰巨的任务。在【19】中,作者提出了HomPINNs,用于学习PDE的多解,其中可以学习到的解数量取决于“起始函数”的选择。然而,如果“起始函数”选择不当,HomPINNs可能无法捕获所有解。本文提出了一种结合牛顿方法的算子学习方法用于训练非线性求解器。尽管该方法并非专门设计用于计算多解,但如果提供合适的初始猜测值,也可以用来计算多解。

算子学习方法

针对PDE求解,已经开发了多种算子学习方法,包括DeepONet【29】,它结合了物理信息【7, 26】,以及受谱方法启发的FNO【25】,基于多级方法的MgNO【16】、HANO【27】和WNO【24】,以及基于Transformer的神经算子【4, 8】。这些方法的重点是近似参数与解之间的算子映射。首先,这些方法要求PDE的解是唯一的,否则算子将不具备良定性。其次,这些方法关注的是参数函数与解之间的关系,而非初始数据与多解的关系。

3 Newton-Informed Neural Operator

3.1 回顾牛顿方法求解非线性偏微分方程

为了解决方程 (1),我们使用牛顿方法线性化方程。

对于一个算子上的牛顿方法,如果目标是求解 ,其迭代公式可以表示为:

其中

在这里, 是算子的 (Fréchet) 导数,是一个作用在 上的线性算子,定义如下:

其中 表示 空间中的范数。

对于方程 (1),给定任意初值 ,在牛顿方法的第 次迭代中 (),通过解下面的方程得到

这是基于算子 处的 (Fréchet) 导数为 的事实。

如果方程 (2) 有唯一解,则通过求解方程 (2) 并重复 次,可以得到非线性方程 (1) 的一个解。记 的映射(即方程 (2) 在参数 下的解)为 ,我们有:

其中 是方程 (1) 的一个解。

对于不同的初值,这一过程会收敛到方程 (1) 的不同解,因此该方法适合寻找多个解。此外,牛顿方法是良定的,这意味着在适当的假设下,每个初值 都会收敛到方程 (1) 的单一解 (参见假设 1)。这一特性有助于克服直接使用 PINNs 求解方程 (1) 时遇到的病态性问题。然而,重复求解方程 (1) 可能会非常耗时,尤其是在高维情况下或涉及大量离散点时。为解决这些问题,本文提出了利用神经网络的方法。


3.2 神经算子结构

本节介绍如何利用神经算子在牛顿方法中的局部近似算子 ,即 ,其中 是方程 (2) 的解,取决于 。如果神经算子 能很好地学习算子 ,则对于初始函数 ,假设 次迭代近似一个解,即:

因此:

对于另一个初值,我们可以直接通过神经算子进行评估并找到解。

接下来讨论如何训练这样的算子。首先定义具有 个神经元的浅层神经算子,从 的映射为:

其中 表示参数集合

这里, 表示 之间所有有界(连续)线性算子的集合, 是非线性逐点激活函数。

本文采用浅层的 DeepONet【29, 22】来近似牛顿算子。更具体地说,在浅层神经网络中, 表示算子的插值。在适当的假设下,我们可以通过以下定理确保 DeepONet 能够有效逼近牛顿方法算子。证明见附录。此外,可以用多重网格算子 替代 MgNO【38】,以及 FNO 作为一种核算子;我们的分析也可以推广到这些情况。

在证明之前,需要对输入空间 和方程 (1) 中的 做一些假设。Sobolev 空间的定义详见附录 B.1。

假设 1

  1. 对任意 ,线性方程
    是求解 的良定问题。
  2. 存在常数 ,使得
  3. 算子 的所有系数为 ,且
  4. 具有 Schauder 基底 ,基于此基底定义了标准投影算子 。该算子将 中的任意元素 投影到前 个基底元素 张成的有限维子空间中,且满足:

关于假设的更多讨论详见附录。证明的概要如图 1 所示。

图 1:定理 1 证明的示意图

4 实验

4.1 实验设置

我们设计了两种不同的训练方法:

  1. 方法1:仅使用有监督数据,优化目标为均方误差损失(MSE Loss),公式如下:
    其中为输入,为对应的目标输出,为神经算子的预测。
  2. 方法2:结合有监督和无监督学习的混合损失函数进行训练。这一方法对少量有真值数据(有监督数据集)使用均方误差损失,对大量无真值数据(无监督数据集)使用牛顿损失,定义如下:
    其中牛顿损失为
    这里,我们选择,通过该损失函数来评估神经算子的泛化能力。

两种方法都基于相同的神经算子结构(DeepONet),以确保理论和实验设置的一致性。详细实验配置见附录A。


4.2 案例1:凸问题

我们首先研究二维凸问题:

边界条件为,定义在区域上。

图 2:DeepONet 在不同条件下的训练和测试性能

实验结果

  • 方法1(MSE损失):使用500个有监督样本进行训练,结果显示有效的训练过程,但泛化能力较差,测试误差明显高于训练误差,说明仅使用MSE损失不足以捕捉多样化的特征。
  • 方法2(混合损失):在使用5000个无监督样本和少量有监督样本的情况下,DeepONet-Newton模型的测试误差显著降低。具体来说,测试的误差和误差均优于方法1。这表明引入牛顿损失有助于提升DeepONet的泛化能力。

4.3 案例2:非凸问题及多解

我们研究二维非凸问题,该问题具有多解:

其中,具体设置见附录A。

方法对比

  • 方法1:在有监督训练集中,有意稀疏选取部分多解的真值。这导致模型无法有效捕获这些未见过的解,其测试误差在进一步训练后趋于饱和。
  • 方法2:由于牛顿损失的引入,模型对多解的依赖性降低,在稀疏的有监督数据下仍能获得更好的泛化性能,测试误差持续下降。

图 3:二维非凸问题(11)的解

效率分析
该案例还验证了神经算子作为牛顿方法替代模型的高效性:

  • 神经算子(NINO)可以通过批处理同时求解数千个独立的牛顿线性系统,极大地提高了计算效率。在解决复杂的非线性PDE问题(如Gray-Scott模型)时,这种能力显得尤为重要。
  • 经典牛顿方法即便通过GPU并行化操作,其计算时间随着问题规模成倍增长,而NINO在500个和5000个系统上的扩展性几乎不变,展现了其在大规模问题上的优势。

表1:牛顿信息神经算子的效率基准测试。解决500和5000个初始条件的计算时间比较。

实验的更多细节和结果见附录A和相关图表。

4.4 案例 3:Gray-Scott 模型

Gray-Scott 模型描述了两种化学物质 A 和 S 的反应和扩散, governed by the following equations:

其中 是扩散系数, 是速率常数。

(a) 一个示例,演示神经算子如何以迭代方式将初始状态映射到稳态 

图4:基于神经算子的求解器的收敛行为

使用牛顿方法求稳态解

牛顿方法用于求解稳态解(即 ),通过求解以下非线性系统:

初始条件的敏感性

Gray-Scott 模型对初始条件非常敏感,甚至微小的变化也可能导致完全不同的模式。这种敏感性反映了模型的复杂非线性动力学,初始条件的不同可能导致多种稳态的出现。因此,训练神经算子将初始条件直接映射到相应的稳态是非常具有挑战性的。该模型需要从广泛的函数空间中学习,捕捉决定初始状态到最终模式转变的基本动态。这种复杂性和潜在结果的多样性使得训练神经算子以有效地处理像 Gray-Scott 模型这样的系统变得更加困难。

神经算子作为牛顿求解器的替代

在本实验中,我们使用神经算子作为牛顿求解器的替代方案。神经算子的目标是将初始状态不断映射到稳态。在图(a)中,我们使用一个环形模式作为初始状态来测试我们训练的神经算子。该模式在监督训练数据集中不存在,也没有对应的真实标签数据。相反,它仅出现在无监督数据中(通过牛顿损失),即一些数据通过牛顿损失会收敛到这一特定模式。尽管如此,使用牛顿损失训练的神经算子仍能有效地近似初始状态到正确稳态的映射。

进一步地,我们将神经算子作为牛顿方法的替代,解决非线性问题,使用从测试数据集中提取的初始状态。在图中,曲线显示了整个测试数据集上 的平均收敛率,其中 代表神经算子在第 步的预测值。

在图(c)中,我们比较了 训练损失(重新缩放的牛顿损失)和 绝对 L2 测试误差。这两者的量级不可直接比较,因为它们代表的是不同的度量;然而,趋势是一致的,表明包含无监督数据并使用牛顿损失进行训练有助于提高模型的性能。

5 Conclusion

本文提出了基于牛顿方法的神经算子,用于学习与非线性偏微分方程 (PDEs) (方程 (1)) 多解相关的牛顿求解器。为加速非线性 PDEs 多解的计算,本文将神经算子学习与经典牛顿方法相结合,构建了 Newton-Informed Neural Operator (NINO)。

我们对神经算子进行了理论分析,证明其能够有效学习牛顿算子,减少所需的监督数据量,并通过在损失函数中引入牛顿损失 (公式 (9)),使得模型能够学习监督数据中未包含的解。实验结果验证了我们的理论分析,展示了本文所提出网络的多项优势,包括:

  1. 提升求解非线性 PDEs 多解的效率;
  2. 降低对大量监督数据的依赖;
  3. 能够通过不同初值探索多解结构。



END


PINNs代码汇总

长按扫码

点赞

关注

在看

💙整理不易,希望各位道友能够多多支持宝库,支持邪云宝库!你的一个点赞、一次转发、 随手分享,都是宝库前进的最大动力~

💛2024,不忘初心,宝库会给大家带来更好的内容,让我们2024,一起暴富!


邪云宝库
用于分享物理科学启发AI的新范式:人工智能的物理科学(PhysicsScience4AI, PS4AI)资料。用于各种debug日志,偏微分方程,物理信息神经网络,算法原理及实现,数据挖掘,机器学习,智能优化算法,多元统计及生活分享。
 最新文章