DL-FWI基础入门培训视频学习4——FCNVMB

Deep-learning inversion: a next generation seismic
velocity-model building method(2019)

面向数据集:SEG盐数据及其模拟。该论文第一次提出SEG盐数据。严格的端到端网络结构,是UNet网络结构。

FCNVMB:UNet架构下的FWI。FCNVNB采用FCN这个网络实现VMB(velocity Model Build,速度模型构建)操作。FCN是全连接卷积神经网络,主要针对图像分割这类任务。FCNVMB是基于监督的深度全卷积神经网络。

UNet网络(2015):

基于编码器-解码器的网络,解码时会利用编码器的特征,信息利用能关联。

该网络浅层特征图更倾向于表达例如点、线、边缘轮廓等基本特征单元,蕴含的空间信息更多。深层特征图更倾向于表达图像的语义信息,蕴含的空间信息更少,语义特征更多。

FCNVMB:

1. 网络解释:

        FCNVMB由基本的左侧编码器右侧的解码器共同构成,分别采用蓝色和橙色表示。编码器的结构会通过skip connection(跳跃连接)来与解码器的部分通道进行补充,用黑色虚线表示该过程。这里的skip connection是直接进行通道的合并而非相加。

        一个红色箭头代表三种操作的集合(conv,BN,ReLU),通过红色箭头,特征图的尺寸并不会发生改变,相当于特征的重整合,为接下来的尺寸变化做准备。紫色箭头代表下采样即最大池化,可导致尺寸缩小一半,相当于特征提取进一步细化。黄色箭头代表2*2的反卷积则会导致尺寸扩大一倍,蓝色箭头表示1*1的卷积,保证图像尺寸不变,进行特征映射。
        立方体的宽度代表通道个数,这些数值在下面被用蓝色数字标明,通道数的变化与卷积个数有关,这个可以通过程序灵活定义,但是可以发现通道的减少是服从一定规律的。
侧截面代表当前网络层的Feature map。立方体中的黑色字体就代表这个Feature map截面的尺寸。

2. 代码:

在代码中,会将一些简单卷积相关操作整合,自底向上来看,分为三步:

1. Pytorch中独立的卷积操作,这些是低级操作;

2. 一些卷积组合(两次红色箭头)被封装为: unetConv2(…),它们可以视为中级操作;

3. 表示编码和解码的高级操作被封装为unetDown(…)和unetUp(…),即下采样和上采样,这些操作的组合顺序在图中用不同的色区分割。这两个高级操作是由[两次中级操作]和[一次低级操作如最大池化、反卷积、1*1卷积]。

skip connection部分代码细节:

一次跳跃连接的过程:

1. 先获得上一次得到的特征图,经过一次上采样,得到outputs2;

2. 获取编码结构与之相对应的输出特征图,并接收过来;

3. 通过F.pad()操作补齐尺寸;

4. 把两个特征图通过torch.cat()拼接在一起,在将拼接好的图通过一次卷积操作输出。

:skip connection在代码中的实现过程,明确当前Feature map与编码阶段的哪个层进行通道整合。

inputs2表示上一次unetUp(…)操作结束后的输出Feature map,同时也作为本次unetUp(…)的最近端输入。
inputs2在进入程序后立马进行了一次反卷积,扩大了一倍尺寸,变成了outputs2。从inputs2到outputs2,尺寸扩大了一倍,通道数缩小了一半,故outputs2尺寸为256*100*76。
input1是来自于与当前向上采样相对称的一次下采样操作的输出结果。

要实现通道合并/贴合(通过torch.cat()操作实现),需要尺寸相同。input1和outputs2虽然通道一致,但在尺寸上并不匹配。于是通过F.pad操作将input1进行了扩充,得到了同尺寸的output1。

而后将output1和outputs2进行通道合并,合并为一个512*100*76的Feature map。最后将这个Feature map作为一个整体,再度进行两次红色箭头的操作。
 

3. FCNVMB训练过程

——采用了迁移学习的思路

1. 基于速度模型,先通过正演生成地震数据。

2. 调用代码训练初始模型,训练100轮,训练后得到一个初始的预训练模型,可针对模拟盐数据进行预测。

3. 使用真实速度模型先正演得到地震数据,再进行训练,50轮,得到再训练模型

4. InversionNet和FCNVMB的异同:

相同点:

  1. 都是单一的端到端深度网络结构,并没有利用更多的物理含义。
  2. 都使用编码器-解码器的架构。
  3. 都是利用叠前多炮数据的不同炮集直接投入训练,并未处理。
     

不同点:

  1. InversionNet在编码过程中最终将图像压缩为完全的一维向量,抛弃了空间关联性;而FCNVMB在压缩后仍保留了25*19的空间尺寸关联。但是对应的代价是FCMVMB的模型内存占有量很大,难以进行大batch体量的训练,而InversionNet可以非常灵活进行训练。
  2. FCNVMB面向SEG数据,InversionNet面向部分OpenFWI的数据。因为OpenFWI数据的特点,InversionNet有非常明显的高度降维部分,即花大量时间进行空间压缩,把时间域压到跟空间域差不多大,再进行同时压缩;而FCNVMB是方形卷积,可将时间域和空间域同时压缩。
  3. FCNVMB使用了迁移学习的训练手段,InversionNet是单一的训练思想。
  4. FCNVMB采用了包含skip connection的UNet的架构,而IrversionNet是单一的CNN架构。
     

了解叠前/叠后多炮数据 、迁移学习

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值