谱神经算子Spectral Neural Operator在MindSpore Flow开源

背景

近日,谱神经算子(Spectral Neural Operator,SNO)及其在Burgers 1D/Navier-Stokes 2D/Navier-Stokes 3D问题上的应用案例在MindSpore Flow开源。

谱神经算子(Spectral Neural Operator,SNO)是利用多项式将计算变换到频谱空间(Chebyshev,Legendre等)的类似FNO的架构。与FNO相比,SNO的特点是由混淆误差引起的系统偏差较小。其中最重要的好处之一是SNO的基的选择更为宽泛,因此可以在其中找到一组最方便表示的多项式。例如,针对问题的对称性或针对时间间隔来选取适应的基。此外,当输入定义在在非结构化网格上时,基于正交多项式的神经算子相比其他算子更有竞争力。

01

SNO原理

1.1 神经算子

近年来,随着神经网络的迅猛发展,为科学计算提供了新的范式。经典的神经网络是在有限维度的空间进行映射,只能学习与特定离散化相关的解。与经典神经网络不同,傅里叶神经算子(Fourier Neural Operator,FNO)是一种能够学习无限维函数空间映射的新型深度学习架构。该架构可直接学习从任意函数参数到解的映射,用于解决一类偏微分方程的求解问题,具有更强的泛化能力。

同时FNO也存在一定缺点,例如:变换到傅里叶空间后的线性截断引发混淆误差(aliasing errors),傅里叶变换涉及到的复数运算较为消耗计算资源等。

1.2 谱神经算子

SNO给出的方案是通过多项式逼近(切比雪夫Chebyshev,勒让德Legendre等)代替傅里叶变换,只需要使用基本的线性变换,而不涉及复杂的傅里叶变换计算,不涉及复数计算。其具体架构如图1所示。

image.png

图1. SNO架构

图中以二维物理场时序预测问题为例。首先,为了计算频谱卷积的正向和逆多项式变换矩阵,应在相应的Gauss正交节点(Chebyshev网格等)对输入进行插值。然后,通过卷积编码器将插值后的输入提升到更高维度。编码后的结果用来作为一系列SNO层的输入,每个层对其截断的频谱表示进行线性卷积。接着,SNO层的输出通过卷积解码器投影回目标维度,最后插值回原始节点。

在SNO层将会执行以下操作:首先应用多项式变换A(Chebyshev,Legendre等),将物理场从物理空间映射到谱空间;而后,L层执行多项式低阶模态上的线性卷积操作和高阶模态上的过滤操作;接下来应用逆变换 S=A^{-1}(从谱空间映射回物理空间)。最后,输出结果与输入层的直接线性卷积W进行加和,并应用非线性激活层完成一个SNO层的计算。

1.3 U-SNO

特别地,在二维应用案例中,在嵌套的SNO层中加入若干层U-SNO层能够取得更好的效果。其中,U-SNO层与SNO的架构相似,区别在于U-SNO层使用UNet2D替代直接线性卷积W。如图2所示。

image.png

图2. U-SNO架构

02

模型表现

目前,SNO cell已在MindSpore Flow开源。同时,Burgers 1D/Navier-Stokes 2D/Navier-Stokes 3D问题上的应用案例也已经同步开放。

2.1 求解方程

在二维线性方程场景,和包括双曲型、抛物线型和椭圆型在内的三类非线性方程的场景下,SNO相比FNO均表现出超过1.5倍的精度改进,同时,性能损失均在10%以内,如图3所示:

image.png

图3. 求解方程效果对比

2.2 应用案例

本次MindSpore Flow开源的三个案例数据集均根据Zongyi Li的文章产生。在Burgers1D案例中,基于周期性边界,生成满足如下分布的初始条件u_0(x): 

image.png

选取粘度系数v=0.1,并使用分步法求解方程,其中热方程部分在傅里叶空间中精确求解,然后使用前向欧拉方法求解非线性部分。

在Navier-Stokes2D和3D案例中,基于周期性边界,生成满足如下分布的初始条件w_0(x):

image.png

外力项设置为: 

image.png

 采用Crank-Nicolson方法生成数据,时间步长设置为1e-4,最终数据以每t=1个时间单位记录解。所有数据均在256×256的网格上生成,并被下采样至64×64网格。选取粘度系数v=1e−5。

测试结果统计如图。其中,二维案例下SNO精度稍有提升,性能提升明显;一维和三维案例SNO表现不及FNO。

image.png

图4. 应用案例效果对比

03

结论

谱神经算子SNO利用多项式逼近代替了FNO中的傅里叶变换,仅通过基本的线性计算即可完成从物理场到谱空间的映射。其正交基的选择更为宽泛,可以根据实际问题针对性选取。在验证案例中,SNO尤其适用于二维Navier-Stokes方程的物理场预测问题。

SNO cell和相关应用案例已在MindSpore Flow开源,欢迎开发者们使用。

参考文献

[1] Fanaskov V S, Oseledets I V. Spectral neural operators[C]//Doklady Mathematics. Moscow: Pleiades Publishing, 2023,

108(Suppl 2): S226-S232. https://arxiv.org/abs/2205.10573

[2] SNO cell: https://gitee.com/mindspore/mindscience/blob/master/MindFlow/mindflow/cell/neural_operators/sno.py

[3] SNO Burgers1D application: https://gitee.com/mindspore/mindscience/tree/master/MindFlow/applications/data_driven/burgers/sno1d

[4] SNO Navier-Stokes2D application: https://gitee.com/mindspore/mindscience/tree/master/MindFlow/applications/data_driven/navier_stokes/sno2d

[5] SNO Navier-Stokes3D application: https://gitee.com/mindspore/mindscience/tree/master/MindFlow/applications/data_driven/navier_stokes/sno3d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值