4. PINN求解逆问题的基本流程
用PINN求解逆问题,与正问题最大的区别在于:待求的未知量从“场变量”扩展到了“场变量 + 物理参数”。因此整个流程可以理解为一条“参数化—复合损失—优化—收敛判断—后处理验证”的闭环链路。本节按这条链路展开,重点讲清楚每一步实际要做什么、关键参数如何设置、结果如何判断。
一、参数化待识别量:把未知参数变成可训练张量
逆问题的第一步是把物理方程中未知的系数、源项强度、边界条件参数等,声明为可训练变量。以典型的一维稳态热传导为例,控制方程为
d/dx( k · du/dx ) + q = 0, x ∈ (0, L)
若导热系数 k 与内部热源强度 q 均未知,则需将二者参数化。常见做法有两种:
- 常数参数化:令 k = softplus(θ_k)、q = θ_q,其中 θ 为可训练标量。softplus 保证 k 恒为正,符合物理约束。
- 场参数化:若 k 随空间变化,则用一个小型子网络 k(x) = MLP_φ(x) 表示,φ 与主网络参数一起训练。
参数化时要注意量纲与尺度。例如 L = 1 m、k 真值约 2.0 W/(m·K)、q 真值约 10 W/m³,若直接以 O(1) 量级初始化,梯度尺度差异不大;但若 q 真值为 1e4 量级,则应先对 q 做归一化(如 q = q_scale · softplus(θ_q)),否则损失中物理残差项会被大数主导,导致 k 几乎不更新。这是逆问题训练不动的常见原因之一。
二、构建复合损失函数:物理残差 + 观测数据 + 约束项
复合损失通常由三部分组成:
L = w_p · L_phys + w_d · L_data + w_b · L_bc
L_phys = (1/N_p) Σ |k·u_xx + q|² # 方程残差
L_data = (1/N_d) Σ |u(x_i) - u_obs_i|² # 观测拟合
L_bc = (1/N_b) Σ |u(0) - u0|² + |u(L) - uL|²
其中 L_phys 在配点上计算,配点可在区域内均匀采样或拉丁超立方采样;L_data 使用稀疏观测点(例如 10~20 个温度测点);L_bc 施加边界条件。权重 w_p、w_d、w_b 的选取直接影响参数可辨识性:若 w_d 过大,网络会优先拟合观测而忽略方程,参数可能漂移到无物理意义的值;若 w_p 过大,观测信息被淹没,参数收敛缓慢。实践中可先令 w_p = w_b = 1、w_d = 10~100,观察两项损失是否同步下降,再按残差量级做自适应调整(如 NTK 加权或梯度归一化)。
三、优化策略选择:两阶段训练更稳
逆问题的损失曲面通常比正问题更非凸,直接端到端训练容易陷入“场拟合好、参数错”的局部解。推荐采用两阶段策略:
- 第一阶段(暖启动):固定参数 θ_k、θ_q 为初值,仅训练网络参数,使 u 大致满足方程与边界,迭代约 2000~5000 步,学习率 1e-3,优化器 Adam。
- 第二阶段(联合优化):解冻参数,网络与物理参数一起训练,学习率降为 1e-4~5e-4,迭代 10000~30000 步;后期可切换 L-BFGS 做精细收敛。
若参数初值离真值较远(如 k 初值 0.5、真值 2.0),可先用少量观测做一次粗网格反演给出初值,再交给 PINN 精修,能显著缩短收敛时间。
四、训练流程与收敛判断
训练过程中应同时监控三条曲线:总损失、L_phys、L_data,以及参数估计值随迭代的变化。判断收敛不能只看总损失下降,还要看:
- 参数估计值在最近 2000 步内的相对变化小于 1e-3;
- L_phys 与 L_data 均降至同一量级且不再剧烈震荡;
- 用独立验证点计算的方程残差不再下降。
若出现 L_data 持续下降而 L_phys 停滞,说明网络在“背观测”而非“学物理”,应提高 w_p 或增加配点密度;若参数在训练后期来回跳动,多为学习率过大或 w_d 过高,可降低学习率并加入梯度裁剪。
五、结果后处理与验证:别只看参数点估计
训练结束后,至少要做三类验证。第一是参数精度:与真值(仿真算例)或独立测量(实测场景)比较相对误差,一般要求 k、q 的相对误差在 5% 以内。第二是预测泛化:留出 20% 观测点不参与训练,用训练好的模型预测这些点的 u,计算 RMSE,若明显大于训练集误差,说明过拟合。第三是可辨识性检查:用 3~5 组不同初值重复训练,若参数估计值分散度很大(如 k 在 1.2~2.8 之间跳动),说明当前观测布局对该参数约束不足,需要增加测点或改变测点位置。
以本节示例为例(数值为合理假设的教学算例):L = 1 m,k 真值 2.0 W/(m·K),q 真值 10 W/m³,布置 15 个温度观测点、相对噪声 1%,配点 200 个。两阶段训练后得到 k̂ = 1.97、q̂ = 10.3,相对误差分别为 1.5% 与 3.0%;留出 3 个验证点预测 RMSE 约 0.008 K,与噪声水平相当,说明模型既拟合了观测又遵守了方程。若把观测点减到 5 个,同样流程下 k̂ 可能漂到 1.6 附近,此时应优先补充测点而非继续调网络结构。