PINN 讲义第 0 章:从微分方程问题到 PINN
本文属于“PINN 入门讲义”系列:第 0 章。如果你是第一次阅读,建议先从 总目录 开始。
阅读说明
这份讲义面向希望系统理解 Physics-Informed Neural Networks 的读者,尽量从微分方程、数值近似和神经网络函数表示的基本语言讲起,再逐步进入 PINN 的残差构造与训练过程。
很多科学与工程问题的目标,并不是预测一个孤立的数,而是求出一个随空间、时间或参数变化的函数。热传导问题中,我们想知道每个位置、每个时刻的温度;流体力学问题中,我们想知道速度场和压力场如何演化;材料力学问题中,我们想知道外力作用下的位移和应力分布。这些问题看似来自不同领域,但在数学上常常有一个共同形式:未知量是一个函数,而这个函数必须满足某种微分方程。
微分方程之所以重要,是因为许多自然规律并不直接告诉我们“函数值是多少”,而是告诉我们“函数如何变化”。例如,热传导规律不是简单地说某一点温度等于多少,而是描述温度随时间的变化与空间分布之间的关系。在一维情形下,热方程常写为
这里 表示位置 、时间 处的温度, 表示温度对时间的变化率, 表示温度沿空间方向的二阶变化, 是热扩散系数。这个公式不是单纯的符号组合,而是在表达一个物理判断:温度场随时间如何变化,取决于它在空间上的弯曲程度。类似地,波动方程、泊松方程、Navier—Stokes 方程、Burgers 方程等,都通过函数及其导数描述物理量的变化规律。
因此,求解微分方程本质上是在寻找一个函数。这个函数不仅要在形式上代入方程,还要满足问题给定的初值条件和边界条件。初值条件规定系统在起始时刻的状态,例如 ;边界条件规定区域边界上的行为,例如一根杆两端的温度被固定,或者边界上的热流为零。没有这些条件,方程本身通常不足以唯一确定解。换句话说,一个完整的科学计算问题往往由三部分组成:微分方程、初值条件或边界条件,以及必要的物理参数或观测数据。
传统数值方法正是围绕这个目标发展起来的。有限差分方法把连续区域划分为网格,用差商近似导数;有限元方法把区域分解为单元,用局部基函数拼接近似解;谱方法则用全局基函数展开未知函数。这些方法构成了科学计算的基础,并且在大量工程问题中非常成功。然而,它们也有自身的困难。复杂几何区域可能带来网格生成问题,高维问题会遭遇维数灾难,参数反演问题往往需要反复求解正问题,而实验数据与方程模型的融合也并不总是直接。
另一方面,机器学习方法擅长从数据中学习输入与输出之间的关系。如果我们有大量样本 ,可以训练一个神经网络 ,使得 尽量接近 。这种思路在图像识别、语音识别和自然语言处理等领域非常成功。但科学计算中的数据往往昂贵、稀疏,甚至带有噪声。更重要的是,许多科学问题并非完全没有先验知识:我们通常知道系统应该满足某个守恒律、控制方程或边界条件。若只让神经网络拟合数据,而忽略这些已知物理规律,模型可能在观测点附近表现尚可,却在未观测区域产生不合理结果。
PINN,即物理信息神经网络(Physics-Informed Neural Networks),正是在这种背景下出现的。它的基本想法并不是用神经网络替代所有传统数值方法,也不是声称神经网络可以自动发现一切物理规律,而是把神经网络看成一个可训练的函数近似器,并把已知的微分方程约束写入训练过程。若真实解记为 ,PINN 用带参数的神经网络 来近似它:
这里的 表示网络中的可训练参数。训练的目标不只是让 拟合已有观测数据,还要让它代入微分方程后产生尽可能小的残差。若控制方程可以抽象写成
其中 表示包含导数的微分算子,那么把神经网络 代入后得到残差
如果 在许多点上接近零,就说明网络函数在这些点上近似满足方程。训练 PINN 时,通常会把数据误差、方程残差、边界误差和初值误差组合成一个总损失函数。例如,可以写成
这个公式概括了 PINN 的主要结构。 衡量网络对观测数据的拟合程度; 衡量网络函数对微分方程的违反程度; 和 分别衡量边界条件和初值条件是否被满足。训练过程就是调整 ,使这些误差共同减小。这样,数据和物理方程不再是彼此分离的两类信息,而是共同参与同一个优化问题。
PINN 的一个关键技术基础是自动微分。由于微分方程中包含 、、 等导数项,训练时必须计算神经网络输出对输入变量的导数。现代深度学习框架,如 PyTorch 和 TensorFlow,可以根据计算图自动应用链式法则,计算这些导数。需要注意的是,这里的导数有两类:一类是 对输入变量 的导数,用于构造方程残差;另一类是损失函数 对网络参数 的导数,用于优化训练。二者都通过自动微分实现,但数学作用并不相同。
从这一点看,PINN 的核心并不神秘。它由四个熟悉的部分组合而成:用神经网络表示函数,用自动微分计算导数,用微分方程残差表达物理约束,用优化算法调整参数。真正困难的地方在于,这四部分结合后会产生许多新的数值问题:不同损失项之间可能尺度不平衡,配置点的采样会影响训练效果,优化过程可能陷入困难,高频解和多尺度问题也常常难以学习。因此,学习 PINN 时既要理解它的优雅之处,也要理解它的局限。
本讲义将沿着这条主线展开。前几章先补足函数、导数、微分方程和数值近似的基本语言;随后把神经网络解释为一种可训练函数,并介绍损失函数、梯度下降和自动微分;在此基础上正式引入 PINN 的损失构造、配置点、边界条件处理和代码实现;最后讨论误差来源、训练困难以及 PINN 与 DeepONet、FNO 等科学机器学习方法之间的关系。这样的顺序并不是为了把知识拆碎,而是为了让每一步都能回答一个自然问题:我们要求解什么,为什么需要近似,神经网络在这里扮演什么角色,物理方程又是如何进入训练过程的。
本章小结
科学计算中的许多问题都可以看成寻找满足微分方程和边界条件的未知函数。传统数值方法通过离散化构造近似解,机器学习方法则擅长从数据中学习函数关系。PINN 的基本思想是在二者之间建立联系:用神经网络 表示未知函数,用自动微分计算它的导数,再把微分方程、初值条件、边界条件和观测数据共同写入损失函数。它不是万能求解器,而是一种把物理约束嵌入神经网络训练的计算框架。
延伸阅读
- M. Raissi, P. Perdikaris, and G. E. Karniadakis, “Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations,” Journal of Computational Physics, 378, 686-707, 2019. DOI: 10.1016/j.jcp.2018.10.045。
- G. E. Karniadakis et al., “Physics-informed machine learning,” Nature Reviews Physics, 3, 422-440, 2021. DOI: 10.1038/s42254-021-00314-5。
- PyTorch 官方文档:Automatic Differentiation with torch.autograd。
- MIT OpenCourseWare: Numerical Methods for Partial Differential Equations。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!