FOURIER NEURAL OPERATOR FOR PARAMETRIC PARTIAL DIFFERENTIAL EQUATIONS

参数偏微分方程的傅里叶神经算子

在这里插入图片描述

论文链接:https://arxiv.org/abs/2010.08895

项目链接:https://github.com/neuraloperator/neuraloperator

作者博客:https://zongyi-li.github.io/blog/2020/fourier-pde/

ABSTRACT

神经网络的经典发展主要集中在有限维欧几里得空间之间的学习映射。最近,这被推广到学习函数空间之间映射的神经算子。对于偏微分方程,神经算子直接学习从任意函数参数依赖到解的映射。因此,他们学习了整个偏微分方程家族,而不像经典方法只解一个方程实例。在这项工作中,我们通过直接在傅里叶空间中参数化积分核来制定一个新的神经算子,允许一个表达和高效的架构。我们对Burgers方程、Darcy流和Navier-Stokes方程进行了实验。傅里叶神经算子是第一个成功模拟zero-shot超分辨率湍流的基于ML的方法。与传统的PDE求解器相比,它的速度快了三个数量级。此外,在固定分辨率下,与以往基于学习的求解器相比,它具有更高的精度。

1 INTRODUCTION

科学和工程中的许多问题涉及到对某些参数的不同值反复求解复杂的偏微分方程系统。例子出现在分子动力学、微观力学和湍流中。通常这样的系统需要精细的离散化,以便捕捉被建模的现象。因此,传统的数值求解器速度很慢,有时效率低下。例如,当设计诸如翼型之类的材料时,需要解决相关的逆问题,其中需要对正演模型进行数千次评估。一种快速的方法可以使这类问题变得可行。

传统解决方案vs.数据驱动的方法。传统的求解方法如有限元法(FEM)和有限差分法(FDM)是通过对空间进行离散来求解方程的。因此,它们对分辨率进行了权衡:粗网格速度快,但精度较低;精细网格是精确的,但速度很慢。如上所述,复杂的PDE系统通常需要非常精细的离散化,因此对于传统的求解器来说非常具有挑战性和耗时。另一方面,数据驱动的方法可以直接从数据中学习方程族的轨迹。因此,基于学习的方法可以比传统的求解器快几个数量级。

机器学习方法可能是科学学科革命的关键,因为它提供了近似或增强传统解决方案的快速解决方案(Raissi等人,2019;Jiang等,2020;Greenfeld等人,2019;Kochkov et al, 2021)。然而,经典的神经网络在有限维空间之间映射,因此只能学习与特定离散化相关的解决方案。这通常是实际应用的限制,因此需要发展网格不变神经网络。我们首先概述了两种主流的基于神经网络的偏微分方程求解方法——有限维算子和神经有限元法。

有限维空间算子。这些方法将解算子参数化为有限维欧几里得空间之间的深度卷积神经网络(Guo et al ., 2016);朱& Zabaras (2018);Adler & Oktem (2017);Bhatnagar等人(2019);Khoo等人(2017)。根据定义,这些方法依赖于网格,并且需要针对不同的分辨率和离散化进行修改和调整,以实现一致的误差(如果可能的话)。此外,这些方法仅限于训练数据的离散化大小和几何形状,因此不可能在域中的新点查询解。相反,对于我们的方法,我们展示了误差对网格分辨率的不变性,以及在网格之间传递解决方案的能力。

Neural-FEM。第二种方法直接将解函数参数化为神经网络(E & Yu, 2018;Raissi等人,2019;Bar & Sochen, 2019;Smith等人,2020;Pan & Duraisamy, 2020)。此方法旨在为PDE的一个特定实例建模,而不是为解决方案算子建模。它是网格无关的和准确的,但对于任何给定的新的函数参数/系数实例,它需要训练一个新的神经网络。该方法与有限元等经典方法非常相似,用神经网络空间代替局部基函数的有限集的线性跨度。神经有限元法与经典方法存在着相同的计算问题:需要对每一个新实例求解优化问题。此外,该方法仅限于底层PDE已知的设置。

神经算子。最近,一项新的研究提出了用神经网络学习无网格、无限维算子(Lu et al, 2019;Bhattacharya et al ., 2020;尼尔森&斯图尔特,2020;李等,2020b;a;Patel et al, 2021)。神经算子通过产生一组可用于不同离散化的网络参数,弥补了上述有限维算子方法的网格依赖性质。它具有在网格之间传递解的能力。此外,神经算子只需要训练一次。获得一个新的参数实例的解只需要网络的前向传递,从而减轻了神经有限元方法中产生的主要计算问题。最后,神经算子不需要底层PDE的知识,只需要数据。到目前为止,由于计算积分算子的成本,神经算子还没有产生有效的数值算法,可以在有限维环境中与卷积或循环神经网络的成功相媲美。通过快速傅里叶变换,我们的工作减轻了这个问题。

傅里叶变换。傅里叶变换经常用于求解微分方程的频谱方法,因为微分相当于傅里叶域中的乘法。傅里叶变换在深度学习的发展中也发挥了重要作用。理论上,它们出现在普遍近似定理的证明中(Hornik等人,1989),经验上,它们已被用于加速卷积神经网络(Mathieu等人,2013)。涉及傅里叶变换或使用正弦激活函数的神经网络架构也被提出和研究(Bengio等人,2007;Mingo et al, 2004;Sitzmann et al, 2020)。最近,一些谱方法已经扩展到神经网络(Fan et al .,20119a;b;Kashinath et al, 2020)。在这些工作的基础上,我们提出了一个直接在傅里叶空间中定义的神经算子体系结构,具有准线性时间复杂度和最先进的近似能力。

在这里插入图片描述

我们的贡献。我们引入傅里叶神经算子,这是一种新的深度学习架构,能够学习无穷维函数空间之间的映射;积分算子被限制为卷积,并通过傅里叶域中的线性变换实例化。

  1. 傅里叶神经算子是第一个学习湍流状态下Navier-Stokes方程家族的分辨率不变解算子的工作,其中以前基于图的神经算子不收敛。
  2. 通过构造,该方法共享相同的学习网络参数,而不管在输入和输出空间上使用的离散化。它可以实现零拍摄超分辨率:在较低分辨率上训练,直接在较高分辨率上评估,如图1所示。
  3. 所提出的方法始终优于所有现有的深度学习方法,即使将分辨率固定为64×64。它在Burgers方程上的错误率降低了30%,在Darcy Flow上降低了60%,在Navier Stokes(黏度ν = 1e−4的湍流状态)上降低了30%。在学习整个时间序列的映射时,当黏度ν = 1e−3时,该方法的误差< 1%,当黏度ν = 1e−4时,该方法的误差为8%。
  4. 在256 × 256网格上,傅里叶神经算子的推理时间仅为0.05 s,而用于求解Navier-Stokes的伪谱方法的推理时间为2.20 s。尽管该方法具有巨大的速度优势,但在下游应用(如解决Bayesian逆问题)中使用时,其精度不会下降,如图6所示。

在这里插入图片描述

我们观察到,所提出的框架可以近似于高度非线性、高频模式和缓慢能量衰减的偏微分方程中的复杂算子上升。神经算子的力量来自于线性、全局积分算子(通过傅里叶变换)和非线性、局部激活函数的结合。类似于标准神经网络通过结合线性乘法和非线性激活来近似高度非线性函数的方式,所提出的神经算子可以近似高度非线性算子。

2 LEARNING OPERATORS

我们的方法从观察到的输入输出对的有限集合中学习两个无限维空间之间的映射。设 D ⊂ R d D\subset\mathbb{R}^d DRd 为有界开集,且 A = A ( D ; R d a ) \mathcal{A}=\mathcal{A}(D;\mathbb{R}^{d_a}) A=A(D;Rda) U = U ( D ; R d u ) U=\mathcal{U}(D;\mathbb{R}^{d_u}) U=U(D;Rdu)是分别取 R d a \mathbb{R}^{d_a} Rda R d u \mathbb{R}^{d_u} Rdu值的函数的可分离巴拿赫空间。此外,让 G † : A → U G^\dagger:\mathcal{A}\to\mathcal{U} G:AU是一个(典型的)非线性映射。我们研究作为参数偏微分方程的解算子出现的映射 G † G^\dagger G-参见第5节的例子。假设我们有观测值 { a j , u j } j = 1 N \left\{a_j,u_j\right\}_{j=1}^N { aj,uj}j=1N,其中 a j ∼ μ a_j\sim\mu ajμ是A上支持的概率测度 μ \mu μ A \mathcal{A} A序列, u j = G † ( a j ) u_j=G^\dagger(a_j) uj=G(aj)可能被噪声破坏。我们的目标是通过构造一个参数映射来建立 G † G^\dagger G的近似值:
G : A × Θ → U or equivalently, G θ : A → U , θ ∈ Θ (1) G:\mathcal{A}\times\Theta\to\mathcal{U}\quad\text{or equivalently,}\quad G_\theta:\mathcal{A}\to\mathcal{U},\quad\theta\in\Theta \tag{1} G:A×ΘUor equivalently,Gθ:AU,θΘ(1)
对于某个有限维参数空间 Θ \Theta Θ,通过选择 θ † ∈ Θ \theta^\dagger\in\Theta θΘ,使得 G ( ⋅ , θ † ) = G θ † ≈ G † G(\cdot,\theta^\dagger)=G_{\theta^\dagger}\approx G^\dagger G(,θ)=GθG。这是在无限维中学习的自然框架,就像我们可以定义一个代价函数 C : U × U → R C:\mathcal{U}\times\mathcal{U}\to\mathbb{R} C:U×UR然后求问题的最小值。
min ⁡ θ ∈ Θ E a ∼ μ [ C ( G ( a , θ ) , G † ( a ) ) ] (2) \min_{\theta\in\Theta}\mathbb{E}_{a\sim\mu}[C(G(a,\theta),G^\dagger(a))] \tag{2} θΘminEaμ[C(G(a,θ),G(a))](2)
这与经典的有限维环境直接相似(Vapnik, 1998)。在无限维的情况下,如何证明最小值的存在,仍然是一个具有挑战性的开放性问题。我们将在测试列车设置中通过使用数据驱动的经验近似来解决这个问题,该近似用于确定θ并测试近似的准确性。因为我们在无限维的情况下概念化了我们的方法,所以所有有限维的近似都有一个共同的参数集,这些参数集在无限维中是一致的。表示法表见附录A.3

可学习算子。近似运算符 G † G^{\dagger} G是一个不同的任务,通常比为参数 a ∈ A a\in\mathcal{A} aA的单个实例找到PDE的解 u ∈ U u\in\mathcal{U} uU更具挑战性。大多数现有的方法,从经典的有限元素,有限差分,以及有限体积到现代机器学习方法,如物理信息神经网络(PINN)(Raissi et al.,2019)针对后者,因此计算成本可能很高。这对于需要为许多不同的参数实例提供PDE解决方案的应用程序来说是不切实际的。另一方面,我们的方法直接接近运算符,因此更便宜、更快,与传统的求解器相比,可以节省大量的计算量。有关贝叶斯逆问题的示例应用程序,请参见第5.5节。

离散化。由于我们的数据 a j a_j aj u j u_j uj通常都是函数,因此我们假设只能访问逐点求值。令 D j = { x 1 , … , x n } ⊂ D {D}_{j}= \{ x_{1}, \ldots , x_{n}\} \subset D Dj={ x1,,xn}D是域 D D D n n n点离散化,并假设我们有观测值 a j ∣ D j ∈ R n × d a , u j ∣ D j ∈ R n × d v a_{j}| _{D_{j}}\in \mathbb{R} ^{n\times d_{a}}, u_{j}| _{D_{j}}\in \mathbb{R} ^{n\times d_{v}} ajDjRn×da,ujDjRn×dv,对于以 j j j为索引的输入输出对的有限集合。为了离散化不变量,神经算子可以对任意 x ∈ D x\in D xD产生答案 u ( x ) u(x) u(x),可能是 x ∉ D j x\notin D_j x/Dj。这样的性质是非常可取的,因为它允许在不同的网格几何和离散之间传递解。

3 NEURAL OPERATOR

在(Li et al ., 2020b)中提出的神经算子被表述为迭代架构 v 0 ↦ v_0\mapsto v0 v 1 ↦ … ↦ v T v_1\mapsto\ldots\mapsto v_T v1vT 其中 v j v_j vj , j = 0 , 1 , … , T − 1 j=0,1,\ldots,T-1 j=0,1,,T1是一个取 R v d \mathbb{R}^d_v Rvd值的函数序列。如图2 (a)所示,输入 a ∈ A a\in\mathcal{A} aA首先通过局部变换 P P P提升到更高的维度表示 v 0 ( x ) = P ( a ( x ) ) v_0(x)=P(a(x)) v0(x)=P(a(x)),该变换通常由浅全连接神经网络参数化。然后我们应用几个迭代的更新 v t ↦ v t + 1 v_{t}\mapsto v_{t+ 1} vtvt+1(定义见下)。输出 u ( x ) = Q ( v T ( x ) ) u( x) = Q( v_{T}( x) ) u(x)=Q(vT(x)) v T v_{T} vT通过局部变换 Q : R d v → R d u Q: \mathbb{R} ^{d_{v}}\to \mathbb{R} ^{d_{u}} Q:RdvRdu的投影。在每次迭代中,更新 v t ↦ v t + 1 v_t\mapsto v_{t+1} vtvt+1被定义为非局部积分算子 K \mathcal{K} K和局部非线性激活函数 σ \sigma σ的组合。

在这里插入图片描述

定义1(迭代更新) 定义对表示 v t ↦ v t + 1 v_t\mapsto v_{t+1} vtvt+1的更新,
v t + 1 ( x ) : = σ ( W v t ( x ) + ( K ( a ; ϕ ) v t ) ( x ) ) , ∀ x ∈ D (2) v_{t+1}(x):=\sigma\Big(Wv_t(x)+\Big(K(a;\phi)v_t\Big)(x)\Big),\quad\forall x\in D \tag{2} vt+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值