返回
查看原链接原链接
Bilibili17分46秒 · —

傅里叶神经算子(Fourier Neural Operator)详解笔记

傅里叶神经算子(Fourier Neural Operator)详解笔记

傅里叶神经算子(Fourier Neural Operator)是神经算子学习的代表性方法,其核心思想是把偏微分方程/PDE求解视为函数到函数的映射,通过在傅里叶空间中进行学习来实现网格无关(mesh-free)的算子逼近。

核心要点

本节内容基于一位讲座讲者的深入讲解,系统梳理傅里叶神经算子(FNO)的背景、原理、潜力与限制,具体核心脉络如下:

  • 从函数逼近到算子逼近:此前课程讨论“神经网络作为通用函数逼近器”,本次引入“深度算子网络”概念——神经网络不仅能逼近向量到向量的函数,还能逼近“函数到函数”的算子。
  • 物理问题中的算子视角:ODE/PDE的解,例如初值条件到解函数、外力函数到解函数之间的映射,天然属于算子层面的问题。
  • FNO 是算子学习的主流方法:作者团队包括 Zyi Li、Kovachki、Anima Anandkumar 和 Andrew Stuart 等知名学者。
  • 核心类比——“算子学习可以视作图像到图像的问题”:此说法出自 Zyi Li 的网站,傅里叶层可以被视为卷积层的替代品。
  • 零样本超分辨率:FNO 论文中最受关注的成果之一,是模型可以在低分辨率数据上训练后直接实现高分辨率的推理(例如 64×64 升级到 256×256)。
  • 网格无关性 / 离散化不变性:FNO 的核心宣称是学习到的是底层连续算子,与具体网格无关,能在不同的网格密度间自由迁移。
  • 神经算子具备可定制性:通过选择不同的核函数(kernel),可以构造出针对不同物理背景的定制化神经算子(例如图神经算子、Laplace 神经算子等)。

背景:为什么需要算子学习?

函数逼近的两个层级

  • 函数(Function) ——将向量映射到向量。传统神经网络尝试拟合的模式。
  • 算子(Operator) ——将函数映射到函数。例如:
  • 从“初值条件函数”映射到“解函数”;
  • 从“外力项函数”映射到“解函数”。

对于关注物理应用、ODE/PDE 求解的研究者而言,更适合把神经网络定位为算子逼近器,而非仅仅是一个函数逼近器。因此,“神经网络作为通用函数逼近器”的思想被推广到“神经网络作为通用算子逼近器”的层面,这也是近期社区中非常有影响力的研究方向。

视觉化视角:从图像到图像

讲座强调一个理解上的关键切入点:很多物理问题的解(如二维流体)本身看起来就像图像,因此求解算子的过程看起来非常像“图像到图像”的映射。

  • 例如:取二维流体流场的初值条件,将其映射到终态条件,这在视觉和结构上与人脸识别等图像任务(如分割、风格迁移)中的“图像到图像”转换很类似。
  • 如果采用图像处理的思路,通常会使用卷积层提取特征,但这些卷积层并不一定契合物理规律。傅里叶层被视为更贴合物理的替代方案。

为什么傅里叶域适合物理?

过去半个世纪的计算物理 尤其是 PDE 求解,很大程度上建立在“傅里叶谱方法”之上,这是整套思路的重要历史背景:

  1. 在空间域上对系统做傅里叶变换;
  2. 在傅里叶变换后的域中求解 PDE,该域往往更适合表示和运算;
  3. 逆傅里叶变换回到空间坐标,得到最终物理量分布。

由此,FNO 采用傅里叶空间嵌入层的动机非常自然:既然傅里叶变换是已被证明适用于 PDE 的良好坐标系统,为什么要用对于图像任务而优化的卷积层?转而直接在傅里叶嵌入空间内工作,对 PDE 的表达和求解才更有利。

一个引发思考的观点:傅里叶变换本身也是通用函数逼近器

另一个贯穿讲座的启发点是来自 Nathan Kutz 教授的随口评论:

  • 我们经常讨论神经网络的通用函数逼近性质,但傅里叶变换也是最早的通用函数逼近器之一。
  • 这一类“通用逼近”性质并非神经网络所独有,因此单纯以此作为论证依据,可能并不如想象中有说服力。
  • 虽然讲座作者从未将这种观点写入论文,但仍是一种有趣的、值得反复思考的背景视角。

零样本超分辨率(Zero-Shot Super-Resolution)

原始论文的惊艳演示

FNO 论文中引起大量关注和新闻报道的关键实验,是“零样本超分辨率”:

  1. 低分辨率下训练类似 Navier-Stokes 方程的求解器,例如 64×64 网格;
  2. 使用训练完毕的模型,直接在更高分辨率 (例如 256×256) 上进行推理,无需重新训练;
  3. 类似地,时间维度上,也能把 20 个时间切片(snapshots)提升到 80 个时间切片。

这种方法区别于传统插值和超分辨率 CNN:FNO 学习的是函数到函数的算子,因此改变函数的离散化分辨率不影响算子本身,这为超分辨率带来一种“内禀”的支持。

对超分辨率演示的怀疑与合理边界

讲座强调“天下没有免费的午餐”,任何声称超分辨率有效的模型都必须接受反思性质疑:

  • 在 64×64×20 的情况下,训练数据可能刚好包含足够的物理特征信息,从而支持上采样到更高的 256×256 或 80 个时间切片的精度。
  • 如果分辨率过低、以至于在训练数据中丢失了核心的物理机制(例如细尺度湍流或激波),那么这种超分辨率几乎肯定失效。
  • 具体操作:编码实现 FNO,测试在不同空间、时间下采样率下,超分辨率究竟在什么临界点会失效。这对评估模型适用范围非常重要。

这种怀疑精神被反复强调:方法的“上限”由哪些因素制约?能否通过追加物理条件或其他输入来进一步拓展其适用范围?

神经算子的一般架构与特化设计

讲座中的“mile-high view”

FNO 本质是更为通用的“神经算子”(Neural Operator)框架的一个特例。通用框架的数学结构如下(原始论文发表在《Journal of Machine Learning Research, JMLR》):

  • 输入函数经多个层堆叠,层与层之间可能有跳跃连接(jump layers 或 skip connections);
  • 蓝色的“算子层”是最核心、最可变的部分,它允许设计者注入“用户自定义”的知识,尤其是物理知识;
  • 通用形式是:卷积操作$$\kappa$$(核函数)相对于某个加权函数$$\mu$$做积分。

不同核函数对应不同算子特例

通过更换核函数$$\kappa$$,可以得到一系列不同的神经算子实例:

  • FNO(傅里叶神经算子):核函数为正弦/余弦函数(即傅里叶变换的核),在层内完成傅里叶分析;
  • GNO(图神经算子):在图(graph)上进行卷积;
  • LNO(Laplace 神经算子):核函数推广到 Laplace 变换的核,含复平面极点;
  • 用户可以根据物理背景自行定制核函数,形成“个人定制版神经算子”。

这个抽象化的架构设计相当优雅:它将神经算子泛化成可以用任何核填充的通用模板,从而让社区在统一框架下比较和开发各种方案。

适用条件与局限

  • FNO 这样依赖 Fourier 的工具,天然假设了周期性边界条件
  • 论文案例也解释了,原始 FNO 的示范例子(如简单的 Navier-Stokes 流动)通常在周期箱体上求解,这正是谱方法适用的背景。
  • 这是否适用于具有复杂几何边界的实际工程场景,例如涡轮叶片或风机叶片绕流(非周期、带壁面效应),存在明显疑问。

不过,从讲座中呈现的另一个案例来看:对于包含翼型绕流、并伴有激波结构的问题,依然有一些非 FNO 特例的神经算子方法,通过适当选取核函数,即使面对較复杂的几何/非周期条件也能产生合理表现。

网格无关性与离散化不变性(Mesh Independence)

这是 FNO 乃至整个神经算子文献里贯穿全文的关键主张:

  • 神经算子不是依赖具体数据的离散化方式,而是在学习“连续函数的映射”,即学到的是函数到函数的真实映射关系;
  • 在训练时虽然使用的是离散网格的数据(例如粗网格上的傅里叶系数),但“学到的东西”本身属于连续对象,即连续函数的核;
  • 因此理论上,一旦训练完成,可以随意换到不同分辨率(更高或更低)的网格上进行重采样与推理,实现离散化不变(discretization invariance);
  • 在讲座展示中,将低分辨率、粗糙的网格结果细化后,依然能捕捉到精细的激波结构,效果相当不错。

该属性也被拿来与三类最相近的方法进行比较:

  1. 传统 vanilla 神经网络(依赖固定输入尺寸);
  2. 深度算子网络(DeepONet);
  3. 传统函数逼近方法(例如30年前的主流做法:各种插值法/样条拟合)。

最终结论倾向在于:神经算子相对于这些传统方法更具备网格无关的适用能力。但仍需提醒的是,网格不变性在极端低分辨率极限下是否持续成立,仍需实证检验。

额外案例:使用神经算子学习格林函数(Green's Function)

  • 论文展示了一个用神经算子学习 PDE 格林函数的案例;
  • 定性来看,学到的核函数(左)与分析格林函数(右)的形状和走势非常接近,这是令人鼓舞的;
  • 但定量上看,两者数值仍有可观差距;
  • 如果追求精确数值产出与设计可靠性,或许仍要依赖经典的解析近似而不是FNO直接输出结果。
  • 论文发表至今仅数年,改进空间依然很大:
  • 可否结合已知的物理定律(例如对称性、已知PDE形式)来引导学习过程;
  • 能否将定量差距进一步压缩——这在“物理与机器学习融合”的当代研究方向中非常关键。

Laplace 神经算子(LNO)扩展

讲座提及由 Kao(音译)、Goswami 和 Karniadakis 等人于2023年提出的改进扩展(幻灯片中的“2013”应是笔误或排印错误,正确年份为 2023)。

  • FNO 核为纯正/余弦振荡;
  • 推广到 Laplace 神经算子后,相当于允许“指数增长或衰减的正弦/余弦波”:
  • 若复数平面上的极点位于虚轴上(实部为 0),则退化为 Fourier 核;
  • 若实部为负(负实部),则对应指数衰减的振荡解;
  • 若实部为正(正实部),则对应指数增长的振荡解。
  • 更广泛的参数化/PDE 类型,例如含耗散(增长/衰减)的算子,都可以用更自然的核来表达。

这种构造是对 FNO 的很自然的一种推广(正如 Fourier 变换推广为 Laplace 变换)。

总结

主题核心观点适用场景/形态示例局限/挑战
算子学习 vs 函数学习神经网络可逼近函数到函数的算子映射,不仅限于函数到数值。ODE/PDE 初边值到解函数关系、外力-解函数关系纯粹函数逼近达不到对系统解结构的深层理解
Fourier 层替代卷积层FNO 空间嵌入相当于傅里叶坐标系统,比图像任务卷积方法更贴近PDE物理特性。周期边界的各向同性/湍流等物理系统依赖周期边界,处理非周期几何/工程复杂构型能力有限
零样本超分辨率训练分辨率与推理分辨率可解耦,实现空间/时间维度超分。64×64训练→256×256推理;20帧→80帧低分辨率下若采样不足以承载物理关键结构则会失效
网格无关性 / 离散化不变性学习到的参数属于连续函数/连续算子,可在不同网格间重采样。粗网格训练,细网格推理,非均匀网格替换等真实失效临界点尚不明确,需要自行编码和验证
神经算子抽象(核模板)为一个抽象格式,通过替换核可设计不同变体。FNO、GNO、LNO、用户自定核等核设计依然有较强专业性,效果依赖物理匹配程度
格林函数近似可与分析格林函数定性吻合,定量上仍有差距。作为定性理解工具或快速粗筛精确定量需求下仍需要经典方法
Laplace 神经算子将 Fourier 核扩至复平面上的极点,包含增长/衰减振荡模态,推广了 FNO。方程解存在指数增长/衰减场景的PDE系统相关文献、实现细节仍在迭代成熟
实操行动建议仅依靠理论无法真正理解 FNO,鼓励自行下载开源代码,动手实验,探索失效边界和拓展方式。自选课题/数据重新进行训练与效果检验必须警惕过拟合与数据集的偶然性风险

核心行动清单

  1. 阅读并复现代码:下载相关开源 FNO 与 Neural Operator 代码库,理解每一层实现。
  2. 设计反例与边界测试:在自选数据集上(如复杂几何的翼型绕流等)评估网格不变性与超分辨率能力的适用边界。
  3. 验证格林函数定量差距:在需要高精度定量输出的场景,必须先与传统高精度求解结果对照确认误差范围。
  4. 探索基于物理的增强策略:利用已知物理规律(如对称性、守恒律、PDE形式)改进现有神经算子架构。