1. 课程导入与问题界定
在开始系统学习物理信息神经网络(PINN)之前,先看一个典型的工程场景:一根长度 L=1 m 的均质金属导热杆,左端保持 100 ℃,右端保持 0 ℃,杆内无内热源,导热系数为常数。稳态下温度分布满足一维拉普拉斯方程 u''(x)=0,解析解为线性分布 u(x)=100(1−x)。若用 PINN 求解,网络输入是坐标 x,输出是温度 u,而真正决定解是否正确的,并不是网络结构本身,而是两件事:边界条件如何进入训练,以及损失函数如何把方程残差与边界约束组织到一起。
很多初学者第一次跑 PINN 时会遇到这样的现象:训练损失从 1e-1 降到 1e-4,看起来收敛良好,但把预测温度画出来,两端温度却是 37 ℃ 和 62 ℃,中间还出现轻微弯曲。原因往往不是优化器不够强,而是损失函数中边界项权重过小,网络优先满足了内部配点的方程残差,却“忽略”了端点约束。这个例子说明:PINN 的难点不在反向传播,而在于如何把物理约束和边界约束翻译成可优化的目标。
上图把本节要建立的核心认识画清楚了:PINN 的训练目标由三部分共同决定——方程残差、边界条件、网络与采样配置。三者通过加权求和组装成总损失,而最终解是否正确,必须回到物理判读,而不能只看总损失数值。
边界条件的三种常见类型与进入损失的方式
工程问题中的边界条件通常分为三类,它们在 PINN 中的处理方式并不相同。第一类是狄利克雷边界,直接给定场变量值,如上面的 u(0)=100。它进入损失的方式最直接:在边界点上计算网络输出与给定值之差的平方。第二类是诺伊曼边界,给定法向导数,例如绝热端 ∂u/∂n=0。此时不能直接约束输出值,而要用自动微分求出网络输出对输入的导数,再与给定导数值作差。第三类是罗宾边界,即场变量与导数的线性组合,如对流换热边界 −k∂u/∂n = h(u−u∞),需要同时用到输出值和一阶导数。
这里有一个容易被忽略的细节:诺伊曼条件中的导数必须对物理坐标求,而不是对归一化后的输入求。若训练时把 x 归一化到 [0,1] 之外的区间,链式法则会引入缩放因子,导致约束值被系统性放大或缩小。实践中建议统一在物理坐标下计算导数,或在归一化后显式乘回缩放系数,并在代码注释中写清参照约定。
损失函数构建中的四个关键决策
把约束写成损失并不难,难的是让各项真正协同工作。构建损失函数时,至少有四个决策会显著影响结果。
- 配点与边界点的数量配比。内部配点用于约束方程,边界点用于约束边界。若边界点过少,边界项估计方差大,网络容易在端点附近“漂移”。示例中可在 (0,1) 内取 200 个配点,两端各取 20 个边界点,作为起步配置。
- 各项权重。w_f 与 w_b 的量级差异会直接改变优化方向。若边界值量级为 100,而方程残差量级为 1,则边界项天然占优;反之则可能被淹没。常见做法是先让两项量级接近,再根据残差曲线微调。
- 残差的计算方式。方程残差应在配点上用自动微分求得,且要保证网络对输入的二阶导数可求。激活函数选择 tanh 或 sin 通常比 ReLU 更合适,因为后者二阶导几乎处处为零。
- 是否引入硬约束。另一种思路是把边界条件直接嵌入网络输出,例如令 u(x)=100(1−x)+x(1−x)·N(x),使边界自动满足,损失中只保留方程残差。这会降低优化难度,但构造对复杂几何并不总是方便。
从问题界定到学习路径
基于上面的分析,本课程后续内容将围绕一条清晰的主线展开:先明确物理方程与边界条件的数学形式,再决定哪些约束用软约束、哪些用硬约束,然后完成损失组装与权重配置,最后通过残差分解和物理判读验证解的正确性。需要强调的是,PINN 不是“设好网络就能出解”的黑箱,边界条件与损失函数才是决定成败的核心环节。把这两件事做扎实,网络结构的选择反而有较大的容错空间。
回到开头的导热杆例子:如果训练后端点温度命中 100 ℃ 与 0 ℃,内部温度与线性解的最大偏差在 1 ℃ 以内,且 L_f 与 L_b 都降到较小量级,才可以认为这次 PINN 求解是可信的。这个判读标准将贯穿后续各节,成为检查每一次建模是否真正成功的依据。