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=256 | s=8192 |
| FCN | 0.0958 | 0.3238 |
| PCANN | 0.0398 | 0.0393 |
| GNO | 0.0555 | 0.0699 |
| FNO | 0.0149 | 0.0139 |
Darcy(扩散系数到压力):FNO约0.0108–0.0098,FCN从0.0253坏到0.1097,RBM约0.025,误差几乎不随网格变。相对当时学习方法,Burgers低约30%,Darcy低约60%。
Navier-Stokes(64×64固定,涡量):
| 设置 | FNO-3D | FNO-2D | U-Net | TF-Net |
| ν=1e−3, N=1000, T=50 | 0.0086 | 0.0128 | 0.0245 | 0.0225 |
| ν=1e−4, N=10000, T=30 | 0.0820 | 0.0834 | 0.1190 | 0.1168 |
| ν=1e−4, N=1000 | 0.1918 | 0.1559 | 0.2051 | 0.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路径要求均匀网格;非均匀要退回一般傅里叶变换,复杂度上去。核被限制成平移不变卷积,几何复杂、系数剧烈跳变时不保证是对的参数化。对流占优、带间断的问题,谱方法的老毛病还在。实验没和传统求解器比单次精度,比的是算子代理速度。优化到不停在全局最优,理论上也没分析。