朱顺德,徐增兴,刘一璠
(1.中国石油化工股份有限公司河南油田分公司a.信息化管理中心;b.油气开发管理部,河南 南阳473132;2.山东科瑞油田服务集团股份有限公司,山东 东营 257000)
在石油工业采油生产过程中,示功图图形分析是技术人员了解抽油机井下管、杆、泵工作状况的主要手段。由于石油生产中抽油机的数量巨大,每天产生大量的示功图数据,示功图分析任务十分繁重,采用计算机图像识别技术自动化处理示功图图像分类任务,日益引起石油工业领域科研人员的关注。实际工作中,受人员和成本的限制,通常仅能获取和使用一个规模较小的示功图标注数据集,而直接在小数据集上训练神经网络模型,效果不是十分理想。
基于图像识别具有一些公共特征的假设,提出基于深度学习模型迁移学习的示功图分类识别方法,基于公开的大型图像分类标注数据集——ImgeNet数据集构建基础的CNN神经网络,然后令基础神经网络学习示功图样本数据,构建示功图分类预警模型。
设示功图分类的知识领域为 DT={XT,PT(X)},其中 XT=为示功图图形样本的特征空间,PT(X)为示功图样本的边缘概率分布;示功图分类学习任务可表示为TT={YT,fT(x)},fT(x)是示功图分类预测函数,fT(x)=P(YT|XT),YT对应的抽油机工况类型标签的空间。类似的,设存在一个图像分类的源知识领域为 DS={XS,PS(X)},其中 XS={xS1,…,xSnT}源领域图形样本的特征空间,PS(X)源领域样本的边缘概率分布;源领域分类学习任务表示为 TS={Y,fS(x)},fS(x)是源领域的分类类预测函数,fS(x)=P(YS|XS),YS对应源领域图像类型标签的空间。
通常情况下,DS≠DT,TS≠TT,且期望示功图样本数量 nT与源领域图像样本数量nT之间满足0≤nT≤nS。
示功图迁移学习的目标:将DS和TS上的知识变化推广到DT领域中解决TT问题,即使得示功图预测函数fT(·)的预测能力获得提升。
由于示功图分类知识领域DT中只有一小部分样本和标签是可得的,因此选取的源知识领域为DS中应能获取较多图像样本数据和分类标签数据,便于在解决TS的过程中获取图像样本分类所需的低层通用特征。基于图像识别低层特征具有不变性的假设,在DT中直接使用DS中建立的图片分类特征,然后对DT分类器的最后2层神经元进行预测目标的微调,即可实现将DS中的图像分类知识迁移到DT中。
对于源领域,应当选择为实施图像分类识别任务而标注的大规模图片数据集,本文采用的是ImageNet数据集。ImageNet项目是一个用于视觉对象识别软件研究的大型可视化数据库吗,具有超过1 400万的标注了物体类别名称的图片样本数据,包含2万多个类别,因此基于ImageNet数据集训练的神经网络可以学到图像识别所需的低层基础特征。示功图图像一般是封闭曲线,其图像中的像素分布较为稀疏,可以看作一般图像特征的子集。因此基于ImageNet数据集上学习的图像识别特征进行迁移学习,进行示功图图像识别,符合迁移学习的特征相似、任务相近的原则。
基于示功图迁移学习准则设计神经网络架构,可将源领域ImageNet数据集上的图像识别知识推广到示功图图像分类识别问题上。
在迁移学习准则下,神经网络首先通过学习源领域ImageNet数据集上的图像特征,建立一个普通的物体图像识别分类器,然后利用这个分类器对示功图图像进行特征提取,再利用最后两层网络对这些特征与示功图对应的抽油机工况之间的关系进行学习,实现示功图分类器的构造。由于神经网络需要学习两个领域的图像分类知识,因此必须具有一定的规模,从而保证其具有足够的知识容量。
基本的CNN神经网络架构是卷积操作和池化操作的线性堆叠,最后通常利用全连接网络构造一维输出向量。
卷积操作是利用卷积核矩阵对图片局部矩形区域的像素值进行加权求和,其本质是一种线性滤波。
池化操作是选择图片局部矩形区域,选择区域内最大值或平均值作为特征图的结果。
Inception网络是在CNN基本架构的基础上发展起来的,将基本模块进行组合为Inception块,增加模型的深度和宽度,提高模型性能。Inception块主要考虑使用多个不同尺度的卷积核来增强网络适应能力,而卷积核尺度越大,计算量也会急剧增加,为了避免全部卷积核都直接在上一层的输出的高维张量上面进行计算,Inception块在3×3卷积与5×5卷积操作之前都增加了1×1卷积核,从而降低了参与计算的张量的厚度,减少了卷积过程的计算量。同理,在3×3最大池化之后增加1×1卷积操作,也是为了降低Inception块最终合并输出的张量的厚度。
为了实现对图像特征的逐层加深理解,增加整个网络的深度,将多个Inception块进行线性堆叠,并在最终的输出环境增加全连接层,形成一个整体的CNN网络架构,即GoogleNet网络。GoogleNet的几个特点:
(1)GoogleNet采用了模块化结构,方便增添和修改。
(2)网络最后增加全连接层,便于将学习了ImageNet数据集的GoogleNet在示功图数据集上进行预测目标微调,网络的预测目标由物体种类置换为示功图对应的抽油机的工况。
(3)为了避免梯度消失,网络中额外增加了2个辅助的softmax输出层,用于向前传导梯度,可在实际测试的时候将这两个辅助输出层去掉。
GoogleNet是一个比较深的网络,有约500多万个内部参数,在ImageNet数据集上对网络进行训练,可学习ImageNet数据集中各类物体图形的分类特征,之后,GoogleNet神经网络可作为示功图图像低层特征提取模块。在此基础上,为了让神经网络学习示功图图像与抽油机工况之间的对应关系,在GoogleNet网络之后增加一个两层的全连接网络作为示功图工况学习子网络,在学习示功图图像数据时,示功图图像数据流过GoogleNet网络进行特征提取,但GoogleNet网络的参数保持不变,只让示功图学习子网络进行参数调整,建立示功图图像与抽油机工况之间的关联关系。GoogleNet+示功图学习子网络即构成基于迁移学习的示功图分类识别神经网络。
神经网络架构中的网络层数、每层计算单元类型、每层计算单元数量等信息是构建神经网络模型所需的基础参数。基于这些参数,可以利用专用神经网络算法计算平台Tensorflow构建和训练所需的神经网络。
在建立CNN神经网络架构设计的基础上,对原始示功图图像数据进行预处理,制作示功图样本集,将数据输入神经网络进行模型的迭代训练,通过控制神经网络的超参数选择效果最优的模型作为最终的示功图分类器,并在后期的业务应用中通过专家干预实现模型的更新学习。示功图分类预测器构建的具体步骤如下。
示功图图像数据预处理主要是对原始示功图数据进行工况标注、尺寸统一、图像灰度化、噪声滤波等操作,使之符合神经网络模型学习的规范性要求,并将示功图数据集划分为训练集、验证集和测试集。
按第2节建立的神经网络架构,在Tensorflow中调整神经网络基础参数,建立神经网络模型,将预处理后的示功图图像数据集输入模型,利用Tensorflow的模型编译和训练功能,对神经网络进行网络内部权重参数的迭代优化,得到所需的示功图分类预警模型。
模型训练完成后,在验证集上对模型训练的结果进行评估,调整神经网络架构参数,选择最优模型。最终在测试集对模型的分类预测能力进行评估,确定构建模型的性能指标。
在模型应用过程中,对模型分类错误的示功图,可通过专家干预来进行修正,主要干预方式是借助增量学习的方法。增量学习技术(Incremental Learning Technique)是一种得到广泛应用的智能化数据挖掘与知识发现技术。其思想是当样本逐步积累时,学习精度也要随之提高。在示功图分类模型的应用测试中,对错误样本进行标注,归集该类样本,然后让模型在该类样本上进行增量学习,在新的训练中不再重复历史数据的学习,而是直接利用历史的训练结果,从而显著地减少了后续训练的时间,实现对新的示功图分类知识的快速增量学习。
在 PC 机(处理器配置为 Intel Core(TM)i5-2500 @ 3.3GHz,内存为16G)上,基于Tensorflow和Python实现了所述的神经网络模型。选取油田数生产监控系统中的实际示功图数据,按常见的24种抽油机工况情况编制示功图样本数据,共收集标注样本数570个。利用本文算法对样本数据进行了学习,构建了示功图分类预警模型。将测试集示功图样本输入模型,得到示功图的分类结果,部分结果如图1所示,可见模型大部分分类结果是正确的。
图1 示功图分类结果举例
本文采用的示功图标注样本不仅总数较少,而且各类别中的样本数量差别较大。从传统机器学习的角度,无法用于训练深度学习神经网络,然而,由于本文算法采用了迁移学习的思路,基础神经网络已经提前学习了大规模公共图片数据集ImageNet中的图像数据,在学习示功图分类任务时,基础神经网络可直接利用从ImageNet上学习到的图像特征提取的知识,再利用示功图样本集对模型最后几层神经网络权重进行微调,即使得模型将ImageNet中图片分类的知识迁移到了示功图分类领域,模型具备一定的示功图分类能力。从图1分类结果看,分类错误的图1(e)、1(g)两图对应的实际故障类别——光杆打驴头和油杆脱断在样本集合中占比例很少(光杆打驴头为5/570,油杆脱断为7/570),因此样本数量占比少可能是导致模型分类错误的一个原因。
本文提出基于CNN迁移学习的示功图图形分类预警方法,试验表明,本文方法可基于较小规模的示功图样本集合实现示功图分类模型的训练,所得的模型能够对示功图进行分类预警。若继续增加人工标注的样本的数量,并优化模型参数,本文方法的示功图分类预警准确率有望继续提高。在实际应用中,可采用专家干预、增量学习的方法,扩展本文的示功图分类预警模型,实现模型的持续优化。