背景
近日,谱神经算子(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所示。
图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所示。
图2. U-SNO架构
02
模型表现
目前,SNO cell已在MindSpore Flow开源。同时,Burgers 1D/Navier-Stokes 2D/Navier-Stokes 3D问题上的应用案例也已经同步开放。
2.1 求解方程
在二维线性方程场景,和包括双曲型、抛物线型和椭圆型在内的三类非线性方程的场景下,SNO相比FNO均表现出超过1.5倍的精度改进,同时,性能损失均在10%以内,如图3所示:
图3. 求解方程效果对比
2.2 应用案例
本次MindSpore Flow开源的三个案例数据集均根据Zongyi Li的文章产生。在Burgers1D案例中,基于周期性边界,生成满足如下分布的初始条件u_0(x):
选取粘度系数v=0.1,并使用分步法求解方程,其中热方程部分在傅里叶空间中精确求解,然后使用前向欧拉方法求解非线性部分。
在Navier-Stokes2D和3D案例中,基于周期性边界,生成满足如下分布的初始条件w_0(x):
外力项设置为:
采用Crank-Nicolson方法生成数据,时间步长设置为1e-4,最终数据以每t=1个时间单位记录解。所有数据均在256×256的网格上生成,并被下采样至64×64网格。选取粘度系数v=1e−5。
测试结果统计如图。其中,二维案例下SNO精度稍有提升,性能提升明显;一维和三维案例SNO表现不及FNO。
图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