try ai
科普
编辑
分享
反馈
  • 神经算子

神经算子

SciencePedia玻尔百科
核心要点
  • 神经算子学习无限维函数空间之间的映射,克服了传统神经网络受限于固定大小向量输入的局限。
  • 一个关键特性是离散化不变性,它允许训练好的算子对新数据分辨率进行预测,而无需重新训练。
  • 傅里叶神经算子(FNO)和深度算子网络(DeepONet)等架构为学习算子提供了高效且有理论基础的框架。
  • 神经算子是科学与工程领域的强大工具,可作为昂贵的偏微分方程求解器的快速代理、加速逆问题求解,并直接从数据中学习物理定律。

引言

从全球气候模式到湍流,理解和预测复杂物理系统的探索长期以来一直是数值模拟的领域。然而,这些传统方法虽然强大,但计算成本往往高得令人望而却步,成为科学发现和工程设计的主要瓶颈。尽管深度学习已经改变了许多领域,但传统神经网络在这一领域存在根本性局限;它们被设计用于映射固定大小的向量,难以独立于测量网格来学习底层的物理定律。

本文介绍神经算子,这是一类革命性的模型,它通过学习算子——即整个函数空间之间的映射——来直接应对这一挑战。我们将首先探讨赋予这些模型强大能力的核心​​原理与机制​​,包括离散化不变性的概念以及傅里叶神经算子(FNOs)和深度算子网络(DeepONets)的具体架构。随后,我们将综述其变革性的​​应用与跨学科联系​​,展示它们如何加速物理学、工程学及其他领域的研究。首先,我们必须理解神经算子所代表的思维方式的根本转变——从近似函数转向学习支配这些函数的算子。

原理与机制

要真正理解神经算子所代表的革命,我们必须首先回到我们所熟悉的传统神经网络世界。几十年来,这些网络因其学习复杂关系的能力而备受赞誉,扮演着“通用函数逼近器”的角色。你给它们一个固定大小的数字列表作为输入——比如一张照片的像素值——它们就会生成另一个固定大小的数字列表作为输出——或许是照片中包含一只猫的概率。它们将 Rn\mathbb{R}^nRn 中的向量映射到 Rm\mathbb{R}^mRm 中的向量。但如果我们要解决的问题并非关于固定大小的数字列表呢?

如果我们想预测天气呢?输入不是一个固定大小的向量,而是在全球范围内定义的温度、压力和风的连续函数。我们期望的输出是另一组函数,用于预测这些值在明天的情况。如果我们想设计一个新的飞机机翼呢?输入是机翼的形状(一个函数),输出是其周围的气流(另一个函数)。科学和工程领域充满了这类问题,我们需要学习的不是向量之间的映射,而是函数之间的映射。这些映射在数学上被称为​​算子​​。

一个在 32×3232 \times 3232×32 网格上离散化的机翼气流模拟数据上训练的传统神经网络,如果你让它预测一个更精细的 128×128128 \times 128128×128 网格上的气流,它将完全不知所措。这个网络的架构本身就与输入维度绑定。更微妙的是,即使我们能重新训练它,那些确保其预测稳定可靠的属性也可能随着分辨率的增加而退化。我们不是在学习物理,而只是在学习特定相机的像素到像素的映射。

因此,我们的目标是构建一种新型的学习机器:一种能够学习算子本身,即学习底层的物理定律,而不依赖于我们选择如何测量或离散化它的方式。这个属性是科学机器学习的“圣杯”:​​离散化不变性​​。一个真正具有离散化不变性的模型,一旦训练完成,就可以利用粗糙天气模拟的数据生成高分辨率的预报,或者利用飞机机翼上任意位置传感器的读数绘制出完整的压力场。它学习的是连续的物理现实,而不是离散的投影投射在我们的传感器或网格上。

通用蓝图:利用积分核学习

我们该如何构建这样一台机器呢?让我们从物理学中寻求灵感。自然界中的许多基本算子,从引力到电磁学,都可以表示为积分变换的形式。算子 uuu 在点 xxx 处的输出由输入函数 aaa 在整个定义域上的积分给出,并通过一个称为​​核函数​​的函数 K(x,y)K(x, y)K(x,y)进行加权:

u(x)=∫ΩK(x,y)a(y)dyu(x) = \int_{\Omega} K(x, y) a(y) dyu(x)=∫Ω​K(x,y)a(y)dy

核函数 K(x,y)K(x, y)K(x,y) 编码了相互作用:它指定了点 yyy 处的输入如何影响点 xxx 处的输出。这为我们提供了一个通用的蓝图。神经算子本质上是这种积分算子的一个复杂、可学习的版本。这种可适应任何几何形状的通用架构包括三个步骤:

  1. ​​升维​​:我们首先取输入函数 a(x)a(x)a(x),并在每个点将其提升到一个更高维的通道空间,创建一个表示 v0(x)v_0(x)v0​(x)。这就像给网络一个更丰富的“草稿纸”来进行计算。

  2. ​​迭代更新​​:然后我们应用一系列层。每一层通过组合一个可学习的积分算子、一个简单的逐点线性变换和一个非线性函数 σ\sigmaσ,将函数 vℓ−1(x)v_{\ell-1}(x)vℓ−1​(x) 更新为 vℓ(x)v_{\ell}(x)vℓ​(x):

    vℓ(x)=σ(Wℓvℓ−1(x)+∫ΩKθ(x,y,… )vℓ−1(y)dy)v_{\ell}(x) = \sigma \left( W_{\ell} v_{\ell-1}(x) + \int_{\Omega} K_{\theta}(x, y, \dots) v_{\ell-1}(y) dy \right)vℓ​(x)=σ(Wℓ​vℓ−1​(x)+∫Ω​Kθ​(x,y,…)vℓ−1​(y)dy)
  3. ​​投影​​:在最后一层之后,我们将丰富的、高维的表示 vL(x)v_L(x)vL​(x) 逐点投影回最终的输出函数 u(x)u(x)u(x)。

这个优雅的蓝图具有非凡的通用性。对于定义在任意网格或点云上的函数,我们可以用加权和来近似积分,其中权重考虑了点的局部密度。这催生了​​图神经算子​​,它通过学习一个依赖于点的属性而非其在网格上任意索引的核函数 KθK_{\theta}Kθ​,即使在复杂的非结构化几何体上也能学习底层的连续物理。其核心原理保持不变:学习一个连续积分算子的相互作用核。

傅里叶神经算子:频域中的交响乐

现在,让我们考虑一个特殊但极其重要的案例:在规则网格上的问题,比如图像或矩形域上的模拟。在这里,我们可以运用数学和物理学中最强大的“魔术”之一:傅里叶变换。著名的​​卷积定理​​告诉我们,实空间中复杂的全局操作——卷积——在频域中变成了简单的局部乘法。许多物理过程,如扩散(热流),都是由卷积描述的。

这就是​​傅里叶神经算子(FNO)​​的核心思想。FNO 不试图学习一个复杂的、与空间相关的核函数 K(x,y)K(x, y)K(x,y),而是通过参数化其傅里叶变换来学习一个更简单的、平移不变的核。单个 FNO 层的工序如同一首优美的变换交响曲:

  1. ​​进入频域​​:首先,表示在网格上的输入函数 vℓ−1(x)v_{\ell-1}(x)vℓ−1​(x) 通过快速傅里叶变换(FFT)被转换为其频率分量 F(vℓ−1)(k)\mathcal{F}(v_{\ell-1})(k)F(vℓ−1​)(k)。

  2. ​​滤波与混合​​:在这个谱域中,FNO 执行其关键操作。它截断高频部分,只保留截止频率 KKK 内的模式 ∣k∣≤K|k| \leq K∣k∣≤K。这起到低通滤波器的作用,不仅使模型更高效,还提供了一种隐式正则化,使学习过程更稳定,尤其是在数据有噪声时。在这些保留的频率上,它应用一个可学习的复数值矩阵 Rθ(k)R_{\theta}(k)Rθ​(k),该矩阵对模式进行乘法运算,并混合函数不同通道间的信息。这个乘法就是该层学习到的“物理”。为确保实值输入函数产生实值输出,学习到的权重必须遵循优美的共轭对称性,Rθ(−k)=Rθ(k)‾R_{\theta}(-k) = \overline{R_{\theta}(k)}Rθ​(−k)=Rθ​(k)​。

  3. ​​返回现实世界​​:然后,经过滤波的模式通过逆 FFT 变换回空间域。整个过程有效地对输入函数应用了全局卷积。

  4. ​​局部精化​​:全局卷积的结果与一个简单的逐点线性映射的结果(以及一个跳跃连接)相结合,最后通过一个非线性激活函数 σ\sigmaσ。

这种方法真正的天才之处在于它对离散化不变性问题的解决方案。学习到的参数 θ\thetaθ 在连续的频域中定义了函数 Rθ(k)R_{\theta}(k)Rθ​(k),而不是作为一组与特定网格索引绑定的权重。因此,如果我们想在一个具有不同分辨率的新网格上评估算子,我们只需在新网格上应用 FFT,并在新网格对应的频率位置上采样完全相同的学习函数 Rθ(k)R_{\theta}(k)Rθ​(k)。这赋予了 FNO 卓越的零样本超分辨率能力。

此外,这种频域方法非常高效。在一个有 NNN 个点的网格上进行直接的全局卷积,其计算成本会随 NNN 呈二次方增长。而通过使用 FFT,FNO 以仅为 O(Nlog⁡N)O(N \log N)O(NlogN) 的成本实现了相同的目标。这一计算上的飞跃使得学习大规模系统中复杂的、长程相互作用成为可能,而这对于像 CNNs 这样局限于小型局部核的标准架构来说通常是难以处理的任务。

深度算子网络:分支与主干的二重奏

FNO 很强大,但它依赖于特定的基——傅里叶基,这对于周期性域最为自然。如果我们想要一种不同类型的灵活性呢?让我们回到我们的积分算子蓝图,并从一个不同的视角来看待它。如果我们能用分离表示来近似核函数 K(x,y)K(x,y)K(x,y) 呢?

K(x,y)≈∑k=1pτk(x)βk(y)K(x, y) \approx \sum_{k=1}^{p} \tau_k(x) \beta_k(y)K(x,y)≈k=1∑p​τk​(x)βk​(y)

如果我们将这个代入我们的积分中,会发生奇妙的事情:

u(x)=∫K(x,y)a(y)dy≈∑k=1pτk(x)(∫βk(y)a(y)dy)u(x) = \int K(x, y) a(y) dy \approx \sum_{k=1}^{p} \tau_k(x) \left( \int \beta_k(y) a(y) dy \right)u(x)=∫K(x,y)a(y)dy≈k=1∑p​τk​(x)(∫βk​(y)a(y)dy)

仔细观察这个表达式。括号中的项,我们可以称之为系数 ckc_kck​,仅依赖于输入函数 a(y)a(y)a(y)。另一项 τk(x)\tau_k(x)τk​(x) 仅依赖于我们想要评估解的输出坐标 xxx。输出是基函数 τk(x)\tau_k(x)τk​(x) 的线性组合,其中系数 ckc_kck​ 由输入函数 a(y)a(y)a(y) 决定。

这就是​​深度算子网络(DeepONet)​​背后的精妙思想。从架构上讲,它是两个不同神经网络之间的二重奏:

  • 一个​​分支网络(Branch Net)​​,充当算子的“耳朵”。它接收输入函数 aaa(通常在一组固定的“传感器”位置采样)并计算系数向量 [c1,c2,…,cp][c_1, c_2, \dots, c_p][c1​,c2​,…,cp​]。
  • 一个​​主干网络(Trunk Net)​​,充当“手”。它接收单个坐标 xxx作为输入,并生成一个基函数值的向量 [τ1(x),τ2(x),…,τp(x)][\tau_1(x), \tau_2(x), \dots, \tau_p(x)][τ1​(x),τ2​(x),…,τp​(x)]。

最终输出就是这两个网络输出的点积。分支网络倾听整个输入函数,决定表达什么,而主干网络学习一组合适的基函数,以便在需要的地方表达它。

DeepONet 实现离散化不变性的方法不同但同样强大。因为主干网络接收连续坐标 xxx 作为输入,我们可以在域内的任何点请求解,从而使其具有天然的输出分辨率无关性。输入不变性是通过在物理空间中固定分支网络的传感器位置来实现的,这与任何特定的网格无关。

力量与前景:从理论到现实

这些架构不仅仅是巧妙的工程技巧;它们植根于深厚的数学原理。正如标准神经网络是函数的通用逼近器一样,神经算子已被证明是​​连续算子的通用逼近器​​。全局积分变换(如 FNO 的谱卷积)和局部逐点非线性的结合,其能力足以近似任何从一个函数空间到另一个函数空间的连续映射。理论证实,通过堆叠这些层,我们可以从简单、高效的组件构建出任意复杂的、非平移不变的核。

当然,现实世界是复杂的。它有复杂的几何形状和边界。FNO 在其最纯粹的形式中假设一个周期性的世界。但其原理是可适应的。通过将算子学习与数值分析的经典技术相结合,可以克服这些挑战。我们可以不强行将非周期性问题放入周期性盒子中,而是通过使用​​提升函数​​来处理边界条件来变换问题本身,或者我们可以使用更合适的光谱基(如​​切比雪夫多项式​​)来构建算子,这对于有界域是自然的。DeepONets 由于其设计,可以通过巧妙的架构选择来整合边界条件,例如将其输出乘以一个在边界处消失的掩码。

也许最令人兴奋的前景在于预测未来——学习演化系统的动力学。我们可以训练一个神经算子来近似系统(如流体流动或天气)在单个短时间步长 Δt\Delta tΔt 内的演化。然后,为了预测长期的未来,我们只需反复应用学习到的算子进行“前推”(rollout)。人们可能会担心模型在每一步犯下的小错误会累积,并迅速导致灾难性的失败。但在这里,物理学伸出了援手。

一项卓越的分析表明,如果底层的物理系统是耗散的(如热流,能量会衰减),那么学习模型的长期误差​​可证明是有界的​​,无论我们走了多少步。系统的自然稳定性会不断纠正模型微小的不准确性。即使对于能量守恒系统(如理想的波传播),误差增长也最多是随时间线性增长——与人们可能天真预期的爆炸性指数增长相去甚远。当一个学习到的算子真正捕捉到系统的底层物理时,它的预测就继承了系统自身的稳定性,为以传统模拟器一小部分成本进行可靠的、长时程预测打开了大门。这是物理学与机器学习的美妙统一,一个刚刚开始展开的合作关系。

应用与跨学科联系

在深入了解了神经算子的内部工作原理后,我们现在开始对其应用领域进行一次宏大的巡礼。我们已经看到,它们的核心能力是学习整个函数空间之间的映射——这个概念初听起来可能有些抽象。但正是这种抽象性解锁了一系列惊人的应用,将工程学、气候科学、材料研究乃至宇宙学等不同领域编织在一起。我们将看到,神经算子不仅仅是旧工具箱里的一个新工具;它们代表了我们处理复杂科学问题方式的根本性转变,使我们从解决单个实例转向学习支配整个现象族的定律。

直接代理:快进的模拟宇宙

神经算子最直接、或许也最直观的应用是作为计算昂贵的物理模拟的代理模型。想象一下模拟地下水流经多孔岩石的挑战,这是一个由达西定律描述的问题。为每一种新的岩石渗透率配置求解底层的偏微分方程(PDE)可能需要超级计算机花费数小时甚至数天的时间。

神经算子提供了一个惊人的替代方案。我们可以在一个高保真模拟数据集上训练它,教会它从输入函数(渗透率场,a(x)a(x)a(x))到输出函数(压力场,u(x)u(x)u(x))的映射。一旦训练完成,算子可以在几分之一秒内为一个新的、前所未见的渗透率场预测解。它已经学会了物理,将 PDE 本身的解算子封装了起来。

真正引人注目的是一种称为*离散化不变性*的特性。因为算子,特别是傅里叶神经算子(FNO),是在一个连续空间(如傅里叶域)中学习关系,所以它不受其训练数据特定网格分辨率的限制。一个在粗糙的 64×6464 \times 6464×64 网格上训练的算子可以在更精细的 128×128128 \times 128128×128 网格上做出惊人准确的预测,这一壮举被称为零样本超分辨率。它学到的是连续的物理定律,而不仅仅是离散的像素到像素的映射。

这种能力不仅限于流体动力学。考虑求解域内拉普拉斯方程 Δu=0\Delta u = 0Δu=0 的优雅问题。与此相关的一个经典数学对象是 Dirichlet-to-Neumann (DtN) 映射,这是一个算子,它接收定义在域边界上的一个函数(Dirichlet 数据),并返回边界上的另一个函数(法向导数,或 Neumann 数据)。对于像圆形这样的简单形状,这个算子在傅里叶域中有一个优美的解析形式,它只是将每个频率模式乘以一个与其频率成正比的因子。神经算子可以从数据中学习这个映射,实际上是自己发现了分析解,并能泛化到不同大小的域。

混合科学:两全其美

虽然取代整个模拟的想法很诱人,但一些最强大的应用来自于一种更细致的方法:混合建模。在这里,神经算子与传统方法协同工作,各展所长。

一个聪明的策略是域分解。想象一下模拟一种大部分平滑但包含一个尖锐激波的流体,就像在伯格斯方程中那样。神经算子非常擅长快速有效地模拟平滑、行为良好的区域。然而,激波及其尖锐的不连续性,则更适合由专为此类现象设计的精确、经典的数值求解器来处理。因此,我们可以划分域,让算子处理“简单”部分,经典求解器处理“困难”部分。关键是确保它们在交界面上正确通信,例如,通过最小化两个域之间物理通量的任何不匹配。

另一种极其强大的混合建模形式是使用算子来增强现有的物理模型。几十年来,工程师们一直依赖雷诺平均纳维-斯托克斯(RANS)方程来模拟湍流。这些模型速度快,但在许多情况下被认为是 inaccurates 的,因为它们依赖于关于湍流的简化假设。我们不必抛弃这些模型,而是可以训练一个神经算子来学习修正项——即 RANS 模型与真实物理之间的差异。该算子以流动的局部特征(如速度梯度张量的不变量)为输入,并输出一个修正场,当添加到 RANS 方程中时,可以产生对湍流应力的更准确预测。这种方法保留了原始求解器完善的结构,同时用数据驱动的组件修补了其缺陷,这是物理洞察力与机器学习的完美结合。

学习物理规律的本质

神经算子不仅可以学习方程的解;它们还可以学习基本的物理定律本身,其中一些定律比简单的输入-输出映射复杂得多。

考虑材料的行为。简单弹性材料中的应力仅取决于其当前的应变。但对于更复杂的材料,如聚合物或生物组织——一类称为粘弹性的材料——当前的应力取决于它所经历的整个变形历史。这种关系不是一个简单的函数,而是一个依赖历史的泛函。这天然地适合算子学习框架。我们可以训练一个神经算子来学习从应变历史函数 ε(s)\boldsymbol{\varepsilon}(s)ε(s)(其中 s∈[0,t]s \in [0,t]s∈[0,t])到当前时刻应力向量 σ(t)\boldsymbol{\sigma}(t)σ(t) 的映射。傅里叶神经算子和深度算子网络都已显示出捕捉真实材料这种“衰减记忆”特性的潜力,为固体力学中数据驱动的本构建模开辟了新途径。

在更基础的层面上,我们可以使用算子来学习我们最基础物理理论的核心组成部分。在宇宙学中,宇宙微波背景光子的演化由玻尔兹曼方程描述。这个方程包含一个复杂的碰撞项,用于解释光子和电子之间的汤姆逊散射。这个碰撞算子本身可以由神经算子学习。通过在高保真计算上进行训练,我们可以构建一个代理模型,它不仅速度快,而且可以明确地构建以服从底层物理的基本对称性和守恒定律,如光子数守恒和宇称不变性。在这里,我们不只是在加速一个模拟;我们正在创建一个基本物理部分的快速、受物理约束的复制品。

学习计算的算子

也许神经算子最深远的应用是当我们把它们转向内部,教它们不仅模仿物理,还模仿和加速我们用来研究物理的计算方法本身。许多最具挑战性的科学任务是逆问题,例如天气预报中的数据同化或为聚变反应堆寻找最优控制策略。这些通常被表述为大规模优化问题,需要运行正向模型及其伴随模型(其导数)数千或数百万次。

如果正向模型是一个昂贵的 PDE 求解器,这个过程将慢得令人望而却步。通过用训练好的神经算子替换正向模型,我们可以将整个优化循环加速几个数量级。这对诸如 4D-Var 数据同化等任务具有深远的影响,在这些任务中,我们寻求一个系统的最佳初始状态(例如,大气),以最好地解释一段时间内的一系列观测。它对于 PDE 约束的最优控制也具有变革性意义,因为找到引导系统达到期望状态的最佳方式在计算上变得可行。

我们可以将这个想法推得更远。与其学习解算子,我们是否可以学习求解器算法本身的关键部分? 许多用于求解刚性 PDE(如燃烧或相场建模中的 PDE)的隐式数值方法,依赖于在每个时间步使用牛顿法迭代求解一个非线性系统。这涉及通过求解一个大型线性系统来计算“牛顿修正项”。这一步可能是一个主要的瓶颈。在一个惊人的转折中,我们可以训练一个神经算子来直接学习从当前状态残差到所需牛顿修正项的映射,从而有效地创建一个学习到的、非精确的牛顿求解器,它比精确求解器快得多,同时保持稳定性。

类似地,许多大规模线性系统是迭代求解的,其收敛速度由系统的条件数决定。我们通过使用预处理器来改善这一点,预处理器是一种“按摩”系统以使其更易于求解的算子。理想的预处理器通常与问题的物理性质有关,但可能难以构造或应用。可以训练神经算子来学习这个理想的预处理器,例如,通过近似协方差算子的分数次幂,这可以极大地加速变分数据同化问题的求解。在这些例子中,算子不仅仅是一个科学家;它正在学习成为一名数值分析家。

概率前沿:量化未知

这段旅程的最后一步是拥抱不确定性。一个真正科学的预测不仅仅是一个单一的数字,而是一个伴随着其不确定性估计的答案。概率神经算子正是这样做的:它们不预测单个输出函数,而是预测输出函数空间上的一个完整概率分布,通常是一个由均值函数和协方差算子定义的高斯分布。

这种能力对于科学发现是革命性的。当我们在逆问题中使用这样的算子来估计一个未知的物理参数 θ\thetaθ 时,算子预测中的不确定性 (CθC_\thetaCθ​) 会对我们估计的最终不确定性产生影响。这被一个优美的数学对象——费雪信息 I(θ)\mathcal{I}(\theta)I(θ) 所捕捉。对于高斯似然,其公式包含两项:一项与均值预测如何随 θ\thetaθ 变化有关,另一项与*协方差*预测如何随 θ\thetaθ 变化有关:

I(θ)=(∂θμy(θ))⊤Sθ−1 (∂θμy(θ))+12 Tr ⁣(Sθ−1 (∂θSθ) Sθ−1 (∂θSθ))\mathcal{I}(\theta) = \Big(\partial_\theta \mu_y(\theta)\Big)^\top S_\theta^{-1}\,\Big(\partial_\theta \mu_y(\theta)\Big) + \tfrac{1}{2}\,\mathrm{Tr}\!\Big(S_\theta^{-1}\,(\partial_\theta S_\theta)\,S_\theta^{-1}\,(\partial_\theta S_\theta)\Big)I(θ)=(∂θ​μy​(θ))⊤Sθ−1​(∂θ​μy​(θ))+21​Tr(Sθ−1​(∂θ​Sθ​)Sθ−1​(∂θ​Sθ​))

费雪信息的逆提供了克拉默-拉奥下界,这是我们测量 θ\thetaθ 可能达到的最佳精度的基本限制。直观地说,我们的代理模型中更高的不确定性(更大或更多变的 CθC_\thetaCθ​)会导致更低的费雪信息,从而降低了我们约束物理参数的能力。通过学习预测自身的不确定性,这些算子使我们能够进行稳健的、具有不确定性意识的科学研究,从简单的预测转向真正的科学推断。

从加速模拟到增强现有模型,从学习历史依赖性到发现数值算法的构建模块,最后到拥抱知识的概率性质,神经算子正在重新定义计算科学的边界。它们是数学、物理和计算机科学之间非凡协同作用的证明——一种描述宇宙运行法则的新语言。