1. 课程导入与问题定义
在科学计算与工程仿真中,我们经常要解一类“带物理约束”的问题:给定一个偏微分方程(PDE)及其边界条件,求未知场量,例如温度场、位移场、压力场或电磁势。传统数值方法(有限元、有限差分)依赖网格,而近年来兴起的物理信息神经网络(PINN)等方法则把方程残差直接写进损失函数,用一组“采样点”来近似整个求解域上的约束。于是,一个看似不起眼却决定成败的问题浮现出来:这些采样点应该放在哪里?
本节要建立的核心概念是物理残差自适应采样:不再把采样点均匀撒满整个区域,而是根据当前模型在各处产生的物理残差大小,动态地把采样资源集中到“方程还没被满足好”的位置。理解这一点,需要先看清残差是什么、它为什么在空间上极不均匀,以及均匀采样为何会浪费算力。
残差:方程“没被满足”的局部度量
设待求场为 $u(x)$,微分算子为 $\mathcal{N}$,源项为 $f$,则方程可写为 $\mathcal{N}[u](x)=f(x)$。把神经网络的近似解 $u_\theta(x)$ 代入,定义物理残差:
r(x) = N[u_θ](x) - f(x)
残差 $r(x)$ 是一个随空间位置变化的标量场。$|r(x)|$ 大,说明该处方程被违反得厉害;$|r(x)|$ 小,说明该处已基本满足。训练的目标就是让 $|r(x)|$ 在整个区域上尽可能小。关键洞察在于:残差的空间分布极不均匀。在激波、边界层、材料界面、源项突变附近,残差往往比平滑区域高出几个数量级;而大片平滑区域即使采样稀疏,残差也很容易压下去。
均匀采样的问题:把算力平均撒在“不需要”的地方
最朴素的做法是在区域内均匀随机或按网格采样,比如在 $[0,1]^2$ 上取 10000 个点。问题在于:假设其中只有 5% 的区域(如一条边界层)残差显著,那么约 9500 个点落在平滑区,对降低总损失贡献很小,却占用了绝大部分计算量。更糟的是,均匀采样无法“跟随”训练过程——训练初期残差大的地方,训练后期可能已经压平,而新的高残差区(如激波位置漂移)又出现了,固定采样点集对此无能为力。
用一个教学示例说明量级差异(以下为合理假设的示例数据,非实测):在一维对流扩散问题中,边界层厚度约为全域的 2%,层内残差量级约 $10^{-1}$,层外约 $10^{-4}$。若均匀取 1000 点,落入边界层的期望仅约 20 点;而若按残差自适应把 60% 的点集中到边界层,则可有约 600 点用于刻画陡峭梯度。前者往往在边界层处出现明显振荡或欠拟合,后者则能显著压低最大残差。
自适应采样的核心思想:残差驱动的“资源再分配”
自适应采样的基本回路可以概括为:训练当前模型 → 评估候选点上的残差 → 按残差大小重新分配采样密度 → 用新点集继续训练,如此迭代。它把“采样”从一次性预处理变成了训练过程的一部分,使采样分布随残差分布一起演化。下图展示了这一闭环,以及它与传统均匀采样在资源分配上的本质差异。
图中左侧的虚线回路是自适应方法的关键:采样不是训练前的一次性动作,而是与训练交替进行的。右侧的均匀采样则是开环的——点集一旦确定就不再改变,模型只能被动接受这种“平均主义”的资源配置。
典型应用场景
残差自适应采样并非万能,它在以下几类问题上收益最明显:
- 含陡梯度或间断的解:激波、接触间断、相变界面,残差集中在极窄区域,均匀采样几乎必然欠拟合。
- 边界层与局部奇异:高雷诺数流动、裂纹尖端应力集中、点源附近的场,梯度在局部急剧变化。
- 多尺度与多物理场:不同子区域残差量级差异大,需要按区域分配采样预算。
- 高维问题:维数升高后均匀网格点数指数爆炸,自适应采样能以更少点数覆盖关键区域。
- 反问题与参数辨识:观测稀疏时,残差大的区域往往正是信息最需要补充的位置。
反之,对于解非常光滑、残差空间分布接近均匀的问题,自适应采样的额外开销(评估候选点残差、重采样)可能得不偿失,此时均匀采样或准随机采样(如 Sobol 序列)已足够。
课程路线图
本课程围绕“如何把残差变成采样决策”这条主线展开,大致分为四个阶段。第一阶段建立基础:残差的定义与计算、采样点集的组织、损失函数中数据项与残差项的权重关系。第二阶段进入方法核心:基于残差幅值的概率采样、基于残差密度的重采样、以及梯度/二阶信息辅助的采样准则,并讨论候选点池的构造与刷新频率。第三阶段关注工程实现:如何高效批量计算残差、如何避免采样点过度集中导致的病态、如何设置收敛判据与停止条件。第四阶段是综合实践:在典型 PDE 算例上对比均匀采样与自适应采样的误差分布、收敛曲线与计算成本,并讨论与 R 自适应网格、重要性采样等思想的联系与区别。