跳转至

这是一份针对PINN的讨论班的介绍,每个部分包括PPT的正文和讲解这段PPT的文案 总时长为3h左右,针对的内容为数学专业高年级本科生,对于深度神经网络大多有基础的了解程度。 PPT的正文要求简洁明了 更多的解释安排入文档

PINN讨论班

0 引入部分

PPT正文

PINN的现状:

AI4PDE的象征

PINN的优势:

  • 操作简单
  • 能求解高维问题
  • 能求解反问题

文案:

大家好,今天我们将介绍AI4PDE领域最富盛名的PINN方法,通俗来讲,他就是使用神经网络来作为基函数,在由方程和边界范数度量意义下接近真解。

在正式引入这种方法之前,我不得不提到,自从Rassi发明这种方法后,一方面,他被百般质疑,此事不仅是学术上,就连知乎都有不少的质疑声音;另一方面,针对PINN的改进方法更是如雨后春笋般出现,可谓是层出不穷的改造理论。

而今天,我既不会为他正名,也不会对其批驳。只是向大家展示我作为一个尚年轻的人,对于这个还年轻的方法的一些认识。

1 基础知识——PINN 能解吗?

PPT 正文

为什么要做误差分解?

传统数值方法(FDM/FEM/FVM) PINN
收敛性 已知能收敛 缺乏理论保证
收敛阶 清晰可分析 难以定量估计

误差分解框架:

\[\|u - u_\theta\| \leqslant \underbrace{\|u - u^*\|}_{\text{逼近误差}} + \underbrace{\|u^* - u_\theta^*\|}_{\text{优化误差}} + \underbrace{\|u_\theta^* - u_\theta\|}_{\text{样本误差}}\]

其中 \(u\) 为真解,\(u_\theta\) 为网络输出,\(u^*\) 为网络空间中的最优近似。

三个误差的来源:

误差类型 来源 对应 PINN 哪一步
逼近误差 神经网络空间不够大 网络结构设计
优化误差 梯度下降停在"差不多"的地方 优化算法
样本误差 离散的配置点不能完全代表连续方程 配置点选取

文案

作为一种求解方法,任凭你再怎么天花乱坠,它至少得能够求解。微分方程的求解理论,前人之述备矣。以 FDM、FVM、FEM 三大方法为例,不但知道能够收敛,而且收敛阶的分析也相当清晰。反观 PINN,虽然从实际效果来看是能够求解的,但仍然缺乏定量的理论分析。

我们今天不会进行全部的讲解,只选取三个核心部分来叙述。

第一个框架叫做误差分解。我们把真解 \(u\) 和网络输出 \(u_\theta\) 之间的误差,分成三个部分:逼近误差,是真解本身能不能被神经网络空间所逼近的问题;优化误差,是找到了最优逼近但梯度下降停在了半路的问题;样本误差,是损失函数在离散配置点上为零但连续方程并不精确满足的问题。接下来我们逐个来看。


1.1 样本误差:损失降到零之后就是真解了吗?

PPT 正文

稳定性估计(Stability Estimate):

对于椭圆型 PDE:\(Lu = f\)\(L\) 为椭圆算子),真解与网络输出的误差可以被 PDE 残差和边界残差所控制:

\[\|u - u_\theta\|_{L^2} \leqslant C\left(\|Lu_\theta - f\| + \|Bu_\theta - g\|\right)\]

损失函数与样本误差的关系:

当损失函数 \(L(\theta)\) 在配置点上为零时,有

\[L_N(u_\theta) = \frac{1}{N_r}\sum_{j=1}^{N_r}|Nu_\theta(x_j^r) - f(x_j^r)|^2 + \frac{1}{N_b}\sum_{i=1}^{N_b}|u_\theta(\xi_i^b) - g(\xi_i^b)|^2 = 0\]

这意味着在离散的 \(N_r + N_b\) 个点上方程被精确满足。

泛化误差:更多的配置点能弥补吗?

由大数定律和中心极限定理,当配置点数量趋于无穷时,样本误差的期望可以收敛到真实 \(L^2\) 误差——但收敛速度是 \(O(1/\sqrt{N})\) 的量级。

文案

首先我们要问一个问题:损失降到零之后,我们求出来的就是真解了吗?

准确来说,在数学的意义下,几乎不可能。损失为零只意味着在离散的 \(N_r + N_b\) 个配置点上,PDE 残差和边界残差恰好为零。这和一连串线性算子在连续区域上精确为零是两回事。

但这并不意味着 PINN 就不能用。稳定性估计告诉我们:对于椭圆型 PDE,误差可以被 PDE 残差和边界残差所控制。也就是说,只要这两个残差都很小,误差就小。

进一步,泛化误差分析表明,只要配置点足够多并且均匀分布,由大数定律保证,样本误差可以收敛到真实误差,但这个收敛速度只有 \(O(1/\sqrt{N})\)——换句话说,为了把误差减半,你需要把配置点数量翻四倍,这是一个不小的代价。


1.2 逼近误差:神经网络空间够"大"吗?

PPT 正文

引理 2-1:万能逼近定理(Universal Approximation Theorem)

任意一个 \(C^k\) 连续函数都可以被一个单隐层神经网络以任意精度逼近。

引理 2-2:Sobolev 空间中的逼近

Sobolev 空间 \(H^s(\Omega)\) 上的任意函数可以被 \(C^k\) 连续函数任意程度地逼近(Sobolev 嵌入定理)。

综合结论:

\[\text{高可微函数} \xrightarrow{\text{存在网络逼近}} C^k \xrightarrow{\text{Sobolev}} H^s \xrightarrow{\text{误差分解}} \text{收敛}\]

定义 2-3:Barron 空间(刻画神经网络易逼近的函数)

若函数 \(u: \mathbb{R}^d \to \mathbb{R}\) 满足

\[\int_{\mathbb{R}^d} |\omega|^{s} |\hat{u}(\omega)| \, d\omega < \infty\]

\(u \in \mathcal{B^s}_d\)(Barron 空间),其中 \(\hat{u}\)\(u\) 的傅里叶变换。

Barron 空间的重要性质(收敛速率):

在谱 Barron 空间中,两层神经网络可以达到 与维度无关 的最优逼近速率。 设:

  • 目标函数 $\(f \in \mathcal{F}^{1/2}(\mathbb{R}^d)\)$(即 $\(s=1/2\)$)

  • 网络宽度 $\(N\)$(神经元个数)

  • 激活函数为常用的 ReLU / 平滑激活

则 $\(L^2\)$ / $\(L^p\)$ 逼近误差 满足:

\[\inf_{\text{两层网络} \, f_N} \|f-f_N\|_{L^p} \;\lesssim\; \frac{\|f\|_{\mathcal{F}^{1/2}}}{\sqrt{N}} \;=\; \boldsymbol{O(N^{-1/2})}\]

就在最近,深度神经网络和一般的s的情况也被证明了,收敛速度为$\(O(N^{-sL})\)$,其中 \(s\) 是函数的光滑度,\(L\) 是神经网络隐藏层深度,N为单隐藏层深度。

Barron Space与Sobolev Space的嵌入关系: s< k-d/2时,$\(\mathcal{B}^s_d \subset H^k(\Omega)\)$ s> 2k时,$\(H^k(\Omega) \subset \mathcal{B}^s_d\)$ 对于一个2d椭圆方程,可以选取s=1/2,弱解处于Barron空间,则其在Sobolev空间。可以使用

文案

逼近误差问的是:神经网络够大吗?换句话说,神经网络空间里到底能不能包含我们的真解?

经典的万能逼近定理告诉我们,任何连续函数都可以被单隐层神经网络以任意精度逼近。结合 Sobolev 嵌入定理,对于高可微的 PDE 解,理论上存在一个网络可以无限接近真解。

但这还不够——我们想知道逼近的速度,即需要多少个神经元才能达到给定的精度。

Barron 空间给出了回答。Barron 空间的定义涉及傅里叶变换的加权可积性,听起来有点抽象,但它的意义很清晰:它刻画的就是神经网络容易高效逼近的那类函数。

Barron 空间固定下来后,其收敛速率只与神经网络的宽度有关。如果 PDE 的解恰好属于 Barron 空间,那么宽度为 \(N\) 的网络就能以 \(O(1/\sqrt{N})\) 的速率逼近它。

这与统计学习中经典的速率是一致的——某种意义上,PINN 求解 PDE 和用神经网络做回归是同一个问题的两个侧面。


1.3 优化误差:到什么时候是"差不多了"?

PPT 正文

三、优化部分

3.1 自动微分(Autograd)在 PINN 中的作用

PINN 的核心是计算 PDE 残差:

\[Nu_\theta(x) = Lu_\theta(x) - f(x)\]

这需要求一阶导数 \(\nabla u_\theta\)、二阶导数 \(\Delta u_\theta\) 和更高阶导数。

自动微分做了什么?

通过链式法则在计算图上的精确传播,自动微分计算:

\[\frac{\partial u_\theta(x)}{\partial x} = \sigma'(\cdot)W_2 \cdot \sigma'(\cdot)W_1\]

👉 这是解析形式的计算,但以数值方式执行。

3.2 它是数值微分还是符号微分?

结论:

自动微分 = 解析链式法则的数值执行

不是: - ❌ 有限差分(不是数值微分)—— 存在截断误差 - ❌ 完整符号表达式(不是 CAS)—— 无法处理复杂网络结构

而是: - ✔ 在计算图上逐层应用链式法则 - ✔ 得到机器精度下的"精确导数"

举例:

网络:\(u_\theta(x) = \sigma(W_2 \sigma(W_1 x))\)

链式法则:

\[\frac{du_\theta}{dx} = \sigma'(W_1 x) \cdot W_2^T \cdot W_1\]

👉 自动微分忠实执行了上式的数值计算。

3.3 在 PINN 中的重要性

  • ✔ 可以稳定计算高阶导数(有限差分在高阶导数上误差爆炸)
  • ✔ 避免有限差分误差
  • ✔ 支持复杂 PDE(如 Navier–Stokes)

3.4 ADAM 更新公式

梯度的一阶矩估计: $\(m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t\)$

梯度的二阶矩估计: $\(v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2\)$

参数更新: $\(\theta_{t+1} = \theta_t - \eta \frac{m_t}{\sqrt{v_t} + \epsilon}\)$

4.2 在 PINN 中的特点

PINN loss:

\[L = \lambda_r L_{\text{PDE}} + \lambda_b L_{\text{BC}} + \lambda_i L_{\text{IC}}\]

👉 多尺度、多项损失

常见问题:

  1. 梯度不平衡(Stiffness): PDE residual vs boundary loss 尺度差异大
  2. 梯度消失/爆炸: 高阶导数导致
  3. Loss landscape 复杂: 非凸 + 强耦合

4.3 ADAM 的优点

  • ✔ 自适应学习率(自动调整每个参数的学习率)
  • ✔ 对噪声鲁棒(适合随机配置点采样)
  • ✔ 前期收敛快

4.4 但在 PINN 中的局限

❗ 常见现象:ADAM 收敛到"假解"——PDE 满足但边界不准,或反之。

4.5 常见改进策略

  • Adam + L-BFGS: Adam 快速下降 → L-BFGS 精细收敛
  • Loss reweighting: \(\lambda_r, \lambda_b, \lambda_i\) 动态调整
  • Gradient normalization: 解决不同项尺度不一致
  • Curriculum learning: 逐步增加 PDE 难度

文案

最后是优化误差。误差分解的最后一项问的是:就算网络理论上能逼近真解,梯度下降真的能找到它吗?

这就要从 PINN 的核心技术——自动微分说起。PINN 需要计算 PDE 残差 \(Nu_\theta(x) = Lu_\theta(x) - f(x)\),这涉及对神经网络 \(u_\theta\) 求一阶甚至高阶导数。

这里要澄清一个常见的误解:自动微分既不是数值微分(有限差分),也不是符号微分(Mathematica 那样的完整符号计算)。它是在计算图上逐层应用链式法则,最终在机器精度下得到精确的导数值。这正是 PINN 能够稳定处理高阶导数的关键原因。

说到优化器,PINN 的损失函数是一个多目标的形式,包含 PDE 残差项、边界条件项和初值条件项。这些项的梯度尺度往往差异巨大——这就是所谓的梯度不平衡(stiffness)问题。结果就是,ADAM 常常收敛到一个"假解",即 PDE 残差几乎为零但边界条件偏差很大的解。

常用的改进策略包括先用 ADAM 快速下降,再用 L-BFGS 做精细收敛;或者对不同损失项做动态加权;以及 curriculum learning,先从简单问题开始逐步增加难度。这些都是工程上绕过优化困难的有效手段。


2 网络构造——PINN 的正式框架

PPT 正文

2.1 PINN 的核心思想

将 PDE "嵌入"损失函数,通过无监督学习求解。

对于一般 PDE:

\[Lu(x) = f(x), \quad x \in \Omega; \quad Bu(x) = g(x), \quad x \in \partial\Omega\]

构造残差:

\[r(x, \theta) := Lu_\theta(x) - f(x)\]

损失函数:

\[L(\theta) = L_b(\theta) + L_r(\theta)\]

其中

\[L_b(\theta) = \frac{1}{2N_b}\sum_{i=1}^{N_b}|u_\theta(x_i^b) - g(x_i^b)|^2, \quad L_r(\theta) = \frac{1}{2N_r}\sum_{i=1}^{N_r}|r(x_i^r, \theta)|^2\]

文案

在介绍了神经网络求解偏微分方程的可行性之后,我们正式介绍 PINN 的内容。

通俗来讲,PINN 就是将偏微分方程"嵌入"网络损失函数,通过无监督学习来求解。相比于过去把神经网络当黑箱使用,在 PINN 方法中,我们对神经网络函数 \(u_\theta\) 关于时间和空间进行自动微分,然后将 PDE 残差作为损失函数的一项。

这是一种无监督学习——我们不需要标签数据,只需要方程本身和边界条件。方程的离散和配置点的选取被巧妙地打包进了损失函数之中。


2.2 神经网络架构

PPT 正文

输入层 → 隐藏层₁ → 隐藏层₂ → ... → 隐藏层ₙ → 输出层
  x       tanh(W¹x+b¹)  tanh(W²x+b²)   tanh(Wⁿx+bⁿ)   u(x,θ)

常见配置:

  • 网络类型:全连接网络(Fully Connected)
  • 激活函数:tanh、sin、sigmoid、ReLU 等
  • 网络宽度:通常 32–256
  • 网络深度:通常 2–8 层

激活函数的选择:

  • tanh:最常用,梯度平滑
  • sin:对于周期解或振荡解效果显著(傅里叶特性天然契合)
  • ReLU:计算快,但可能导致梯度消失

文案

PINN 通常采用全连接网络架构。输入是多维的时空坐标 \((x,t)\),输出是标量 \(u\) 或复数的实部/虚部。

值得注意的是,对于具有周期性的解,比如我们刚才看到的薛定谔方程,用 sin 函数作为激活函数往往效果更好——这在某种意义上是因为正弦函数天然就是傅里叶基的组成部分,和周期解的频谱结构高度契合。


2.3 连续时间算例:一维薛定谔方程

PPT 正文

方程:

\[ih_t + 0.5h_{xx} + |h|^2h = 0, \quad x \in [-5, 5], \quad t \in [0, \pi/2]\]

初边值条件:

\[h(0, x) = 2\,\text{sech}(x), \quad h(t, -5) = h(t, 5), \quad h_x(t, -5) = h_x(t, 5)\]

(周期性边界条件,\(h(t,x)\) 为复值函数)

构造 PDE 残差:

\[f(t,x) := ih_t + 0.5h_{xx} + |h|^2h\]

损失函数:

\[L = L_0 + L_b + L_f\]
  • \(L_0\):初值损失(\(L^2\) 误差)
  • \(L_b\):周期边界损失(函数值 + 导数值)
  • \(L_f\):PDE 残差损失

实现细节:

  • 神经网络输出为复数(双输出:实部 + 虚部,或用复数激活函数)
  • 配置点 \((t_i, x_i)\) 在时空区域 \([0, \pi/2] \times [-5,5]\) 上随机采样

文案

我们以一维薛定谔方程作为连续时间 PINN 的经典算例。

这个方程的特点是:解 \(h(t,x)\) 是复值的,而且具有周期性边界条件。因此神经网络需要同时输出实部和虚部,并在损失函数中同时包含初值损失、周期边界损失和 PDE 残差损失三项。

时间在这个框架中只是作为额外的输入维度,神经网络同时学习空间和时间的依赖关系。这也是连续时间 PINN 的优势——不需要对时间做离散化,可以直接处理任意时空区域。


2.4 离散时间的 PINN

PPT 正文

RK方法格式: $$ u^{n+c_i} = u^n - \Delta t \sum_{j=1}^q a_{ij} \mathcal{N}[u^{n+c_j}] \quad (i=1,2,...,q) \ u^{n+1} = u^n - \Delta t \sum_{j=1}^q b_j \mathcal{N}[u^{n+c_j}]\ $$

核心思想:

将时间区间 \([0,T]\) 显式离散化为 \(N\) 个时间步:

\[u^{n+1}(x) = u^n(x) + \Delta t \cdot \mathcal{N}[u^n](x)\]

每个时间步使用独立的神经网络 \(u^n(x, \theta^n)\)

训练策略:

  • 逐层训练:先训练 \(u^0\),再依次训练 \(u^1, u^2, \ldots\)
  • 或者**联合训练**:所有时间步网络一起训练,通过初始条件连接

连续 vs 离散时间 PINN 对比:

连续时间 PINN 离散时间 PINN
时间处理 作为额外输入维度 显式时间步离散
网络结构 单个网络 每步独立网络
优点 灵活,无需时间步假设 每步问题更简单
缺点 长期时序问题训练困难 总计算量较大

文案

离散时间的 PINN 不同于连续时间的方法,实际上是一个监督学习的网络格式。首先从已有的初值和Runge-Kutta方法出发,得到每个离散时间间隔的预估函数。并且代入具体的点来构造“数据”。接下来,输入空间点坐标输出多个时间点对应的函数值,并通过损失函数来进行估计。这实际上类似于插值离散。


2.5 离散求解的算例——Allen-Chan方程

PPT正文

PDE形式:$\(u_t - 0.0001u_{xx} + 5u^3 -5u = 0\)$(非线性反应扩散方程)

  • 输入:空间坐标$\(x\)$(1维);
  • 隐藏层:4层,200个神经元/层,tanh激活函数;

  • 输出:101个量(100个中间阶段$\(u^{0.1+c_j}(x)\)$ + 1个最终预测$\(u^{0.9}(x)\)$)。

  • 构造100个中间约束:$\(u_i^{0.1} = u^{0.1}\)\((i=1,...,100),其中\)\(u_i^{0.1} = u^{0.1+c_i} + 0.8\sum_{j=1}^{100} a_{ij}\mathcal{N}[u^{0.1+c_j}]\)$;

  • 损失函数:$\(SE = \sum_{j=1}^{100} \sum_{i=1}^{200} |u_j^{0.1}(x^{0.1,i}) - u^{0.1,i}|^2\)$;

  • 优化器:L-BFGS,迭代40,000次。

文案

我们以Allen-Chan方程为例,作为一种非线性的扩散方程,其解的结果实际上是奇异性质的。但使用神经网络来作为一个逼近求解器,借助其非线性逼近的性质,就能取得良好的效果。

我们这里选取100个时间间隔,并通过R-K方法得到对应的函数,代入预期的200个离散点,就可以得到一系列的训练样本。接下来,使用神经网络单输入,100输出,这分别代表着100个间隔时间和最终时间的函数。接着,使用L2来作为损失函数

2.6反问题求解的 PINN

PPT 正文

正向问题 vs 反问题:

正向问题 反问题
已知 方程 + 边界/初值条件 方程 + 部分观测数据
求解 \(u(x)\) 未知的物理参数或源项
学习参数 \(\theta\)(网络权重) \(\theta\) + 物理参数

损失函数:

\[L(\theta) = L_{\text{PDE}}(\theta) + L_{\text{BC}}(\theta) + L_{\text{data}}(\theta)\]

其中 \(L_{\text{data}} = \frac{1}{N_d}\sum_{i=1}^{N_d}|u(x_i, \theta) - u_{\text{obs}}(x_i)|^2\)

可学习的物理参数:

  • 扩散系数 \(c(x)\)(参数化为小网络)
  • 源项 \(f(x)\)
  • 边界条件系数
  • 初始条件

文案

PINN 的一大优势在于能够同时求解正问题和反问题。

在反问题中,我们不仅要求网络拟合方程和边界条件,还要拟合观测到的数据。通过将观测数据作为额外的损失项,PINN 可以同时反推未知的物理参数。

例如,在反演扩散系数问题时,扩散系数本身也可以参数化为一个小神经网络,从而实现空间依赖系数的学习——这在传统的数值方法中通常是非常困难的问题。

反问题求解的具体算例——2dN-S方程

PPT正文

方程形式: $$ u_t +\lambda_1(u u_x + v u_y) = -\frac{1}{\rho} p_x + \lambda_2 (u_{xx} + u_{yy}), \ v_t + \lambda_1(u v_x + v v_y) = -\frac{1}{\rho} p_y + \lambda_2 (v_{xx} + v_{yy}),\ u_x+v_y=0(流体的不可压缩性约束) $$

  • 输入:时空坐标$\((t,x,y)\)$(需同时考虑时间演化和空间分布);
  • 输出:物理量——决定扩散和黏性的两个系数\(\lambda_1,\lambda_2\)流函数$\(\psi\)\(、压力\)\(p\)$;

  • 速度分量的计算:通过“自动微分”从流函数$\(\psi\)\(推导得到(\)\(u = \psi_y\)\(、\)\(v = -\psi_x\)$),无需直接逼近速度;

  • 残差的计算:通过自动微分计算速度、压力的各阶导数(如$\(u_t\)\(、\)\(u_x\)\(、\)\(p_x\)\(等),代入\)\(f\)\(和\)\(g\)$的表达式,得到物理约束残差。

损失函数: $$ MSE := \frac{1}{N}\sum_{i=1}^N \left( |u(t^i,x^i,y^i) - u^i|^2 + |v(t^i,x^i,y^i) - v^i|^2 \right) + \frac{1}{N}\sum_{i=1}^N \left( |f(t^i,x^i,y^i)|^2 + |g(t^i,x^i,y^i)|^2 \right)\ f := u_t + \lambda_1(uu_x + vu_y) + p_x - \lambda_2(u_{xx} + u_{yy}), \ g := v_t + \lambda_1(uv_x + vv_y) + p_y - \lambda_2(v_{xx} + v_{yy}), \ $$

训练数据:9 层 ×20 神经元 N=5,000(1% 总数据)

求解目标: $$ \lambda_1,\lambda_2,p(t,x,y) $$ 文案: 首先明确目标,对于这个反问题,我们是已知一系列的已知点的速度信息,所要求解的是扩散系数和黏度系数这两个分量和未知的压强函数,这将作为训练数据。

其次,我们根据NS方程的流函数硬编码,使得解必然是满足守恒律的约束条件。接下来,我们根据训练数据和方程嵌入来构造得到损失函数。并且同步优化这些系数。


三、PINN-NTK:如何科学调参

引入文案: 由于PINN实在太过简单,以至于我们很快就能训练出一个结果来。然而,正如绝大多数训练过PINN方法的人都知道,这玩意儿训练过程中出现了不知多少问题。对于PINN进行更详细的理论分析是有必要的。而有一篇文章揭示了why and when PINN fails:通过使用NTK神经正切核的方法来

3.1 什么是NTK:无限宽神经网络与高斯过程

PPT内容: 无限宽极限(宽度 → ∞)下:

初始化时:神经网络 ≈ 高斯过程(GP) $$ f(x, \theta) \sim \mathcal{N}\,(0, \Sigma(x, x')) $$

训练时:神经网络 ≈ 核回归 $$ f_{NTK}(x) = K_{x, training} \cdot K_{training, training}^{-1} \cdot y $$

核心结论:NTK在训练过程中保持常数

文案: Jacot等人证明了一个深刻的结论:当神经网络的宽度趋向无穷大时,神经网络的行为可以用高斯过程来描述。神经网络的训练可以近似为一个核回归问题,而这个核(NTK)在训练过程中保持不变。

3.2 为什么要用NTK视角分析PINN?

PPT内容: 问题: - PINN训练为什么有时候会失败? - 为什么会出现梯度不平衡? - 如何科学地选择超参数?

NTK视角的优势: - 将无限宽神经网络的训练过程等价于核回归 - 可以分析收敛速度和谱特性 - 为调参提供理论指导

文案: NTK 理论为解答 PINN 训练的三大核心问题提供了严谨的理论分析框架,其以神经网络隐藏层宽度趋于无限为核心假设,将复杂的 PINN 训练转化为可解析的核回归问题,让收敛速率、谱特性等关键训练规律变得定量且明确。从 NTK 视角出发,我们能精准剖析 PINN 训练失败的根源、梯度不平衡的本质,并为超参数选择提供科学的理论依据,而非经验性试错。

3.3 谱偏差:为什么PINN学得慢?

PPT内容: NTK的特征值分布: $$ K = Q^T \Lambda Q, \quad \Lambda = \text{diag}(\lambda_1, \lambda_2, \ldots, \lambda_N) $$

训练误差衰减: $$ | \text{error}(t) | \approx | e^{-Kt} | $$

谱偏差现象: - 大特征值 → 快速收敛(低频成分) - 小特征值 → 缓慢收敛(高频成分) - 特征值快速衰减 → 高频成分难以学习

PPT图示(文字描述):

特征值衰减曲线:
λ ████████████░░░░░░░░░░░
  ▏低频 ←→ 高频

文案: NTK的特征值分解揭示了PINN训练困难的根本原因——谱偏差。较大的特征值对应的模式会快速收敛,而较小的特征值(通常对应高频成分)收敛极慢。这解释了为什么含有高频特征的解往往难以用PINN准确学习。

3.4 损失函数失衡:为什么收敛速度很慢

PPT内容: PINN的损失函数包含多个项: $$ \mathcal{L} = \lambda_b \mathcal{L}_b + \lambda_r \mathcal{L}_r $$

问题: - \(\mathcal{L}_b\)\(\mathcal{L}_r\) 的收敛速度可能相差数十个数量级 - 导致某些项已收敛而另一些项仍很大 - 传统的固定权重无法解决

PPT图示:

训练过程:
损失值
  │    _______ 边界损失(快)
  │   /
  │  /
  │ /
  │/__________________ → 迭代次数
  │    ~~~~~~~ PDE损失(慢)

文案: 除了谱偏差外,PINN的另一个核心问题是不同损失项之间的不平衡。边界条件和PDE残差的收敛速度可能差异巨大,导致训练过程中需要不断调整权重。

3.5 具体操作:计算PINNs的NTK

PPT内容: 考虑一般PDE问题: $$ \mathcal{L}\,u(x) = f(x), \quad x \in \Omega $$ $$ u(x) = g(x), \quad x \in \partial\Omega $$

定义PINN的损失函数: $$ \mathcal{L}\,(\theta) = \mathcal{L}_b(\theta) + \mathcal{L}_r(\theta) $$

其中边界损失:

$$

\mathcal{L}b(\theta) = \frac{1}{2N_b}\sum|u(x_i^b, \theta) - g(x_i^b)|^2 }^{N_b

$$

PDE残差损失: $$ \mathcal{L}r(\theta) = \frac{1}{2N_r}\sum\,u(x_i^r, \theta) - f(x_i^r)|^2 $$}^{N_r}|\mathcal{L

NTK矩阵定义: $$ K(t) = \begin{pmatrix} K_{uu}(t) & K_{ur}(t) \ K_{ru}(t) & K_{rr}(t) \end{pmatrix} $$

其中: $$ (K_{uu}){ij} = \frac{\partial u(x_i^b, \theta)}{\partial \theta} \cdot \frac{\partial u(x_j^b, \theta)}{\partial \theta} $$ $$ (K{rr})_{ij} = \frac{\partial \mathcal{L}\,u(x_i^r, \theta)}{\partial \theta} \cdot \frac{\partial \mathcal{L}\,u(x_j^r, \theta)}{\partial \theta} $$

文案: 我们将NTK的概念推广到PINN。关键的区别在于,PINN的输出不仅包括网络本身的值,还包括PDE残差。因此,PINN的NTK是一个分块矩阵,分别描述边界损失和PDE残差的梯度相关性。

3.7 自适应训练算法

PPT内容: 算法:动态权重调整

\(k\) 步更新权重: $$ \lambda_b^{(k+1)} = \lambda_b^{(k)} \cdot \frac{\text{tr}(K_{rr})}{\text{tr}(K_{uu})} $$ $$ \lambda_r^{(k+1)} = \lambda_r^{(k)} \cdot \frac{\text{tr}(K_{uu})}{\text{tr}(K_{rr})} $$

或者使用梯度归一化: $$ \tilde{g}b = \frac{g_b}{|g_b|}, \quad \tilde{g}_r = \frac{g_r}{|g_r|} $$ $$ \mathcal{L}_r $$} = \mathcal{L}_b + \mathcal{L

文案: 基于NTK分析,作者提出了一种自适应训练算法。核心思想是根据NTK特征值的trace来动态调整不同损失项的权重,使得不同组件的收敛速度达到平衡。

3.8 数值实验

PPT内容: 实验1:一维Poisson方程 $$ u_{xx} = f(x), \quad x \in [-1, 1] $$ $$ u(-1) = u(1) = 0 $$

真解:\(u(x) = \sin(\pi x)\)

结果对比: | 方法 | 相对L2误差 | |------|-----------| | 标准PINN | 1.2e-2 | | + 动态权重 | 3.1e-4 |

实验2:多尺度问题 高频解 \(u(x) = \sin(10\pi x)\)

方法 相对L2误差
标准PINN 8.5e-1
+ 动态权重 2.3e-2

文案: 数值实验验证了NTK理论的分析和自适应算法的有效性。在高频和多尺度问题上,动态权重调整显著提升了PINN的性能。

3.9 小结

PPT内容: 1. 无限宽PINN的NTK是一个确定性核,且训练中保持常数 2. PINN存在谱偏差:高频成分收敛慢 3. 不同损失项的收敛速度可能相差巨大 4. 基于NTK的自适应算法可以有效改善训练

总结

PPT内容: 谢谢大家!欢迎提问!关注知乎浅草真纪