深度学习

理解和使用深度学习网络

Mathworks赢得Geoscience Ai GPU Hackathon

以下是来自MathWorks的Akhilesh Mishra, Mil Shastri和Samvith V. Rao关于他们参与地球科学黑客马拉松的文章。Akhilesh和Mil是应用工程师,Samvith是支持油气行业的行业营销经理。金宝app

背景

SEAM (SEG Advanced Modeling Corp.)是一家石油地球科学行业机构,致力于促进行业、政府和学术界之间的合作,以应对主要的地质挑战。他们最近的活动是黑客马拉松(Seam AI应用地球科学GPU Hackathon),试图探索使用人工智能来提高地球内部地球物理图像的定性和定量解释,并使用NVIDIA gpu加速应用。
共有7个团队从全世界参加,包括商业公司(雪佛龙,总,Petrobras)以及一系列工业和大学生。每个团队都被分配了一个导师,他是一家专家为一家顶级石油和天然气公司工作的地球科学家。

挑战

调查数据的地质解释 - 尤其是地球内部的原始地震图像是石油和天然气工业的重要一步。地震图像描绘了地球内的岩石岩石,术语总结了不同的物理和地质特征“相”。解释图像的一个重要步骤 - 该探索,钻探,生产和放弃地下水库 - 是识别和分类地震形象中的所有不同地质相的分类,经常被称为地震相识别或分类
这个过程仍然主要由地质学家在地球物理数据收集、处理、成像和显示方面的专家协助完成。成功的解释者是识别特征的专家,如通道、大规模运输综合体和塌陷特征。
黑客马拉松的问题在于训练一种自动识别地震图像中不同地质相的算法,产生一种可以被认为是地质学家专家的解释,或者被用作加快人类解释速度的起点。

数据

我们曾获得了从新西兰海岸的北息地区绘制的以下数据集。这个数据向公众开放并被雪佛龙的一位地球科学家标记。下图显示了本次挑战中使用的3D地震图像的两个垂直切片和一个水平切片的渲染图。使用标准笛卡尔坐标系绘制图像,X和Y测量地表附近的水平位置,Z测量地下深度。

图1:Parihaka地震数据图像(TOP)和对应标签(BOTTOM)的XZ、YZ、XY切片三维视图

训练数据集是一个3D图像,表示为大小为1006 x 782 x 490实数的矩阵,按顺序或(Z, x,Y)存储。训练数据对应的标签也是类似的排列方式,由1到6之间的整数组成。下图2给出了XZ切片的一个二维横截面图中每个像素的回波强度图和对应的标签。

图2:2D XZ切片(左)的横截面视图,以及6个相的图像的像素 - 逐个像素分类(右)

我们的方法

目前大多数自动地震相标记技术都是使用卷积神经网络进行语义分割[1][2][3]。然而,这些方法中有很多都存在过拟合的问题,并且提到训练算法只适用于接近模型训练数据集的调查区域。如果该算法用于来自不同地理位置的数据集,则该模型可能需要重新培训。
我们想利用在这个领域已经完成的工作,提出一种不太容易过度拟合的技术,可以应用到更广泛的地理区域,而不需要再培训。
那是我们想到服用的时候ieee的方法:由于3D图像体积由1D回波信号构成,因此可能有一些可能利用这些回波的独特签名跨越不同的相。
图3显示了二维图像的一小部分,信号叠加在相上。经过仔细观察,我们可以看到每个信号,也称为“痕迹”,当它遇到不同的相时,有一个独特的特征。例如,在图像中部从“深蓝”相过渡到“绿色”相时,信号有一波高振幅的脉冲快速振荡,而在“浅蓝色”和“深蓝”相之间的界面振荡较慢,振幅较低。地质专家经常在像素值的垂直序列中寻找这些特征,以确定不同相之间的关键界面。

图3:图像值(红色)的绘图作为深度的函数,叠加在小部分中的相形解释上。注意,在正极和负值之间快速交替的高回声幅度的突发是在图像的中间部分之间的“蓝色”和“绿色”相之间的转变的特征。

接下来,我们使用了经常性的神经网络(RNN)架构使用输入迹线训练逐个序列分类网络,但在我们初步尝试中,网络无法收敛。这主要是由于信号长度是相当长的,并且不同的信号功能随时间变化很快。如果我们可以将唯一的相符分开到单独的渠道中,我们可能会有更好的培训网络的机会。
我们决定利用小波多分辨率分析技术:多分辨率分析(MRA)使用离散小波变换将信号分解成分量,将数据的变异性分解成物理上有意义和可解释的部分。在我们的案例中,我们直接使用MRA信号多分辨率的应用在MATLAB中,并经过实验通过各种离散小波,用fk14小波对信号进行分解得到了最佳的结果,并将信号分为5个层次。

图4:使用FK14小波将原始信号的多分辨率分解成四个级别+近似。这是使用MATLAB中的信号MULTISOLUSOONT应用程序完成的

通过选择输出选项,我们还直接从这个应用程序生成MATLAB代码,对所有信号使用MRA进行相同的小波分解。
%加载培训数据和标签load data_train.mat;加载labels_train.mat;%将数据转换为双精度,将标签转换为分类数据类型data = double(数据);标签=分类(标签);%对所有迹线应用最大重叠离散小波变换DataMra = Zeros([大小(数据),5]);AIC = 1:782用于JJ = 1:590 DataMra(:,II,JJ,:) = MODWT(数据(:,II,JJ),'FK14',4)';结束结束
现在我们有5个频道为每条痕迹。为了捕获附近迹线的相关性,我们将3x3在XY平面中分组的3x3迹线一起使用,并使用它来培训中间迹线的相同标签。这是假设XY平面中的信号分辨率足够低,以至于地震功能不会跨3x3样品网格改变。图5显示了将数据集分组为3x3网格,可为每条跟踪为5个通道。

图5:将数据安排到训练集中

dataTrain = {};labelsTrain = {};drawtext ((dataMRA(:,ii-1:ii+1, jj-1:jj+1,:)), [1 4 2 3]), color0000ff;dataTrain(ii+jj-3,1) ={重新塑造(tempData, [1006 45])'};labelsTrain (2 + jj-3, 1) ={标签(:,第二,jj)};结束结束

在此阶段,我们还将我们的数据集分为培训期间要使用的培训和验证集。为了使我们的网络强大,我们随机选择了782x590的3000次追踪,以进行培训,并使用剩余的网络验证。
idx = randperm(大小(数据标rain,1));%培训数据和标签trainData = dataTrain (idx (1:1000));valData = dataTrain (idx(1001:结束));%测试数据和标签TrainLabel = Labelstrain(IDX(1:1000));vallabel = labelstrain(IDX(1001:结束));
接下来,我们准备构建用于培训的深度学习网络。数据集被排列成在Z方向上一个序列一个序列地馈入RNN。最初,我们从长短期记忆(LSTM)层开始,但经过几次迭代后,我们意识到门通循环单元(GRU)层能够提供更好的性能。利用MATLAB中的deep Network Designer应用程序构建深度学习层,并利用网络分析工具进行分析。图6显示了Deep network Analyzer App上的网络的完整架构及其分析。如果你看看这个网络,我们有第一层是序列输入层,输入大小为45 (3x3x5通道),最后的分类层的大小为6x1,对应于它将为每个标签类别预测的分数。

图6:深度网络设计器应用程序以架构RNN层(顶部)和网络分析(底部)

我们可以通过从应用程序导出代码直接生成图层架构的MATLAB代码。
inputSize = [45];numHiddenUnits1 = 20;numHiddenUnits2 = 30;numClasses = 6;grulayer =[…sequenceInputLayer (inputSize‘名’,‘InputLayer’,……'归一化','zerocenter') gruLayer(numHiddenUnits1,'Name','GRU1','OutputMode','sequence') dropoutLayer(0.35,'Name','Dropout1') gruLayer(numHiddenUnits2,'Name','GRU2') dropoutLayer(0.2,'Name','Dropout2') fullyConnectedLayer(numClasses,'Name',' fullconnected ') softmaxLayer('Name','smax');classificationLayer('名称',' classificationLayer '));

在此步骤之后,我们定义了深度网络培训的培训选项。使用Matlab AWS参考架构云图像对单个NVIDIA安培A100 GPU进行培训。图7显示了深度学习培训进度。

maxepochs = 300;minibatchsize = 15;选项= transtractoptions('adam',...'executionenvironment','auto',...'l2regularization',1e-3,...'italllearnrate',1e-3,...'maxepochs',maxepochs,......'minibatchsize',minibatchsize,...'shuffle','每个时代',...'verbose',0,...'plots','培训 - 进展',...'validationdata',{valdata,vallabel});[netgru,infogru] = Trainnetwork(数据标记,Labelstrain,Grailayers,选项);

图7:深度学习网络的培训进度

结果

比赛持续了2个星期结果被宣布4月22日n2021.这场比赛经历了几次高潮和低谷。在提交之前的那个周末我们有3个不眠之夜。在我们想出最终解决方案之前,我们不得不反复使用不同的方法。我们一开始是在原始信号上训练lstm,然后逐渐添加额外的技术,最后得出最终的解决方案。
有3个指标来判断提交质量:
  1. 相片的F1分数在面部之间的不同加权:2个相5和6的最高权重,因为这些是最重要的。
  2. 相加权像素正确百分比:相5和相6的权重最高,因为它们在地质上是最重要的。
  3. 接口加权F1分数:针对每个像素计算F1分数,在界面的10个样本内具有像素的20倍,给出所有其他样本的重量。

MathWorks被宣布为测试数据集1的获胜者。我们的提交被裁定为“地质一致”,f1加权得分是下一个竞争团队的两倍多!我们的导师称我们的方法是“独特的”,因为它需要大量的信号处理,而不是完全由深度学习驱动的。

图8:MathWorks得分最高的结果排行榜。注意MathWorks和其他团队的f1加权得分差异!

图9:计算数据集的加权F1分数计算

下一步是什么

  1. 我们现在有一个全新的、功能齐全的地震相分类解决方案(如果您联系我们,我们将很高兴给您发送代码deep-learning@mathworks.com)。我们强烈地认为这种方法将有助于克服卷积神经网络的局限性。
  2. 我们将把CNNAgraproach [1] [2]与RNN深度学习网络方法结合起来,目标是为了获得与图像和信号方法的最佳预测。图10显示了未来的工作架构,我们将在XZ和YZ平面上培训两个不同的2D磁盘,并将其与RNN网络预测结合起来。对于每条迹线,我们将具有3个网络的分类,池算法将分析得分并挑选最终预测类。

图10:将UNET与RNN合并的未来工作进行相容分类

参考

[1]梁驰陈,乔治帕潘德里欧,Iasonas kokkinos,凯文墨菲和艾伦·梅尔。DEEPLAB:具有深度卷积网,不足卷积和完全连接的CRF的语义图像分割.计算机工程与应用,2018,40(4):834-848。
[2]王增艳,李芳玉,塔哈,哈米德。利用深度扩张的关注自动化器改进了自动化地震相分析。会议:2019年电脑视觉和模式识别研讨会上的IEEE / CVF会议(CVPRW)
[3]耿志刚,王永强。用于经济高效地震数据分类的多尺度滤波器卷积神经网络的自动设计.Nat Commun 11,3311(2020)。https://doi.org/10.1038/s41467-020-17123-6
|
  • 打印
  • 发送电子邮件

コメント

コメントを残すには,ここをクリックしてMATHWORKSアカウントアカウントサインインするか新闻MATHWORKSアカウントを作品成します。