摘要: 分享对论文的理解, 原文见 Jérome Simon, Gabriel Fabien-Ouellet, Erwan Gloaguen, and Ishan Khurjekar, Hierarchical transfer learning for deep learning velocity model building, Geophysics, 2003, R79–R93. 这次的层次迁移应该指从 1D 到 2D 再到 3D.
摘要
深度学习具有使用最少的资源 (这里应该是计算资源, 特别是预测时的计算资源) 处理大量地震资料的潜力.
神经网络直接将数据 (即地震记录) 映射到模型 (如速度模型).
由于数据量太大, 直接做 2D 或 3D 不可行, 因此在一个子问题 (1D) 上训练神经网络.
通过迁移学习, 减少了 2D 训练数据的使用量. 注: 如何从 1D 迁移到 2D 是一个核心问题.
root-mean-square 误差为 (
198
±
91
198 \pm 91
198±91) m/s.
再次用到了 RMS 速度模型 (参见 论文笔记: 循环神经网络进行速度模型反演).
引言
DL 不仅用于 FWI, 也用于常规处理的各个步骤.
DL-FWI 暂时还不能成为工业标准, 但它有可能在缩短训练时间后超越物理规律驱动的 FWI (即数值模拟 FWI).
当前的 DL-FWI 只处理尺寸小的速度模型 (如 301*301), 可能有些薄层和盐丘, 但总体不具有实际数据的代表性.
Fabien-Ouellet and Sarkar (2020) 的方法可以处理较大规模数据, 但获得的速度模型横向连续性不好 (不符合物理规律, 这个用我们的边界提取辅助任务可能会缓解).
共中心点 CMP 道集看来用得比较多, 我们用的是共炮点 CSP 道集.
图像处理任务使用几万至几百万带标签实际数据进行训练, 地震数据可能有这么多, 但标签非常少 (如果不是没有的话). 这确实是大家面临的难题.
方法
问题: 从叠前数据直接估计 (反演) 倾斜分层声波速度模型. 注: 声波太简单了吧.
输入:
n
t
×
n
h
×
n
x
n_t \times n_h \times n_x
nt×nh×nx 的张量, 其中
t
t
t 是双向 (下去再上来) 走时,
h
h
h 是从炮点到检波点的 (水平) 偏移量,
x
x
x 是 CMP 中心点的位置.
v
i
n
t
(
t
i
,
x
)
=
v
i
n
t
(
z
(
t
i
)
,
x
)
,
z
(
t
i
)
=
∑
j
=
1
i
−
1
v
i
n
t
(
t
j
,
x
)
⋅
2
Δ
t
(1)
v_{\mathrm{int}}(t_i, x) = v_{\mathrm{int}}(z(t_i), x), z(t_i) = \sum_{j=1}^{i-1}v_{\mathrm{int}}(t_j, x) \cdot 2\Delta t \tag{1}
vint(ti,x)=vint(z(ti),x),z(ti)=j=1∑i−1vint(tj,x)⋅2Δt(1)
其中时间域被离散化为网格, 长度为
Δ
t
\Delta t
Δt.
右式中 $z(t_i) $ 表示深度, 它是每个时刻的速度乘以时间片长度之和. 如
Δ
t
\Delta t
Δt 为
1
m
s
1 \rm{ms}
1ms, 则
t
0
=
0
m
s
t_0 = 0 \rm{ms}
t0=0ms,
t
1
=
1
m
s
t_1 = 1 \rm{ms}
t1=1ms,
t
2
=
2
m
s
t_2 = 2 \rm{ms}
t2=2ms,
…
\dots
…. 相当于速度对于时间的积分, 即为路程. 在连续的情况下, 相当于把连加换成积分符号即可.
左式表示
t
i
t_i
ti 时刻的速度, 就相当于深度为
z
(
t
i
)
z(t_i)
z(ti) 时的速度. 但从数学上来看是错的. 如:
t
i
=
1
m
s
t_i = 1 \rm{ms}
ti=1ms 时
z
(
t
i
)
=
150
m
z(t_i) = 150\rm{m}
z(ti)=150m, 由于没有办法在式子中间带单位, 所以也无法区分. 可以考虑写为
v
i
n
t
t
(
t
i
,
x
)
=
v
i
n
t
z
(
z
(
t
i
)
,
x
)
,
z
(
t
i
)
=
∑
j
=
1
i
−
1
v
i
n
t
t
(
t
j
,
x
)
⋅
2
Δ
t
(1’)
v^t_{\mathrm{int}}(t_i, x) = v^z_{\mathrm{int}}(z(t_i), x), z(t_i) = \sum_{j=1}^{i-1}v^t_{\mathrm{int}}(t_j, x) \cdot 2\Delta t \tag{1'}
vintt(ti,x)=vintz(z(ti),x),z(ti)=j=1∑i−1vintt(tj,x)⋅2Δt(1’)
反过来, 时间至深度区间速度转换可写为
v
i
n
t
(
z
i
,
x
)
=
v
i
n
t
(
t
(
z
i
)
,
x
)
,
t
(
z
i
)
=
∑
j
=
1
i
−
1
2
Δ
z
v
i
n
t
(
z
j
,
x
)
(2)
v_{\mathrm{int}}(z_i, x) = v_{\mathrm{int}}(t(z_i), x), t(z_i) = \sum_{j=1}^{i-1} \frac{2\Delta z}{v_{\mathrm{int}}(z_j, x)} \tag{2}
vint(zi,x)=vint(t(zi),x),t(zi)=j=1∑i−1vint(zj,x)2Δz(2)
其中深度域 (空间域) 被离散化为
Δ
z
\Delta z
Δz 的网格,
t
(
z
i
)
t(z_i)
t(zi) 就是达到深度
z
i
z_i
zi 所花的时间. 按照我们的写法可以换为
v
i
n
t
z
(
z
i
,
x
)
=
v
i
n
t
t
(
t
(
z
i
)
,
x
)
,
t
(
z
i
)
=
∑
j
=
1
i
−
1
2
Δ
z
v
i
n
t
z
(
z
j
,
x
)
(2’)
v^z_{\mathrm{int}}(z_i, x) = v^t_{\mathrm{int}}(t(z_i), x), t(z_i) = \sum_{j=1}^{i-1} \frac{2\Delta z}{v^z_{\mathrm{int}}(z_j, x)} \tag{2'}
vintz(zi,x)=vintt(t(zi),x),t(zi)=j=1∑i−1vintz(zj,x)2Δz(2’)
(1) 式和 (2) 式的 2 倍带来一些理解上的问题. 如果时间是往返的, 那么 (2) 式的 2 倍可以理解, 但 (1) 式的 2 倍反而应该是 1/2 倍.
另外, 定义
v
r
m
s
(
t
i
,
x
)
=
∑
j
=
1
i
v
i
n
t
2
(
t
j
,
x
)
Δ
t
∑
j
=
1
i
Δ
t
(3)
v_{\mathrm{rms}}(t_i, x) = \sqrt{\frac{\sum_{j=1}^i v^2_{\mathrm{int}}(t_j, x) \Delta t}{\sum_{j=1}^i \Delta t}} \tag{3}
vrms(ti,x)=∑j=1iΔt∑j=1ivint2(tj,x)Δt(3)
这个式子的问题在于, 如果
Δ
t
\Delta t
Δt 是一个常数的话, 则
v
r
m
s
(
t
i
,
x
)
=
v
i
n
t
(
t
i
,
x
)
v_{\mathrm{rms}}(t_i, x) = v_{\mathrm{int}}(t_i, x)
vrms(ti,x)=vint(ti,x), 但实际上它应该是可变的, 应写为
v
r
m
s
(
t
i
,
x
)
=
∑
j
=
1
i
v
i
n
t
2
(
t
j
,
x
)
Δ
t
j
∑
j
=
1
i
Δ
t
j
(3’)
v_{\mathrm{rms}}(t_i, x) = \sqrt{\frac{\sum_{j=1}^i v^2_{\mathrm{int}}(t_j, x) \Delta t_j}{\sum_{j=1}^i \Delta t_j}} \tag{3'}
vrms(ti,x)=∑j=1iΔtj∑j=1ivint2(tj,x)Δtj(3’)
对于复杂的地形, 基于时间的模型
v
i
n
t
(
t
,
x
)
v_{\mathrm{int}}(t, x)
vint(t,x) 不可靠, 只能使用基于深度的模型
v
i
n
t
(
z
,
x
)
v_{\mathrm{int}}(z, x)
vint(z,x).文章来源:https://www.toymoban.com/news/detail-687217.html
(5) 式是利用 1D 对 2D 进行初始化的操作.文章来源地址https://www.toymoban.com/news/detail-687217.html
到了这里,关于论文笔记: 深度学习速度模型构建的层次迁移学习方法 (未完)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!