基于卷积神经网络的地震数据去噪方法
2022-08-15刘玉敏魏海军安志伟
刘玉敏, 魏海军, 袁 硕, 安志伟
(东北石油大学 电气信息工程学院, 黑龙江 大庆 163318)
0 引 言
随着勘探技术的发展, 油气田资源的勘探重点逐渐转向地表条件复杂的边远地区, 面对逐渐恶劣的采集环境, 远距离的地震信号在传播过程中, 幅度衰减极其严重, 经深层反射的地震波几乎淹没在噪声中, 从而隐藏了相应的地质构造和岩层性质信息, 降低了数据资料的有效性[1]。这使后续的解释工作困难重重, 不能准确解释采集的地震资料。
前人对地震数据去噪工作做了很多有价值的研究。常用的地震数据随机噪声的去除方法有小波变换法去噪、 奇异值分解法去噪等[2]。小波变换去噪是根据空间分布的差异性去噪, 含噪数据经小波变换后呈现不同特性, 经过阈值处理, 对有效信号进行小波重构提高信噪比, 其缺陷是对处理二维的地震数据有一定的局限性[3], 在重构信号时可能会丢失有效特征。变分模态分解(VMD: Variational Mode Decomposition)去噪法是一种非递归算法, 采用交替方向乘子算法求最优解以实现信号自适应分解, 对地震数据有较高的抗噪性, 可成功分离两个频率相近的纯谐波信号[4], 但局限性是需要对很难估计的模态数进行设定。奇异值分解(SVD: Singular Value Decomposition)去噪法不受频率特性的局限, 将地震数据分解后得到的奇异值是一组非负递减数列, 将有效信号对应的奇异值进行重构达到去噪目的[5], 但缺点是依赖于波形的空间相干性, 如果波形排列不好, 就很难在有效信号和噪声之间取得令人满意的分离。近年来, 深度学习被广泛应用于地震勘探的数据去噪中, 并在图像去噪领域受到了广泛的关注[6-7], 成为目前的研究热点。Jain等[8]将卷积神经网络用于自然图像去噪, 为衰减地震数据噪声奠定了基础。韩卫雪等[9]将卷积神经网络与残差学习相结合去除地震随机噪声。王钰清等[10]提出基于数据增广和卷积神经网络的地震随机噪声压制方法, 该算法能直接从无标签实际有噪数据生成标签数据集。俞若水等[11]应用深度卷积生成对抗网络对瑞雷波信号除噪声。
目前, 生成对抗网络模型应用于地震数据去噪的研究尚处于逐步深入研究阶段[12]。卷积神经网络(CNN: Convolutional Neural Network)对特征提取、 去噪领域有明显的效果, 尤其是处理二维数据时更为有效。笔者用CNN搭建CycleGAN的生成器与判别器的主干路, 并采用非局部神经网络模块作为生成器的残差链接[13]。该网络能使含噪数据与无噪数据相互生成, 故而可以增加循环一致性损失促使生成样本更接近真实样本。通过合成数据与实际地震数据进行去噪实验并与其他去噪方法对比, 验证笔者算法的可行性与去噪效果。
1 基于深度卷积对抗网络的去噪方法
1.1 CycleGAN生成对抗网络的基本原理
生成对抗网络的基本思想是相互博弈的纳什均衡理论, 其中生成器(Generator)负责将含噪数据(n)生成近似真实数据的样本(c), 以此欺骗判别器, 目标是使D(G(n))≈1; 判别器(Discriminator)负责对生成的样本进行判断, 发现假样本, 目标是使D(G(n))≈0, 如此循环往复训练当判别器很难分辨出真假时即网络训练成功[14]。
CycleGAN是由两个镜像对称的GAN网络构成的环形网络[14], 含噪数据与无噪数据相互生成, 相互判别, 优点是能引入循环一致性损失与对抗损失函数相结合提高网络训练的准确率。模型框架如图1所示。
图1 CycleGAN框架图
(1)
判别器的损失函数为
ιD(G,D,n,c)=Ec~Pdata(c)[(Dc-1)2]+En~Pdata(n)[D(G(n))2]
(2)
循环一致性损失函数为
ιcyc(G,F)=λ(Ec~Pdata(c)[‖G(F(c))-c‖1]+En~Pdata(n)[‖F(G(n))-n‖1])
(3)
其中式(3)中λ为循环调节因子, 根据图像纹理的复杂程度选取[15], 笔者取值为8。
1.2 非局部神经网络
卷积神经网络只能提取局部特征, 不能覆盖全局, Wang等[16]提出一种非局部神经网络。非局部操作有如下优点: 1) 能实现二维数据中任意两个位置的交互, 忽略其距离的远近; 2) 其输入尺寸可以变化, 因此, 可与卷积神经网络相结合。其数学模型定义如下
(4)
其中x为经卷积后的特征图;y为残差输入, 尺寸与x保持一致;i、j为二维数据的位置索引;g为一种非线性映射, 实质就是卷积核为1×1尺寸的卷积,f为用于度量远距离特征之间相似性的嵌入式高斯函数, 定义如下
f(xi,xj)=eθ(xi)Tψ(xj)
(5)
其中θ(xi)=Wθxi、ψ(xj)=Wψxj均为卷积核为1×1尺寸的卷积映射,Wθ、Wψ为需要网络训练的权重。归一化因子
(6)
图2 非局部残差模块
Z=Wzy+x
(7)
其中Z为残差链接的总输出,Wz为卷积核1×1的权重。
卷积神经网络是通过增加网络层数获取全局特征, 但盲目的增加卷积层数可能导致网络训练难度加大, 梯度饱和时, 网络仍没有训练成功。笔者综合考虑非局部神经网络的优点, 将其与卷积神经网络相结合, 初次尝试将非局部操作引入生成对抗网络中, 作为生成器的残差链接, 以提取空间序列数据的全局信息, 提高CycleGAN的去噪能力。
1.3 CycleGAN的各层间结构
输入生成器的含噪数据在计算机的存储下是一个m×n×1的矩阵, 经过第1层卷积有32个特征图, 经链接非局部残差模块传至下一层, 以此类推, 经过最后一层卷积有256个特征图; 再经过逐层的转置卷积使特征图的个数反向减少, 并且使二位地震数据的尺寸逐渐扩大复原, 保证输出依然是m×n×1的大小, 输入判别器。生成器的层间结构如图3所示。
图3 生成器的层间结构
笔者设计的CycleGAN的生成器的层间结构由4个卷积层(Conv)、 4个非局部残差模块(Res1-Res4)、 4个反卷积层(Transpconv)构成, 卷积与转置卷积的卷积核大小设置为4×4×1, 步长为2, 激活函数使用LeakyReLU和Tanh, 在卷积层和激活函数之间加入实例标准化层(Instance Normalization)。
将生成器生成的数据输入判别器, 经过多次卷积层、 标准化层、 激活函数层, 得到生成数据的256个特征图。将256个二维的特征数据重组成一列向量进行全连接, 得到一个0~1之间的实数, 进行损失判断。判别器的层间结构如图4所示。
图4 判别器的层间结构
笔者设计判别器的层间结构有4个卷积层、 1个全连接层, 卷积核大小设置为4×4×1, 步长为2, 激活函数为LeakyReLU, 加入实例标准化层。
1.4 笔者构建CycleGAN的特点
1) 生成器中使用转置卷积上采样扩大数据尺寸, 使输出数据的尺寸大小与输入保持一致。
2) 将非局部神经网络作为残差引入CycleGAN的生成器中。
3) 实例标准化是对单个图片的所有像素求均值和标准差, 能解决协变量偏移问题, 防止因数据初始化不良导致网络训练不稳定。
4) 较大和更多的卷积核可以覆盖和提取的特征, 一般使用4×4的卷积核可以取得较好的效果, 保持平滑性。更多的卷积核可以捕获更多的特征, 在卷积层递增的过程中使特征图的个数指数增加, 防止因深度的增加导致提取的特征变少使生成的图像模糊。
5) 为使网络在训练过程中有稳定的梯度变化, 减少梯度爆炸的可能性, 损失函数使用最小平方损失, 而非对数似然损失。
6) 使用自适应矩估计(ADAM: Adaptive Moment Estimation)作为网络的优化算法, 通过计算损失梯度的矩估计动态优化网络的参数, 此优化算法简单实用, 计算效率高, 对存储容量要求不高。
2 模型数据测试
利用Tesseral_7.2.8合成的地震数据对构建CycleGAN进行验证并与普通GAN等方法进行对比。合成的地震数据含有100道, 每道有150个采样点, 对该数据样本分别扩充200份样本集和400份样本集。对样本集数据人为添加均值为0、 方差为0.01的高斯白噪声作为数据输入模型。在不同模型的去噪效果对比前, 使用不同数量的样本集检验训练样本数量对CycleGAN去噪性能的影响, 方案1使用200份样本集作为训练集; 方案2使用400份样本集作为训练集。该网络模型的训练运行在Matlab(2020a)的环境下, 借助Matlab的Deep Learning Tool训练网络模型, 迭代历元(epoch)设置为60次, 采用adam优化网络的参数, 学习率设为0.000 2, 一阶矩估计的衰减率设为0.5, 二阶矩估计的衰减率设为0.999, 进行网络训练, 训练时间约3 h。随着计算机硬件图形处理单元(GPU: Graphic Processing Unit)的发展, 为节约训练时间可将数据传送GPU上加速训练。用均方根误差(MMSE)、 峰值信噪比(PSNR)评估网络的去噪效果, 定义如下
(8)
(9)
图5 不同数量训练集下CycleGAN的去噪性能对比
从图5可以看出, 在历元次数的初期方案2的均方误差衰减更快, 误差更低, 峰值信噪比优于方案1。随着历元次数的增加, 两种方案的均方误差逐渐逼近, 这说明对抗网络在一定程度上能克服低数量样本问题。方案1的均方误差衰减慢, 为得到较低的误差, 需要迭代更多的次数。综合考虑, 去噪实验中样本集选用400份, 利用合成地震数据训练的对比结果如图6所示。
图6 合成数据样本训练结果评估对比图
由图6a可知, CycleGAN训练的均方误差衰减的更快, 波动较小更加稳定并且误差更小; 与图6b对比可知, CycleGAN生成数据的峰值信噪比更高, 去噪效果更好。
3 实际地震数据的去噪实验及分析
采用笔者的去噪方法对某地实际勘探采集的地震波数据进行去噪实验。对实际的每份样本数据集进行道间均衡和归一化处理, 并将其分为400个互相重叠的尺寸为50×50的小窗口作为标签数据集。对样本集添加均值为0, 方差分别为0.01、0.02、0.03的高斯白噪声作为含噪数据加入生成器训练, 以不同信噪比的样本集对笔者的网络模型进行训练, 评估训练过程中的去噪效果, 并与其他方法的去噪效果进行对比。
采用与处理合成地震数据相同的网络模型、 超参数, 对采集的实际数据进行去噪实验, 结果如图7所示。由图7可见, CycleGAN网络的去噪性能较好, 其中均方根误差较低、 峰值信噪比更高。
图7 方差为0.01高斯噪声下多种方法去噪性能对比
为查看已得训练网络的泛化能力以及去噪性能, 用预留的一炮数据验证针对不同噪声水平的训练网络, 为更直观地显示去噪程度, 数据可视化如图8~图10所示。
图8 实际地震数据的不同去噪方法结果对比
图9 实际地震数据的不同去噪方法结果对比
图10 实际地震数据的不同去噪方法结果对比
通过定量的方式评估对实际数据去噪的性能, 在不同的噪声水平情况下, 3种方法的性能指标峰值信噪比、 均方误差如表1所示。由表1可以看出, CycleGAN的各去噪性能优于其他方法的性能指标, 并且随着随机噪声的集中, 3种方法的各性能指标都有所下降。随着噪声的增强, 由生成对抗网络构建的模型, 去噪效果有明显的抗饱和能力。
表1 实际地震数据的两种去噪方法的性能指标对比
网络结构的搭建及参数的设定可使网络的训练越稳定, 随着历元数目的增加, 生成数据的性能指标会越好, 可视化的数据图像会逐渐清晰, 部分历元的生成如图11所示。
图11 CycleGAN的部分历元生成图
4 结 语
地震数据去噪是地震数据处理的关键一环, 获得清晰的数据图像可方便解释工作。笔者将深度学习领域中的循环生成对抗网络用于地震数据去噪。该去噪方法的关键在于搭建一个基于卷积神经网络去噪的生成器和判别器, 网络层中包含卷积层、 非局部残差模块、 转置卷积层和全连接层。为提高训练精度在权重层之间分别加入 LeakyReLU、 Tanh激活函数, 使用实例标准化层, 防止过拟合。用合成及实际数据进行去噪实验, 与其他方法的去噪性能对比, 结果显示具有较好的去噪效果。下一步工作是对 CycleGAN 网络结构的超参数进行调试提高去噪性能; 并且可尝试着将深度学习神经网络用于对地震数据相干噪声的识别与去噪。