PDE与机器学习(一):物理信息神经网络

从有限差分到 PINN:自动微分、PDE 残差损失、Neural Tangent Kernel 视角的训练病理、Burgers 反问题、与 FEM/神经算子的对比,配 7 张实验图。

本系列第一章 · 阅读用时约 35 分钟。 这一章是整个系列的"地基"——后面七章谈到的神经算子、变分原理、Score Matching,本质上都在重复同一个问题:怎样让神经网络的优化目标编码进物理或数学约束? 把 PINN 啃透,后面就只剩"换一个约束"。


1 引子:从一根金属棒说起

想预测一根金属棒上的温度 $u(x,t)$,过去半个世纪有两个标准答案:

  1. 有限差分(FDM):把 $[0,L]$ 切成 $N$ 段,把 $[0,T]$ 切成 $M$ 段,二阶导用三点差分代替,得到一个递推方程。
  2. 有限元(FEM):把区域三角剖分,在每个三角形里用线性多项式近似,再要求弱形式残差与一组测试函数正交。

两条路都成熟得不能再成熟,但都有同一个痛处——先得到一张网格。一维棒还好,机翼形状就够烦,十维相空间则直接死于"维度灾难":网格点数 $\propto h^{-d}$,$d=10$、$h=0.1$ 已经是 $10^{10}$ 个点。

2019 年 Raissi、Perdikaris 与 Karniadakis 在 Journal of Computational Physics 给出第三条路 1

不要网格。让一个神经网络 $u_\theta(x,t)$ 直接逼近解,再把"满足 PDE"写成损失函数。

这个想法的雏形可以追溯到 1990 年代的 Lagaris 2,更早还能追到 Ritz(1908)的变分法——把"解 PDE"重塑为"在某个函数空间里最小化一个泛函"。Ritz 选择的函数空间是分片多项式,PINN 选择的是神经网络;而 PINN 真正的杀手锏是自动微分:高阶导用一行 torch.autograd.grad 算出来,且是机器精度,不是有限差分的截断精度。

PINN 架构:MLP + 自动微分 + 物理信息损失。
图 1:PINN 架构。输入 $(x,t)$ 进入一个普通 MLP 输出 $\hat u$,自动微分提取 $\partial_t\hat u$、$\partial_x^2\hat u$,组装成 PDE 残差;与边界、初始/数据残差合在一起就是训练目标 $\mathcal L=\lambda_r\mathcal L_r+\lambda_b\mathcal L_b+\lambda_i\mathcal L_i$。

本章按以下顺序展开:先把传统数值方法的痛点定量化(§2),随后给出 PINN 的最小完备定义和它与 Ritz–Galerkin 的等价性(§3);§4 是核心——用 NTK 视角解释 PINN 为什么经常训不动,并给出三种主流补救方案;§5 跑一个完整 Burgers 实验,并演示反问题;§6 列举失败模式与边界;§7 把 PINN 放到更大的 SciML 地图上和 FEM、神经算子并排比较。


2 经典数值方法:你以为成熟,其实有边界

2.1 有限差分 —— 直觉与稳定性的代价

考虑一维热方程

$$ u_t = \nu\, u_{xx},\qquad x\in(0,1),\ t>0, $$

边界 $u(0,t)=u(1,t)=0$,初始 $u(x,0)=\sin(\pi x)$。空间步长 $h$,时间步长 $\tau$,前向 Euler 离散:

$$ \frac{u_i^{n+1}-u_i^n}{\tau}=\nu\frac{u_{i-1}^n-2u_i^n+u_{i+1}^n}{h^2}. $$

Von Neumann 稳定性给出充要条件 $\tau\le h^2/(2\nu)$——时间步长必须正比于 $h^2$。要把空间精度提高 10 倍,时间步要细 100 倍,总计算量爆涨 1000 倍。Crank–Nicolson 隐式格式无条件稳定,但每步要解三对角线性方程组;高维就是稀疏直接法或多重网格的天下。

关键结论:FDM 的精度受 $O(\tau+h^2)$ 控制,全局误差由 Lax 等价定理保证。它在结构化网格上无敌,但完全不能处理复杂几何

2.2 有限元 —— 弱形式与 Ritz 变分

Poisson 方程 $-\Delta u = f$ 的弱形式:找 $u\in H_0^1(\Omega)$ 使得

$$ \underbrace{\int_\Omega \nabla u\cdot\nabla v\,\mathrm dx}_{a(u,v)} =\underbrace{\int_\Omega f v\,\mathrm dx}_{\ell(v)},\qquad \forall v\in H_0^1(\Omega). $$

等价于最小化 Dirichlet 能量 $J(u)=\tfrac12 a(u,u)-\ell(u)$。在分片线性子空间 $V_h\subset H_0^1$ 中找 $u_h=\sum c_j\phi_j$,$c$ 满足 $Kc=f$,$K_{ij}=a(\phi_i,\phi_j)$ 是稀疏正定刚度阵。

Céa 引理给出最优误差:$\|u-u_h\|_{H^1}\le C h^k\|u\|_{H^{k+1}}$。FEM 的强项是收敛性证明、误差控制、自适应网格细化都是教科书内容。短板仍然是网格——尤其是动边界、多孔介质、高维参数空间。

2.3 PINN 想要破的是什么

把 §2.1、§2.2 串起来看,传统数值方法共同的代价是:

维度FDMFEM
网格必须,结构化必须,可非结构化
高阶导数离散星型,截断误差 $O(h^p)$弱化为一阶 + 测试函数
高维灾难灾难
复杂几何困难中等(生网格成本高)
反问题(参数辨识)需另写优化外环同上
一旦换边界 / 几何 / 参数全部重算全部重算

PINN 想一次解决最后三个痛点:无网格、高维友好、把反问题与正问题统一为一次优化。代价是没有传统的收敛保证,要靠新的训练技巧去保证它真的收敛。


3 PINN 的最小完备定义

3.1 数学陈述

考虑一般 PDE

$$ \mathcal N[u](x,t) = 0,\quad (x,t)\in\Omega\times(0,T],\qquad \mathcal B[u]=g\ \text{on}\ \partial\Omega,\qquad u(x,0)=u_0(x). $$

用一个参数化网络 $u_\theta:\mathbb R^{d+1}\to\mathbb R$(通常是 tanh-MLP)逼近 $u$,定义复合损失

$$ \boxed{\; \mathcal L(\theta) = \lambda_r\underbrace{\frac1{N_r}\sum_{i=1}^{N_r}|\mathcal N[u_\theta](x_i^r,t_i^r)|^2}_{\mathcal L_r:\,\text{PDE 残差}} +\lambda_b\underbrace{\frac1{N_b}\sum|\mathcal B[u_\theta]-g|^2}_{\mathcal L_b} +\lambda_i\underbrace{\frac1{N_i}\sum|u_\theta-u_0|^2}_{\mathcal L_i} +\lambda_d\underbrace{\frac1{N_d}\sum|u_\theta-u^{\mathrm{obs}}|^2}_{\mathcal L_d}\;} $$

最后一项 $\mathcal L_d$ 在正问题里没有,反问题里则是核心。整个训练就是 $\theta^\star=\arg\min_\theta \mathcal L(\theta)$,用 Adam 或 L-BFGS。

三种损失项 + 加权策略对比。
图 2:左图——朴素等权重,PDE 残差迅速下降而边界损失被"晾在空中",整个解就是空气动力学家口中的"physics-respecting noise";右图——按 NTK 自适应平衡权重后,三条曲线同步下降,是健康收敛的标志。

3.2 为什么自动微分是关键

朴素的"数值微分"靠

$$ \partial_x u \approx \frac{u(x+\varepsilon)-u(x-\varepsilon)}{2\varepsilon} $$

这有两个致命伤:一是 $\varepsilon$ 太小会被浮点截断吃掉,二是高阶导要复合差分,误差爆炸。自动微分(reverse-mode autodiff)则是符号-精确的:每个基本运算的导数已知,链式法则自动累乘,结果与解析导数等同,机器精度

1
2
3
4
5
6
7
8
# 一维热方程残差:u_t - nu u_xx
def heat_residual(model, x, t, nu=0.1):
    x.requires_grad_(True); t.requires_grad_(True)
    u = model(torch.cat([x, t], dim=1))                # forward
    u_t  = torch.autograd.grad(u, t, torch.ones_like(u), create_graph=True)[0]
    u_x  = torch.autograd.grad(u, x, torch.ones_like(u), create_graph=True)[0]
    u_xx = torch.autograd.grad(u_x, x, torch.ones_like(u_x), create_graph=True)[0]
    return u_t - nu * u_xx                             # 残差,期望 -> 0

create_graph=True 让导数本身仍参与计算图,这样 loss = (residual**2).mean() 反传时能拿到 $\nabla_\theta$。

3.3 与 Ritz 方法的同构

把 PINN 训练写在更抽象的层面:

  • Ritz:在子空间 $V_h=\mathrm{span}\{\phi_1,\dots,\phi_n\}$ 中最小化 $J(u)=\tfrac12 a(u,u)-\ell(u)$。
  • PINN:在子空间 $V_\theta=\{u_\theta:\theta\in\mathbb R^p\}$ 中最小化 $\mathcal L(\theta)$。

差别只有两条:

  1. 基函数集合——分片多项式 vs 神经网络。后者非线性、连续可微、且具有"频谱可调"的特性。
  2. 检验机制——Galerkin 用积分形式做内积;PINN 用配点法(collocation)+ Monte-Carlo 近似积分。

由此可见 PINN 不是横空出世,而是 “把 Ritz 的有限维子空间从分片多项式换成神经网络”。Deep Ritz 3 把这点显式化,直接最小化能量泛函而非残差平方,对椭圆型问题更稳定。

3.4 收敛性:有,但是弱

Shin–Darbon–Karniadakis (2020) 给出对线性二阶椭圆方程的渐近收敛 4:当残差点数 $N_r\to\infty$、网络宽度 $\to\infty$、且 $\mathcal L\to 0$ 时,$u_\theta\to u^\star$ 在 $L^2$ 意义下成立。但收敛速率没有像 FEM 的 $O(h^k)$ 那样定量——这是 PINN 与传统方法之间最现实的鸿沟。后续工作多是在特定假设下给出 Sobolev 范数的误差界,离工程级"先验收敛阶"还远。


4 训练病理:PINN 真正难的地方

跑过 PINN 的人都遇到过:损失从 1 降到 0.01 后再也不动,或者边界条件根本满足不了。下面把三大病因讲清,配上对应的工程修补。

4.1 病因 A:损失项不平衡(梯度病理)

Wang & Perdikaris (2021) 5 用反向传播的梯度统计揭示了一个普遍现象:$\nabla_\theta\mathcal L_r$ 比 $\nabla_\theta\mathcal L_b$ 大几个数量级。直接 Adam 只会沿大梯度走,边界条件被淹没,于是网络"在内部很好地满足 PDE,但完全不知道边界长什么样"。

梯度病理与谱偏差两大失败模式。
图 6 左:每层的 $\|\nabla_\theta\mathcal L_r\|$ 与 $\|\nabla_\theta\mathcal L_b\|$ 在对数尺度下相差 3–4 个数量级——朴素 PINN 训练里的典型分布。图 6 右:同一个网络对多尺度信号 $u=\sin(\pi x)+0.5\sin(8\pi x)+0.3\sin(20\pi x)$ 的逼近——低频几乎完美,20$\pi$ 的高频几乎丢光,这是"谱偏差"。

修补 1:自适应权重。每若干步重置一次

$$ \hat\lambda_b = \frac{\max_\theta|\nabla_\theta\mathcal L_r|}{\overline{|\nabla_\theta\mathcal L_b|}},\qquad \lambda_b\leftarrow (1-\alpha)\lambda_b+\alpha\hat\lambda_b. $$

这是 Wang 等人的 learning-rate annealing 方案,几行代码就能从训不动变成正常收敛。

修补 2:硬约束。把边界直接塞进网络结构里。例如对一维 Dirichlet 零边界,用

$$ u_\theta(x,t) = x(1-x)\,\tilde u_\theta(x,t) + B(x,t), $$

$B$ 满足边界即可,$\tilde u_\theta$ 任意。这样 $\mathcal L_b\equiv 0$,根本不用平衡。

修补 3:NTK-平衡。Wang–Yu–Perdikaris (2022) 6 证明 PINN 的训练动力学被三个 Neural Tangent Kernel 主控,按 NTK 的迹来设权重最自然。

4.2 病因 B:谱偏差(spectral bias)

NN 训练有一个深刻的现象:低频成分先学,高频后学(Rahaman 2019;Tancik 2020)。对 PINN 影响尤其大,因为 PDE 残差 $\mathcal N[u_\theta]$ 涉及二阶导,会把高频误差放大 $k^2$ 倍——网络越学不到高频,残差越大,恶性循环。

修补

  • Fourier 特征:把 $x$ 先映到 $[\sin(2\pi B x),\cos(2\pi B x)]$,$B$ 是高斯随机矩阵;这等价于把 NTK 的频谱抬平。
  • Sine 激活函数(SIREN):天然地在频域多带能量,但需要谨慎初始化。

4.3 病因 C:因果违背(causality)

时间相关 PDE 的真实解满足"过去决定未来"。但 PINN 在 $\Omega\times[0,T]$ 上同时采点,相当于让网络一开始就拟合 $t=T$ 的解;如果 $t7 在对流方程上把这种现象命名为 failure mode

修补:因果训练(Wang 2024)按时间顺序加权 PDE 残差,

$$ w_n = \exp\bigl(-\varepsilon \sum_{k只有早期残差降下来后,晚期残差才"被允许"加进总损失。

4.4 收敛对照实验

把上述修补合在一起跑 Burgers 方程:

加 PDE 损失能否突破数据瓶颈。
图 4:在仅有 50 个含噪声标签的极小数据集上,纯监督训练(红)很快被噪声 plateau 锁死在 4% 误差;加入 PDE 残差后(蓝),物理约束持续把误差推到 0.3%。这是 PINN 区别于普通回归的核心价值。


5 实验:Burgers 方程与反问题

5.1 正问题:Burgers 激波

考虑

$$ u_t + u u_x = \nu u_{xx},\quad x\in[-1,1],\ t\in[0,1],\quad u(\pm 1,t)=0,\ u(x,0)=-\sin(\pi x),\ \nu=\tfrac{0.01}{\pi}. $$

参考解通过 Cole–Hopf 变换 $u=-2\nu(\ln\phi)_x$ 把 Burgers 化为热方程,求积分得到(脚本 §burgers_cole_hopf 即此)。$\nu$ 很小,$t\approx 0.4$ 起 $x=0$ 附近形成接近间断的激波。

PINN 在 Burgers 方程上的预测 vs 精确解。
图 3:左侧色块图是 Cole–Hopf 参考解 $u(x,t)$,红蓝相接处即激波;右三幅是 $t=0.25/0.5/0.75$ 三个时刻的切片,PINN(蓝色虚线)能捕捉激波位置和宽度——但仔细看激波两侧仍有约 5% 的过冲,这是 vanilla PINN 的典型残差,需要靠 RAR / 因果训练 / Sobolev 训练进一步压。

实战要点

  1. 网络 8 层 $\times$ 20 宽 tanh 已足够,不要无脑加深。
  2. 残差点 $N_r\sim 10^4$,自适应残差细化(RAR):每若干轮选 $|\mathcal N[u_\theta]|$ 最大的前 $k$ 个候选点加入训练集。
  3. 优化器 Adam 1e-3 跑 20k 步打底,再切 L-BFGS 跑 5k 步精修。
  4. 不要忘了归一化:把 $(x,t)$ 标到 $[-1,1]$,否则 NTK 会偏。

5.2 反问题:参数辨识

正问题没什么稀奇,反问题才是 PINN 的杀手锏——只需把损失函数加一项 $\mathcal L_d$ 拟合稀疏观测,PDE 里的未知参数 $\nu$ 直接作为可训练标量参与梯度下降。

用稀疏含噪观测同时反演扩散系数。
图 5:左——只有 30 个时刻 $t=0.15$ 的含噪观测(红点);右——把 $\nu$ 当成可学习参数,与 $\theta$ 一起训练,$\nu$ 从初值 0.45 收敛到真值 0.10 的偏差 < 1%。这种"正问题 + 反问题在同一个损失函数里"的统一性,是 FEM 几乎做不到的。

为什么 PINN 反问题这么省事:传统反问题要嵌套两层——外层优化参数,内层求 PDE 正问题;每改一个参数就要重新跑一次解算器。PINN 把"满足 PDE"也变成损失项,参数和 $\theta$ 站在同一个梯度里,省掉了外环。代价是不确定性量化要靠 ensemble 或贝叶斯 PINN,不像传统的 MCMC + FEM 那样有一整套理论。


6 失败模式与边界

PINN 不是银弹。下面是几个工业上经常踩坑的场景:

失败模式原因现状
高频/多尺度(湍流)谱偏差 + 二阶导放大Fourier features、cPINN 域分解部分缓解
接近间断(激波、相变)NN 倾向连续函数conservative PINN、weak-form PINN
长时间积分因果违背、误差累积因果训练、时间分块
病态条件(弱解非唯一)损失景观非凸添加先验、ensemble
复杂耦合(多物理)各项尺度差异大自适应权重、多任务学习
高维 ($d>10$)残差采样维度灾难渐进采样、Quasi-MC

工程实践的"经验法则":几何复杂、高维、需要参数反演 → PINN;对精度有保证要求、几何规则、参数固定 → FEM/谱方法;要在线评估同一族 PDE 的多次查询 → 神经算子。


7 PINN 在 SciML 地图上的位置

PINN vs FEM vs 神经算子的能力雷达与代价/精度权衡。
图 7:左——按六个维度(无网格、高维、复杂几何、单次速度、跨 PDE 泛化、精度保证)打分;右——同一个 PDE 不同方法的"求解时间 vs 误差"散点。FEM 在精度有保证的情况下精度上限最高;PINN 通用性强但单次代价高;神经算子(DeepONet/FNO)一旦训练完毕,单次推理只要 ~1 秒,是参数化 PDE 的最佳选择,但训练数据要由 FEM/PINN 提供。

三者的简单选型口诀

  • FEM:经典、精度有保证、几何规则——大型工程模拟仍由它撑着。
  • PINN:作为一把"瑞士军刀",特别适合反问题先验融合的科研性问题。
  • 神经算子(第 2 章主题):要做"同一个方程族、不同输入函数、要被反复查询"的应用——气象、半导体仿真、金融定价。

PINN 真正的位置不是"取代 FEM",而是让"先验物理"成为深度学习模型设计的一等公民。这一点会贯穿后面七章。


8 与后续章节的接力

把 PINN 当作"约束嵌入损失函数"的一种实例,后面七章就清晰了:

  • 第 2 章 神经算子:把"学一个解"升级到"学一个解算子 $\mathcal G:f\mapsto u$"。
  • 第 3 章 变分原理:PINN 损失换成能量泛函,更稳,更接近 FEM 的理论保证。
  • 第 4 章 变分推断:把 Fokker–Planck 方程也塞进损失里,得到一致的概率推断。
  • 第 5 章 辛几何:在网络结构里直接保证哈密顿守恒,相当于硬约束的极致。
  • 第 6 章 Neural ODE / CNF:把"残差 = 0"换成"流的散度 = 0"。
  • 第 7 章 扩散模型 / Score Matching:把 PINN 反过来——已知数据,反演满足 Fokker–Planck 的随机过程。
  • 第 8 章 反应扩散 + GNN:把 MLP 换成图网络以处理网状几何。

读完本章,你应当能用一句话回答:"PINN 是把 PDE 残差当损失函数、用自动微分把高阶导算到机器精度、用神经网络作为通用基函数的 mesh-free 求解器;它的瓶颈在训练动力学(NTK 分析的梯度病理与谱偏差)而非表达能力。"


✅ 检查点

  1. 写出 PINN 的损失函数三项各代表什么。
  2. 解释为什么 NTK 的尺度差异会导致边界条件训不到。
  3. 说出至少两条修补谱偏差的工程方案。
  4. 给定一个反问题,写出把未知参数加入计算图的代码框架。
  5. 何时该选 PINN、何时该选 FEM、何时该选神经算子?

参考文献


系列导航

部分主题
1物理信息神经网络(本文)
2神经算子理论
3变分原理与优化
4变分推断与 Fokker-Planck 方程
5辛几何与保结构网络
6连续归一化流与 Neural ODE
7扩散模型与 Score Matching
8反应扩散系统与 GNN

  1. M. Raissi, P. Perdikaris, G. E. Karniadakis. Physics-Informed Neural Networks: A Deep Learning Framework for Solving Forward and Inverse Problems Involving Nonlinear Partial Differential Equations. J. Comput. Phys., 378:686–707, 2019. doi:10.1016/j.jcp.2018.10.045  ↩︎

  2. I. E. Lagaris, A. Likas, D. I. Fotiadis. Artificial Neural Networks for Solving Ordinary and Partial Differential Equations. IEEE TNN, 9(5):987–1000, 1998. ↩︎

  3. W. E, B. Yu. The Deep Ritz Method. Commun. Math. Stat., 6(1):1–12, 2018. arXiv:1710.00211  ↩︎

  4. Y. Shin, J. Darbon, G. E. Karniadakis. On the Convergence of Physics-Informed Neural Networks for Linear Second-Order Elliptic and Parabolic Type PDEs. Commun. Comput. Phys., 28(5):2042–2074, 2020. arXiv:2004.01806  ↩︎

  5. S. Wang, Y. Teng, P. Perdikaris. Understanding and Mitigating Gradient Flow Pathologies in Physics-Informed Neural Networks. SIAM J. Sci. Comput., 43(5):A3055–A3081, 2021. arXiv:2001.04536  ↩︎

  6. S. Wang, X. Yu, P. Perdikaris. When and Why PINNs Fail to Train: A Neural Tangent Kernel Perspective. J. Comput. Phys., 449:110768, 2022. arXiv:2007.14527  ↩︎

  7. A. Krishnapriyan et al. Characterizing Possible Failure Modes in Physics-Informed Neural Networks. NeurIPS 2021. arXiv:2109.01050  ↩︎

Liked this piece?

Follow on GitHub for the next one — usually one a week.

GitHub