论文笔记: 数据驱动的地震波形反演--健壮性与泛化性研究

摘要: 分享对论文的理解, 原文见 Zhongping Zhang and Youzuo Lin, Data-driven seismic waveform inversion: A study on the robustness and generalization.

1. 论文贡献

  • 提供实时预测的 VelocityGAN
  • 与其他基于编码器-解码器的数据驱动地震波形反演方法不同, VelocityGAN 从数据中学习正则化, 并进一步将正则化应用于生成器, 从而提高反演精度.
  • 进一步使用迁移学习, 缓解泛化性问题.

2. 相关工作

论文笔记: 数据驱动的地震波形反演--健壮性与泛化性研究_第1张图片
图 1. 全波形反演的基本框架

图 1 展示了全波形反演的基本框架, 本质上就是端到端: 地震数据到速度模型.

2.1 声波反演: 物理驱动方法

正演模型为
P = f ( m ) (1) P = f(\mathbf{m}) \tag{1} P=f(m)(1)
其中 m \mathbf{m} m 为速度模型参数 (一个向量), f f f 为正演模型算子 (一个函数), P P P 是声学情况下的压力波场.
正则化的物理驱动地震反演为
E ( m ) = min ⁡ m { ∥ d − f ( m ) ∥ 2 2 + λ R ( m ) } (2) E(\mathbf{m}) = \min_{\mathbf{m}} \{\|\mathbf{d} - f(\mathbf{m})\|_2^2 + \lambda R(\mathbf{m})\} \tag{2} E(m)=mmin{df(m)22+λR(m)}(2)
其中 d \mathbf{d} d 是实测的数据, ∥ ⋅ ∥ 2 \| \cdot \|_2 2 是 2 范数, 相应部分表示数据匹配误差, λ \lambda λ 为一个系数, R ( m ) R(\mathbf{m}) R(m) 是由参数导致的正则项, 用于避免模型太复杂 (过拟合).

这种方法的特点:

  • 不需要其它数据的支持. 本质上, 输入只有 d \mathbf{d} d;
  • 需要进行不断迭代求解. 预先猜一个模型 m \mathbf{m} m 根据式 (3) 计算损失, 再根据该损失进行 m \mathbf{m} m 的调整;
  • 效率比较低 (与上一条有关);
  • 依赖于初始猜测的模型, 即 m \mathbf{m} m 的最初版本. 如果数据没有噪声, 可以获得非常好的效果. 否则会陷入局部最优解, 无法进行良好的拟合.

2.2 数据驱动: 学习反演算子

m = g ( d ) = f − 1 ( d ) (4) \mathbf{m} = g(\mathbf{d}) = f^{-1}(\mathbf{d}) \tag{4} m=g(d)=f1(d)(4)
其中 g g g 就是需要学习的反演算子.
g = arg min ⁡ g { ∑ i = 1 N ∥ m i − g ( d i ) ∥ 2 2 } (5) g = \argmin_g \left\{\sum_{i=1}^N \|\mathbf{m}_i - g(\mathbf{d}_i)\|_2^2\right\}\tag{5} g=gargmin{i=1Nmig(di)22}(5)
其中 { d i , m i } i = 1 N \{\mathbf{d}_i, \mathbf{m}_i\}_{i=1}^N {di,mi}i=1N 为训练数据.

2.3 方法比较

表 1. 两种方法对比
物理方法 数据驱动方法
数据 不需要其它数据的支持. 本质上, 输入只有 d \mathbf{d} d 需要训练数据 { d i , m i } i = 1 N \{\mathbf{d}_i, \mathbf{m}_i\}_{i=1}^N {di,mi}i=1N
训练 针对当前数据的求解, 没有训练 大量训练时间, 效果与训练样本强相关
求解 需要进行不断迭代求解. 预先猜一个模型 m \mathbf{m} m 根据式 (3) 计算损失, 再根据该损失进行 m \mathbf{m} m 的调整 使用 g g g 直接求解
效率 针对当前数据求解慢 训练慢, 但测试效率高
依赖 依赖于初始猜测的模型, 即 m \mathbf{m} m 的最初版本. 如果数据没有噪声, 可以获得非常好的效果. 否则会陷入局部最优解, 无法进行良好的拟合 训练数据质量

3. 论文工作

论文笔记: 数据驱动的地震波形反演--健壮性与泛化性研究_第2张图片
图 2. VelocityGAN 框架

3.1 生成器

  • 输入数据为一个 32 × 1000 × 6 32 \times 1000 \times 6 32×1000×6 的张量
    • 32 个接收器
    • 1000 个时间点
    • 3 个源函数 (从后文来说是 3 shots, 即相同位置放了 3 炮) 和 2 个通道 ( 3 × 2 = 6 3 \times 2 = 6 3×2=6)
  • 标签为速度模型
    • 大小为 m × n m \times n m×n, m m m 表示深度, n n n 表示水平距离
    • 相邻点的距离为 5 5 5 m, 因此总的尺寸为 5 m × 5 n  m 2 5m \times 5n \textrm{ m}^2 5m×5n m2
    • 矩阵每个点的值表示声波的传播速度
  • 网络细节
    • 输入数据与标签之间, 并不存在空间的对应关系, 因此不会像平常的 U-Net 那样对它们的差异进行惩罚
    • 使用多个 k × 1 k \times 1 k×1 卷积统一到 32 × 32 32 \times 32 32×32
    • 32 × 32 32 \times 32 32×32 的数据使用 3 × 3 3 \times 3 3×3 的卷积核, 直到获得 8 × 8 8 \times 8 8×8 的数据
    • 最后使用 8 × 8 8 \times 8 8×8 的卷积核, 消除空间信息 (太狠了吧)
    • 解码的时候, 逐步获得与速度模型相同大小 ( m × n m \times n m×n)

3.2 判别器

  • 注重局部信息, 因此使用 patchCNN 而不是 GlobalCNN

小结

  • 物理方法只在一个模型上迭代, 数据驱动方法从大量模型中学习, 所以会更容易跳出 (或者避免陷入) 局部最优解

你可能感兴趣的:(论文笔记,论文阅读)