傅里叶神经算子把湍流NS代理快上千倍,还能零样本超分

Fourier Neural Operator for Parametric Partial Differential Equations

Zongyi Li, Nikola Kovachki, Kamyar Azizzadenesheli, Burigede Liu, Kaushik Bhattacharya, Andrew Stuart, Anima Anandkumar

cs.LG, math.NA

2020-10-18

Caltech把积分核直接参数化在傅里叶空间,FNO在Burgers、Darcy和湍流NS上误差低于当时学习求解器,256网格单次推理0.005秒对2.2秒。

这篇在解决什么

科学计算里真正贵的,经常不是解一次方程,是对一族参数反复解:材料设计、贝叶斯反演、湍流闭包。传统有限元/差分把空间离散掉,分辨率和代价绑死。卷积网络学的是固定网格上的有限维映射,换分辨率就要改结构。PINN把解函数本身参数化成网络,每来一组新系数都要重新训练,本质上还是在解单个实例。

神经算子想学的是函数到函数的映射,一套参数通吃不同网格。此前图积分算子在物理空间做Nyström,贵,而且在湍流Navier-Stokes上不收敛。缺一块既网格不变、又能用FFT算得起的核。

方法

整体仍是神经算子那一套:点wise网络P把输入函数抬到高维通道,叠若干层「线性积分算子 + 逐点非线性」,再由Q投影回输出维。FNO把积分核限制成卷积,直接在傅里叶域里学一个截断的复矩阵R:FFT,乘低模R,滤掉高模,IFFT,再加一个局部线性项W,然后激活。W是给非周期边界留的偏置,Darcy和NS的时间方向都不是周期的,单靠谱乘法会丢边界。

截断模数kmax,j取12(二维)或16(一维),通道32或64,四层,ReLU加BN。卷积定理让全局积分变成O(n log n)的FFT。参数活在频率里,换一套网格只是换投影基,所以能做零样本超分:低分辨率训练,高分辨率直接评。

时间相关的NS试了两种:FNO-2D在空间做二维傅里叶、时间用RNN往前滚;FNO-3D直接在时空三维上卷积,一次映射整条轨迹。数据够的时候3D更好训。

结果

相对L2误差,训练1000、测试200,除非另说。

Burgers(映射初值到t=1):

方法s=256s=8192
FCN0.09580.3238
PCANN0.03980.0393
GNO0.05550.0699
FNO0.01490.0139

Darcy(扩散系数到压力):FNO约0.0108–0.0098,FCN从0.0253坏到0.1097,RBM约0.025,误差几乎不随网格变。相对当时学习方法,Burgers低约30%,Darcy低约60%。

Navier-Stokes(64×64固定,涡量):

设置FNO-3DFNO-2DU-NetTF-Net
ν=1e−3, N=1000, T=500.00860.01280.02450.0225
ν=1e−4, N=10000, T=300.08200.08340.11900.1168
ν=1e−4, N=10000.19180.15590.20510.2253

数据不够时所有方法误差都大于15%,FNO-2D最低。FNO-3D在ν=1e−4、N=10000上从64×64×20零样本评到256×256×80。256网格上单次前向0.005秒,生成数据的伪谱法2.2秒。NS反问题MCMC三万次前向:FNO约2.5分钟,传统求解器约18小时。截断20个傅里叶模本身约2%误差,FNO用kmax=12能做到≤1%,中间的激活把高频补回来。

为什么重要

这是后来FourCastNet、气候代理模型那条线的算子骨架。学的是一族PDE的解算子,不是一张网格上的图像回归,所以网格可以变、下游反问题可以直接反传。对反复查询的场景,线下付数据生成和训练,线上便宜。湍流regime、零样本时空超分,是这篇相对图神经算子真正多出来的能力。

局限与存疑

数据需求很实在:ν=1e−4的NS要一万对才把3D版本压到8%误差,一千对大家都在15%以上。更硬的PDE可能连生成训练集都买不起。FFT路径要求均匀网格;非均匀要退回一般傅里叶变换,复杂度上去。核被限制成平移不变卷积,几何复杂、系数剧烈跳变时不保证是对的参数化。对流占优、带间断的问题,谱方法的老毛病还在。实验没和传统求解器比单次精度,比的是算子代理速度。优化到不停在全局最优,理论上也没分析。

术语

原文与代码

社区讨论

相关论文

全部论文解读