2019-PINN-A deep learning framework for solving forward and ... nonlinear PDEs

2019-Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations

M.Raissia, P.Perdikarisb,∗, G.E.Karniadakisa

abstract

我们引入物理信息神经网络——神经网络,这些神经网络经过训练,可以解决受监督的学习任务,同时尊重一般非线性偏微分方程描述的任何特定物理定律。在这项工作中,我们在解决两个主要问题方面介绍了我们的发展:数据驱动解和数据驱动型发现部分微分方程data-driven solution and data-driven discovery of partial differential equations)。根据可用数据的性质和排列,我们设计了两种不同的算法类型,即连续时间和离散时间模型。第一种类型的模型形成了一个新的数据效率-时空函数近似器系列(data-efficient spatio-temporal function approximators,),而后一种类型允许使用任意准确的隐式Runge−KuttaRunge-KuttaRungeKutta时间步进方案(arbitrarily accurate implicit Runge–Kutta time stepping schemes with unlimited number of stages),具有无限数量的阶段。通过流体、量子力学、反应扩散系统和非线性浅水波的传播等经典问题,证明了该框架的有效性

1. Introduction

随着可用数据和计算资源的爆炸式增长,机器学习和数据分析的最新进展在不同科学学科(包括图像识别[1]、认知科学[2]和基因组学[3])上产生了变革性成果。然而,在分析复杂的物理、生物或工程系统过程中,数据采集的成本往往令人望而却步,我们不可避免地面临着在部分信息下得出结论和作出决定的挑战。在这个小型数据中,绝大多数最先进的机器学习技术(例如,深度/卷积/循环神经网络)缺乏鲁棒性,无法提供任何收敛保证。

一开始,训练深度学习算法以准确识别少数输入和输出数据对中的非线性映射(可能非常高维)的任务充其量是天真的。来拯救我们,对于许多与物理和生物系统建模有关的案例,目前在现代机器学习实践中存在着大量尚未利用的先前知识。让它成为支配系统时间依赖动力学的原则物理定律,或者一些经过经验验证的规则或其他领域专业知识,这种先前的信息可以作为一种正定剂,将可受理解决方案的空间限制到可管理的大小(例如,在不可压缩的流体动力学问题中, 丢弃任何违反质量保护原则的非现实流动解决方案 )。作为回报,将此类结构化信息编码为学习算法会导致放大算法看到的数据的信息内容,从而使它能够快速转向正确的解决方案,并且即使只有几个训练示例可用,它也能够很好地进行概括。

利用结构化的先前信息构建数据高效和物理知识的学习机器的承诺的第一瞥,已经在最近[4][6]的研究中有所展示。在那里,作者利用高斯过程回归[7]来设计针对给定线性运算符进行的功能表示,并能够准确地推断出解决方案,并为数学物理学中的几个原型问题提供不确定性估计。RaissiRaissiRaissi[8, 9]在随后的研究中提出了非线性问题的前紧张性。在推理和系统识别的范围内。尽管高斯过程在编码前具有灵活性和数学优雅性,但非线性问题的处理带来了两个重要的局限性。首先,在[8,9]中,作者必须将任何非线性术语在时间本地线性化,从而限制所建议方法对离散时间域的适用性,并降低其在强非线性制度下的预测的准确性。其次,高斯过程回归的贝叶斯性质需要某些先前的假设,这些假设可能会限制模型的表示能力,并引起健壮度/脆性问题,尤其是非线性问题[10]

2. Problem setup

在这项工作中,我们采用不同的方法,采用深度神经网络,并利用其众所周知的功能作为通用函数近似器[11]。在此设置中,我们可以直接解决非线性问题,而无需承诺任何先前的假设、线性化或本地时间步进。我们利用自动分化的最新发展 [12] 是科学计算中最有用但可能未充分利用的技术之一,以区分神经网络及其输入坐标和模型参数,从而获得物理智能神经网络。这种神经网络受制于任何对称性、不变性或基于控制观测数据的物理定律的保存原则,如一般时间依赖和非线性偏微分方程建模。这种简单而强大的结构使我们能够解决计算科学中的各种问题,并引入了一种潜在的变革性技术,导致开发新的数据高效和物理知识型学习机器、用于偏微分方程的新数值求解器,以及模型反转和系统识别的新数据驱动方法。

这项工作的一般目标是为建模和计算的新范式奠定基础,这种模式丰富了深度学习与数学物理学的长期发展。为此,我们的手稿分为两部分,旨在介绍我们在两个主要问题类别的背景下的发展:数据驱动解和数据驱动型发现偏微分方程。此手稿附带的所有代码和数据集在GitHubGitHubGitHub上可用[项目](https://github.com /maziarraissi /PINN)。在整个工作过程中,我们一直在使用相对简单的深度前馈神经网络架构,具有双曲切线激活功能,没有额外的正则化(例如,L1/L2 penalties dropoutL1/L2 \ penalties \ dropoutL1/L2 penalties dropout等)。手稿中的每个数字示例都附有有关我们使用的神经网络体系结构的详细讨论,以及有关其培训过程的详细信息(例如优化器、学习率等)。最后,附录A和附录B提供了一系列旨在证明拟议方法性能的综合系统研究。

在本文中,我们考虑一般形式的参数化和非线性偏微分方程

在这里插入图片描述

其中u(t,x)u(t, x)u(t,x)表示潜在(隐藏)解,N=[⋅;λ]\mathcal{N}=[\cdot ; \lambda]N=[;λ]是按λ\lambdaλ参数化的非线性运算符,Ω\OmegaΩRD\mathbb{R}^DRD的子集。此设置封装了数学物理学中广泛的问题,包括保存定律、扩散过程、对流扩散反应系统和动力学方程。作为激励性示例,一维BurgersBurgersBurgers方程 [13] 对应于N[u;λ]=λ1μμx−λ2μxx\mathcal{N}[u; \lambda] = \lambda_1\mu \mu_x - \lambda_2 \mu_{xx}N[u;λ]=λ1μμxλ2μxxλ=(λ1,λ2)\lambda = (\lambda_1, \lambda_2)λ=(λ1,λ2)的情况。在这里,下标表示时间或空间的部分差异。鉴于系统的噪声测量,我们对两个不同问题的解决很感兴趣。第一个问题就是推理、滤波和平滑,或者偏微分方程的数据驱动解[4,8],其中指出:给定的固定模型参数λ\lambdaλ——关于系统的未知隐藏状态u(t,x)u(t, x)u(t,x)可以说什么?第二个问题就是学习、系统识别或数据驱动的发现部分微分方程[5,9,14],说明:哪些参数λ\lambdaλ最好地描述观测到的数据?

3. Data-driven solutions of partial differential equations

让我们首先集中关注计算数据驱动解到一般形式的偏微分方程(即上述第一个问题)的问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s5JVyVcE-1599879181716)(figures/2020-09-11/2.png)]

其中u(t,x)u(t, x)u(t,x)表示潜在的(隐藏)解决方案,N[⋅]\mathcal{N} [\cdot]N[]是非线性差分运算符,Ω\OmegaΩRD\mathbb{R}^DRD的子集。在3.1节和3.2节中,我们提出了两种不同类型的算法,即连续和离散时间模型,并通过不同基准问题的镜头来突出它们的特性和性能。在我们的研究的第二部分(见第4节),我们把注意力转移到数据驱动的发现偏微分方程[5,9,14]的问题。

3.1. Continuous time models

我们定义f(t,x)f(t, x)f(t,x)由方程的左侧(2);即

在这里插入图片描述

然后通过深度神经网络近似u(t,x)u(t, x)u(t,x)进行。此假设以及方程(3)得到物理信息神经网络f(t,x)f(t, x)f(t,x)。可以通过应用链规则使用自动区分 [12] 来区分函数组合来派生此网络,并且具有与表示u(t,x)u(t, x)u(t,x)的网络相同的参数,尽管由于差分运算符N\mathcal{N}N的操作,激活函数不同。神经网络u(t,x)u(t, x)u(t,x)f(t,x)f(t, x)f(t,x)之间的共享参数可以通过最小化平均平方误差损失来学习

在这里插入图片描述

其中

在这里插入图片描述

在这里插入图片描述

在这里,{ tui,xui,ui}i=1Nu\{t^i_u, x^i_u, u^i\}^{N_u}_{i=1}{ tui,xui,ui}i=1Nu表示u(x,t)u(x, t)u(x,t){ tfi,xfi}i=1Nf\{t^i_f, x^i_f\}^{N_f}_{i=1}{ tfi,xfi}i=1Nf上的初始和边界训练数据,指定f(t,x)f(t, x)f(t,x)的搭配点。损耗MSEuMSE_uMSEu应答初始数据和边界数据,而MSEfMSE_fMSEf强制在一组有限位置点处由方程(2) 施加的结构。尽管在以前的研究中已经探索了使用物理定律约束神经网络的类似想法[15,16],但在这里,我们利用现代计算工具重新审视它们,并将其应用于时间依赖非线性偏微分方程描述的更具挑战性的动态问题。

在这里,我们应该强调这一行的工作与文献中阐述机器学习在计算物理学中的使用的方法之间的重要区别。"物理信息机器学习"一词最近也已被Wang等人[17]使用在湍流建模的上下文中。用于物理系统预测建模的机器学习方法的其他示例包括 [18-29]。所有这些方法都采用机器学习算法,如支持向量机、随机森林、高斯进程和馈送/卷积/循环神经网络,仅作为黑盒工具。如上所述,拟议的工作旨在通过重新审视针对基础差分运算符定制的"自定义"激活和损耗函数的构造,更进一步。这使我们能够打开黑匣子,通过理解和欣赏在深度学习领域自动区分所发挥的关键作用。一般自动分化,特别是反传播算法,是目前训练深度模型的主要方法,方法是根据模型的参数(例如权重和偏置)采用其导数。在这里,我们使用深度学习界采用的完全相同的自动分化技术,通过利用神经网络的输入坐标(即空间和时间)的导数来为神经网络提供信息,其中物理由偏微分方程描述。我们通过经验观察到,这种结构化方法引入了一种正则化机制,使我们能够使用相对简单的前馈神经网络架构,并训练它们使用少量数据。这个简单的想法的有效性可能与Lin,Tegmark andRolnickLin, Tegmark \ and RolnickLin,Tegmark andRolnick[30]的讨论有关,并提出了许多有趣的问题,在未来的研究中需要定量地讨论。为此,拟议的工作从PsichogiosPsichogiosPsichogiosUngarUngarUngar[16],LagarisLagarisLagaris的早期贡献中汲取灵感,以及KondorKondorKondor[31,32],HirnHirnHirn[33]和MallatMallatMallat[34]的当代作品。

在所有与数据驱动型局部微分方程解相关的情况下,训练数据NuN_uNu的总数相对较少(几百到几千点),我们选择使用L−BFGSL-BFGSLBFGS,a quasi−Newton,full−batch gradient−based optimization algorithma \ quasi-Newton, full-batch \ gradient-based \ optimization \ algorithma quasiNewton,fullbatch gradientbased optimization algorithm拟牛顿全批梯度优化算法[35])优化所有损耗函数对于较大的数据集(如第 4 节中讨论的数据驱动模型发现示例),可以使用随机梯度下降及其现代变体[36, 37]轻松使用计算效率更高的小型批处理设置。尽管没有理论上保证该过程收敛到全局最小值,但我们的经验证据表明,如果给定的偏微分方程是良好的,并且其解是独一无二的,那么,如果具有足够表现力的神经网络架构和足够数量的搭配点NfN_fNf,我们的方法能够达到良好的预测精度。这一一般观察与方程(4)的均方误差损失所导致的优化景观有深刻关系,并定义了一个与深度学习理论发展同步的研究开放问题[38,39]。为此,我们将使用附录A和附录B中提供的一系列系统敏感性研究来测试拟议方法的稳健性。

3.1.1. Example (Schrodinger equation)

此示例旨在强调我们的方法处理周期性边界条件、复杂值的解流以及控制偏微分方程中不同类型的非线性的能力。一维非线性Schrodinger equationSchrodinger \ equationSchrodinger equation是用于研究量子力学系统的经典场方程,包括光纤和/或波导、玻色-爱因斯坦冷凝水以及等离子波中的非线性波传播。在光学中,非线性项产生于给定材料的折射强度相关率。同样,Bose−EinsteinBose-EinsteinBoseEinstein冷凝的非线性术语是相互作用的NNN体系统均场相互作用的结果。The nonlinear Schro¨dinger equationThe \ nonlinear \ Schrödinger \ equationThe nonlinear Schro¨dinger equation以及周期性边界条件由

在这里插入图片描述

在这里插入图片描述

然后先在h(t,x)h(t, x)h(t,x)上放置一个复杂值的神经网络。事实上,如果将手的实际部分与假想部分相比,我们将多出神经网络放在h(t,x)=[u(t,x)v(t,x)]h(t, x) = [u(t, x) v(t, x)]h(t,x)=[u(t,x)v(t,x)]上。这将导致复杂值(多输出)物理通知神经网络f(t,x)f(t, x)f(t,x)。神经网络h(t,x)h(t, x)h(t,x)f(t,x)f(t, x)f(t,x)的共享参数可以通过最小化平均平方误差损失来学习

在这里插入图片描述

在这里,{ x0i,h0i}i=1N0\{x^i_0, h^i_0\}^{N_0}_{i=1}{ x0i,h0i}i=1N0表示初始数据,{ tbi}i=1Nb\{t^i_b\}^{N_b}_{i=1}{ tbi}i=1Nb对边界上的搭配点进行响应,{ tfi,xfi}i=1Nf\{t^i_f, x^i_f\}^{N_f}_{i=1}{ tfi,xfi}i=1Nf代表f(t,x)f(t, x)f(t,x)上的搭配点。因此,MSE0MSE_0MSE0对初始数据的损失进行响应,MSEbMSE_bMSEb会强制使用周期性边界条件,并且MSEfMSE_fMSEf使schro¨dingerschrödingerschro¨dinger方程在搭配点上未得到满足。

为了评估方法的准确性,我们利用传统的光谱方法模拟方程(5)来创建高分辨率数据集。具体地说,从初始状态h(0,x)=2 sech(x)h(0, x) = 2 \ sech(x)h(0,x)=2 sech(x)开始,假设周期性边界条件h(t,−5)=h(t,5)h(t, -5) = h(t, 5)h(t,5)=h(t,5)hx(t,−5)=hx(t,5)h_x(t, -5) =h_x(t, 5)hx(t,5)=hx(t,5),我们集成了方程(5),至最后一次t=π/2t = \pi / 2t=π/2使用ChebfunChebfunChebfun封装[40],光谱四叶体离散化,具有256种模式和四阶显式Runge−KuttaRunge-KuttaRungeKutta时间集成器,具有时间步数Δt=π/2⋅10−6\Delta t=\pi / 2 \cdot 10^{-6}Δt=π/2106。在我们的数据驱动设置下,我们观察到的只是潜伏函数h(t,x)h(t, x)h(t,x)的测量值{ x0i,h0i}i=1N0\{x^i_0, h^i_0\}^{N_0}_{i=1}{ x0i,h0i}i=1N0的时间t=0t=0t=0。特别是,训练集包括h(0,x)h(0, x)h(0,x)上总共n0=50n_0 = 50n0=50个数据点,这些点从完整的高分辨率数据集中随机解析,以及Nb=50N_b = 50Nb=50随机采样的搭配点{ tbi}i=1Nb\{t^i_b\}^{N_b}_{i=1}{ tbi}i=1Nb,用于强制实施周期边界。此外,我们假设了用于在解域内强制方程(5)的Nf=20000N_f = 20000Nf=20000随机采样的实验室积分。所有随机采样的点位置都是使用space filling Latin Hypercube Sampling strategy[41]space \ filling \ Latin \ Hypercube \ Sampling \ strategy[41]space filling Latin Hypercube Sampling strategy[41]

在这里,我们的目标是推断Schro¨dinger equation(5)Schrödinger \ equation(5)Schro¨dinger equation(5)的整个时空解h(t,x)h(t, x)h(t,x)。我们选择使用每层100个神经和一个双曲线切线激活函数的5层深度神经网络来共同表示潜在的函数h(t,x)=[u(t,x)v(t,x)]h(t, x) = [u(t, x) v(t, x) ]h(t,x)=[u(t,x)v(t,x)]。通常,应给予神经网络足够的近似能力,以适应预期的u(t,x)u(t, x)u(t,x)复杂性。虽然可以采用BayesianBayesianBayesian优化[42]等更多系统的程序来微调神经网络的设计,但如果没有理论误差/收敛估计,神经结构/训练过程与基础微分方程的复杂性之间的相互作用仍不为人所知。评估预测解决方案准确性的一个可行途径可能是采用贝叶斯方法并监测预测后分布的方差,但这

03-08
### K-PINN 的原理 K-PINN (Kernel Physics-Informed Neural Networks) 是一种结合核方法与物理信息神经网络的技术。传统 PINN 将物理定律作为约束条件嵌入到神经网络训练过程中,而 K-PINN 则进一步利用核技巧来增强模型表达能力并改善数值稳定性。 具体来说,在处理复杂的非线性偏微分方程时,K-PINN 使用高斯过程或其他类型的正定核函数构建特征映射空间。这不仅能够捕捉数据间的复杂关系,还能够在一定程度上缓解过拟合现象的发生[^1]。 对于 Runge-Kutta 方法的应用,K-PINN 可以采用类似的离散化策略来进行时间推进计算。即先对方程进行适当的时间离散化处理,再利用改进后的 RK 方案完成迭代更新操作[^3]。 ### K-PINN 的应用 在实际应用场景中,K-PINN 已经被成功用于解决多种科学工程问题: - **流体动力学模拟**:通过对 Navier-Stokes 等经典流体力学方程的学习,实现了高效稳定的流动仿真; - **材料力学建模**:基于能量守恒原则的能量型 K-PINN 能够有效预测弹性变形行为,并可用于研究更广泛的固体物理特性; - **多尺度耦合分析**:借助于不同层次上的核函数设计,可以在宏观与微观之间建立桥梁,从而更好地理解跨尺度系统的演化规律[^2]。 ### K-PINN 的实现方式 下面给出一段简单的 Python 代码片段展示如何使用 PyTorch 构建基本框架下的 K-PINN 模型: ```python import torch from torch import nn, optim class KernelLayer(nn.Module): def __init__(self, input_dim, output_dim): super(KernelLayer, self).__init__() self.linear = nn.Linear(input_dim, output_dim) def forward(self, x): return torch.exp(-torch.norm(x - self.linear.weight.T)**2 / 2.) class KPinnModel(nn.Module): def __init__(self, layers=[1, 50, 50, 1]): super(KPinnModel, self).__init__() modules = [] for i in range(len(layers)-1): modules.append(KernelLayer(layers[i], layers[i+1])) if i != len(layers)-2: modules.append(nn.ReLU()) self.model = nn.Sequential(*modules) def forward(self, x): return self.model(x) ``` 此段代码定义了一个带有自定义 `KernelLayer` 层的基础架构,其中采用了指数平方距离的形式作为核函数的核心部分。当然,具体的实现细节会因所针对的具体问题而有所不同。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值