4.1 物理信息神经网络(PINN)基础
物理信息神经网络(Physics-Informed Neural Networks, PINN) 是Raissi等人在2019年系统提出的一种深度学习方法。其核心思想是: 将物理定律(通常以偏微分方程的形式)作为软约束加入神经网络的损失函数, 使网络在训练过程中自发地满足物理规律。
为什么需要物理约束?
纯数据驱动的深度学习方法存在几个固有问题:
- 数据饥渴:需要大量高质量标注数据,而工程仿真数据往往获取成本高
- 物理不一致:模型预测可能违反基本物理定律(如能量不守恒、质量不守恒)
- 外推能力差:在训练分布之外的预测可能完全不合理
- 可解释性差:黑箱模型难以验证和信任
物理约束的引入就是为了解决这些问题。它相当于给模型"上了一堂物理课", 让它在学习数据模式的同时,也理解底层的物理规律。
PINN 的基本框架
标准PINN使用全连接网络(MLP)来近似PDE的解函数 u(x, t), 其中 x 是空间坐标,t 是时间。损失函数由几部分组成:
L = λdata Ldata + λpde Lpde + λbc Lbc + λic Lic
各损失项含义:
- Ldata:数据损失 — 与观测/仿真数据的偏差(MSE)
- Lpde:PDE残差损失 — 控制方程的残差(应趋近于0)
- Lbc:边界条件损失 — 边界上应满足的约束
- Lic:初始条件损失 — 初始时刻应满足的状态
- λ 系数:各损失项的权重,需要精心调整
PINN的优势:
• 数据效率高:即使只有少量观测数据也能训练
• 物理一致性:预测结果满足PDE和约束条件
• 无网格要求:任意坐标点都可以计算损失
• 正逆问题统一:同一个框架可求解正问题和反问题
• 易于实现:基于自动微分,代码简洁
PINN的局限:
• 训练困难:多损失项的权重平衡是个难题
• 不适用于复杂几何:标准PINN基于MLP,处理复杂边界不便
• 高维问题挑战:维数灾难仍然存在
• 计算成本:每个配点都需要多次自动微分
• 对某些PDE(如对流主导问题)收敛性差
正因如此,研究人员开始探索将PINN的思想与GNN结合——
用GNN处理复杂几何和不规则网格,用PINN提供物理约束。
📝 小节检测
PINN的核心是将PDE、边界条件等物理约束作为损失项,引导网络学习满足物理规律的解。
PINN是回归/求解问题,不是分类问题,通常不使用交叉熵损失。
物理约束提供了强归纳偏置,减少了对数据量的依赖,并使分布外的预测更符合物理直觉。
PINN的多损失项权重调整是著名的难点,且基于MLP的标准PINN处理复杂几何和不规则网格不方便。
4.2 PDE残差与自动微分
PINN实现物理约束的关键技术是自动微分(Automatic Differentiation)。 通过自动微分,我们可以精确计算神经网络输出对输入的各阶导数, 从而计算PDE的残差。
什么是自动微分?
自动微分是一种精确计算函数导数的技术,介于符号微分和数值微分之间。 它将复杂的计算分解为一系列基本运算(加、乘、sin、exp等), 利用链式法则逐步累积导数。PyTorch、JAX等深度学习框架都内置了自动微分功能。
与数值微分(有限差分)相比,自动微分的优势:
- 精度高:机器精度级别,没有截断误差
- 效率高:反向模式自动微分计算梯度的开销约为前向传播的1-3倍
- 无需手动推导:框架自动处理,只需定义前向计算
以Burgers方程为例
让我们用一个经典例子来理解PDE残差的计算。 Burgers方程是流体力学中的基本方程:
∂u/∂t + u · ∂u/∂x - ν · ∂²u/∂x² = 0
其中 u(x, t) 是速度场,ν 是运动粘度系数
在PINN中,我们用神经网络 u_net(x, t) 来近似解。PDE残差定义为:
f(x, t) = ∂u_net/∂t + u_net · ∂u_net/∂x - ν · ∂²u_net/∂x²
L_pde = MSE(f(x_collocation, t_collocation), 0)
我们在计算域内采样一些"配点"(collocation points), 在这些点上计算PDE残差,并训练网络使残差趋近于零。
计算技巧:计算高阶导数时,需要设置 create_graph=True, 这样才能在反向传播时更新网络参数。 二阶导数的计算成本比一阶高得多,因此在设计PINN时需要权衡: 对于高阶PDE,考虑是否可以降阶处理,或使用其他技巧。
配点采样策略
配点的选择对PINN的性能有很大影响。常见策略:
- 均匀采样:在计算域内均匀随机采样,最简单
- 自适应采样:在残差大的区域增加采样点,提高精度
- 重要性采样:根据物理直觉在关键区域(如边界层、激波附近)加密采样
- curriculum learning:从简单到复杂逐步增加难度
📝 小节检测
PINN通过自动微分精确计算神经网络输出对输入的各阶导数,从而得到PDE残差。
自动微分可以达到机器精度,没有有限差分的截断误差,且计算效率远高于数值微分。
计算高阶导数时必须设置create_graph=True,这样才能保留计算图,支持更高阶的微分和反向传播。
配点是在计算域内采样的点,用于计算PDE残差损失,迫使网络在这些点上满足PDE。
4.3 守恒律与边界条件的损失函数设计
物理约束不仅仅是PDE残差。守恒律、边界条件、初始条件等都是重要的物理先验, 需要通过精心设计的损失函数来实现。
边界条件的处理
边界条件是PDE问题的重要组成部分。常见的边界条件类型:
- Dirichlet边界条件:指定边界上的函数值,如 u(x_boundary, t) = u_0
- Neumann边界条件:指定边界上的法向导数,如 ∂u/∂n = g
- Robin边界条件:函数值和导数的线性组合
- 周期边界条件:两端值相等(周期结构)
在PINN中,边界条件通常通过在边界上采样点并计算相应的损失来实现:
L_bc = MSE(u(x_bc, t), u_bc_target) # Dirichlet BC
L_bc = MSE(∂u/∂n(x_bc, t), g_target) # Neumann BC
守恒律的应用
对于很多物理系统,某些量是守恒的(如质量守恒、动量守恒、能量守恒)。 这些守恒律可以作为额外的物理约束加入损失函数。
例如,在结构动力学中,系统的总能量(动能+势能)在无阻尼情况下应该守恒:
E_total = Σ(½ m_i v_i²) + V(x) = const
L_energy = MSE(dE_total/dt, 0)
碰撞仿真中的特殊物理约束
在碰撞仿真降阶中,可以加入的物理约束包括:
- 动量守恒:系统总动量的变化应等于外力的冲量
- 能量关系:动能的减少应等于应变能的增加和耗散能
- 不可穿透条件:接触区域的节点不能相互穿透
- 摩擦定律:接触面的切向力应满足库仑摩擦定律
- 材料模型约束:应力应变关系应符合给定的本构模型
损失权重的平衡是关键难点:
多个损失项的量级可能差异很大(PDE残差可能是0.001级,数据损失可能是100级),
直接相加会导致某一项主导训练。常用解决方案:
1. 手动调整权重λ(需要大量实验)
2. 自适应权重(如按各损失项的梯度幅值动态调整)
3. 归一化各损失项到相近量级
4. 使用课程学习,逐步加入困难的约束项
硬约束 vs 软约束
| 类型 | 实现方式 | 优点 | 缺点 |
|---|---|---|---|
| 软约束 | 作为损失函数项加入 | 实现简单,灵活 | 不能精确满足,依赖权重调整 |
| 硬约束 | 通过网络架构或输出变换强制满足 | 精确满足物理约束 | 实现复杂,可能限制表达能力 |
实践建议:初始阶段建议先从纯数据驱动开始,建立基线模型。 然后逐步加入物理约束,观察每项约束带来的性能提升。 对于某些容易满足的约束(如边界条件),可以用硬约束方式实现 (如将网络输出乘以一个掩码函数,边界处自动为指定值)。 对于复杂的约束(如PDE残差),先用软约束方式加入。
📝 小节检测
Dirichlet BC指定边界上的函数值,Neumann BC指定边界上的法向导数值。
不同物理量的数值范围差异大,直接相加会导致某项主导训练,权重平衡是PINN的核心挑战之一。
硬约束通过修改网络输出架构等方式强制满足,软约束通过损失函数引导,前者精确但实现复杂。
像素值范围约束是图像处理中的概念,与碰撞仿真无关。
4.4 PhyGNNet:物理约束+GNN
PhyGNNet(Physics-informed Graph Neural Network) 代表了一类将PINN思想与GNN结合的方法。它的目标是: 在不规则域上,利用图结构表示几何,同时注入物理约束。
为什么需要 PhyGNNet?
标准PINN基于MLP,在处理复杂几何形状和不规则网格时存在困难:
- MLP不知道计算域的几何形状,全靠配点来"感受"边界
- 复杂边界附近需要更密集的配点,效率低
- MLP不利用空间邻近关系,归纳偏置弱
- 处理已有网格数据时,没有充分利用网格的拓扑信息
而GNN天然适合处理不规则网格和图结构数据,且有强局部归纳偏置。 将两者结合,就得到了PhyGNNet:用GNN处理图结构和空间关系, 用物理约束保证物理一致性。
PhyGNNet 的典型架构
PhyGNNet通常采用Encoder-Processor-Decoder结构(与GNS类似), 但在损失函数中加入物理约束项:
- Encoder:将节点坐标、边界标记等编码为潜特征
- Processor:多层消息传递GNN,更新节点特征
- Decoder:输出物理量预测(如位移、速度、压力等)
- 物理损失:基于预测结果计算PDE残差、边界条件残差等
PDE残差的计算方式
在GNN上计算PDE残差,与标准PINN略有不同。主要有两种方式:
方式一:基于自动微分(类似PINN)
如果网络输入包含空间坐标,可以用自动微分计算物理量对坐标的导数。 但GNN不是简单的坐标→物理量的映射(中间还有图结构和邻域信息), 所以导数的计算需要更仔细的处理。
方式二:基于离散微分(更常用)
利用网格/图的邻接关系,用有限差分或有限元的方式在图上计算空间导数。 这种方式更接近传统数值方法,也更高效。
PhyGNNet的优势:
• 天然处理复杂几何和不规则网格
• 利用图结构提供强归纳偏置
• 物理约束提升数据效率和泛化能力
• 比标准PINN更适合工程仿真场景
• 可扩展性好,支持大规模网格
已有研究表明,在Burgers方程等基准问题上,PhyGNNet
在拟合能力和时间外推能力上均优于标准PINN。
两种融合范式
物理约束与GNN的结合大致有两种范式:
| 范式 | 描述 | 适用场景 |
|---|---|---|
| Physics-Informed GNN GNN为主,PINN为辅 |
GNN作为主模型架构,物理约束作为正则化损失加入。数据驱动为主,物理约束提升泛化和一致性。 | 有较多仿真数据,主要目标是加速仿真 |
| GNN-assisted PINN PINN为主,GNN为辅 |
PINN为核心求解器,GNN提供几何编码、自适应配点、初始化解等辅助功能。物理约束为硬要求。 | 数据稀少,主要目标是物理地求解PDE |
碰撞仿真降阶的选择:在碰撞仿真降阶场景中, 通常有大量FEM仿真数据可用,目标是快速推理,因此更适合 Physics-Informed GNN范式—— GNN作为主力架构学习动力学,物理约束作为正则化项提升物理一致性和外推能力。
📝 小节检测
PhyGNNet将GNN的图结构建模能力与PINN的物理约束结合,特别适合复杂几何和不规则网格场景。
在图/GNN上,利用邻接关系和离散微分计算PDE残差更自然、更高效,也更接近传统数值方法。
碰撞仿真通常有大量FEM仿真数据可用,目标是快速推理,更适合Physics-Informed GNN范式。
两种范式的主次关系不同:前者以GNN数据驱动为主,后者以PINN物理求解为主。