1. 从微分方程到神经网络
微分方程是描述物理世界的通用语言:热传导、结构振动、流体运动、电磁场分布,几乎都可以写成“某未知场在空间与时间上的导数关系”。传统求解思路是把连续区域离散成网格,用有限差分、有限元或有限体积把导数替换成代数关系,再解大规模线性或非线性方程组。这条路线成熟可靠,但当问题维度升高、几何形状复杂、参数需要反复变化时,网格生成与重复求解的成本会迅速上升。物理信息神经网络(Physics-Informed Neural Network,PINN)提供了另一条思路:用一个神经网络直接表示未知场,把微分方程残差、边界条件和初始条件写进损失函数,通过优化网络参数让“解”同时满足数据与物理规律。
为什么可以把微分方程交给神经网络
关键在于神经网络对输入是可微的。设网络输出为 u_θ(x, t),其中 θ 是待训练参数。借助自动微分,我们可以对 u_θ 关于 x 和 t 求一阶、二阶甚至更高阶导数,从而直接构造方程残差。以一维热传导方程为例,取热扩散系数 α = 0.01,方程与条件为:
u_t = α · u_xx, x ∈ (0, 1), t ∈ (0, 1)
u(0, t) = u(1, t) = 0
u(x, 0) = sin(πx)
定义残差 r_θ(x, t) = ∂u_θ/∂t − α · ∂²u_θ/∂x²,则总损失可写成三项之和:
L = L_pde + λ_bc · L_bc + λ_ic · L_ic
L_pde = mean( r_θ(x_i, t_i)² ) # 配点在区域内部随机采样
L_bc = mean( u_θ(0, t)² + u_θ(1, t)² )
L_ic = mean( (u_θ(x, 0) − sin(πx))² )
训练时在区域内随机抽取若干“配点”(collocation points),例如 2000 个内部点、200 个边界点、200 个初始点,用 Adam 优化器迭代数千步,再视情况切换到 L-BFGS 精调。训练完成后,u_θ 就是一个连续、可微、可在任意点求值的近似解,不需要保存网格,也不需要插值。这正是 PINN 最吸引人的地方:解被表示成一个函数,而不是一组离散节点值。
PINN 与传统数值方法的分工
把两类方法放在一起比较,能更清楚地看到各自适用边界。下表以本节热传导示例为背景,给出定性对比(数值为教学示例的典型量级,非实测结果):
| 对比维度 | 有限差分 / 有限元 | PINN |
|---|---|---|
| 解的表示 | 网格节点上的离散值 | 连续可微的神经网络函数 |
| 网格需求 | 必须划分网格,复杂几何代价高 | 无需网格,仅需采样点 |
| 高维问题 | 维度灾难明显 | 相对缓解,但训练成本上升 |
| 逆问题 | 通常需反复正演与优化 | 未知参数可作为可训练变量联合求解 |
| 精度与收敛 | 理论成熟,误差可控 | 依赖调参,收敛性分析仍在发展 |
| 计算资源 | CPU 友好,稀疏矩阵高效 | 偏好 GPU,训练时间较长 |
因此合理的定位是:正问题、低维、高精度要求、边界复杂但网格可生成时,优先传统方法;高维参数化问题、逆问题、数据与方程混合建模、几何频繁变化需要“一次训练多次查询”的场景,PINN 更有优势。实际工程中两者也常结合,例如用数值解生成监督数据,再与方程残差一起约束网络。
典型应用场景
PINN 目前较活跃的方向包括:一是正问题求解,如热传导、扩散、波动方程的近似解;二是逆问题与参数辨识,例如已知部分温度观测,反推材料导热系数;三是数据同化与稀疏观测补全,在观测点稀少时用方程约束填补场分布;四是代理模型,训练好的网络作为快速前向计算器嵌入优化循环;五是多物理场耦合,把不同方程的残差加权组合进同一损失。对初学者而言,从一维、线性、解析解已知的方程入手,最容易建立“损失下降是否等于解变准”的判断力。
本课程项目总览
本课程围绕一条主线推进:从标量方程到方程组,从正问题到逆问题,从纯物理约束到数据融合。贯穿全程的项目是一个“一维热传导求解器”,逐步扩展为带观测数据的参数反演任务。建议的环境与起步配置如下:
Python 3.10+,PyTorch 2.x(或 JAX)
网络:3~5 层全连接,每层 32~64 个神经元,tanh 激活
优化:Adam(lr=1e-3) 训练 5000 步,再用 L-BFGS 精调
采样:内部配点 2000,边界/初始点各 200,每若干步重采样
评估:与解析解 u = exp(−απ²t)·sin(πx) 对比相对 L2 误差
判断训练是否有效的依据不是损失数值本身,而是“残差损失下降的同时,验证点上的相对误差是否同步下降”。若损失很小但误差很大,往往说明配点过稀、权重失衡或网络欠拟合。下面的图示把本节的核心逻辑串成一条信号链:从方程与条件出发,经自动微分构造残差,汇入损失,再通过优化更新网络,最终得到可查询的连续解,并与传统网格路线形成对照。
把这张图当作本课程的地图:上半部分是后续每节要拆开实现的环节,下半部分是始终用来对照的参照系。学习过程中,每完成一个模块,都应回到“残差是否合理、验证误差是否同步下降”这两个判断点上,而不是只看损失曲线是否好看。