改进的Alexnet模型及在油井示功图分类中的应用

2018-07-25 11:22段友祥孙歧峰徐冬胜
计算机应用与软件 2018年7期
关键词:抽油机准确率卷积

段友祥 李 钰 孙歧峰 徐冬胜

(中国石油大学(华东) 计算机与通信工程学院 山东 青岛 266580)

0 引 言

现在有杆抽油机采油设备仍在原油开采中占据主导地位,但是由于其结构特点及工作环境的特殊性,故障发生率高,所以能够及时准确地把握抽油机的工作状态、进行故障分析和处理非常重要。目前示功图是分析和判断油井抽油机工况的主要手段,但在实际生产中,对示功图的识别和分类还主要是依靠人工进行,识别效率低,特别是受经验知识的影响较大,导致有时存在很大的识别误差,无法满足油田实际生产,特别是自动化生产的需要。多年以来,人们一直研究和尝试利用先进的计算机技术来解决这个问题,比如把专家系统、机器学习等人工智能方法引入进来[1-6],取得一些成果,也得到了一定的应用实践,但还不能很好地满足实际要求。深度学习是机器学习的一个新的领域,在计算机视觉、语音识别等方面有着非常成功的应用,也为图片分类等问题的解决提供了新的思路。

1 示功图

示功图是由载荷随位移的变化关系曲线所构成的封闭曲线图。在有杆抽油机工作过程中,可以利用获得的示功图定性地分析抽油机工作状况,及时调整工作参数,发现和排除故障。对示功图的分析可以看作是一种图片分类,因此,研究卷积神经网络CNN(Convolutional Neural Networks)在示功图自动识别和分类方面的应用在技术上可行且有很大实际应用价值。

如图1所示,抽油机工作正常时,示功图可以近似看为一个平行四边形,如图1(a)。井下供液不足时,即抽油泵未能被液体填满,示功图会出现如图1(b)情况。当井下液体中富含气体时,气体会在抽油杆上行过程中从液体中析出,示功图会出现如图1(c)的情况。抽油机的抽油杆断脱时,会使抽油机负载基本无法增加,出现如图1(d)的棒状示功图。

图1 示功图示例

2 卷积神经网络

卷积神经网络(CNN)从1984年第一个神经感知机(Neocognitron)实现到现在已经有了三十多年的发展历史。其间,网络模型不断地更新和加深,变得更加复杂,应用范围越来越广,应用效果也越来越好。用于图像识别的CNN网络由四种基本元素构成,分别是卷积层、池化层、全连接层与激活函数。其中池化层一般跟随着卷积层,全连接层位于网络的最后,用于输出最终的特征向量,神经元是否被激活用于传递信息由激活函数决定。其一般结构如图2所示[7]。

图2 CNN网络原理图

Cx是卷积层,其主要功能是提取输入图像的特征,卷积的核心思想是局部感受野和权值共享卷积过程。Sx卷积层提取特征之后将生成的特征图传递给下一层。是池化层,其主要作用是压缩特征图大小并消除图像空间转换的影响。卷积神经网络的最后一层一般为全连接层,其作用是将前面卷积层和池化层提取的输入图像的特征图转为特征向量输出。卷积层和全连接层常用的激活函数fx有双曲正切函数和Sigmoid函数两种,两种常用激活函数均为饱和非线性函数。

3 Alexnet Version2网络模型

CNN有很多模型,其中Alexnet就是经典的CNN模型。Alexnet模型是Krizhevsky A等[8]在2012年提出的,后经改进于2014年提出了Alexnet Version2(简称Alexnet2)模型[9]。目前Alexnet2模型在实际中应用较多。

3.1 Alexnet2模型结构

Alexnet2网络模型如图3所示。其中Name为层名,Size为卷积核大小或池大小,Stride表示步长,Output为层输出特征图个数,class表示图片类型总数。模型包括八个带权层,前五层为卷积层,后三层为起全连接层作用的卷积层,模型使用的激活函数为ReLU函数。模型接受的输入图片大小为224×224,模型最终输出为class维的列向量。

图3 Alexnet2体系结构示意图

模型前五层中,第一、二、五层卷积层后跟随了池化层(池化规则为最大池);第三层和第四层只有卷积层,没有池化层。后三层的卷积层起到的是将特征图由二维图片变为一维列向量的作用,其中为了防止过拟合现象,第六层和第七层均有一个Dropout层。第六层和第七层卷积层的激活函数仍为ReLU函数,但第八层较为特殊,没有激活函数。

3.2 Alexnet2模型特点

Alexnet2模型保留了原Alexnet模型的Dropout层和ReLU激活函数,Dropout层能够有效降低过拟合现象[10];ReLU函数是非饱和非线性函数,相较于传统的双曲正切函数和Sigmoid函数等饱和非线性函数而言,ReLU函数能够加速模型收敛,减少网络训练时间。Alexnet2模型在原Alexnet模型全连接层的位置使用卷积层替代,相比于全连接层卷积层参数较少,有利于减少模型收敛时间;去除了LRN层,使得模型更易并行化。

但Alexnet2模型比较庞大,训练时间和实际运行时间都比较长,不适合实际的示功图自动分类的应用要求。

4 改进的简化Alexnet网络模型

针对Alexnet2模型的不足之处,在深入分析和研究CNN和Alexnet模型的基础上,根据示功图自动分类应用的特点和要求,提出了一种改进的简化Alexnet模型(以下简称MiniAlexnet)。该模型删除了原模型中的两个卷积层和一个全连接层,减少了模型参数,加速了模型收敛速度。MiniAlexnet模型与原模型有相同的输入输出形式。模型结构如图4所示。

图4 MiniAlexnet模型结构

与Alexnet2经典模型相比,MiniAlexnet模型删除了原模型的第三、四、五层卷积层,并用一个卷积核大小为6×6,步长为6,采用不保持特征图大小策略(以下简称VALID策略)的卷积层conv3代替,卷积层conv3后跟一个池大小为2×2,步长为2的最大池pool3。这时模型输出特征图大小为1×1。MiniAlexnet模型的第四层Fc4为卷积核大小为1×1的卷积层;随后第五层Fc5为仅使用大小为1×1卷积核的卷积层(无激活函数),输出特征图个数为classnum。最后将网络的输出进行序列化操作,将输出变为classnum维的列向量。同时为了降低过拟合现象,在MiniAlexnet模型第三层和第四层均添加了Dropout层,降低了神经元复杂的互适应关系[10]。

MiniAlexnet模型参数数量为46 000个左右,与Alexnet经典模型的6 000万个参数相比,参数数量大大减少,加速了网络收敛速度,效率得到大大提升。

5 实验及分析

结合示功图自动分类的实际应用,用MiniAlexnet模型、Alexnet2模型和Overfeat模型分别进行了示功图分类实验,对实验结果进行了分析和对比。

5.1 数据准备

本文使用的数据集来自国内某油田,共有746张油井抽油机示功图。首先通过人工分类将这746张油井抽油机示功图分为了“工作正常”、“充不满”、“气体影响”、“抽油杆断脱”四类并将其按文件夹单独存放,各类别具体对应关系见表1。

表1 油井示功图分类情况表

然后通过程序脚本将每张油井抽油机示功图图片组合成“图片路径+标签”的形式(例Data/1/image001.png+1),存入文本文件中供模型读取。在存入文本文件的过程中,随机抽取占总量25%的数据作为模型的测试集,剩余75%作为模型的训练集。最终生成的训练集包括560张油井抽油机示功图,测试集包括186张油井抽油机示功图。

5.2 网络模型搭建

为了进行实验和分析,基于NVIDIA K400 GPU硬件环境,使用TensorFlow作为开发平台,分别搭建了MiniAlexnet模型、Alexnet2模型和Overfeat模型。各模型的搭建方式基本相同,在此简要介绍搭建MiniAlexnet模型的过程。

TensorFlow提供了高度集成的模型搭建方法,只需要将每层的必要参数传递进去就可以。根据MiniAlexnet模型结构(见图5),第一层为卷积层加池化层,卷积核大小为11×11,步长为4,采用VALID策略,输出64个特征图,激活函数为ReLU函数(后续卷积层除第五层外激活函数皆为ReLU函数),池化层规则为最大池,池大小为3×3,步长为2(模型后续池化层均使用相同配置);第二层为卷积层加池化层,卷积核大小为5×5,步长为1,采用SAME策略,输出192个特征图;第三层为卷积层加池化层加Dropout层,卷积核大小为6×6,步长为1,采用SAME策略,输出256个特征图;第四层为卷积层加Dropout层,卷积核大小为1×1,步长为1,输出4 096个特征图;第五层为特殊卷积层,卷积核大小为1×1,步长为1,没有激活函数。

模型输出通过Softmax方法进行分类,训练时使用交叉熵函数作为模型输出损失的计算函数,优化方法为Adam优化器。具体搭建代码略。

5.3 实 验

5.3.1 MiniAlexnet模型

实验共训练模型5 000次,模型于300次左右收敛,收敛时用时为1 min 40 s,测试集准确率为98.39%。MiniAlexnet模型准确率实验结果图见图5(a) ,此处仅使用了模型训练前530步的数据进行绘图,后续所有实验结果图所用数据均只截取到模型收敛后300步左右,且横坐标表示训练步数,纵坐标表示识别准确率或输出损失。MiniAlexnet模型输出与期望之间的损失见图5(b),模型收敛时训练集损失为0.011 75,测试集损失为0.182 5。

(a) MiniAlexnet模型实验准确率

(b) MiniAlexnet模型实验损失 图5 MiniAlexnet实验结果

5.3.2 Alexnet模型

实验共训练模型30 000次,模型于200次左右收敛,模型收敛时训练用时为2 min 26 s,此时模型在训练集上的识别准确率达到了100%,在测试集上的识别准确率达到了95.65%,见图6(a)。模型输出与目标期望之间的损失见图6(b),模型收敛时训练集损失为0.000 08,测试集损失为0.133 1。

(a) Alexnet2模型实验准确率

(b) Alexnet2模型实验损失 图6 Alexnet2实验结果

5.3.3 Overfeat模型

实验共训练模型10 000次,模型于200次左右收敛,收敛后模型在测试集上的分类准确率为93.55%,耗时5 min 42 s,模型分类准确率结果见图7(a)。Overfeat模型输出与期望之间的损失见图7(b),模型收敛时,模型在训练集的损失为0.024 89,在测试集上的损失为0.251 9。

(a) Overfeat模型实验准确率

(b) Overfeat模型实验损失 图7 Overfeat实验结果

5.3.4 实验分析与结论

1) 实验结果对比分析 三个模型实验的结果对比见表2,其中包括了收敛步数、收敛时间、测试集准确率、训练集损失、测试集损失等五个重要的实验参数数据。表中数据取自模型收敛时刻的数据。

表2 模型实验结果对比

MiniAlexnet模型与Alexnet2模型相比,收敛步数有所增加,但收敛时间大大缩减,同时准确率也提升了2.74%。MiniAlexnet模型输出损失要高于Alexnet2模型,这是由Softmax分类方法带入的合理损失,对分类准确率影响较小,后续的训练中,MiniAlexnet模型损失会继续降低。MiniAlexnet模型与Overfeat模型相比,收敛时间大大缩减,准确率提高了4.84%,同时MiniAlexnet模型损失也低于Overfeat模型。

2) 模型泛化能力分析 示功图异常样本数据集获取较难,为平衡各类功图数量,导致实验用数据集规模较小,但实验用数据集保证了每类异常示功图个体之间有较大差异,这让模型能更加容易地获得学习目标的真实特征,所以数据集规模并未对模型泛化能力产生过大影响。同时模型本身也保留了两个Dropout层,防止出现过拟合现象而造成模型泛化能力下降。综上所述,训练后的模型具有较强的泛化能力。

3) 实验结论 从以上分析可以看出, MiniAlexnet收敛时间较短,收敛后在测试集上的分类准确率最高,训练后模型也有较强的泛化能力,能够很好地满足实际应用要求。

6 结 语

本文在研究常用CNN模型的基础上,提出了一种适用于油井示功图自动分类的改进的简化Alexnet网络模型——MiniAlexnet模型,实现了基于MiniAlexnet模型的油井示功图自动学习分类。与其他模型进行了实验对比,实验结果表明,MiniAlexnet模型在油井示功图识别和分类方面有很高的准确率,大大缩减了训练时间,提高了模型收敛速度,很好地满足了实际应用需求,在很多类似应用领域具有很好的应用前景。

猜你喜欢
抽油机准确率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
幼儿园旁的抽油机伪装成了长颈鹿
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
浅谈游梁式抽油机维护及改进