Neural Operators
神经算子学习函数之间的映射,例如当前与未来流场之间的映射,从而为偏微分方程 (PDE) 提供快速代理模型,并能在任意网格分辨率下运行。
神经算子是能够学习函数之间映射的神经网络,而不是学习固定大小向量之间的映射。输入是一个函数,例如初始速度场、岩层渗透率图或当天的大气状态;输出则是另一个函数,例如几秒后的流场、最终的压力场或次日天气。由于学到的算子定义在连续域上,相同的权重可以处理在粗网格、细网格或不规则网格上采样的输入。神经算子在数值求解器生成的解上训练完成后,只需一次快速前向传播,就能取代针对一整类偏微分方程 (PDE) 反复进行的模拟。
算子与普通代理模型#
作为代理模型、基于 64 x 64 模拟训练的卷积神经网络 (CNN),会学到与该像素间距绑定的卷积核。神经算子层则近似一个积分算子:它通过在整个域上对学习到的核进行积分,并加上逐点线性项,来更新每个点;网格只决定对该积分进行多精细的求值。随着网格变密,预测会逐渐收敛,这种性质称为离散化不变性。因此,基于成本较低的粗粒度模拟训练的模型可以在更高分辨率下进行查询,Fourier Neural Operator 论文将此称为零样本超分辨率。
相同权重在新分辨率下运行的做法,在视觉模型中也很常见。Ultralytics YOLO26在预测模式下可接受任意 imgsz,并将其向上取整为 32 像素最大步幅的整数倍,因为卷积核不依赖图像尺寸。不过,每个 3 x 3 卷积核覆盖的像素数量固定,因此将 imgsz 加倍后,每个卷积核覆盖的场景宽度就会减半。
有两种相关方法常被误认为神经算子。物理信息神经网络 (PINN) 训练一个网络,使其满足具有固定系数和初始条件的单个 PDE 实例;这些条件一旦变化,就需要重新训练。Neural ODE则学习固定长度状态向量的时间导数,再由求解器对其进行积分。
Fourier Neural Operator#
算子学习随着 Lu Lu、George Karniadakis 及其同事于 2019 年发布的 DeepONet,以及 Zongyi Li、Nikola Kovachki、Anima Anandkumar、Andrew Stuart 及其同事在 Caltech 提出的神经算子框架而兴起。他们的 Fourier Neural Operator (FNO)发表于 ICLR 2021,它在频域中通过卷积计算核积分:快速傅里叶变换 (FFT) 将每个通道转换为傅里叶模态,学习到的复数矩阵在最低频模态上混合通道并丢弃其余模态,逆 FFT 再将结果转换回网格。每个输出点都依赖整个输入,因此单层就拥有全局感受野。
用 PyTorch 实现频谱路径只需几行代码。下面的代码使用同一组权重,处理在 64 个点和 256 个点上采样的相同四个输入函数:
import torch
torch.manual_seed(0)
channels, modes = 4, 8
# Learned complex weights act on the 8 lowest Fourier modes, whatever the grid size
weights = torch.randn(channels, channels, modes, dtype=torch.cfloat) / channels
for points in (64, 256):
x = torch.arange(points) / points # the same periodic domain [0, 1), sampled coarsely or finely
field = torch.stack([torch.sin(2 * torch.pi * k * x) + x * (1 - x) for k in range(1, channels + 1)])
spectrum = torch.fft.rfft(field) # one row of Fourier coefficients per channel
mixed = torch.zeros(channels, points // 2 + 1, dtype=torch.cfloat)
mixed[:, :modes] = torch.einsum("im,iom->om", spectrum[:, :modes], weights)
output = torch.fft.irfft(mixed, n=points) # back to the grid the input came from
print(f"{points} points: output shape {tuple(output.shape)}, u(0.25) = {output[0, points // 4]:.4f}")输出形状为 (4, 64),其中 u(0.25) = -1.0908;另一个输出形状为 (4, 256),其中 u(0.25) = -1.0909。128 个复数权重始终不变,同一物理点的输出精确到小数点后三位一致,因为该层作用于底层函数的傅里叶模态,而非网格点。FNO 论文报告称,在湍流 Navier-Stokes 流、Burgers 方程和 Darcy 流问题上,预测速度比传统 PDE 求解器快最多三个数量级。
其他架构#
DeepONet发表于 2021 年的 Nature Machine Intelligence,它基于 Tianping Chen 和 Hong Chen 于 1995 年提出的算子通用逼近定理:分支网络根据固定传感器位置的采样值编码输入函数,主干网络编码所需输出的位置坐标,两者的点积给出该位置的输出值。图神经算子借鉴图神经网络 (GNN)的消息传递机制,以处理复杂几何结构周围的不规则网格。算子 Transformer将域中采样的点或分块视为 token。Poseidon 于 2024 年由 ETH Zurich 推出,基于流体动力学数据进行预训练,可作为 PDE 的基础模型,并在 15 项下游任务上进行了微调,其中包括预训练数据中未涵盖的物理问题。开源 neuraloperator 库实现了 FNO 及其许多变体。
应用场景#
训练数据来自传统求解器,因此每个训练样本对都是只需付费一次的合成数据;训练完成的算子随后能够快速回答大量查询,例如针对翼型或反应堆形状的设计扫描、需要数千次运行的不确定性量化研究,以及必须比完整模拟更新更快的机器和工厂数字孪生。物理信息神经算子会将 PDE 残差加入损失函数,使数据稀疏区域的预测仍符合控制方程。
在天气预报领域,NVIDIA 与学术界合作者于 2022 年推出了 FourCastNet。它基于自适应 Fourier 神经算子,可生成全球 0.25° 分辨率预报,并能在 2 秒内生成为期一周的预报;其速度比 ECMWF Integrated Forecasting System 快几个数量级,而在大尺度变量的短期预报准确度方面与之相当。










