朱順德,徐增興,劉一璠
(1.中國(guó)石油化工股份有限公司河南油田分公司a.信息化管理中心;b.油氣開(kāi)發(fā)管理部,河南 南陽(yáng)473132;2.山東科瑞油田服務(wù)集團(tuán)股份有限公司,山東 東營(yíng) 257000)
在石油工業(yè)采油生產(chǎn)過(guò)程中,示功圖圖形分析是技術(shù)人員了解抽油機(jī)井下管、桿、泵工作狀況的主要手段。由于石油生產(chǎn)中抽油機(jī)的數(shù)量巨大,每天產(chǎn)生大量的示功圖數(shù)據(jù),示功圖分析任務(wù)十分繁重,采用計(jì)算機(jī)圖像識(shí)別技術(shù)自動(dòng)化處理示功圖圖像分類(lèi)任務(wù),日益引起石油工業(yè)領(lǐng)域科研人員的關(guān)注。實(shí)際工作中,受人員和成本的限制,通常僅能獲取和使用一個(gè)規(guī)模較小的示功圖標(biāo)注數(shù)據(jù)集,而直接在小數(shù)據(jù)集上訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,效果不是十分理想。
基于圖像識(shí)別具有一些公共特征的假設(shè),提出基于深度學(xué)習(xí)模型遷移學(xué)習(xí)的示功圖分類(lèi)識(shí)別方法,基于公開(kāi)的大型圖像分類(lèi)標(biāo)注數(shù)據(jù)集——ImgeNet數(shù)據(jù)集構(gòu)建基礎(chǔ)的CNN神經(jīng)網(wǎng)絡(luò),然后令基礎(chǔ)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)示功圖樣本數(shù)據(jù),構(gòu)建示功圖分類(lèi)預(yù)警模型。
設(shè)示功圖分類(lèi)的知識(shí)領(lǐng)域?yàn)?DT={XT,PT(X)},其中 XT=為示功圖圖形樣本的特征空間,PT(X)為示功圖樣本的邊緣概率分布;示功圖分類(lèi)學(xué)習(xí)任務(wù)可表示為T(mén)T={YT,fT(x)},fT(x)是示功圖分類(lèi)預(yù)測(cè)函數(shù),fT(x)=P(YT|XT),YT對(duì)應(yīng)的抽油機(jī)工況類(lèi)型標(biāo)簽的空間。類(lèi)似的,設(shè)存在一個(gè)圖像分類(lèi)的源知識(shí)領(lǐng)域?yàn)?DS={XS,PS(X)},其中 XS={xS1,…,xSnT}源領(lǐng)域圖形樣本的特征空間,PS(X)源領(lǐng)域樣本的邊緣概率分布;源領(lǐng)域分類(lèi)學(xué)習(xí)任務(wù)表示為 TS={Y,fS(x)},fS(x)是源領(lǐng)域的分類(lèi)類(lèi)預(yù)測(cè)函數(shù),fS(x)=P(YS|XS),YS對(duì)應(yīng)源領(lǐng)域圖像類(lèi)型標(biāo)簽的空間。
通常情況下,DS≠DT,TS≠TT,且期望示功圖樣本數(shù)量 nT與源領(lǐng)域圖像樣本數(shù)量nT之間滿足0≤nT≤nS。
示功圖遷移學(xué)習(xí)的目標(biāo):將DS和TS上的知識(shí)變化推廣到DT領(lǐng)域中解決TT問(wèn)題,即使得示功圖預(yù)測(cè)函數(shù)fT(·)的預(yù)測(cè)能力獲得提升。
由于示功圖分類(lèi)知識(shí)領(lǐng)域DT中只有一小部分樣本和標(biāo)簽是可得的,因此選取的源知識(shí)領(lǐng)域?yàn)镈S中應(yīng)能獲取較多圖像樣本數(shù)據(jù)和分類(lèi)標(biāo)簽數(shù)據(jù),便于在解決TS的過(guò)程中獲取圖像樣本分類(lèi)所需的低層通用特征?;趫D像識(shí)別低層特征具有不變性的假設(shè),在DT中直接使用DS中建立的圖片分類(lèi)特征,然后對(duì)DT分類(lèi)器的最后2層神經(jīng)元進(jìn)行預(yù)測(cè)目標(biāo)的微調(diào),即可實(shí)現(xiàn)將DS中的圖像分類(lèi)知識(shí)遷移到DT中。
對(duì)于源領(lǐng)域,應(yīng)當(dāng)選擇為實(shí)施圖像分類(lèi)識(shí)別任務(wù)而標(biāo)注的大規(guī)模圖片數(shù)據(jù)集,本文采用的是ImageNet數(shù)據(jù)集。ImageNet項(xiàng)目是一個(gè)用于視覺(jué)對(duì)象識(shí)別軟件研究的大型可視化數(shù)據(jù)庫(kù)嗎,具有超過(guò)1 400萬(wàn)的標(biāo)注了物體類(lèi)別名稱的圖片樣本數(shù)據(jù),包含2萬(wàn)多個(gè)類(lèi)別,因此基于ImageNet數(shù)據(jù)集訓(xùn)練的神經(jīng)網(wǎng)絡(luò)可以學(xué)到圖像識(shí)別所需的低層基礎(chǔ)特征。示功圖圖像一般是封閉曲線,其圖像中的像素分布較為稀疏,可以看作一般圖像特征的子集。因此基于ImageNet數(shù)據(jù)集上學(xué)習(xí)的圖像識(shí)別特征進(jìn)行遷移學(xué)習(xí),進(jìn)行示功圖圖像識(shí)別,符合遷移學(xué)習(xí)的特征相似、任務(wù)相近的原則。
基于示功圖遷移學(xué)習(xí)準(zhǔn)則設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)架構(gòu),可將源領(lǐng)域ImageNet數(shù)據(jù)集上的圖像識(shí)別知識(shí)推廣到示功圖圖像分類(lèi)識(shí)別問(wèn)題上。
在遷移學(xué)習(xí)準(zhǔn)則下,神經(jīng)網(wǎng)絡(luò)首先通過(guò)學(xué)習(xí)源領(lǐng)域ImageNet數(shù)據(jù)集上的圖像特征,建立一個(gè)普通的物體圖像識(shí)別分類(lèi)器,然后利用這個(gè)分類(lèi)器對(duì)示功圖圖像進(jìn)行特征提取,再利用最后兩層網(wǎng)絡(luò)對(duì)這些特征與示功圖對(duì)應(yīng)的抽油機(jī)工況之間的關(guān)系進(jìn)行學(xué)習(xí),實(shí)現(xiàn)示功圖分類(lèi)器的構(gòu)造。由于神經(jīng)網(wǎng)絡(luò)需要學(xué)習(xí)兩個(gè)領(lǐng)域的圖像分類(lèi)知識(shí),因此必須具有一定的規(guī)模,從而保證其具有足夠的知識(shí)容量。
基本的CNN神經(jīng)網(wǎng)絡(luò)架構(gòu)是卷積操作和池化操作的線性堆疊,最后通常利用全連接網(wǎng)絡(luò)構(gòu)造一維輸出向量。
卷積操作是利用卷積核矩陣對(duì)圖片局部矩形區(qū)域的像素值進(jìn)行加權(quán)求和,其本質(zhì)是一種線性濾波。
池化操作是選擇圖片局部矩形區(qū)域,選擇區(qū)域內(nèi)最大值或平均值作為特征圖的結(jié)果。
Inception網(wǎng)絡(luò)是在CNN基本架構(gòu)的基礎(chǔ)上發(fā)展起來(lái)的,將基本模塊進(jìn)行組合為Inception塊,增加模型的深度和寬度,提高模型性能。Inception塊主要考慮使用多個(gè)不同尺度的卷積核來(lái)增強(qiáng)網(wǎng)絡(luò)適應(yīng)能力,而卷積核尺度越大,計(jì)算量也會(huì)急劇增加,為了避免全部卷積核都直接在上一層的輸出的高維張量上面進(jìn)行計(jì)算,Inception塊在3×3卷積與5×5卷積操作之前都增加了1×1卷積核,從而降低了參與計(jì)算的張量的厚度,減少了卷積過(guò)程的計(jì)算量。同理,在3×3最大池化之后增加1×1卷積操作,也是為了降低Inception塊最終合并輸出的張量的厚度。
為了實(shí)現(xiàn)對(duì)圖像特征的逐層加深理解,增加整個(gè)網(wǎng)絡(luò)的深度,將多個(gè)Inception塊進(jìn)行線性堆疊,并在最終的輸出環(huán)境增加全連接層,形成一個(gè)整體的CNN網(wǎng)絡(luò)架構(gòu),即GoogleNet網(wǎng)絡(luò)。GoogleNet的幾個(gè)特點(diǎn):
(1)GoogleNet采用了模塊化結(jié)構(gòu),方便增添和修改。
(2)網(wǎng)絡(luò)最后增加全連接層,便于將學(xué)習(xí)了ImageNet數(shù)據(jù)集的GoogleNet在示功圖數(shù)據(jù)集上進(jìn)行預(yù)測(cè)目標(biāo)微調(diào),網(wǎng)絡(luò)的預(yù)測(cè)目標(biāo)由物體種類(lèi)置換為示功圖對(duì)應(yīng)的抽油機(jī)的工況。
(3)為了避免梯度消失,網(wǎng)絡(luò)中額外增加了2個(gè)輔助的softmax輸出層,用于向前傳導(dǎo)梯度,可在實(shí)際測(cè)試的時(shí)候?qū)⑦@兩個(gè)輔助輸出層去掉。
GoogleNet是一個(gè)比較深的網(wǎng)絡(luò),有約500多萬(wàn)個(gè)內(nèi)部參數(shù),在ImageNet數(shù)據(jù)集上對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,可學(xué)習(xí)ImageNet數(shù)據(jù)集中各類(lèi)物體圖形的分類(lèi)特征,之后,GoogleNet神經(jīng)網(wǎng)絡(luò)可作為示功圖圖像低層特征提取模塊。在此基礎(chǔ)上,為了讓神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)示功圖圖像與抽油機(jī)工況之間的對(duì)應(yīng)關(guān)系,在GoogleNet網(wǎng)絡(luò)之后增加一個(gè)兩層的全連接網(wǎng)絡(luò)作為示功圖工況學(xué)習(xí)子網(wǎng)絡(luò),在學(xué)習(xí)示功圖圖像數(shù)據(jù)時(shí),示功圖圖像數(shù)據(jù)流過(guò)GoogleNet網(wǎng)絡(luò)進(jìn)行特征提取,但GoogleNet網(wǎng)絡(luò)的參數(shù)保持不變,只讓示功圖學(xué)習(xí)子網(wǎng)絡(luò)進(jìn)行參數(shù)調(diào)整,建立示功圖圖像與抽油機(jī)工況之間的關(guān)聯(lián)關(guān)系。GoogleNet+示功圖學(xué)習(xí)子網(wǎng)絡(luò)即構(gòu)成基于遷移學(xué)習(xí)的示功圖分類(lèi)識(shí)別神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)架構(gòu)中的網(wǎng)絡(luò)層數(shù)、每層計(jì)算單元類(lèi)型、每層計(jì)算單元數(shù)量等信息是構(gòu)建神經(jīng)網(wǎng)絡(luò)模型所需的基礎(chǔ)參數(shù)?;谶@些參數(shù),可以利用專(zhuān)用神經(jīng)網(wǎng)絡(luò)算法計(jì)算平臺(tái)Tensorflow構(gòu)建和訓(xùn)練所需的神經(jīng)網(wǎng)絡(luò)。
在建立CNN神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)的基礎(chǔ)上,對(duì)原始示功圖圖像數(shù)據(jù)進(jìn)行預(yù)處理,制作示功圖樣本集,將數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò)進(jìn)行模型的迭代訓(xùn)練,通過(guò)控制神經(jīng)網(wǎng)絡(luò)的超參數(shù)選擇效果最優(yōu)的模型作為最終的示功圖分類(lèi)器,并在后期的業(yè)務(wù)應(yīng)用中通過(guò)專(zhuān)家干預(yù)實(shí)現(xiàn)模型的更新學(xué)習(xí)。示功圖分類(lèi)預(yù)測(cè)器構(gòu)建的具體步驟如下。
示功圖圖像數(shù)據(jù)預(yù)處理主要是對(duì)原始示功圖數(shù)據(jù)進(jìn)行工況標(biāo)注、尺寸統(tǒng)一、圖像灰度化、噪聲濾波等操作,使之符合神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)的規(guī)范性要求,并將示功圖數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。
按第2節(jié)建立的神經(jīng)網(wǎng)絡(luò)架構(gòu),在Tensorflow中調(diào)整神經(jīng)網(wǎng)絡(luò)基礎(chǔ)參數(shù),建立神經(jīng)網(wǎng)絡(luò)模型,將預(yù)處理后的示功圖圖像數(shù)據(jù)集輸入模型,利用Tensorflow的模型編譯和訓(xùn)練功能,對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)內(nèi)部權(quán)重參數(shù)的迭代優(yōu)化,得到所需的示功圖分類(lèi)預(yù)警模型。
模型訓(xùn)練完成后,在驗(yàn)證集上對(duì)模型訓(xùn)練的結(jié)果進(jìn)行評(píng)估,調(diào)整神經(jīng)網(wǎng)絡(luò)架構(gòu)參數(shù),選擇最優(yōu)模型。最終在測(cè)試集對(duì)模型的分類(lèi)預(yù)測(cè)能力進(jìn)行評(píng)估,確定構(gòu)建模型的性能指標(biāo)。
在模型應(yīng)用過(guò)程中,對(duì)模型分類(lèi)錯(cuò)誤的示功圖,可通過(guò)專(zhuān)家干預(yù)來(lái)進(jìn)行修正,主要干預(yù)方式是借助增量學(xué)習(xí)的方法。增量學(xué)習(xí)技術(shù)(Incremental Learning Technique)是一種得到廣泛應(yīng)用的智能化數(shù)據(jù)挖掘與知識(shí)發(fā)現(xiàn)技術(shù)。其思想是當(dāng)樣本逐步積累時(shí),學(xué)習(xí)精度也要隨之提高。在示功圖分類(lèi)模型的應(yīng)用測(cè)試中,對(duì)錯(cuò)誤樣本進(jìn)行標(biāo)注,歸集該類(lèi)樣本,然后讓模型在該類(lèi)樣本上進(jìn)行增量學(xué)習(xí),在新的訓(xùn)練中不再重復(fù)歷史數(shù)據(jù)的學(xué)習(xí),而是直接利用歷史的訓(xùn)練結(jié)果,從而顯著地減少了后續(xù)訓(xùn)練的時(shí)間,實(shí)現(xiàn)對(duì)新的示功圖分類(lèi)知識(shí)的快速增量學(xué)習(xí)。
在 PC 機(jī)(處理器配置為 Intel Core(TM)i5-2500 @ 3.3GHz,內(nèi)存為16G)上,基于Tensorflow和Python實(shí)現(xiàn)了所述的神經(jīng)網(wǎng)絡(luò)模型。選取油田數(shù)生產(chǎn)監(jiān)控系統(tǒng)中的實(shí)際示功圖數(shù)據(jù),按常見(jiàn)的24種抽油機(jī)工況情況編制示功圖樣本數(shù)據(jù),共收集標(biāo)注樣本數(shù)570個(gè)。利用本文算法對(duì)樣本數(shù)據(jù)進(jìn)行了學(xué)習(xí),構(gòu)建了示功圖分類(lèi)預(yù)警模型。將測(cè)試集示功圖樣本輸入模型,得到示功圖的分類(lèi)結(jié)果,部分結(jié)果如圖1所示,可見(jiàn)模型大部分分類(lèi)結(jié)果是正確的。
圖1 示功圖分類(lèi)結(jié)果舉例
本文采用的示功圖標(biāo)注樣本不僅總數(shù)較少,而且各類(lèi)別中的樣本數(shù)量差別較大。從傳統(tǒng)機(jī)器學(xué)習(xí)的角度,無(wú)法用于訓(xùn)練深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),然而,由于本文算法采用了遷移學(xué)習(xí)的思路,基礎(chǔ)神經(jīng)網(wǎng)絡(luò)已經(jīng)提前學(xué)習(xí)了大規(guī)模公共圖片數(shù)據(jù)集ImageNet中的圖像數(shù)據(jù),在學(xué)習(xí)示功圖分類(lèi)任務(wù)時(shí),基礎(chǔ)神經(jīng)網(wǎng)絡(luò)可直接利用從ImageNet上學(xué)習(xí)到的圖像特征提取的知識(shí),再利用示功圖樣本集對(duì)模型最后幾層神經(jīng)網(wǎng)絡(luò)權(quán)重進(jìn)行微調(diào),即使得模型將ImageNet中圖片分類(lèi)的知識(shí)遷移到了示功圖分類(lèi)領(lǐng)域,模型具備一定的示功圖分類(lèi)能力。從圖1分類(lèi)結(jié)果看,分類(lèi)錯(cuò)誤的圖1(e)、1(g)兩圖對(duì)應(yīng)的實(shí)際故障類(lèi)別——光桿打驢頭和油桿脫斷在樣本集合中占比例很少(光桿打驢頭為5/570,油桿脫斷為7/570),因此樣本數(shù)量占比少可能是導(dǎo)致模型分類(lèi)錯(cuò)誤的一個(gè)原因。
本文提出基于CNN遷移學(xué)習(xí)的示功圖圖形分類(lèi)預(yù)警方法,試驗(yàn)表明,本文方法可基于較小規(guī)模的示功圖樣本集合實(shí)現(xiàn)示功圖分類(lèi)模型的訓(xùn)練,所得的模型能夠?qū)κ竟D進(jìn)行分類(lèi)預(yù)警。若繼續(xù)增加人工標(biāo)注的樣本的數(shù)量,并優(yōu)化模型參數(shù),本文方法的示功圖分類(lèi)預(yù)警準(zhǔn)確率有望繼續(xù)提高。在實(shí)際應(yīng)用中,可采用專(zhuān)家干預(yù)、增量學(xué)習(xí)的方法,擴(kuò)展本文的示功圖分類(lèi)預(yù)警模型,實(shí)現(xiàn)模型的持續(xù)優(yōu)化。