本讲目录

AI 研究 02 · 傅里叶神经算子:低频计算为何也会犯高频错误

问题:训练网格上的误差已经接近零,换一个更密的网格为什么会暴露整条错波?先修:算子学习、复数与傅里叶级数。资料核查截至 2026-09-08;本讲把 FNO 的结构与一个固定谱投影实验分开。

1. 把远距离相互作用搬到频率空间

上一讲的热方程中,每个傅里叶模式只需乘一个衰减因子。这让人想到:对更复杂的物理映射,能否直接学习各模式之间的通道变换?傅里叶神经算子使用这类结构,将全局空间操作变成有限个谱系数上的计算。它能表达非局部关系,但不会自动消除采样带来的信息损失。

设中间特征为 \(v_\ell(x)\in\mathbb R^c\),一个典型层可写成

\[ v_{\ell+1}(x)=\sigma\!\left(W_\ell v_\ell(x)+ \mathcal F^{-1}[R_\ell(k)\mathcal Fv_\ell(k)](x)\right). \]

\(W_\ell\) 是每个位置共用的通道线性映射,\(R_\ell(k)\) 是频率相关的复矩阵,只在选定模式上参数化;\(\sigma\) 是点态非线性。输入提升到通道空间,若干层之后再投影成物理输出。这里“傅里叶”指计算结构,不等于把整个偏微分方程解析求解了。FNO,首稿 2020-10-18给出了原始架构与若干 PDE 实验。

真实九次正弦经十六点采样后与负七次正弦不可区分,保留七阶模式会重建成后者。
图 1:采样先发生,谱截断在后;低频谱系数中可能已经混进了高频信息。

2. 从离散傅里叶定义推出混叠

取 \(N\) 个点 \(x_j=2\pi j/N\),\(j=0,\ldots,N-1\)。本讲的 DFT 归一化为

\[ \widehat u_m=\frac1N\sum_{j=0}^{N-1}u(x_j)e^{-imx_j}. \]

在这些节点上,\(e^{i(k+N)x_j}=e^{ikx_j}e^{2\pi ij}=e^{ikx_j}\)。因此相差整数倍 \(N\) 的频率产生完全相同的数组。这叫混叠,不是优化器没有训练好,而是观察本身不唯一。

现在令 \(N=16,k=9\)。因为 \(9\equiv-7\pmod{16}\),

\[ \sin(9x_j)=-\sin(7x_j). \]

如果谱层只保留 \(|m|\le7\),并把保留权重设为 1,就会重建 \(-\sin7x\)。它在全部训练节点上的误差为零,但真实函数是 \(\sin9x\)。利用正交性,归一化连续误差满足

\[ \frac1{2\pi}\int_0^{2\pi}|\sin9x+\sin7x|^2dx =\frac12+\frac12=1. \]

所以 RMS 等于 1。这个完整反例说明,插值到更密的输出网格只是更清晰地画出错误,并没有恢复缺失的信息。

3. 截断、混叠与非线性是三件相连的事

截断表示主动不保留某些模式。例如 \(N=32,k=9,K=7\),九阶波已经可以被采样分辨,却在投影中被删掉,重建近于零,RMS 是 \(1/\sqrt2\)。混叠则发生在采样时:尚未决定保留多少模式,高频就已经与别的频率无法区分。两种失败的曲线与数值不同。

非线性还会在层内生成新频率。即使输入只有 \(\sin kx\),平方也产生

\[ \sin^2kx=\tfrac12-\tfrac12\cos2kx. \]

若网格无法分辨 \(2k\),新模式就会折回。实际 FNO 使用的激活不一定是平方,但频率扩展的风险依然存在。增加保留模式数不能超过网格的信息上限;抗混叠需要合适的过采样、滤波或离散化设计,并检查它们与非线性的先后次序。

本实验为简洁而略去偶数网格的 Nyquist 模式 \(m=N/2\),实际截断为 \(\min(K,N/2-1)\)。该频率的正弦在全部节点为零,余弦则交替正负,二者不能照搬普通正负频率对的处理。实验用显式 DFT,便于看清约定;工程实现通常用 FFT 提速。

4. 怎样认真验证跨分辨率能力

同一组频率权重可以在不同网格执行,首先说明参数数量未绑定于像素数。它是否逼近同一个连续算子,还取决于输入正则性、谱归一化、已解析的频带、数值积分和训练分布。上一讲的 \(I_NG_NP_N\) 比较仍然需要做。神经算子理论,首稿 2021-08-19提供了函数空间视角,而不是任何离散模型都无条件可迁移的承诺。

边界同样关键。周期傅里叶展开默认两端相接;非周期函数在拼接处可能出现跳跃,带来振荡和大量高频。填充、坐标变换或不同基函数都能改变实现,但必须说明物理边界如何进入模型。把一个固定温度边界问题直接当周期问题,增加层数也无法让任务定义变正确。

近期的函数空间架构研究,首稿 2025-06-12把有限网络扩展的原则放到前台。这条研究线的价值,是让“同一模型作用于不同表示”有明确数学含义。对应用报告,应同时索要同网格误差、跨网格误差、输入频带与边界测试;单个细网格展示不足以识别误差来源。

5. 先预测,再增加采样点

一个实用的诊断顺序是:先用常数输入检查零频与归一化,再用单一可解析模式检查幅度和相位,最后输入两个模式并加入非线性。若常数经过恒等谱层后翻倍,问题很可能在正反变换约定;若仅高频失败,才继续区分截断和混叠。误差表最好同时记录空间范数与频谱误差,因为很小但物理重要的高频可能被总能量指标掩盖。对于湍流等多尺度过程,还需要检查能谱、守恒量和统计分布,不能把本例的平滑扩散直觉直接推广到所有动力学。

调整采样点、真实频率与保留频带,比较传感器误差和密网格误差。

默认 \(N=16,k=9,K=7\):有符号折回波数为 −7,采样 RMS 在浮点精度内为零,512 点密网格 RMS 为 1。本例频率均低于密网格的混叠阈值,其均匀求和能验证相应三角多项式的积分。先把 \(N\) 改成 32,再把 \(K\) 从 7 调到 9:第一步消除混叠,第二步才解除截断。

对实际训练还应留出整个输入函数作为测试单位,避免把同一函数的相邻节点拆到两边。否则所谓泛化可能只是在原有曲线上补点。

6. 迁移练习

题一:只在训练节点上检查 \(N=16\) 的九阶正弦,换十次随机初始化能发现上述错误吗?

展开答案

不能靠这些节点区分两种函数。随机初始化可能改变拟合方式,却不创造新观察。需要离开原网格的验证点,或者独立高分辨率真值,并明确允许输入的频带。

题二:输入波数不超过 6,做一次平方后,在 \(N=16\) 上是否仍然充分解析?

展开答案

未必。平方可能产生 12 阶模式,而 12 在 16 点上折回 −4;实信号的正负频率还会配对。可先在更密网格计算非线性,再适当低通,最后下采样;所需频带应由操作产生的最高频率确定。

速查摘要

问题 判别
混叠 \(k\) 与 \(k+N\) 在 \(N\) 点上不可区分
截断 已分辨的模式也可能被 \(\lvert k\rvert>K\) 删除
非线性 会生成额外频率,需重新检查解析能力

来源:FNO、神经算子、2025 函数空间扩展。先修:算子学习;下一讲:等变网络。