神经算子:从 DeepONet 到 FNO

618 字
3 分钟
神经算子:从 DeepONet 到 FNO

动机#

传统的神经网络学习的是有限维向量到有限维向量的映射 f:RdRkf: \mathbb{R}^d \to \mathbb{R}^k。但在科学计算中,我们经常需要学习函数到函数的映射(算子):

G:AU,G(a)=u\mathcal{G}: \mathcal{A} \to \mathcal{U}, \quad \mathcal{G}(a) = u

例如:

  • 初始条件 → PDE 解
  • 材料参数 → 应力场
  • 边界条件 → 流场

这类映射是无限维的:输入和输出都是函数,而非有限维向量。

DeepONet#

Lu et al. (2021) 提出的 DeepONet 基于广义逼近定理,将算子学习分解为两个子网络:

架构#

G(a)(y)k=1pbk(a)tk(y)trunk+b0\mathcal{G}(a)(y) \approx \underbrace{\sum_{k=1}^{p} b_k(a) \cdot t_k(y)}_{\text{trunk}} + b_0
  • Branch Net b(a)b(a):编码输入函数 a(x)a(x) 为有限维特征向量
  • Trunk Net t(y)t(y):编码输出位置 yy 为基础函数

关键洞察#

DeepONet 的理论基础是 Universal Approximation Theorem for Operators (Chen & Chen, 1995):

任何连续非线性算子都可以被单隐层神经网络以任意精度逼近。

class DeepONet(nn.Module):
def __init__(self, branch_layers, trunk_layers):
super().__init__()
self.branch = MLP(branch_layers) # 输入: a(x) 的采样值
self.trunk = MLP(trunk_layers) # 输入: 位置 y
def forward(self, a, y):
b = self.branch(a) # [batch, p]
t = self.trunk(y) # [batch, p]
return torch.sum(b * t, dim=-1) # 内积

Fourier Neural Operator (FNO)#

Li et al. (2021) 提出的 FNO 采用了完全不同的策略——在 Fourier 空间中进行变换

架构#

FNO 的核心是 Fourier 层,迭代更新:

vt+1(x)=σ(Wvt(x)+F1[RF[vt]](x))v_{t+1}(x) = \sigma\left(W v_t(x) + \mathcal{F}^{-1}[R \cdot \mathcal{F}[v_t]](x)\right)

其中:

  • F\mathcal{F} 是 Fourier 变换
  • RR 是可学习的 Fourier 域权重矩阵
  • WW 是局部线性变换

关键优势#

  1. 离散化不变性:相同的网络参数可用于不同分辨率
  2. 全局感受野:Fourier 变换天然捕捉全局依赖
  3. 快速计算:利用 FFT,复杂度 O(NlogN)O(N \log N)
class SpectralConv2d(nn.Module):
def __init__(self, in_channels, out_channels, modes):
super().__init__()
self.modes = modes
# Fourier 域中的可学习权重
self.weights = nn.Parameter(
torch.randn(in_channels, out_channels, modes, modes, dtype=torch.cfloat)
)
def forward(self, x):
# x: [batch, channels, H, W]
x_ft = torch.fft.rfft2(x)
# 截断高频模式
x_ft[:, :, :self.modes, :self.modes] *= self.weights
return torch.fft.irfft2(x_ft)

对比与适用场景#

特性DeepONetFNO
理论基础算子通用逼近定理Fourier 分析
输入格式函数在传感器位置的采样规则网格上的函数值
网格适应性不要求规则网格默认要求规则网格(可扩展)
高频分量Branch Net 编码通过 Fourier 截断控制
训练效率中等高(FFT 加速)

参考文献#

  1. Lu, L., et al. “Learning nonlinear operators via DeepONet based on the universal approximation theorem of operators.” Nature Machine Intelligence, 2021.
  2. Li, Z., et al. “Fourier Neural Operator for Parametric Partial Differential Equations.” ICLR, 2021.
  3. Kovachki, N., et al. “Neural Operator: Learning Maps Between Function Spaces.” JMLR, 2023.

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

神经算子:从 DeepONet 到 FNO
https://sciml.com.cn/posts/neural-operators/
作者
星飞帆
发布于
2026-05-11
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
几何信息驱动的神经网络算子(GI-KANO):FNO+GNO+KAN 求解 3D PEC 目标电场积分方程
论文精读 本文提出了一种具有可学习激活函数的几何信息神经算子(GINO)。它采用数据驱动方法求解三维完美电导体目标的电场积分方程(EFIE)。几何信息Kolmogorov-Arnold神经算子(GI-KANO)由傅里叶神经算子(FNO)、图神经算子(GNO)和Kolmogorov-Arnold网络(KA...
2
基于分块的克雷洛夫子空间基函数加速压缩感知矩量法求解双站散射
论文精读 为提高矩量法中结合压缩感知和Krylov子空间求解电磁散射问题时构造基函数的效率,本文提出了一种新方法,采用分块技术构造Krylov子空间基函数。首先将目标划分为若干小块,每块进行扩展以保证电流的连续性。然后在每块上计算Krylov子空间基函数。进一步通过奇异值分解技术增强基函数的正交性以获得...
3
利用压缩感知和特征模态快速分析三维物体双站散射问题
论文精读 本文利用特征模态(CM)和压缩感知(CS)相结合来加速三维物体双站散射问题的求解。基于域分解,通过CM基函数成功地对Rao-Wilton-Glisson基函数离散的表面感应电流进行了稀疏变换。与传统矩量法的稠密矩阵方程不同,本文方法构造了一个规模更小的低秩CS模型,其中感应电流可以被高效重构。...
4
利用物理信息图残差学习求解组合场积分方程用于三维PEC目标电磁散射
论文精读 本研究提出物理信息图残差学习(PhiGRL),作为一种有效且鲁棒的深度学习方法用于三维电磁建模。PhiGRL从物理信息监督残差学习(PhiSRL)扩展而来,通过应用图神经网络(GNN)预测修正量,模拟不动点迭代法的计算过程以迭代修改候选解直至收敛。GNN的应用使PhiGRL能够自适应处理三维电...
5
基于物理启发式机器学习与实验设计的导电目标高效 RCS 预测
论文精读 本文提出了一种结合机器学习和实验设计的混合方法,用于高效准确地预测导电目标随入射角变化的单站雷达散射截面(RCS)。该方法称为物理光学启发支持向量回归(POI-SVR),其核函数的设计灵感来源于物理光学法。引入均匀设计(UD)和均匀设计采样(UDS)来获得具有高度代表性的训练样本。对简单和复杂...
随机文章 随机推荐
Profile Image of the Author
星飞帆
西北工业大学24级研究生 | SciML · PINNs · 神经算子 · PDE 约束学习
欢迎
欢迎来到星飞帆的 SciML 研究笔记:这里记录论文阅读、数学推导、代码复现、实验踩坑,也分享研究生阶段可能用得上的资料。
分类
标签
站点统计
文章
21
分类
4
标签
69
总字数
70,675
运行时长
0
最后活动
0 天前

文章目录