Tucker-FNO: Tensor Tucker-Fourier Neural Operator and its Universal Approximation Theory¶
会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=UJvkXnuozY
代码: https://github.com/GuanchengZhou/Tucker-FNO
领域: 神经算子 / 科学计算 / PDE 求解 / 张量分解
关键词: Fourier 神经算子, Tucker 分解, 通用逼近定理, 高维 PDE, 隐式神经表示
一句话总结¶
本文用 Tucker 张量分解把高维 Fourier 神经算子(FNO)拆成一组一维 FNO,把 \(d\) 维 FFT 换成 \(d\) 次一维 FFT,将 3 维 PDE 的 FFT 复杂度从 \(O(d_v n^3 \log n^3)\) 降到 \(O(3 d_v n \log n)\),并首次证明了这种张量分解 FNO 仍满足通用逼近定理,在 Navier-Stokes / Plasticity / Burgers 等高维 PDE 和图像/视频信号恢复上同时取得更快和更准的结果。
研究背景与动机¶
领域现状:神经算子(Neural Operator, NO)学习的是函数空间到函数空间的映射,而非传统神经网络学习的信号到信号的映射,因此天然适合求解 PDE——给定一个新条件函数 \(a\),只需前向跑一次网络就能输出解函数 \(u\),比有限元/有限差分等数值求解器快得多。其中 FNO 把非局部积分算子搬到 Fourier 空间用 FFT 实现,是这条路线上效率最高的代表。
现有痛点:FNO 的瓶颈在 FFT。对 \(n\times n\times n\) 网格上的 3 维 PDE,单次 Fourier 变换复杂度高达 \(O(d_v n^3 \log n^3)\),维度一高就算不动;同时高维卷积权重 \(R\in\mathbb{C}^{k^d\times d_v\times d_v}\) 也随维度指数膨胀,这让 FNO 在高维 PDE 和高维视觉信号(如 INR 表示图像/体数据)上都受困于维度灾难。
核心矛盾:已有的张量化 FNO 走了两条不同的路,各有取舍。T-FNO 只分解网络权重 \(R\) 来省参数,但 FFT 本身没变快,反而因为权重重构引入额外计算;D-FNO 注意到「FFT 才是计算主导」并对其做分解来提速,但分解破坏了 FNO 的表达能力(尤其是通用逼近性质),导致精度下降。于是「降 FFT 复杂度」和「保表达能力(通用逼近)」之间存在 trade-off。
本文目标:(1) 真正降低 FFT 相关计算的复杂度而不是只省参数;(2) 在分解之后仍保住 FNO 的通用逼近能力,并给出严格证明。
切入角度:作者把近期的「函数型张量 Tucker 分解」从函数层面提升到算子层面——既然一个连续多元函数可以被 Tucker 形式(核张量 \(\mathcal{C}\) × 各维一维因子函数)任意逼近,那么算子学习的目标函数 \(u\) 也可以这样分解,于是估计「高维算子」就转化为估计「一组一维算子」。
核心 idea:用 Tucker 分解把一个 \(d\) 维 FNO 替换成「\(d\) 个一维 FNO + 一个核张量聚合」,把昂贵的高维 FFT 换成多次廉价的一维 FFT,并用 Stone-Weierstrass 定理把通用逼近性质从一维 FNO 一路抬到 Tucker-FNO。
方法详解¶
整体框架¶
Tucker-FNO 要解决的是「高维 FNO 太慢」,整体思路是:不再对 \(d\) 维输入做一个庞大的高维 FNO,而是先把输入张量沿各个 mode 拆成 \(d\) 个一维「因子输入」,每个因子各自走一个一维 FNO,最后用一个 Tucker 核张量把这些一维输出重新聚合成高维解。形式上把算子 \(\mathcal{N}: a\mapsto u\) 定义为
其中 \(\mathcal{C}\in\mathbb{R}^{r_1\times\cdots\times r_d}\) 是核张量,\((r_1,\dots,r_d)\) 是 Tucker 秩,\(\mathcal{N}_i\) 是第 \(i\) 维的一维 FNO。整个 pipeline 是:输入函数采样 → 预提升(pre-lifting)拆出 \(d\) 个一维因子矩阵 → \(d\) 个一维 FNO 并行处理 → Tucker 核张量聚合 → 后投影(post-projection)MLP 增强表达。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入条件函数 a<br/>离散采样为 d 维张量 I"] --> B["预提升 P̂<br/>沿各 mode 展开<br/>拆成 d 个一维因子矩阵"]
B --> C["一维 FNO 组 Nᵢ<br/>每维一个一维 FFT"]
C --> D["Tucker 核张量聚合 C<br/>×₁…×_d 重组高维输出"]
D --> E["后投影 Q̂<br/>2 层 MLP 增强表达"]
E --> F["输出解函数 u"]
整篇方法的三个贡献节点正是上面的预提升、一维 FNO 组 + Tucker 聚合、以及把这套分解架构的通用逼近性证出来;预提升前的采样和最后的后投影属于脚手架(后投影甚至被证明不影响通用逼近)。
关键设计¶
1. 算子级 Tucker 分解:把一个 \(d\) 维 FNO 换成 \(d\) 个一维 FNO
这一步直接针对「高维 FFT 太贵」的痛点。出发点是一个函数逼近定理(Theorem 1):定义在紧集 \(\Omega=[s_1,t_1]\times\cdots\times[s_d,t_d]\) 上的任意连续函数 \(f\),对任意 \(\epsilon>0\) 都存在核张量 \(\mathcal{C}\) 和各维一维连续函数 \(g_i\),使得
也就是说目标解 \(u(x)\approx \mathcal{C}\times_1 g_1(x_{(1)})\times_2\cdots\times_d g_d(x_{(d)})\),于是「估计 \(u\) 上的算子」就变成「估计各维因子 \(g_i\) 上的算子」。把每个 \(g_i\) 用一维 FNO \(\mathcal{N}_i\)(即公式 (5) 的标准 FNO 层)实现,高维 FNO 就被分解成 \(d\) 个一维 FNO。关键收益在于:原本一次 \(d\) 维 FFT 复杂度 \(O(d_v d n^d\log n)\),现在变成 \(d\) 次一维 FFT,总复杂度降到 \(O(d_v d n\log n)\)——对 3 维 PDE 就是从 \(n^3\log n^3\) 量级降到 \(n\log n\) 量级。这和 T-FNO 有本质区别:T-FNO 分解的是网络权重 \(R\)(省参数但 FFT 没变快、还多了权重重构开销),Tucker-FNO 分解的是算子本身(直接砍 FFT 计算量)。
2. 预提升模块:把高维输入线性拆成各维一维因子矩阵
既然要喂给 \(d\) 个一维 FNO,就需要先把 \(d\) 维输入张量 \(I\in\mathbb{R}^{n_1\times\cdots\times n_d}\) 拆成 \(d\) 个一维因子。借鉴 D-FNO,作者用一个线性预提升算子 \(\hat{P}\) 完成:
其中 \(\mathrm{unfold}_i(\cdot)\) 把张量沿第 \(i\) 个 mode 展开成矩阵,\(W_i\in\mathbb{R}^{\prod_{j\neq i}n_j\times d_v}\) 是预提升权重,\(d_v\) 是隐空间维度,输出 \(I_i\in\mathbb{R}^{n_i\times d_v}\)。每个因子矩阵 \(I_i\) 携带了函数 \(a\) 沿第 \(i\) 维的部分信息,作为对应一维 FNO 的输入。在离散数值实现下,整个算子写作 \(O=\hat{Q}(\mathcal{C}\times_1\mathcal{N}_1(I_1)\times_2\cdots\times_d\mathcal{N}_d(I_d))\),其中 \(\hat{Q}\) 是后投影 MLP,进一步增强分解后的表达能力——值得注意的是,在信号恢复任务里因为输入用的是可分解的正弦位置编码,预提升甚至可以省掉。
3. Tucker-FNO 的通用逼近定理:分解后表达能力不打折的理论保证
D-FNO 的教训是「分解会伤害通用逼近」,所以本文最核心的贡献是证明 Tucker-FNO 仍是通用逼近器。证明分三级递进:先是函数层面的 Theorem 1(连续函数可被函数型 Tucker 分解任意逼近,由 Stone-Weierstrass 定理——高阶多项式能逼近函数、且高阶多项式能构造出 Tucker 分解形式——得到);再抬到算子层面的 Theorem 2,对紧致的解析函数集 \(H\),存在秩 \((r_1,\dots,r_d)\)、连续因子算子 \(\mathcal{U}_i\) 和核张量 \(\mathcal{C}\),使得
最后 Theorem 3:把上面的因子算子 \(\mathcal{U}_i\) 用一维 FNO 逼近(依据经典 FNO 的通用逼近 Lemma 2),就得到对任意连续算子 \(\mathcal{G}\),存在 Tucker-FNO \(\mathcal{N}\) 使 \(\sup_{f\in F}\|\mathcal{G}(f)-\mathcal{N}(f)\|_{H^s}\le\epsilon\)。这是首个针对张量分解神经算子的通用逼近结果。文中还指出,因为 MLP 本身是通用逼近器,加在末尾的后投影 \(\hat{Q}\) 不影响这一结论。
损失函数 / 训练策略¶
PDE 任务训练 500 epoch,batch size 20,Adam 优化器(lr=0.001),隐维 \(d_v=32\),Tucker 秩设为与 \(d_v\) 相同,Fourier 频率截断阈值 \(k_{\max}=(12,12,\dots)\),NO 类方法深度为 4,后投影 \(\hat{Q}\) 为 2 层 MLP。信号恢复任务里每个一维因子映射用一个 DNN(含 1 个 sine 激活的 lifting 层 + 2 个 FNO 层 + 线性投影),输入为 \(S=10\) 的正弦位置编码,秩设为 \((r_1,r_2,r_3)=(n_1,n_2,\lfloor n_3/2\rfloor)\)。
实验关键数据¶
主实验¶
PDE 逼近任务(NMSE↓ / VCE↓,值越小越好),Tucker-FNO 在 4 项配置上基本全面领先:
| 数据集 | 指标 | FNO | T-FNO | D-FNO | Tucker-FNO |
|---|---|---|---|---|---|
| Navier-Stokes (T=20) | NMSE | 0.0034 | 0.0035 | 0.0063 | 0.0028 |
| Navier-Stokes (T=30) | NMSE | 0.0072 | 0.0065 | 0.0132 | 0.0061 |
| Plasticity | NMSE | 0.0080 | 0.0079 | 0.0097 | 0.0073 |
| Burger | VCE | 4.45e-5 | 2.97e-5 | 2.86e-5 | 2.01e-5 |
效率对比(256×256 数据):相比 FNO,Tucker-FNO 参数减少约 50%、单次迭代时间减少 48.6%;T-FNO 虽省参但因权重重构反而更慢,D-FNO 虽快但精度掉得明显。
| 方法 | 参数量 | Time/iter (s) |
|---|---|---|
| FNO | 593.7 K | 0.0685 |
| T-FNO | 232.6 K | 0.0746 |
| D-FNO | 307.8 K | 0.0382 |
| Tucker-FNO | 293.5 K | 0.0352 |
信号恢复(多光谱图像/视频 inpainting,PSNR↑),Tucker-FNO 在各采样率下均显著优于 OINR、OINR-FNO 等 NO-based INR 以及 SIREN/MFN/LRTFR:
| 采样率 | 指标 | LRTFR | OINR | OINR-FNO | Tucker-FNO |
|---|---|---|---|---|---|
| 0.1 | PSNR | 26.96 | 23.32 | 24.53 | 28.09 |
| 0.15 | PSNR | 28.75 | 24.04 | 25.02 | 29.57 |
| 0.2 | PSNR | 30.22 | 25.17 | 26.27 | 31.17 |
在 1024×1024×31 信号恢复任务上,相比 OINR-FNO,Tucker-FNO 参数从 1.06M 降到 553K、Time/iter 从 0.2322 降到 0.0963,约 2.4× 加速。
消融实验¶
以 Plasticity 方程考察隐维 \(d_v\)、频率截断阈值 \(k\)、Tucker 秩的影响(NMSE↓):
| 配置 | 关键指标 | 说明 |
|---|---|---|
| \(d_v=16\) | NMSE 0.0092 | 隐维太小,表达不足 |
| \(d_v=32\) | NMSE 0.0073~0.0074 | 默认配置,性价比高 |
| \(d_v=64\) | NMSE 0.0062~0.0068 | 继续增大隐维仍有小幅提升 |
| 秩 16 → 32 → 64 | NMSE 递减 | 秩越大精度越好,但收益递减 |
关键发现¶
- 在数值变化剧烈的区域(如 Navier-Stokes 的涡旋、Burgers 的激波附近),Tucker-FNO 的误差图明显更干净,说明一维分解并未损失对高频/剧变结构的刻画能力。
- 增大 \(d_v\) 和秩都能提升精度,但 \(d_v=32\)、秩=\(d_v\) 已是性价比拐点,过大的秩才会让分解后的聚合开销 \(O(\hat{r}d_v n^d)\) 变成主导。
- 「分解还能更准」这点反直觉:D-FNO 分解后掉点,而 Tucker-FNO 因为保住了通用逼近、且一维结构起到了某种隐式正则,多数情况下反而比原版 FNO 更准。
亮点与洞察¶
- 把张量分解从「分解权重」上升到「分解算子」:这是和 T-FNO 最本质的区别。分解权重只省参数、FFT 没变快;分解算子直接把高维 FFT 替换为多次一维 FFT,命中了 FNO 真正的计算瓶颈,是「快」的根源。
- 三级递进的通用逼近证明很漂亮:函数级(Stone-Weierstrass)→ 算子级(Tucker 算子分解)→ FNO 级(套经典 FNO 逼近),层层把保证传递上去,给「分解会不会伤表达能力」这个疑虑一个干净的否定答案。
- 同一套分解无缝迁移到 INR 信号恢复:因为正弦位置编码天然可沿各维分解,Tucker-FNO 在恢复任务里能直接省掉预提升,几乎零改动就泛化到图像/视频/3D 体数据,显示了「算子分解」作为通用范式的可复用性。
局限与展望¶
- 通用逼近定理要求目标函数集在 \(\mathbb{T}^d\) 上解析(analytic)且 \(s>d/2\),对不光滑、强不连续的解(如带尖锐间断的 PDE)理论保证是否仍稳,文中未充分讨论。
- 聚合阶段复杂度 \(O(\hat{r}d_v n^d)\) 在秩极大时会反超 FFT 节省的收益,意味着 Tucker 秩需要谨慎选取,存在「秩太小掉精度、秩太大失效率」的窄窗口。
- 实验主要在结构化网格、规则域上验证,对 Geo-FNO 那类任意几何/不规则网格的 PDE,mode 展开式的预提升是否还适用值得进一步检验。
相关工作与启发¶
- vs FNO: FNO 用一次高维 FFT,复杂度 \(O(d_v n^d\log n)\);Tucker-FNO 用 \(d\) 次一维 FFT 降到 \(O(d_v d n\log n)\),参数和时间都减半,精度还略升。
- vs T-FNO: T-FNO 分解权重 \(R\) 省参数,但 FFT 不变、还多了权重重构开销,所以更慢;Tucker-FNO 分解算子,目标是计算效率而非参数效率。
- vs D-FNO: 两者都想降 FFT 成本,但 D-FNO 的分解破坏了通用逼近导致掉点,Tucker-FNO 证明了分解后仍是通用逼近器,在速度更快的同时精度更高。
- vs OINR / OINR-FNO: 同为 NO-based INR,Tucker-FNO 凭借紧凑的 Tucker 分解在高维信号恢复上同时更快更准(1024×1024×31 上约 2.4× 加速、参数近半)。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次把函数型张量分解抬到算子层面,并首证张量分解 NO 的通用逼近定理。
- 实验充分度: ⭐⭐⭐⭐ 覆盖 3 类 PDE + 多种信号恢复任务,效率/精度双维度对比,消融完整;但多在规则网格上。
- 写作质量: ⭐⭐⭐⭐ 理论推导层次清晰、动机与 T-FNO/D-FNO 区分明确。
- 价值: ⭐⭐⭐⭐⭐ 给高维 FNO 提供了既快又有理论保证的通用范式,可直接迁移到 INR。