APP下载

基于卷积神经网络识别重力异常体

2020-04-22王逸宸柳林涛许厚泽

物探与化探 2020年2期
关键词:重力卷积神经网络

王逸宸,柳林涛,许厚泽

(1.中国科学院 测量与地球物理研究所,湖北 武汉 430077; 2.中国科学院 大地测量与地球动力学国家重点实验室,湖北 武汉 430077; 3.中国科学院大学 地球与行星科学学院,北京 100049)

0 引言

作为机器学习的基本方法之一,神经网络自产生以来经历了从兴起到相对沉寂再到繁荣的发展过程。近十年来,随着计算机计算能力的迅猛提升,尤其是GPU加速计算及云计算等技术的迅速发展,以深度神经网络为代表的深度学习技术成为工业界及科学计算领域最有效的技术之一,在许多应用中实现了超过传统方法的效果,并成为人工智能技术的根基之一。

在地球物理反演及解释领域,机器学习是与遗传算法、贝叶斯反演等方法同为重要的非线性计算方法[1]。在重力方面,除使用非神经网络的机器学习方法如随机森林方法解决地球物理问题之外[2-3],基于BP神经网络出现了不少反演算法[4-6],充分证明了机器学习对地球物理反演问题的有效性。径向基函数网络可在约束条件下解决反演问题,相较于BP神经网络训练速度更快,泛化能力更高[7-8]。模块神经网络(MNN,modular neural network)应用于异常体的识别和模式分类,效果良好[9-11]。Osman等提出强制神经网络(FNN,forced neural network)解决二维剖面重力异常体识别问题[12]。数据处理方面,任强强等[13]用小波神经网络预测重力观测盲区,比克里金法更适应复杂情况。

机器学习的本质是表示学习[14],即将一个数学或物理模型表示为另一种形式,针对学习对象形成更高级的抽象或另一种角度的表示。传统的神经网络结构仍存在各种不足[15],如泛化不足或过拟合的存在。随着深度学习技术的发展,近年来出现了各种高级结构的神经网络[16],如适用于处理时序模型的循环神经网络(RNN,recurrent neural network)及适用于生成特定领域模型的生成对抗神经网络(GAN,generative adversarial network),在相关领域已取得非常成功的应用。而卷积神经网络(CNN,convolutional neural network)尤适于处理具空间特性的模型,如二维图像[17]。卷积神经网络深度学习在图像处理和识别领域已经成为最重要的技术手段。

卷积神经网络模型的最初模型是LeNet[18],受神经科学中对猫的视觉系统研究的启发,将“感受野”特性引入到神经网络中,构造卷积层[19]。由于训练困难,该方法一直处于沉寂。直到近年来GPU计算技术的实用化,新出现的AlexNet将卷积网络深度显著[20]增加,在图像识别比赛中取得优异成绩。随后,深度更大的深度卷积神经网络模型不断刷新准确率记录[21-22]。深度残差网络(DRN, deep residual network)可有效应对训练中梯度爆炸或消失的现象[23]。目前,卷积神经网络具有训练速度快[24],准确率高的特点。

笔者利用卷积神经网络强大的图像识别特性,将重力观测等值线图看做二维图像,建立密度异常体的参数模型,利用深度学习识别异常体在三维空间的参数。在模型试验中训练和测试样本,并将学习得到的卷积神经网络迁移到实测数据下验证方法的有效性。

1 方法原理

卷积神经网络最初的设计理念是直接识别图像中的具象对象,如人脸,动物和日常物体等。但它并不是仅能识别具象对象,比如可用卷积神经网络识别人脸的年龄和性别[25],或识别图像中的高度抽象概念,比如摄影图像中的景深等[26]。基于这些特性,卷积神经网络有可能从重力等值图中识别重力异常体的深度和大小等参数。

1.1 卷积神经网络

图1是一个用于图像分类的典型卷积神经网络结构。除了具备通用神经网络的结构(输入层inputs, 输出层outputs, 隐层hidden cells)之外,还具备由卷积神经元或池化神经元构成的卷积层(convolution or pool)。在通用的神经网络中,隐层又称为全连接层,隐层中每一个神经元都与前一层的所有神经元连接。一个隐层与其前一层之间的神经元权值的关系可表达为

y=wx+b,

(1)

其中:y是隐层神经元输出,x是输入,w、b分别为两层神经元之间的连接权组成的矩阵及每个神经元的阈值,两层之间的关系为数学意义上的线性关系。训练过程即通过反向传播算法确定w、b的值,需要训练的参数与两层神经元数量的乘积成正比,参数数量巨大。而卷积神经网络的卷积层使用卷积核对图像实施卷积运算

Y=w⊗X,

(2)

其中:⊗表示二维卷积运算,此处w是特定尺寸的卷积核,此时将输入和输出图像看做矩阵X、Y。该卷积核在输入图像上滑动,与在卷积核范围内位置对应的像素相乘并求和,得到位于卷积核中心位置的输出图像像素值。每一层卷积层一般引入多个卷积核,用以提取不同的局部图像特征,故输入一个图像,将得到多个相同尺寸的图像,称为特征图。在卷积层中,图像的局部像素共享同一个卷积核,相当于神经元共享同一个权值。这样不仅减少了权值参数数量,还能提取二维(乃至三维)的图像特征,共享权值的卷积层是卷积神经网络的独特优势。

图1 卷积神经网络结构Fig.1 The structure of the CNN

在卷积层组内,除卷积层本身,还存在池化层,池化层的作用是将卷积得到的每个特征图降采样为尺寸更小的特征图,减少参数,同时提取到更高阶的图像特征。一般一个卷积层后紧接一个池化层。

卷积层位于隐层前面,最后一个卷积层(或池化层)的二维输出被展平为一维向量,馈入到隐层中,此后的网络结构即为一个普通的前馈神经网络。

1.2 用卷积神经网络识别重力异常体

基于深度学习识别重力异常体,需要解决二个难点。第一个难点是如何获得训练数据,在理想状态下,应当学习所有可能存在的重力异常体复杂形态及其重力响应,这在目前条件下不能实现,因为难以获得足够数量已被精确建模的异常体样本。即使获得了大量异常体样本,需要对这些不规则异常体进行精确的正演,获得重力响应作为样本标签,这需要借助高精度建模正演,将耗费大量计算成本。第二个难点是如何参数化异常体几何形态,异常体形态复杂多变,目前没有使用参数少同时精准的几何描述方法,在深度学习识别任务中,需用更具普遍性的参数来描述其几何性质。

基于这两个难点,笔者采用深度和线度参数化异常体,可以同时解决训练样本获得和复杂形态异常体参数化这两个难点。不能用简单几何体准确参数化实际异常体几何形态,但整体大小是简单几何体与复杂几何体共有的性质。简单几何体的深度和线度容易计算得到,可用简单几何体建立具有深度和线度的训练异常体样本集。这样就将训练集异常体与待识别的异常体的几何性质通过线度联系起来。同时简单几何体可快速用解析正演公式计算重力,不需通过高精度建模正演,有效解决建立大量训练样本集的问题。

同时,深度和线度具有重要应用价值,深度即异常体几何中心的深度,垂向分辨是重力勘探相比于地震等方法的弱势所在,本文旨在借助深度学习技术提高垂向分辨。线度描述异常体整体大小,可以直接导出体积,与在地质解释中重要的地质体规模有直接关系。另外,在体积信息的约束下,可进一步用其他方法展开反演解释工作,将有效降低解释的不确定性。

基于上述讨论,我们用六面体建立训练集异常体模型,该六面体在3个坐标方向上各有延伸长度lx、ly、lz,且中心埋深为d。待识别的参数为d以及表征描述异常体整体大小的线度l。六面体线度计算方式为

(3)

特别指出,卷积神经网络识别图像具有平移不变性,即同一对象出现在图像内不同位置,其识别结果是一致的。同时异常体的水平中心位置与重力等值线图像中心峰值位置存在充分的相关性,可用更为简单的传统算法确定异常体水平中心位置,故异常体水平中心位置的识别不在本文研究范围之内。同时,识别场源深度和线度无需已知异常或场源的水平中心位置。

同样形体的异常体,在密度不同时,其重力响应幅度不同。为提高识别的有效性,笔者采取固定密度的策略。在训练中,参与训练的异常体样本密度均固定为单位密度,即1 g/cm3。设学习到的神经网络模型中密度与重力响应包含如下关系,

GL(1,V)=g,

(4)

其中:GL为学习到的神经网络模型中包含的异常体与重力响应的关系泛函,1为单位密度,V代表特定形体的重力异常体。在应用中,若能先验取得密度信息,假设待识别异常体密度为ρ,该异常体在用单位密度异常体学习到的网络模型中应有的重力响应为g,待识别重力为g′,根据密度均匀异常体的重力响应特性,应有

(5)

只需将待识别重力整体除以先验密度送入模型识别即可。即使先验密度未知,也可以通过假定先验密度,得到不同的识别结果,以供进一步挑选。

进入训练阶段。首先,在一定坐标范围内,随机生成大量不同深度和尺寸的六面体训练样本,将他们密度设置为单位密度,正演计算得到各自的重力等值线图。这些样本的重力二维数据即为网络的输入样本。

接着,为得到训练样本的标签,提取六面体样本的中心埋深和线度,仿照卷积神经网络图像识别的做法,将每个样本的埋深和线度划入一定范围内的数值区间,标签向量为数值区间的分段数,埋深或线度所处的区间其值为1,其余为0,相当于标记了样本参数处于某个数值区间的概率。这些概率向量即为样本的标签。

最后,将输入样本和标签送入设计的网络模型实施训练,最终将待识别模型的重力输入学习好的网络,即可输出识别到的参数。对于观测数据存在多个异常的情况,需将各个异常分离出,各自送入卷积神经网络识别。对于相互无叠加或轻微叠加的异常,可直接将异常切出。对于相互叠加严重的异常,则需要通过相关方法先分离。

在训练过程中,用损失函数定义网络输出与样本标签的差异,最小化损失函数,从而优化网络模型。笔者采用卷积神经网络常用的信息交叉熵函数作为损失函数,并用RMSProp优化算法进行训练。深度学习神经网络优化不属本文研究内容,在此不赘述,可参考相关文献[15, 16]。

2 模型训练及测试

2.1 卷积神经网络建立与训练

重力二维测网中的每个测点相当于重力等值线图中的每个像素。综合考虑到神经网络训练速度,网络结构深度以及学习重力数据的精度,参考用于图像识别的卷积神经网络,本文设计如图2结构的卷积神经网络识别重力异常体。

重力异常体的中心埋深和线度,既可用同一个卷积神经网络同时识别,也可用两个神经网络各自识别。为避免两个参数的相互制约,提高准确性,本文将二者分开训练和识别。两个网络的结构和训练方法完全相同,下面统一介绍网络结构和训练方法。

设计高性能的卷积神经网络结构,要领在于恰当的深度和广度。根据近年来研究者们在图像识别领域的实践经验,要提高泛化能力,网络深度比宽度优先。因此,笔者设计网络结构也优先叠加网络层数,而不设置过多卷积特征图,以提高训练速度。

p=(p(y1),p(y2),…,p(y8)),

(6)

y=(y1,y2,…,y8),

(7)

yi=100.0·i,

(8)

(9)

(10)

图2 用于识别重力异常体的卷积神经网络结构Fig.2 The structure of CNN used to identify the gravity anomaly bodies

其中:y为中心埋深或线度的区间向量,其每个分量对应异常体参数中心埋深或线度值的划分区间。p的分量为中心埋深或线度处于某区间的概率,概率之和为1。在物理空间内,考虑到重力勘探中常见的异常体情况,笔者设置生成训练集异常体的深度和线度都在(100 m,800 m)范围内。在实际工作中,需要综合考虑训练计算成本和待训练及待识别的异常体参数情况设置输出区间,根据式(6)~(10)可知区间单元长度是该网络输出的参数期望的最小值,故必须不大于待训练和待识别参数的最小值。理论上,对于任意训练集及测试集,可将输出区间划分无限密,但这样大大增加网络参数量,增加训练耗时,并可能降低收敛性。根据深度学习领域工作者目前取得的经验,在网络达到一定规模后,继续增加网络宽度,识别精度不会进一步提高。综合考虑到输出层的神经元数量及参数范围,我们将深度或线度区间(0,800 m)设置为8个100 m的区间,根据式(6)~(10),此时网络输出识别参数期望最小值和最大值为100、800 m,足以识别所有参数。

文中使用tensorflow深度学习计算框架实现上述卷积神经网络结构。接着在物理空间范围内随机生成了1 000个六面体异常体模型,正演其重力异常为输入样本集,并提取其中心埋深和线度,生成样本标签向量集,进行训练。

在深度学习神经网络训练中,数据规模往往很大。因此,不同于传统神经网络每个样本送入网络后训练一次,而是将样本分批(batch)送入网络。每批内含有若干个样本,训练时,这若干个二维样本在网络内合成三维张量,同时输出由一维变为二维,计算每个样本的损失函数值,并对同一批内所有损失函数值取平均损失函数,作为网络优化的标准。每当所有样本都遍历过一次,称为完成一轮(epoch)训练。需要连续进行若干轮次训练以使网络达到优化。深度神经网络训练一般用高性能显卡实施,同一批内每个输入样本在网络中的输出和过程数据在同一时刻存在显存中,往往占用大量显存。因此,最佳批大小设置应刚好占满显存而不发生显存溢出,设置太小将虚置显存资源,设置太大训练将无法继续,需要根据采用的计算机和网络规模测试而定。

在神经网络训练中,学习率是网络参数更新的步长,设置合适的学习率有利于提高训练收敛性。学习率是小于1的无量纲参数,对于不同任务及数据集其取值水平不同。需通过数次测试观察损失函数收敛曲线确定。若损失函数值下降缓慢,可增大学习率。若损失函数值持续跳跃甚至发散,说明学习率太大,需减小学习率直至损失函数值平滑下降。

同时,深层神经网络对问题表达能力强,也存在负面效应,即过拟合现象。随着训练进行,网络可能将数据中不需要的特性也学习到,在识别时造成误判。处理过拟合现象有许多方法,笔者采取简单有效的dropout方法,即在优化的过程中随机丢弃一些神经元,不更新其网络权值。

2.2 模型测试

将1000个样本批大小设置为10,两个网络各经过约100轮训练,如图3a、3b分别为识别深度和线度的卷积神经网络损失函数变化曲线,各耗时300 s,损失函数收敛,停止训练。

a—识别深度;b—识别线度a—for depth identification;b—for size identification图3 卷积神经网络训练损失函数Fig.3 The loss of CNN during training

为评估卷积神经网络模型的识别准确性,设计4个不同深度和形态的异常体,编号为a、b、c、d。如图4,先建立4个长方体,其中心深度和长、宽、高分别为 (300 m,200 m,200 m,200 m)、(600 m,200 m,200 m,200 m)、(400 m,200 m,400 m,200 m)和(400 m,200 m,200 m,400 m),接着对长方体随机扰动建模使之接近实际异常体,形成测试异常体。异常体a与b对比可测试识别不同深度异常体的能力,c与d对比可测试识别形状相似而不同姿态的异常体的能力。对应的线度l由式(3)计算分别为200、200、252、252 m。设置密度都为1 g/cm3。并对正演的重力数据添加标准差为异常均值5%的高斯噪声,重力正演值如图5a~d,与图4a~d相对应。

图4 用于测试神经网络的异常体Fig.4 The gravity anomaly bodies used in CNN model

a—模型a;b—模型b;c—模型c; d—模型da—body a;b—body b;c—body c;d—body d图5 测试异常体的重力Fig.5 The gravity contour map of testing bodies

表1 测试异常体识别结果Table 1 The identified parameters of testing bodies

2.3 实例测试

为验证方法在实际重力数据中的识别效果,利用澳大利亚Kauring地区某重力试验场航空重力实测数据进行测试。数据已经过地形改正,选取测区内主要重力异常,将数据重采样为适合卷积神经网络输入的格式进行识别。图6为该重力异常测量数据。该套数据空中测网高度为65.0 m,因此识别出的中心深度为重力异常体距测网的铅垂距离,减去测网高度为异常体中心深度。根据前人研究资料[27-29],该异常体剩余密度约为2.4 g/cm3,在输入神经网络前按照式(5)对重力数据进行预处理。

用图3中所训练的卷积神经网络对该异常体进行识别,表2为本文与前人用不同方法得到的对比结果。本文识别出该异常体中心埋深为421.6 m,线度为148.8 m。排除最早等效源方法[27]的粗略识别结果,与二例用重力密度反演方法得到的结果相符[28-29],异常体的中心埋深和线度都符合良好。可见,所训练的卷积神经网络具有对实际数据的泛化能力,能有效识别实际重力异常体的埋深和大小。

图6 Kauring试验场的重力异常Fig.6 The measured main gravity anomaly in Kauring testing ground

表2 Kauring测区异常体识别结果与前人对比Table 2 Comparison with known results of main gravity anomaly bodies in Kauring

3 结论与建议

本文将深度学习技术与重力异常体识别相结合,用图像识别领域广泛应用的卷积神经网络识别重力异常二维数据的异常体。采用随机建模和重力正演生成训练所需的样本。卷积神经网络训练快速。相较于传统神经网络仅识别埋深,卷积神经网络同时可识别表征异常体大小的线度。在测试模型中识别异常体中心埋深和线度参数,对于不同深度和姿态的异常体,准确性良好,且可识别不同姿态的异常体。同时对重力观测噪声不敏感。当异常体响应为弱重力信号时,识别准确度有所下降,仍在有效范围内。在实测重力异常识别中,识别结果与前人用密度反演得到的异常体参数相符。说明训练好的卷积神经网络具有良好的泛化能力,可识别实测重力异常体。同时应注意到,卷积神经网络训练耗时较一般的高精度反演算法少,不需密集的重力测网,而能达到同等的异常体揭示效果,这使之能够成为重力异常解释有力的新方法。

本文使用的卷积神经网络结构较传统神经网络复杂,但在深度神经网络的角度上仍属于简单结构。在重力异常体识别任务上,深层神经网络的性能仍有巨大潜力可挖掘,更深的网络,更复杂的结构,都将进一步提高识别的准确性。同时,卷积神经网络训练存在耗时,而一旦训练好,识别不存在耗时,可能成为未来实时观测重力解释的备选技术。最后,卷积神经网络结构若用在重力梯度等信息更丰富的重力数据中,将进一步释放其解读空间重力数据的能力,是值得研究的方向。

猜你喜欢

重力卷积神经网络
重力消失计划
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
重力之谜
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
基于Q-Learning算法和神经网络的飞艇控制