PINN

PINN是什么

PINN 全称为 Physics Informed Neural Network,翻译过来就是物理信息神经网络。顾名思义,就是融合了物理信息的神经网络。

为什么要融合物理信息

最开始看到这个的时候,给我的第一印象其实是:既然深度神经网络已经能够很好地去拟合任何分布了,那么为什么还要去融合一个物理信息?

深度神经网络确实是强大的“通用函数逼近器” ,但它们的强大威力通常建立在“大数据”的基础上。然而,在分析许多复杂的物理、生物或工程系统时,数据的获取成本可能极其高昂,我们往往面临“小数据”的挑战。

在“小数据”情境下,传统的深度学习方法会暴露出明显的弱点 :

  • 缺乏鲁棒性:模型很容易在稀疏的数据点之间做出毫无意义的、错误的推断 。
  • 容易过拟合:网络会“记住”少数几个训练数据点,但其泛化能力极差,无法对未知情况做出准确预测。
  • 无法保证收敛:训练过程可能无法收敛到一个有意义的、符合现实的解 。

这时,物理信息的价值就体现出来了。在这些系统中,我们拥有大量基于第一性原理的先验知识,例如牛顿定律、能量守恒等。PINN的核心思想就是,将这些由偏微分方程(PDEs)描述的物理定律作为一种强大的正则化约束,融入到神经网络的训练中 。

这种做法带来了巨大的优势:

  1. 约束求解空间:物理定律极大地压缩了可行解的搜索空间,排除了那些不符合物理现实的解 。
  2. 提升数据效率:通过将物理规律编码为先验信息,PINN能够放大稀疏数据本身所包含的信息量 。这使得PINN可以仅用少量训练样本就能学习和泛化得很好,成为一种数据高效的学习算法 。

怎么去融合物理信息

PINN的融合方式非常巧妙,其核心在于构建一个特殊的复合损失函数。通过训练神经网络来最小化这个损失函数,从而近似PDE的求解。这个损失函数主要由两部分构成:一部分是监督已知数据的数据损失,另一部分是保证物理定律得以遵守的物理损失

$$MSE = MSE_u + MSE_f$$

1. 数据损失 MSE_u (Data Loss)

这部分和传统的监督学习完全一样。它负责衡量神经网络的预测值与我们已知的、稀疏的物理观测数据(例如初始条件和边界条件)之间的差距。其计算公式如下:

$$MSE_u = \frac{1}{N_u} \sum_{i=1}^{N_u} |u(t_u^i, x_u^i) - u^i|^2$$

这里的 (t_u^i, x_u^i) 是已知数据点的坐标,u^i 是该点的真实物理值,而 u(...) 是神经网络的预测值。

2. 物理损失 MSE_f (Physics Loss)

这是PINN的创新所在。为了让神经网络遵守物理定律,我们首先定义一个物理残差 f。这个残差就是将神经网络 u 代入到待求解的PDE中得到的表达式。以一个通用PDE $u_t + \mathcal{N}[u] = 0$ 为例,其物理残差为:

$$f := u_t + \mathcal{N}[u]$$

理论上,如果网络的解是完美的,那么这个物理残差 f 在求解域内的任何地方都应该等于0。

因此,物理损失的目标就是让这个残差 f 在求解域内的大量随机点(称为**“配置点”**或”collocation points”)上尽可能趋近于0。其计算公式为:

$$MSE_f = \frac{1}{N_f} \sum_{i=1}^{N_f} |f(t_f^i, x_f^i)|^2$$

这里的 (t_f^i, x_f^i) 就是那些随机生成的配置点,f(...) 是在这些点上计算出的物理残差值。

关键技术:自动微分

值得一提的是,在计算物理残差 f 时,我们需要求解神经网络关于其输入(时间和空间坐标)的各阶导数(如$u_t, u_x, u_{xx}$)。这在PINN中是通过**自动微分(Automatic Differentiation)**技术实现的。这项技术能够精确、高效地计算出复杂的导数值,是实现PINN框架的基石。

通过同时最小化这两部分损失,神经网络就被迫去寻找一个函数,这个函数不仅要穿过所有已知的观测数据点,还必须在其广阔的定义域内都遵守潜在的物理学规律。

具体案例:求解伯格斯方程

伯格斯方程是流体力学、非线性声学和交通流等多个应用数学领域中的一个基本偏微分方程。它因能够在粘性参数很小的情况下形成激波而闻名,这种现象用传统的数值方法很难精确求解。

1. 问题设定 (Problem Setup)

论文中研究的具体问题如下:

  • 偏微分方程 (PDE): $u_t + uu_x - (0.01/\pi)u_{xx} = 0$
  • 求解域: 空间 $x \in [-1, 1]$,时间 $t \in [0, 1]$
  • 初始条件: $u(0, x) = -\sin(\pi x)$
  • 边界条件: $u(t, -1) = u(t, 1) = 0$

2. 物理信息神经网络 (PINN) 的求解方法

该方法的核心思想是使用一个深度神经网络来近似解 $u(t, x)$ 。然后,通过最小化一个复合损失函数来训练这个网络,该损失函数包括两部分:

  • $MSE_u$ (数据损失): 这部分确保神经网络的预测值与已知的初始和边界条件数据相匹配。其公式为:
    $MSE_{u}=\frac{1}{N_{u}}\sum_{i=1}^{N_{u}}|u(t_{u}^{i},x_{u}^{i})-u^{i}|^{2}$。
    在这里,${t_{u}^{i},x_{u}^{i},u^{i}}$ 是 $N_u$ 个已知的初始和边界训练数据点 。

  • $MSE_f$ (物理损失): 这是PINN的关键。它定义了一个物理残差项 $f := u_t + uu_x - (0.01/\pi)u_{xx}$ 。理论上,如果网络的预测是完美的,$f$ 在整个求解域内都应该为0。因此,这部分损失函数通过在求解域内部选取大量的“配置点”(collocation points),并强制这些点上的 $f$ 值接近于0,从而将物理定律编码到网络中 。其公式为:
    $MSE_{f}=\frac{1}{N_{f}}\sum_{i=1}^{N_{f}}|f(t_{f}^{i},x_{f}^{i})|^{2}$ 。
    这里的 ${t_{f}^{i},x_{f}^{i}}$ 就是 $N_f$ 个配置点 。

通过同时最小化这两部分损失,网络被迫学习一个不仅拟合已知数据,而且还遵守伯格斯方程的解。