傅里叶神经算子 FNO ★
Fourier Neural Operator
定义
在傅里叶频域做卷积的神经算子:把输入场变换到频域、截断低频模态后做线性变换,再反变换回物理空间。规则网格上效率极高,是神经算子最主流的工程实现。
是什么
FNO 的每一层都做三件事:FFT → 在截断后的低频模态上做可学习的复数线性变换 → 逆 FFT。 由于物理场的主要能量集中在低频,截断高频既省算力又起到隐式正则化作用。 整个网络就是若干这样的谱卷积层加上逐点非线性。
关键要点
- 计算复杂度:FFT 是
O(N log N),比空间域卷积便宜很多,这是 FNO 快的根本原因。 - 分辨率无关:低频模态的权重与网格分辨率无关,理论上训在 64×64、推在 256×256 也能用。
- 必须规则网格:FFT 的前提是结构化网格。非结构网格要先插值到规则网格(会引入误差)或改用图神经算子。
- 周期性边界条件下表现最好;非周期边界可通过填充/延拓处理。
常见误区 / 边界
- “分辨率不变”不等于”精度不变”:外推到更高分辨率时高频细节仍然缺失,误差会上升。
- FNO 对湍流等高雷诺数问题需要较多模态,截断模态数是一个必须调的关键超参。
- 涉及复杂几何(如带孔洞的机翼绕流)时,规则网格假设会成为瓶颈,此时应评估图神经算子。
相关术语
站内相关资源
- Fourier Neural Operator(FNO)原始论文 — FNO 原始论文
- FNO(Fourier Neural Operator)入门教程 — FNO 动手教程
- NeuralOperator — 含 FNO 参考实现