2. 反问题数据生成与划分策略

反问题模型的效果,往往在训练开始之前就已经被数据决定了。与常规监督学习不同,反问题的输入(观测)与输出(模型参数)之间存在物理约束,数据不能随意采集,而要靠正演模拟批量生成。本节围绕三件事展开:怎样用正演模拟造出可信样本、怎样注入贴近真实的噪声、以及怎样划分数据集才能既评估泛化又不泄漏信息。

一、正演模拟:反问题数据的“源头”

反问题的正演算子可抽象为 d = F(m) + n,其中 m 是待反演的模型参数(如波速、电导率、源位置),F 是已知的物理正演过程,d 是观测数据,n 是噪声。数据生成的核心思路是:先采样大量合理的 m,再用 F 算出对应的 d,把 (d, m) 作为训练样本对。

关键在于 m 的采样分布必须覆盖真实应用场景。以二维声波走时反演为例,可设定网格 64×64,速度范围 1500~4500 m/s,用平滑随机场叠加若干层状或透镜体异常来构造速度模型;异常体尺寸、位置、对比度都按任务先验随机化。若只生成单一平滑背景,模型在真实复杂结构上必然失效。建议显式记录采样参数(层数、异常比例、速度区间),形成可复现的生成配置:

# 示例:速度模型采样配置(合理假设,非实测)
grid: 64x64
v_background: [1500, 2500]   # 背景速度均匀采样
n_layers: [1, 4]             # 层数
anomaly_ratio: [0.05, 0.20]  # 异常体面积占比
v_anomaly: [2500, 4500]      # 异常体速度
n_samples: 8000

正演计算本身可能很贵。若单次正演耗时 0.5 s,8000 个样本约需 1.1 小时,尚可接受;若正演是三维波动方程,则需并行化或降采样。此时应优先保证样本多样性,而不是盲目堆数量——2000 个覆盖充分的样本,通常优于 20000 个高度相似的样本。

二、噪声注入:让训练分布贴近观测分布

真实观测总含噪声,若训练数据“干净”而测试数据含噪,模型会学到对噪声敏感的映射。噪声注入应遵循两条原则:一是噪声类型与真实采集一致(高斯白噪声、相关噪声、缺失道、异常值);二是信噪比范围覆盖实际工况。常用做法是对每个样本随机抽取一个信噪比 SNR ∈ [5, 40] dB,按 n = σ·randn、σ = RMS(d)/10^(SNR/20) 计算噪声强度后叠加。

需要注意,噪声应在正演之后、归一化之前注入,否则归一化会改变实际信噪比。此外可加入少量“困难样本”,如低信噪比、道缺失 10%~20% 的样本,提升模型鲁棒性。噪声参数同样要写入生成配置,保证训练集与测试集使用同一噪声模型但不同随机种子。

三、划分原则与数据泄漏防范

反问题数据最常见的泄漏不是“同一张图重复”,而是同源模型泄漏:同一个 m 生成的不同噪声样本、或同一地质体的不同观测角度,被分到训练集和测试集两侧,导致测试指标虚高。因此划分必须以“模型实例”为最小单位,而不是以样本为单位。

推荐按 70% / 15% / 15% 划分训练、验证、测试集,并遵循以下规则:

  • 按模型 ID 分组划分:先给每个 m 分配唯一 ID,同一 ID 的所有噪声样本只能进入同一集合。
  • 分布外测试集:额外留出一组参数分布不同的模型(如更高速度对比度、更多层数),专门评估泛化。
  • 固定随机种子:划分、噪声、采样各用独立种子并记录,保证可复现。
  • 归一化统计量只用训练集:均值方差从训练集计算,再应用到验证和测试集。
若发现测试集指标异常高(如相对误差低于训练集),首先排查是否存在同源模型跨集、或归一化时使用了全量数据统计量。这两类是反问题数据泄漏的高发点。
反问题数据生成与防泄漏划分流程 模型参数采样 m 速度场 / 层状 / 异常体 记录模型 ID 正演模拟 F(m) 生成干净观测 d 并行 / 降采样 噪声注入 SNR 5~40 dB 缺失道 / 异常值 样本对 (d, m) 按模型 ID 分组 写入生成配置 按模型 ID 分组划分 同 ID 样本不跨集 训练集 70% 拟合参数 计算归一化统计量 验证集 15% 调超参 / 早停 不参与梯度更新 测试集 15% 最终泛化评估 含分布外样本

四、实战任务:构建一份可复现的数据划分清单

下面给出一个可直接执行的任务闭环。假设已有 8000 个模型实例,每个实例生成 3 个不同噪声样本,共 24000 条样本。操作步骤如下:

  1. 为每个模型实例分配 model_id(0~7999),并记录其采样参数(层数、异常比例、速度区间)。
  2. 用固定种子 seed=42 打乱 model_id 列表,按 70/15/15 切分为三组 ID 集合。
  3. 按 ID 集合把样本分配到训练、验证、测试集,确保同一 model_id 的 3 条噪声样本落在同一集合。
  4. 从测试集中再筛出“分布外”子集:层数 ≥ 5 或异常比例 > 0.25 的模型,单独统计其误差。
  5. 仅用训练集计算输入 d 与输出 m 的均值、标准差,保存为归一化参数文件,供验证和测试复用。
  6. 训练后在测试集上报告整体相对误差与分布外子集相对误差,两者差距过大说明泛化不足。

判断依据可以这样设定(示例阈值,需按任务调整):整体测试相对误差低于 8%,且分布外子集误差不超过整体的 1.5 倍,视为数据划分与模型泛化均达标;若整体误差很低但分布外误差骤增,应回到采样环节补充困难模型,而不是继续调网络。

把“模型 ID、采样参数、噪声种子、划分种子、归一化统计量”五项写入一个数据清单文件,是反问题实验可复现、可对比的最低要求。缺少任何一项,后续的交叉验证结论都难以复信。

综上,反问题数据工作的重心不在“造得多”,而在“造得对、分得清”。正演保证物理一致性,噪声保证分布贴近真实,按模型 ID 分组划分保证评估可信。三者共同构成后续交叉验证与泛化评估的数据基础。