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


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

    1. 论文贡献

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

    2. 相关工作

    图 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. 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

    小结

    • 物理方法只在一个模型上迭代, 数据驱动方法从大量模型中学习, 所以会更容易跳出 (或者避免陷入) 局部最优解
  • 相关阅读:
    42. 接雨水[动态规划+双指针]
    javaweb
    【ZYNQ】IP核_DDR4_SDRAM(MIG)的详细介绍
    HTTP协议初识·中篇
    ELA--学习笔记
    react+antd引入并修改样式,配置别名路径
    C++ float的if比较
    技术分享 | 常见接口协议解析
    对齐管理后台中的账户体系的四种方法
    使用EasyDarwin+ffmpeg+EasyPlayerPro完成rtsp的推流操作和拉流操作
  • 原文地址:https://blog.csdn.net/minfanphd/article/details/127886005