APP下载

基于深度学习与数据增强技术的小样本岩石分类

2022-02-03张超群易云恒周文娟秦唯栋刘文武

科学技术与工程 2022年33期
关键词:池化层岩石准确率

张超群, 易云恒, 周文娟, 秦唯栋, 刘文武

(1.广西民族大学人工智能学院, 南宁 530006; 2. 广西混杂计算与集成电路设计分析重点实验室, 南宁 530006)

岩石分类是油气勘探中一项十分重要的环节,主要根据岩石的物理性质对岩石进行分类。例如,文献[1]应用取心井岩心样品的孔隙度、渗透率和毛管压力数据,采用Winland R35方法划分碳酸盐岩油藏的岩石类型。

这类方法需要专业设备来获取数据,往往难以大规模普及。随着人工智能技术的发展,越来越多的行业开始采用该技术来提高工作效率,其中,机器学习作为人工智能的一个分支也被应用于岩石分类,可分为两种应用方法:一种方法是利用机器学习中的白盒模型包括支持向量机(support vector machine,SVM)、邻近算法(K-nearest neighbor,KNN)等方法构建模型进行分类,例如,文献[2]将岩石的光谱数据收集起来,用机器学习的白盒模型进行分类,这类方法也需要获取岩石数据进行数理统计,仍需专业设备,较难获取所需的数据;另一种方法是利用机器学习中的黑盒模型,即使用深度学习等算法构建模型进行分类。近些年,随着深度学习技术的发展,利用深度学习技术分类的研究逐渐增多。

深度学习是指多层神经网络上运用各种机器学习算法解决图像分类等问题的算法集合。利用最新的深度学习技术,可以构造一个卷积神经网络[3](convolutional neural network,CNN)进行监督学习来完成岩石分类。这类方法往往只需要一些岩石图像与一台计算机就能对岩石进行分类,其效率和总体准确率较高。例如,文献[4]建立一个岩石图像集分析的深度学习迁移模型,运用迁移学习方法实现对少量岩石岩性进行自动识别与分类,该文献中每类岩石的样本数量都超过150张,但需分类的岩石种类仅有三种,而且不同类型岩石的特征明显;文献[5]从各大高校、博物馆、实验室中获得大量的训练数据,该文献将GhostNet的Ghost Bottlenecks模块和InceptionV4的Inception-A模块进行整合和调优,提出一种新型的岩石分类模型,该模型虽然效果较好,但是所用数据集质量极佳,该模型在训练数据稀少的情况下能否达到可观的效果,犹未可知;文献[6]为了提高岩石分类的速度,将岩石分类与目标检测结合,提出一种利用FastRCNN与YoLo进行岩石分类识别的方法,利用目标检测方法进行图像识别的优点是速度特别快,并且可以在同一张图片中识别出不同类型的岩石,但是,其缺点是该类模型对于岩石识别的准确度无法保证,这是因为目标检测先要检测对象位置,再去进行图像分类,其任务要比单纯的图像分类多一个步骤,如果要速度快,则势必会降低准确度,并且目标检测模型的数据集难以标注与处理;文献[7]在微观上对岩石样本进行特征提取,该文献同样使用深度学习技术,并比较常用图像分类模型在给定条件下对岩石分类的效果,所提出的方法效果很好且具有一定可行性,但是在大多数场景下,人们并没有可以提取岩石微观信息的设备,所以该方法应用领域还是相对有限。由这些文献可知,深度学习技术在岩石样本识别中具有广泛的应用,但也存在一些不足。例如,在文献中很少讨论样本数据不足,样本数据质量差的情况[4],也没有考虑到样本数据标注与处理的困难[6]。

实际上,由于岩石的采样及制成岩石样本图像费时费力,多数情况下能获取到的岩石样本图像非常有限。对于样本数据不足的图像分类问题,可以采用一些商业模型如EasyDL[8]等或者是采用GAN网络[9]、迁移学习[10]来解决,这些方法都具有一定的可行性,但也存在不足。例如,EasyDL等作为一种闭源的商业模型,其安全性与可靠性难以保证。从现实逻辑来看,采取GAN网络生成数据方法对于岩石样本这类复杂数据而言充满了不确定性,而单纯使用迁移学习,不一定能很好地解决样本数据不足的图像分类问题[11]。因此,为了有效解决该问题,可以考虑用数据增强技术来获得更多的样本,这样可以最大化地利用已有的数据集提供的信息。

为了在训练样本数据量不足的情况下取得一个拥有较好效果的模型,文献[12]研究多种数据增强方式对于图像识别效果的影响,该文献指出,在小样本情况下,数据增强具有一定的实践价值。文献[13]将数据增强技术运用于苹果花检测任务,通过实验证明在实际应用中数据增强技术往往能带来更好的效果;文献[14]利用大样本血清红外光谱数据结合深度学习算法来诊断甲状腺功能是否异常,该文献同样使用数据增强技术提高模型的效果。这些研究充分说明在数据量不足的情况下,利用数据增强技术也能有不错的效果。

据悉,目前鲜有利用深度学习技术对岩石进行分类的研究,现有的研究仅采用迁移学习且岩石种类较少,但样本图像相对较充裕[4]或是有专门的机构提供大量数据[5]。考虑到大多数情况下很难获得足够的岩石样本,而在小样本分类中,数据增强的本质就是将一份数据通过不同的变换生成多份数据[12],其实现简单高效。鉴于以上原因,现主要结合深度学习、数据增强技术来设计一个新的简单实用的MyNet模型,以实现对少量或有限的岩石样本图像进行岩石分类。

1 人工神经网络

1.1 全连接神经网络

全连接神经网络[15]是一种基础的神经网络,主要分为输入层、隐层和输出层。其中,输入层与输出层均为单层,而隐层可有多层,隐层越多代表该全连接神经网络的深度越深。全连接神经网络的结构如图1所示,其每一层由N个神经元组成,每个神经元与下一层所有神经元相连接,全连接由此得名。

图1 全连接神经网络结构Fig.1 Fully connected neural network structure

将运用全连接神经网络对图像特征数据进行分类。

1.2 卷积神经网络

CNN是区别于全连接神经网络的另一种神经网络,常用于图像识别与分类,在图像分类中,CNN常被用于特征提取,特征提取主要是将卷积层与池化层结合,以将图像的特征用较低的维度表示。

卷积层进行卷积操作[16]。卷积操作是CNN的基础,如图2所示,一个大矩阵与一个小矩阵进行卷积操作,小矩阵依次覆盖大矩阵,对于覆盖的区域,将小矩阵与大矩阵被覆盖的区域对应元素相乘后再相加得到新元素,小矩阵依次移动,依次覆盖,依次计算得到不同的元素组成新矩阵。

图2 卷积操作示意图Fig.2 Schematic diagram of convolution operation

池化层[17]是卷积神经网络的一个很重要的结构,其主要作用是除去图像中的冗余信息,并对图像进行降维。它分为最大池化层与平均池化层。在图像分类中,最大池化层应用极其广泛,其原理如图3所示,将图像分为若干个区域,输出每个区域最大的块,再将这些块组成新图像。最大池化层与图像压缩类似,即以牺牲背景信息为代价来保留图像特征。对于不需要保留背景的图像分类与识别常采用最大池化层。

图3 最大池化层示意图Fig.3 Schematic diagram of maximum pool level

若需要保留全部信息,则通常采用平均池化层。当网络深度较大时,图像数据的维度往往较小,而较少的维度应包含较多的信息,因此,此时不适合使用最大池化层,应使用平均池化层。平均池化层原理如图4所示,将图像分为若干个区域,然后取每个区域的平均值。

图4 平均池化层示意图Fig.4 Schematic diagram of average pool layer

1.3 残差网络

残差网络是不同于经典网络的另一种卷积神经网络,其核心单元是残差块[18]。在经典网络中,随着网络深度的加深,该网络训练效果会变好,但如果继续加深网络,则训练效果会变差。因此,若需拟合一个x→x恒等映射,则可以设计一个浅层经典网络进行拟合。若想拟合性能更好,则可以加大网络深度,即设计多个浅层经典网络堆叠成一个深度经典网络。事实上,随着网络深度的加深,该网络对x→x恒等映射的拟合效果反而变差[19]。但是,残差网络能完美地解决该问题。残差网络由多个残差块组成,原始残差块结构如图5所示,对于每输入一个x,经过中间的卷积操作后输出f(x),将x+f(x)作为下一个残差块的输入。

图5 原始残差块示意图Fig.5 Schematic diagram of original residual block

2 实验设计与实现

2.1 实现环境

PaddlePaddle[20]是百度的一款深度学习框架,类似于Tensorflow。PaddlePaddle的支持与服务均在国内,可快捷访问,且其官网有大量可用的视频资料。因此,将学习框架确定为PaddelPaddle 2.0 +CUDA11。考虑到Python是PaddlePaddle唯一支持的语言,故选用Python 3.7作为实验编程语言。所有的实验均在英伟达RTX8000显卡、Intel(R) Xeon(R) Silver 4114 CPU、128 G内存、Ubuntu20.04操作系统的服务器上运行。

2.2 总体流程

实验用的岩石样本均来源于2021年第九届“泰迪杯”数据挖掘挑战赛官网提供的B题(岩石图像的智能分类)数据(https://www.tipdm.org:10010/#/competition/1354705811842195456/question)。总体上,岩石样本图像的分辨率较高,虽然样本数量较少,但每张图像包含大量信息,可使用数据增强的方法对这些图像进行处理。在图像分类中,常用的预训练模型有ResNet50[21]、Vgg16[22]。ResNet50是一个残差网络模型,包含49个卷积层和1个全连接层,它具有残差网络的性质。Vgg16是一个大型经典网络模型,由13个卷积层和3个全连接层组成。主流的深度学习框架都提供ResNet50、Vgg16的预训练模型参数。ResNet50、Vgg16均可以通过加载其预训练模型参数来实现迁移学习,也可以用随机参数来进行无迁移学习的训练和测试。因此,分别用加载、不加载预训练参数的ResNet50、Vgg16与所设计的模型MyNet进行性能对比,以验证MyNet的可行性与实用性。实验总体流程如图6所示。

图6 实验总体流程Fig.6 Overall experimental process

2.3 数据预处理

数据预处理包括数据增强与数据标准化。当训练集不足时,进行数据增强是很有必要的。实现数据增强的方法有旋转与翻转图像,改变图像对比度与亮度,改变图像颜色,裁剪图像,增加噪声等操作。在使用数据增强方法时,要考虑实际应用情况选择合适的操作。在岩石识别中,如果变换样本图像的颜色,则会对分类结果产生极大影响,可能得到错误的结果,因此使用数据增强时不能变换图像的颜色。

实验中用到的岩石样本有两种:一种是3 000×4 000高分辨率的图像,整张图像都是岩石,如图7(a)所示,这种图像有288张;另一种是2 000×2 000低分辨率的图像,其背景有其他非岩石的信息,如图7(b)所示,这种图像有26张。用Python调用PaddlePaddle的API将288张高分辨率图像沿水平垂直方向等分裁剪为16份,将26张低分辨率图像沿着水平垂直方向等分切割为4份,这样处理可得到内容互不重复的4 712张图像,增加样本数据,有利于MyNet、ResNet50、Vgg16模型更准确地学习到图像中的特征。

图7 岩石样本图像Fig.7 Rock sample images

由于样本数据量较少,为最大限度利用数据进行训练,取4 564张图像作为训练集数据,剩余148张作为测试集数据,主要考虑能充分利用现有的数据获得更优的模型,即涉及如何合理分配数据集。若测试集过多,则训练集就过少,理论上训练集的数量应该远大于测试集的数量;但是测试集的数量也不能过少,测试集的数量过少会导致测试结果没有说服力。据此,根据经验判断和反复实验,采取148张图片作为测试集已足以测试模型的性能,而应留更多的剩余的4 564张图像作为训练集可更充分地训练模型,以此获得更好的模型。接着,将单张图像上下左右旋转和水平垂直翻转,可使1张图像变成6张。因此,训练集与测试集的图像数量比原有的样本数量均扩充了6倍,这样处理有助于模型对同一图像的特征学习更全面,避免出现图像倒转后模型无法识别的情况。旋转与翻转的操作可直接由CPU实时运算,即在内存中对图像进行旋转操作后直接用模型运算该图像,从而大大提高运算速度。

最后,在将图像导入模型前,需要统一图像的大小为500×500。训练时将图像进行标准化,每个通道的均值与标准差值均设为127.5,该值是红绿蓝(red-green-blue,RGB)通道值的中间值。将图像进行标准化有利于模型的收敛[23]。

2.4 MyNet模型

新设计的模型MyNet采用经典卷积神经网络结构,MyNet由8层卷积层、6层池化层、4层全连接层组成。MyNet的实现结构如表1所示。由于MyNet默认输入的图片大小为500×500,图片有R、G、B 3个通道,模型输入张量的形状为[Batch_size, 3, 500, 500],其中,Batch_size是指图片的批次数。表1显示当Batch_size为1时,模型各层之间的输入输出情况。

表1 MyNet的实现结构Table 1 Implementation structure of MyNet

岩石分类通常是抓住岩石的一个或多个特征进行分类,而最大池化层能提取图像的某一特征,因此在模型运算的前期选择最大池化层。模型运算后期,由于此时单个点包含的信息较多,则选用平均池化层将图像中的多个信息融合为一个信息。卷积与池化操作结束后,图像被扁平化为一维数据。数据经过全连接层与Dropout层的一系列处理,得出分类结果。

将MyNet、ResNet50、Vgg16三种模型的网络结构涉及的参数个数统计于表2,加粗数据为最小值,其中,训练参数量是指模型中参与训练的参数总量,未训练参数量代表模型中不参与训练的参数总量,总参数量表示模型的参数总量。由表2可知,ResNet50与Vgg16涉及的参数众多,结构复杂,而MyNet的结构相对更精简。

表2 三种模型的参数量统计Table 2 Statistics of parameters of three models

3 实验结果与分析

3.1 模型训练

为了测试MyNet的性能,分别训练MyNet、ResNet50、Vgg16并比较训练结果。ResNet50、Vgg16各自分两种情况训练:一种是加载预训练参数模型,即先进行迁移学习,后进行训练;另一种是不加载预训练参数模型,即无迁移学习,直接进行训练,以此验证ResNet50、Vgg16两种模型有无迁移学习的效果。因MyNet是新建的模型,不存在加载预训练参数的情况。训练完成后将测试集分别导入各种模型中以获取测试结果。

以No_ResNet50、Yes_ResNet50分别表示不加载、加载预训练参数的ResNet50,以No_Vgg16、Yes_Vgg16分别代表不加载、加载预训练参数的Vgg16。

根据电脑显存与内存资源的大小,设置所有模型训练的批次数(Batch_size)为50,迭代次数(epochs)为20。在测试中,各模型训练时的损失函数值(loss)、分类准确率(acc)的变化曲线分别如图8、图9所示,其中,不同颜色的曲线代表用不同模型训练得到的结果。

由图8、图9可知,在同等训练条件下,所有模型在训练过程中loss逐渐减小,而acc逐渐上升。MyNet的loss收敛较慢,但与其他模型相差不大。MyNet训练时acc上升也较缓,当更新次数近7 000次时获得的acc约为70%,而最高的Yes_ResNet50最终得到的acc接近在90%。但总体来看,在训练过程中MyNet的准确率与其他模型差别并不大。

图8 5种模型训练损失函数值的变化曲线Fig.8 Variation curve of the training loss function value of five models

图9 5种模型训练分类准确率的变化曲线Fig.9 Variation curve of training classification accuracy of five models

3.2 模型测试

实验用的岩石样本的数据集共有7类,分别用数字1~7表示其类别。采用数据增强技术得到的888张图像作为模型的测试集。图10~图14是根据MyNet、ResNet50、Vgg16的测试结果绘制的混淆矩阵,其中1~7代表图像类别,0代表其他类别,可以看出各模型对于哪类图像在分类时容易混淆。例如,在图12中,真实类为1类的图像有60张被测试为1类,这代表测试结果正确,而有12张1类图像被误测为2类,这代表测试结果错误。表3是5种模型测试888张1~7类岩石样本图像的分类准确情况的统计结果,加粗数据为最优值,其数据是由图10~图14中5种模型分别测试7类图像分类正确的数量分别除以各类图像总数计算得到,准确量为5种模型分别测试7类图像分类正确的数量总和,而准确率是各模型的准确量除以总岩石样本数888,它能体现模型总体分类的效果。

图10 MyNet测试混淆矩阵Fig.10 Test confusion matrix of MyNet

图11 No_ResNet50测试混淆矩阵Fig.11 Test confusion matrix of No_Resnet50

图12 Yes_ResNet50测试混淆矩阵Fig.12 Test confusion matrix of Yes_Resnet50

图13 No_Vgg16测试混淆矩阵Fig.13 Test confusion matrix of No_Vgg16

图14 Yes_Vgg16测试混淆矩阵Fig.14 Test confusion matrix of Yes_Vgg16

由图10和表3可知,MyNet对888张岩石样本图像能正确测试出671张样本的类别,其总体测试准确率为75.6%,均优于比较模型,其中,对2、3、4类图像的测试准确率较高,都在88%以上,对5类图像的测试准确率为72%,对6、7类图像的测试准确率均接近70%,对于1类图像的测试准确率为50%。MyNet对1、5、6、7类图像容易混淆,例如,1类图像有30张被误测为7类,12张被误测为2类;5类图像有25张被误测为7类;6类图像有25张被误测为4类;7类图像有41张被误测为1类。后期应加强1、5、6、7类图像的训练。

表3 5种模型测试888张岩石样本图像的分类结果Table 3 Classification results of 888 rock sample images tested by five models

由图11和表3可知,No_ResNet50对888张岩石样本图像能正确测试出645张样本的类别,其总体测试准确率为72.6%,其中,对2、3类图像的测试准确率很高,都在99%以上,对5、7类图像的测试准确率均在80%以上,对6、4类图像的测试准确率分别为76%、61%,但对1类图像的测试准确率仅为28%。No_ResNet50对1、4、5、6、7类图像容易混淆,例如,1类图像有78张被误测为7类;4类图像有37张被误测为1类,28张被误测为7类;5类图像有18张被误测为3类;6类图像有23张被误测为7类;7类图像有22张被误测为1类,14张被误测为6类。后期应加强1、4、5、6、7类图像的训练。

由图12和表3可知,Yes_ResNet50对888张岩石样本图像能正确测试出658张样本的类别,其总体测试准确率为74.1%,其中,对1、2、3类图像的测试准确率较高,都在90%以上,对4、6类图像的测试准确率均在82%以上,对7类图像的测试准确率为63%,但对于5类图像的测试准确率仅为23%。Yes_ResNet50对4、5、7类图像容易混淆,例如,4类图像有28张被误测为1类;5类图像有43张被误测为4类,21张被误测为1类,20张被误测为3类;7类图像有33张被误测为1类,16张被误测为6类,14张被误测为4类。后期应加强4、5、7类图像的训练。

由图13和表3可知,No_Vgg16对888张岩石样本图像能正确测试出626张样本的类别,其总体测试准确率为70.5%,其中,对1、2、3、4类图像的测试准确率都在80%以上,对于5类图像的测试准确率为70%,但对6、7类图像的测试准确率均为48%。No_Vgg16对5、6、7类图像容易混淆,例如,5类图像有16张被误测为3类,12张被误测为1类;6类图像有41张被误测为7类;7类图像有49张被误测为1类,36张被误测为4类。后期应加强5、6、7类图像的训练。

由图14和表3可知,Yes_Vgg16对888张岩石样本图像能正确测试出633张样本的类别,其总体测试准确率为71.3%,其中,对2、3类图像的测试准确率较高,都在90%以上,对5、4类图像的测试准确率分别为76%、72%,对于1、6、7类图像的测试准确率为60%左右。Yes_Vgg16对1、4、6、7类图像容易混淆,例如,1类图像有23张被误测为7类,16张被误测为5类;4类图像有25张被误测为1类,23张被误测为7类;7类图像有46张被误测为1类,15张被误测为4类。后期应加强1、4、6、7类图像的训练。

是否加载预训练参数对ResNet50、Vgg16最终得到的测试效果有一定影响:两种模型加载比不加载预训练参数进行训练得到的总体测试准确率均略有提升;若使用迁移学习,即加载预训练参数后再进行训练,ResNet50对第3、5、7类图像的测试效果反而变差,Vgg16对第1、4类图像的测试效果也略有下降。这是因为迁移学习会把原先学习到的特征应用于新数据进行再次学习与识别,从而产生不同的结果。换言之,加载、不加载预训练参数的ResNet50、Vgg16的岩石分类测试结果因受有无迁移学习影响会有所不同。但是,MyNet比有无迁移学习的ResNet50、Vgg16的总体分类效果都好,也相对更稳定。

4 结论

岩石识别与分类是油气勘探的一项关键步骤,而利用深度学习技术能极大提高其工作效率。在样本数量不足时,采用数据增强的方式能较好地完成分类任务。在经过数据增强后,MyNet模型的测试平均准确率达到75.6%,其效果略优于Yes_ResNet50(74.1%)、Yes_Vgg16(71.3%)、No_ResNet50(72.6%)、No_Vgg16(70.5%)。由此可见,MyNet模型利用数据增强技术能很好地完成岩石分类任务,尤其是对第4类,MyNet(88%)比Yes_ResNet50(61%)、Yes_Vgg16(82%)、No_ResNet50(83%)、No_Vgg16(72%)的分类效果都要好;对于第3类的分类,MyNet(99%)与No_ResNet50(99%)并列第一,比Yes_ResNet50(94%)、Yes_Vgg16(90%)、No_Vgg16(88%)略高。对第5、6类的分类也处于中等水平,对于第5类的分类排名顺序为No_ResNet50(83%)、Yes_Vgg16(76%)、MyNet(72%)、No_Vgg16(70%)、Yes_ResNet50(23%),对于第6类的分类排名顺序为Yes_Vgg16(83%)、Yes_ResNet50(76%)、MyNet(67%)、No_ResNet50(48%)、No_Vgg16(58%);对于第7类的分类也处于中上等水平,其排名顺序为No_ResNet50(80%)、MyNet(69%)、Yes_ResNet50(63%)、Yes_Vgg16(60%)、No_Vgg16(48%);对第2类的分类,各模型的分类准确率均在90%以上。

虽然MyNet在小样本的岩石分类中总体表现不错,但是对某些类别的岩石的分类效果不是很好,例如,对第1类的识别准确率仅有50%。如果能加大数据量和加强训练,那么整个模型的效果会更好。下一步的研究方向主要是改进并拓展MyNet的实际应用领域。

猜你喜欢

池化层岩石准确率
卷积神经网络模型研究分析*
第五章 岩石小专家
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
3深源岩石
基于卷积神经网络的纸币分类与点钞
一种叫做煤炭的岩石
基于深度学习卷积神经网络的人体行为识别研究
海藻与岩石之间