具有硬约束的物理专用神经网络,用于解决多材料扩散问题
data code: https://github.com/marc-antoine233/PSNN-sp-value
摘要
物理信息神经网络(PINN)因其适应多种微分方程(DE)的能力而在求解微分方程领域受到广泛关注。然而,PINN 方法在解决多材料扩散问题时遇到了挑战,特别是在处理界面处的不连续性问题。本文提出了一种基于 PINN 的方法,称为物理专用神经网络(PSNN),该方法根据问题的独特特性定制了一个专用的神经网络。PSNN 将解和通量的连续性条件作为硬约束集成到神经网络的数学形式中,从而完美解决了轴对齐界面处的不连续性问题。此外,本文阐述了 PSNN 中专用函数的要求,给出了轴对齐界面条件下专用函数的解析求解方法,并在多个场景下将 PSNN 与其他增强型 PINN 方法在解决多材料扩散问题中的表现进行比较。计算结果表明,PSNN 在计算精度和收敛速度方面表现优异,且在 PSNN 中对边界条件(BCs)采用硬约束比使用软约束具有更优的性能。
1 引言
近年来,物理信息神经网络(PINN)[1,2] 被用于求解常微分方程(ODEs)和偏微分方程(PDEs)[3-13]、积分微分方程(IDEs)[14,15] 以及随机微分方程(SDEs)[16,17]。PINN 通过训练神经网络,最小化包含物理方程残差的损失函数来近似解,并可选择性地包含数据、初始条件(ICs)和边界条件(BCs)。PINN 使用深度神经网络,以定义域内的一个输入点为输入,经过训练后输出该点处微分方程的估计解。根据通用逼近定理,神经网络具有逼近连续函数的理论能力[18],因此 PINN 理论上可以解决大多数微分方程。然而,原始 PINN 方法在解决复杂问题时面临显著的收敛速度慢的挑战[19,20]。
一个经典的复杂问题是多材料扩散问题,其中在不同材料之间的界面上扩散系数是不连续的,导致解的导数在界面处不连续,且不存在二阶导数[21,22]。在大多数情况下,PINN 中的神经网络是光滑函数并且具有无限可微性。这导致在拟合接近界面处的点时,损失大幅增加,使得损失很难收敛至零。可以在第3节中看到这一现象。
为了解决不连续性问题,通常有三种策略。第一种策略是调整界面附近的采样密度。巧合的是,提出了两种相对立的调整思路。第一种思路是减少界面附近的采样密度,以忽略显著的损失[23]。第二种思路是增加界面附近的采样密度,以强制光滑神经网络拟合非光滑解[24]。这两种思路都取得了积极的结果。第二种策略是多网络方法[25-31]。该策略将定义域划分为不同的子域,每个子域中定义不同的神经网络。微分方程在子域内作为损失项,而解的连续性条件和通量连续性条件在子域之间的界面处作为损失项。第三种策略是归一化域分离 PINN (nDS-PINN)[21],该策略将域划分为不同的子域,并使用单一神经网络进行求解。这是一种简单而有效的方法,将原始 PINN 的精度提高了3到4个数量级。与第二种策略类似,该策略在界面处使用解的连续性条件和通量连续性条件作为损失项。然而,上述任何一种策略都未能完美解决界面处的不连续性问题。第一种策略忽略了不连续性,而第二和第三种策略将不连续性转化为两个连续性条件,并将它们作为损失项加入损失函数中,从而导致计算精度的下降。
为了解决原始 PINN 在复杂问题中精度和效率的问题,本文引入了物理专用神经网络(PSNN)的概念,该方法根据问题的物理特性设计神经网络结构。本文聚焦于 PSNN 概念在多材料扩散问题中轴对齐界面不连续性问题的应用。基于解的连续性条件和通量连续性条件,设计并应用了专用函数。通过这种方式,将这两个连续性条件作为硬约束(HC)集成到神经网络中,以避免软约束(SC)导致的额外损失。这里的 SC 是指需要满足的条件以损失项的形式出现,例如微分方程残差和多网络策略中的两个连续性条件。在 SC 中,神经网络并不能完全满足这些条件,而是对其进行近似。HC 是指构建一个试探函数,使其在数学上严格满足这些条件,并包含一个神经网络。例如,BCs 和 ICs 可以作为 HC [24,32-34]。在 HC 中,神经网络能够完美满足这些条件。此外,本文提供了轴对齐界面下专用函数的解析求解方法,比较了 PSNN 中以 BCs 和 ICs 为 HC 和 SC 的计算效率和精度,并详细分析了 PSNN 的迭代过程。
总结来说,本文的三大贡献如下:
提出了根据轴对齐界面的解的连续性和通量连续性条件设计专用函数的方法。 提供了专用函数的充分条件。 提供了轴对齐界面条件下寻找专用函数的方法。
本文的其余部分组织如下:第2节介绍了扩散方程和 PSNN 方法。第3节展示了四个代表性案例,以验证所提方法的可行性。最后,第4节总结了主要结论。
2. 方法
2.1 多材料扩散问题
2.1.1 控制方程和边界条件
线性扩散方程表示为:
其中 是待求解的函数,具有空间变量 和时间变量 的依赖性; 是扩散系数; 是源项; 表示定义域; 和 分别是空间和时间定义域。Dirichlet 边界条件表示为:
其中 是 的边界。初始条件为:
在多材料扩散问题中,空间域 被划分为基于不同材料的 个互不重叠的子域,如下所示:
扩散系数 和源项 在每个子域内逐段定义为:
在每个子域内 和 是光滑的,但在相邻子域的界面上不连续。
2.1.2 界面处的连续性条件
根据物理学中的扩散方程性质(方程(1)),在界面 处的点 上,解的连续性和通量连续性必须满足[21,35-37]:
其中 和 的界面表示为 , 表示界面 在点 处的法向矢量,如图1所示。
2.2 标准物理信息神经网络方法
标准 PINN 用于扩散问题的示意图如图2所示。PINN 的步骤如下:
根据边界条件和初始条件是否采用硬约束(HC)或软约束(SC),区分为两种子方法:HC-PINN 和 SC-PINN。根据问题的边界条件设计相应的试探函数形式。 基于扩散方程(1)构建适当的损失函数,并利用 Adam 和 L-BFGS 的混合优化方法来训练神经网络。
PINN 使用一个前馈神经网络(FFNN),其结构如图3所示。FFNN 可以通过以下递归公式表示:
其中 表示神经网络函数, 是激活函数, 是第 层的权重矩阵, 是第 层的神经元数量, 是第 层的偏置, 是第 层的输入,也称为预激活值, 表示调优参数,包括所有层的权重矩阵和偏置。第0层称为输入层,第层称为输出层,其他层称为隐藏层(见图3)。
PINN 和 PSNN 的损失函数和训练方法形式完全相同,具体描述在第2.4节中。可以看出,主要区别在于神经网络的不同结构。
2.3 物理专用神经网络方法
PSNN 的示意图如图2所示。PSNN 的步骤如下:
根据多材料扩散问题的解的连续性和通量连续性条件,设计专用函数 。 根据扩散问题是否为稳态问题,选择适当的网络结构:对于稳态问题,使用带有专用层的前馈神经网络(SL-FFNN);对于瞬态问题,使用带有混合层的神经网络(ML-FFNN)。在这两种网络中都使用第一步得到的专用函数。 根据边界条件和初始条件是否采用硬约束或软约束,区分为两种子方法:HC-PSNN 和 SC-PSNN。根据问题的边界条件设计相应的试探函数形式。 基于扩散方程(1)构建适当的损失函数,并利用 Adam 和 L-BFGS 的混合优化方法来训练神经网络。
PSNN 的细节在以下小节中讨论。第2.3.1节重点介绍 SL-FFNN 和 ML-FFNN 的结构。第2.3.2节和第2.3.3节分别推导 SC-PSNN 和 HC-PSNN 中专用函数 和试探函数应满足的条件,并提供在特定界面下 的计算方法。第2.4节详细讨论了 PSNN 的损失函数和训练方法。
2.3.1 神经网络结构、光滑性及其导数
PSNN 中使用的神经网络与 PINN 不同。根据扩散问题是否依赖于时间变量,神经网络应分为两类:SL-FFNN 和 ML-FFNN。这是因为界面只存在于空间域中,本文提出的专用层需要连接到空间变量,而不是时间变量。
SL-FFNN 的结构如图5所示。SL-FFNN 与 FFNN 的区别在于,第一隐藏层中的预激活部分 被替换为专用函数 ,其中红色和蓝色表示其逐段定义的部分。
在没有时间变量的情况下,SL-FFNN 将第一隐藏层中的全局定义的预激活函数 转换为逐段定义的专用函数 ,具体如下:
这里 定义为:
其中 是定义在 上的光滑函数,对应于神经网络中第一隐藏层的第 个神经元。通过将 替换为 ,定义在 上的 SL-FFNN 可以表示为:
ML-FFNN 的结构如图6所示。在 ML-FFNN 中,只有第一隐藏层中的一部分预激活函数被转换为逐段定义的专用函数 并连接到空间变量,其他神经元则保持不变并连接到时间变量。
定义在 上的 ML-FFNN 可以表示为:
此工作采用了无限阶可微性(即光滑性)来确保神经网络的可微性和连续性。在多材料扩散问题中,为确保解在每个子域 内的光滑性,本文应用了 tanh 激活函数来实现光滑性。
2.3.2 SC-PSNN 中的专用函数和试探函数
在 SC-PSNN 中,试探函数是方程(1)解的近似,等效于神经网络函数 [1]:
希望试探函数 满足连续性要求 (7) 和 (8)。因此,对于两个相邻子域 和 ,神经网络函数 应满足以下连续性要求:
根据 (12) 的定义以及 和 在 上的光滑性,矩阵 应满足以下要求:
这些方程可以被视为方程(15) 和 (16) 的充分条件。如果界面 可以用函数 表示,则方程(18) 可以重写为:
对于轴对齐界面情况,可以简化为:
2.3.3 HC-PSNN 中的专用函数和试探函数
在 HC-PSNN 中,试探函数近似为方程(1)的解,描述为[24,33]:
其中 和 是满足以下条件的光滑函数:
通过将方程(29) 代入方程(7) 和 (8) 的连续性条件,可以得到:
并简化为:
2.4 损失函数和训练方法
在 HC-PSNN 中,损失函数仅包含控制方程的残差 ,其形式如下:
在 HC-PSNN 中,训练集仅包含从定义域中随机选取的一组离散点。因此,训练集上的损失函数可以使用 范数定义为:
这里, 表示训练集中的点, 表示离散点的数量。在 SC-PSNN 中,损失函数同时包含边界条件 (BCs)、初始条件 (ICs) 和控制方程的残差,其形式如下:
其中, 和 分别表示边界条件和初始条件的损失。在 SC-PSNN 中,训练集包含 、 和 上的离散点。因此,训练集上的损失函数可表示为:
这里, 和 分别表示训练集中边界条件和初始条件的损失。 是 、 和 的总和。
神经网络的训练通过调整调优参数 来最小化训练集上的损失函数。在深度学习中,通常通过一阶梯度下降方法(如 Adam【38】)或二阶梯度下降方法(如 L-BFGS【39】)来优化损失函数。本文采用了一种混合训练方法:首先使用 Adam 方法进行初始优化,然后利用 L-BFGS 方法进一步优化损失函数。
4. 结论
为提高 PINN 在解决具有轴对齐界面的多材料扩散问题时的计算精度和效率,本文提出根据解的连续性和通量连续性条件设计专用函数 ,并替换神经网络中的第一隐藏层,以解析方式满足这两个连续性条件。此外,本文提供了专用函数的充分条件及在轴对齐界面条件下寻找专用函数的方法。
计算结果表明,HC-PSNN 的精度比 SC-PSNN 高 2-3 个数量级,并且收敛速度更快。与 PINN 和 nDS-PINN 相比,HC-PSNN 在所选案例中至少提高了一个数量级的精度。在 HC-PSNN 训练的第一阶段(即 Adam 阶段),迭代效率显著提高,耗时较低。然而,在迭代的后期阶段可能会出现振荡问题。在第二阶段(L-BFGS 阶段),单步迭代效率约为 Adam 的 1/30,耗时占整个训练过程的 60%-80%。尽管如此,该阶段能够稳定地提高计算精度。此外,HC-PSNN 方法在 L-BFGS 阶段建立了 log() 和 log(loss) 之间的线性关系。因此,在训练过程中,可以根据当前的损失值估计 误差,从而估计计算精度。
未来的工作将进一步研究在一般界面问题中寻找专用函数的过程。
💙整理不易,希望各位道友能够多多支持宝库,支持邪云宝库!你的一个点赞、一次转发、 随手分享,都是宝库前进的最大动力~
💛2024,不忘初心,宝库会给大家带来更好的内容,让我们2024,一起暴富!