李仙琳,左 信,高小永,岳元龍
(中國石油大學(xué)(北京)信息科學(xué)與工程學(xué)院,北京 102249)
鉆井過程中,由于井下情況復(fù)雜多變,存在極 大的隨機性與不確定性,鉆井事故發(fā)生頻繁,極大程度上增加了鉆井非生產(chǎn)時間,影響整個鉆井過程的進度、建井質(zhì)量和勘探效益[1]。鉆井事故種類繁多,溢流事故當(dāng)屬其中對于安全鉆井作業(yè)威脅最大的事故之一。若侵入井筒的油氣未被及時發(fā)現(xiàn)并得到有效控制,不僅會嚴(yán)重減緩鉆井開發(fā)速度,甚至可能引發(fā)卡鉆、井塌、井噴等其他井下一系列安全事故,將嚴(yán)重威脅到人身、設(shè)備、環(huán)境及地下油氣資源的安全,同時也會給企業(yè)帶來惡劣的社會影響和巨大的經(jīng)濟損失[2]。因此,實時有效的鉆井溢流診斷至關(guān)重要。
近年來,人工智能、大數(shù)據(jù)、物聯(lián)網(wǎng)等新技術(shù)的快速發(fā)展,以及學(xué)科交叉、跨界融合,引發(fā)了油氣行業(yè)的巨大變革[3-9],鉆井過程的數(shù)字化與信息化極大提升了鉆井效率[10-12]。在溢流診斷方面,司孟菡對鉆井溢流發(fā)生前后的表征參數(shù)提出了基于改進的BP 神經(jīng)網(wǎng)絡(luò)的溢流事故監(jiān)測方法與溢流發(fā)展趨勢模型[13];張禾等將鉆井專家的知識經(jīng)驗與溢流發(fā)生后的參數(shù)變化相結(jié)合構(gòu)建了基于專家系統(tǒng)的溢流智能預(yù)警技術(shù)[14];涂曦予等將鉆井過程看作時間序列分析,建立了基于大規(guī)模時間序列分析的鉆井事故預(yù)警方法[15];史肖燕等提出了基于隨機森林的溢漏實時判斷方法,利用隨機森林對初選的特征進行重要性分析[16];王茜等根據(jù)溢流發(fā)生前后的表征規(guī)律,定義2 個分別與鉆井工程參數(shù)和鉆井液參數(shù)相關(guān)的監(jiān)測指標(biāo),通過時間序列分析算法實現(xiàn)實時監(jiān)測溢流發(fā)生時的異常趨勢從而識別溢流[17]。
盡管在溢流事故診斷方面已有大量成果,但大多忽視了鉆井?dāng)?shù)據(jù)中大量未標(biāo)記數(shù)據(jù)的價值。在現(xiàn)有的基于機器學(xué)習(xí)的溢流診斷方法研究中,均建立在假設(shè)有足夠多的訓(xùn)練樣本且數(shù)據(jù)標(biāo)簽已知的情況下。而模型的建立通常需要由具有豐富經(jīng)驗的專家根據(jù)現(xiàn)場日志或鉆井?dāng)?shù)據(jù)來完成數(shù)據(jù)標(biāo)記工作。獲取數(shù)據(jù)標(biāo)簽往往需耗費大量額外的人力、物力。而半監(jiān)督學(xué)習(xí)可以實現(xiàn)未標(biāo)記的數(shù)據(jù)和有標(biāo)記的數(shù)據(jù)同時提供關(guān)于數(shù)據(jù)分布的更有價值的信息。如果在鉆井過程中可以利用少量的有標(biāo)簽樣本和大量的無標(biāo)簽樣本來提高溢流診斷性能,可以使機器學(xué)習(xí)方法在鉆井溢流事故診斷領(lǐng)域得到更好的應(yīng)用。另外,模型的輸入均聚焦于總池體積、鉆井液出入口流量等溢流發(fā)生后的顯著特征,其余數(shù)據(jù)均被拋棄,造成很大的數(shù)據(jù)浪費。挖掘鉆井?dāng)?shù)據(jù)隱含的信息、利用少量的標(biāo)記樣本和大量的未標(biāo)記樣本來提升溢流診斷性能是本文的主要出發(fā)點。
筆者以真實的鉆井溢流數(shù)據(jù)為基礎(chǔ),首先通過核主成分分析方法對鉆井各參數(shù)進行核心信息提取,然后利用半監(jiān)督極限學(xué)習(xí)機算法在標(biāo)記數(shù)據(jù)較少的情況下,充分挖掘無標(biāo)記數(shù)據(jù)所包含的信息訓(xùn)練模型,建立基于核主成分分析-半監(jiān)督極限學(xué)習(xí)機(KPCA-SSELM)的鉆井溢流診斷方法。實例應(yīng)用結(jié)果表明所提算法利用大量的無標(biāo)簽樣本進行輔助學(xué)習(xí),能夠在故障標(biāo)記樣本比較少的情況下達到較高的故障診斷率。
核主成分分析(KPCA)算法是在主成分分析算法基礎(chǔ)上提出的一種非線性特征提取理論[18-19],其主要優(yōu)點就是引入了核方法思想,使算法對非線性數(shù)據(jù)的處理能力得到了很大程度的提高。鉆井各大系統(tǒng)的各特征彼此耦合,所產(chǎn)生的各種數(shù)據(jù)之間具有極強的相關(guān)性及復(fù)雜的非線性,因此可以利用KPCA 方法來進行鉆井?dāng)?shù)據(jù)的信息整合,提取主成分反映核心信息。
極限學(xué)習(xí)機(ELM)算法是應(yīng)用于訓(xùn)練單隱層神經(jīng)網(wǎng)絡(luò)的算法[20-21]。假設(shè)訓(xùn)練樣本有N個任意的樣本(xi,yi),對于一個有個隱層節(jié)點的單隱層前饋神經(jīng)網(wǎng)絡(luò)可以表示為:
ELM 算法旨在學(xué)習(xí)一個基于訓(xùn)練數(shù)據(jù)的近似函數(shù)或決策規(guī)則來估計yi的值,也就是意味著存在對應(yīng)的矩陣形式表示為:
區(qū)別于傳統(tǒng)的函數(shù)逼近,要求求解出隱層參數(shù),極限學(xué)習(xí)機的網(wǎng)絡(luò)結(jié)構(gòu)中,在訓(xùn)練過程中僅需設(shè)置合適的隱層節(jié)點個數(shù),隱層參數(shù)可以通過某一概率分布來隨機分配,并且在學(xué)習(xí)過程中,一旦隱層參數(shù)被隨機確定,隱層輸出矩陣H就可以保持不變,只需要優(yōu)化隱層神經(jīng)元個數(shù)。那么訓(xùn)練單隱層神經(jīng)網(wǎng)絡(luò)就轉(zhuǎn)化成求解一個線性系統(tǒng)‖Hβ-Y‖的最小二乘解。
半監(jiān)督學(xué)習(xí)方法綜合了有監(jiān)督的學(xué)習(xí)方法和無監(jiān)督的學(xué)習(xí)方法,旨在考慮利用少量的標(biāo)記樣本和大量的未標(biāo)記樣本共同參與訓(xùn)練分類器,在減少標(biāo)記代價的同時提供有效的分類器,彌補有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的不足[15],學(xué)習(xí)方法示例如圖1所示。
圖1 半監(jiān)督學(xué)習(xí)方法示例Fig.1 An example of semi-supervised learning
半監(jiān)督學(xué)習(xí)有多種實現(xiàn)方法,本文選擇基于圖的半監(jiān)督分類方法[22-24],該方法基于流形假設(shè)和光滑性假設(shè),通過對輸入的樣本建立一個圖,樣本代表圖上的每個頂點。如果圖上的樣本之間的權(quán)值越大那么它們的預(yù)測標(biāo)記應(yīng)該相似的可能性就越大。流形正則化是屬于基于圖的半監(jiān)督方法中常見的方法之一。半監(jiān)督極限學(xué)習(xí)機(SSELM)算法將流形正則化和極限學(xué)習(xí)機相結(jié)合,充分利用大量無標(biāo)簽數(shù)據(jù),減少標(biāo)記數(shù)據(jù)的工作量,同時繼承了極限學(xué)習(xí)機無需迭代、模型執(zhí)行高效的優(yōu)點。因此基于流形正則化的SSELM被描述為:
通過對不平衡樣本中的不同類賦予不同的懲罰參數(shù),緩解過擬合等問題。比如說樣本xi標(biāo)簽為類yi,同時類yi有Nyi個樣本數(shù),取Ci=C0/Nyi。
(3)式可以寫成:
通過求解(4)式,當(dāng)梯度為0時,可得:
提出了一種基于KPCA-SSELM 的鉆井溢流診斷方法,其流程如圖2所示。在模型訓(xùn)練過程中,主要包括以下步驟:①鉆井?dāng)?shù)據(jù)預(yù)處理。受傳感器測量等因素影響在現(xiàn)場會收集到部分無效數(shù)據(jù),同時存在部分測量噪聲,這些數(shù)據(jù)無法為溢流的診斷提供有效的信息,因此需要對數(shù)據(jù)進行清洗和質(zhì)量優(yōu)化。針對部分缺失數(shù)據(jù)利用相鄰的數(shù)據(jù)平均值代替,將無效的數(shù)據(jù)剔除。針對存在噪聲與離群點數(shù)據(jù)采用滑動窗平滑濾波以及3σ準(zhǔn)則進行處理。特征縮放對于將每個特征權(quán)重推廣到機器學(xué)習(xí)算法中是至關(guān)重要的。鉆井原始數(shù)據(jù)具有不同的尺度,在訓(xùn)練時會導(dǎo)致過長的訓(xùn)練時間及過度擬合,因此需要對輸入數(shù)據(jù)進行標(biāo)準(zhǔn)化處理,消除各個鉆井參數(shù)之間的量綱影響。②核主成分分析。利用KPCA法對歸一化處理后的數(shù)據(jù)進行特征提取,首先選擇高斯徑向基核函數(shù)計算核矩陣,然后計算核矩陣對應(yīng)的特征值和特征向量,最后計算得分主元,選擇累積貢獻率大于90%的各主成分建立新的模型樣本。③模型輸入。將經(jīng)過核主成分分析后的新集合劃分為訓(xùn)練集、驗證集和測試集。其中訓(xùn)練集包含有標(biāo)簽樣本與無標(biāo)簽樣本兩部分,驗證集用于SSELM 中的超參數(shù)選取,測試集用于模型評估。④模型訓(xùn)練。利用SSELM 算法進行模型訓(xùn)練,分為2個階段。第一階段生成隨機隱層;在第二階段,取相似性度量函數(shù)建立圖拉普拉斯矩陣,訓(xùn)練模型。其中在SSELM 算法中尋找最優(yōu)超參數(shù)C0和λ過程中是基于驗證集性能評估從指數(shù)序列進行優(yōu)選,并通過(5)式計算β,模型輸出為⑤模型評估。利用測試集對訓(xùn)練的最優(yōu)SSELM模型進行性能評估。
圖2 基于KPCA-SSELM的鉆井溢流診斷模型建立Fig.2 Kick diagnosis process based on KPCA-SSELM
選用中國某油田同一區(qū)塊的鉆井現(xiàn)場數(shù)據(jù),其中收集到的數(shù)據(jù)涉及到正常鉆進、起下鉆、接單根等操作變化。在事故報告中發(fā)現(xiàn)所獲溢流事故數(shù)據(jù)大都發(fā)生于鉆進過程中,因此通過比較井深與鉆頭深度、鉆壓和轉(zhuǎn)速大于零等條件分析鉆進狀態(tài)和停鉆狀態(tài)。僅與鉆進狀態(tài)對應(yīng)的樣本數(shù)據(jù)記錄在數(shù)據(jù)集中,供本研究進行進一步分析。通過整理,最終將同區(qū)塊的4 口井共計6 次發(fā)生在鉆進過程的溢流事故的當(dāng)日錄井?dāng)?shù)據(jù)作為原始數(shù)據(jù)集,4 次事故數(shù)據(jù)用于訓(xùn)練模型,2次事故數(shù)據(jù)用于驗證模型。
實時監(jiān)測的鉆井過程數(shù)據(jù)主要來自傳感器或測量工具,反映鉆井作業(yè)的安全狀態(tài)。所獲數(shù)據(jù)包括:井深、鉆頭深度、鉆壓、轉(zhuǎn)速、鉆速、扭矩、立管壓力、大鉤載荷、大鉤高度、泵沖、鉆井液出入口流量、鉆井液出入口溫度、鉆井液出入口電導(dǎo)率、鉆井液出入口密度、總池體積等共19維。
由于鉆井正常樣本遠遠多于溢流樣本,容易造成模型過擬合問題,取溢流發(fā)生前后半小時之內(nèi)的數(shù)據(jù)作為數(shù)據(jù)集,整個數(shù)據(jù)集由4部分組成:有標(biāo)簽與無標(biāo)簽樣本的訓(xùn)練集、驗證集和測試集。有標(biāo)簽和無標(biāo)簽數(shù)據(jù)集用于訓(xùn)練模型,驗證集用于模型參數(shù)的選擇,在訓(xùn)練出最優(yōu)模型之后,測試集用于最終的驗證。最終訓(xùn)練集樣本數(shù)為6 000,驗證集樣本數(shù)為1 800,測試集樣本數(shù)為3 000。
將溢流的診斷問題建模為鉆井測量數(shù)據(jù)為自變量、是否發(fā)生溢流為結(jié)果的分類模型,數(shù)據(jù)的分類結(jié)果為離散值,0 表示無溢流發(fā)生,1 表示溢流發(fā)生。綜合錄井?dāng)?shù)據(jù)不包含溢流標(biāo)簽信息,但是現(xiàn)場事故記錄報告記錄了溢流發(fā)生時間和結(jié)束時間??紤]到人工坐崗監(jiān)測的滯后性,以事故記錄報告作為參考,通過觀察相關(guān)數(shù)據(jù)在該時間段前后的變化來進行重新標(biāo)注,其中主要關(guān)注鉆井液出入口流量差、總池體積、鉆速、鉆壓等參數(shù)的變化。
為了驗證KPCA-SSELM 方法在溢流事故診斷上的有效性,設(shè)置了2 組實驗,分別與SSELM 和KP?CA-ELM 等進行對比。其中SSELM 中輸入數(shù)據(jù)選用溢流表征參數(shù),包括總池體積、鉆井液出入口流量、立管壓力、鉆壓、鉆速等6個參數(shù),用來對比驗證KPCA 特征提取的有效性。同時為了驗證針對鉆井過程中少量有標(biāo)簽樣本,半監(jiān)督學(xué)習(xí)方法用于溢流診斷的有效性,在相同的有標(biāo)簽樣本下與有監(jiān)督學(xué)習(xí)方法KPCA-ELM 進行對比。
模型性能評估一般通過分類準(zhǔn)確率來評價,但針對鉆井樣本中存在正常數(shù)據(jù)與溢流數(shù)據(jù)不平衡的問題,分類準(zhǔn)確率不具有太大說服力。因此另外選擇精確率、召回率、F1值來評估模型性能優(yōu)劣,各評價指標(biāo)計算公式為:
首先對選取的樣本數(shù)據(jù)進行標(biāo)準(zhǔn)化處理,然后采用KPCA 對處理后的數(shù)據(jù)進行主元分析,按照經(jīng)驗確定累積貢獻率為90%。核函數(shù)選取高斯徑向基核函數(shù),其中參數(shù)σ設(shè)置為100,分析處理后得到的鉆井各參數(shù)特征值及對應(yīng)的貢獻率(表1)。經(jīng)過KPCA處理后,前5個核主成分的累積貢獻率達到了90.78%,也就是說,所獲的鉆井?dāng)?shù)據(jù)集中的19 個特征指標(biāo)所攜帶的信息量經(jīng)KPCA 處理后大部分集中在前面的5 個核主成分上;并且獲得的主成分的貢獻率比較集中,較好地保存了原始數(shù)據(jù)的絕大部分信息,也很好地達到了降維的目的。
表1 鉆井各參數(shù)特征值及對應(yīng)的貢獻率Table1 Eigenvalue and contribution rate of drilling parameters
SSELM 與KPCA-SSELM 模型對比 將KPCA方法處理后的數(shù)據(jù)與利用溢流表征參數(shù)做特征選擇的數(shù)據(jù)作為輸入分別送入SSELM 中進行訓(xùn)練。訓(xùn)練中網(wǎng)絡(luò)隱含節(jié)點數(shù)為120,激活函數(shù)選擇Sig?moid 函數(shù),C0= 0.1,λ= 0.01。有標(biāo)簽樣本數(shù)與無標(biāo)簽樣本數(shù)各自取訓(xùn)練集總數(shù)的50%。由對比結(jié)果(表2)可知,KPCA-SSELM 性能好于基于特征選擇的SSELM,證明了KPCA 針對鉆井?dāng)?shù)據(jù)在特征提取上有很大的優(yōu)勢。面對未來鉆井過程中可監(jiān)測參數(shù)更多的情況,基于核主成分分析的特征提取方法用于鉆井溢流診斷可以獲得較好的結(jié)果。
表2 不同模型性能對比結(jié)果Table2 Performance comparison results of models %
KPCA-ELM 與KPCA-SSELM 模型對比 為了驗證針對鉆井過程中少量有標(biāo)簽樣本,半監(jiān)督學(xué)習(xí)用于溢流診斷的有效性,首先在訓(xùn)練集中,有標(biāo)簽樣本在正常和溢流的樣本中隨機選取10%。KP?CA-ELM 方法僅使用這少量的有標(biāo)簽樣本進行訓(xùn)練,KPCA-SSELM 方法同時使用有標(biāo)簽樣本和剩下的無標(biāo)簽樣本進行訓(xùn)練。此外針對不同數(shù)量的有標(biāo)簽樣本條件下2 種算法性能的比較,分別從有標(biāo)簽樣本數(shù)占訓(xùn)練樣本總數(shù)的10%開始遞增進行訓(xùn)練,性能比較結(jié)果(圖3,表3,圖4)顯示,引入半監(jiān)督學(xué)習(xí)的KPCA-SSELM 方法始終優(yōu)于監(jiān)督學(xué)習(xí)KP?CA-ELM 方法,這表明KPCA-SSELM 方法能夠有效地探索未標(biāo)記數(shù)據(jù),以實現(xiàn)比純監(jiān)督學(xué)習(xí)方法更好的性能。可以發(fā)現(xiàn),當(dāng)有少量的標(biāo)記數(shù)據(jù)時,對于KPCA-ELM 方法來說,訓(xùn)練集樣本數(shù)很少,模型性能并不好,而增加了半監(jiān)督學(xué)習(xí)的KPCA-SSELM 方法,由于增加了大量的無標(biāo)簽樣本信息,模型性能有了一定的提升。隨著有標(biāo)簽樣本數(shù)量的增加,2種模型性能均不斷提高。但在每一種情況下,加入半監(jiān)督學(xué)習(xí)的KPCA-SSELM 方法均高于有監(jiān)督學(xué)習(xí)KPCA-ELM 方法,這是因為無標(biāo)簽樣本提供了更多的信息,表明KPCA-SSELM 方法可以充分挖掘無標(biāo)簽樣本的信息來進一步提高模型的性能。
圖3 10%有標(biāo)簽樣本數(shù)的算法性能對比Fig.3 Comparison of model performance with 10%labeled samples
表3 不同數(shù)量有標(biāo)簽樣本條件下2種算法性能對比結(jié)果Table3 Performance comparison results of two algorithms with different proportion of labeled samples %
圖4 不同有標(biāo)簽樣本數(shù)下的模型性能對比Fig.4 Performance comparison results with different proportion of labeled samples
但從每個測試樣本來看,整體模型性能略低。因為在模型訓(xùn)練中,雖然為考慮數(shù)據(jù)不平衡,選擇了溢流前后半小時之內(nèi)的數(shù)據(jù)訓(xùn)練,但正常樣本仍多于溢流樣本,較少的溢流樣本無法使得模型學(xué)習(xí)到全部的信息。
在實際鉆井過程中,除了對每個測試樣本進行模型的相應(yīng)評估外,還需要對模型的應(yīng)用進行分析與評估。圖5 給出了測試樣本中1 次溢流事故發(fā)生前后20分鐘的數(shù)據(jù)變化以及模型診斷結(jié)果,其中該測試結(jié)果建立在有標(biāo)簽樣本數(shù)為訓(xùn)練樣本總數(shù)的50%上?;煜仃嚱Y(jié)果見表4。
表4 混淆矩陣Table4 Confusion matrix
從圖5 可以看出,總池體積在9∶05 開始增加,超過1 m3記為溢流發(fā)生,但是在此時間之前,鉆壓、鉆速、出口流量有了一定的變化,通過模型輸出可以看到在9∶03左右模型開始預(yù)警,雖然存在一定的錯誤報警,但比傳統(tǒng)的總池體積監(jiān)測溢流提前了2分鐘。
圖5 溢流事故診斷圖Fig.5 Kick diagnosis diagram
提出了一種基于KPCA-SSELM 的鉆井溢流智能診斷方法。首先利用KPCA 方法分析得出對鉆井原始數(shù)據(jù)關(guān)聯(lián)超過90%的5個主成分作為模型的輸入向量,可以很好地提升模型診斷率;然后將半監(jiān)督學(xué)習(xí)方法引入極限學(xué)習(xí)機的模型中,該方法可以有效地利用大量無標(biāo)簽樣本來輔助有標(biāo)簽樣本進行訓(xùn)練,很好地解決了鉆井?dāng)?shù)據(jù)標(biāo)記費時費力的問題。通過利用無標(biāo)簽樣本進行輔助訓(xùn)練,獲得比傳統(tǒng)極限學(xué)習(xí)機更高的溢流診斷正確率,具有很好的應(yīng)用前景。
符號解釋