跳至主要內容

地震波阻抗反演实验

Xenny约 982 字大约 4 分钟FWIFWICNN深度学习

地震波阻抗反演实验

准备工作

数据集

  • 我选用Convolutional neural network for seismic impedance inversionopen in new window中的数据,其中包含2020道一维地震波以及波阻抗数据。

    图1. 数据展示
    图1. 数据展示

    正演参数为频率为30Hz的雷克子波,Δt=4.3875e4\Delta t = 4.3875e-4。图1中为数据集中的4道数据展示,其中波阻抗数据已进行缩放。

  • 随后将这些数据集划分为500个验证集、500个测试集和1020个训练集。

其他参数

  • 损失函数使用MSE。优化算法使用Adam。训练迭代次数为400,批次大小为1,学习率为0.001。

基础CNN

  • 先试了试Convolutional neural network for seismic impedance inversionopen in new window中的网络模型。

    图2. 1D CNN网络架构
    图2. 1D CNN网络架构

    图2为上述网络模型结构,包含两个卷积层和两个ReLU激活函数,卷积核大小为300。

    图3. 训练Loss变化
    图3. 训练Loss变化

    训练中loss变化如图3所示。在这个模型中我们训练了400次,后续将用这个模型作为基准对比其他实验。

    图4. 测试集上效果
    图4. 测试集上效果
    图5. 测试集Loss
    图5. 测试集Loss

    图4为测试集中随机选取的4组预测和真实波阻抗对比结果。图5为在每一组测试集上的Loss变化,该网络在整个测试集上的平均损失值为0.19052282

CNN+MLP

  • 这里给上述CNN网络最后加了一个331x331的全连接层进行训练看一下效果。

    图6. 训练Loss变化
    图6. 训练Loss变化
    图7. 测试集上效果
    图7. 测试集上效果
    图8. 测试集Loss
    图8. 测试集Loss

    该网络在整个测试集上的平均损失值为0.38929242

CNN+KAN

  • 这里用同样大小(331x331)的KAN层替换上述MLP层,看看效果

    图9. 训练Loss变化
    图9. 训练Loss变化
    图10. 测试集上效果
    图10. 测试集上效果
    图11. 测试集Loss
    图11. 测试集Loss

    该网络在整个测试集上的平均损失值为0.8988899

  • 效果很差,几乎没有训练。于是我换了一下网络模型,卷积层输出换成了输出16维通道,将KAN大小改为16x1,即增加通道数进行训练。

    图12. 训练Loss变化
    图12. 训练Loss变化
    图13. 测试集上效果
    图13. 测试集上效果
    图14. 测试集Loss
    图14. 测试集Loss

    该网络在整个测试集上的平均损失值为0.15648946

  • 于是这里我又重新将前面CNN+MLP网络也改成了同样的多通道输出,MLP层改为16x1。得到的结果为

    图15. 训练Loss变化
    图15. 训练Loss变化
    图16. 测试集Loss
    图16. 测试集Loss
    图16.1. 测试集上效果
    图16.1. 测试集上效果

    平均损失值为0.18656108

CNN+GRU+MLP

  • 后续又看了“基于闭环CNN-GRU和主动学习的地震波阻抗反演”中的方法,该论文中的方法有点类似对抗网络,反演得到的结果提供给正演,正演得到的结果提供给反演进行半监督学习。网络架构如图17所示。

    图17. 网络架构
    图17. 网络架构
  • 这里我只用其中的反演网络在这个数据集上跑了下效果

    图18. 训练Loss变化
    图18. 训练Loss变化
    图19. 测试集上效果
    图19. 测试集上效果
    图20. 测试集Loss
    图20. 测试集Loss

    可以看到网络训练效率还是很高的,并且该网络的输出非常平滑,感觉不太适合这个数据集。该网络在整个测试集上的平均损失值为0.27449203

CNN+GRU+KAN

  • 同样的这里将MLP改为了KAN进行实验。

    图21. 训练Loss变化
    图21. 训练Loss变化
    图22. 测试集上效果
    图22. 测试集上效果
    图23. 测试集Loss
    图23. 测试集Loss

    该网络在整个测试集上的平均损失值为0.26823914

结果

  • 收敛速度的话没看出明显对比,可能是因为这里的全连接层只占到很小一部分,主要还是卷积层的工作。

    从结果来看确实KAN要好一点。