李春生,田夢晴,張可佳
(東北石油大學(xué) 計算機與信息技術(shù)學(xué)院,黑龍江 大慶 163319)
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展和普及,傳感器、智能儀表等設(shè)備已實現(xiàn)了對管道數(shù)據(jù)的實時采集,并積累了大量復(fù)雜、高維的時序數(shù)據(jù)[1]。異常數(shù)據(jù)檢測就是在時間序列中檢測出不符合業(yè)務(wù)邏輯或規(guī)則的事件或行為[2]。為保證異常檢測的高檢測率,科研人員熱衷于研究“如何提高異常數(shù)據(jù)檢測算法的性能”,取得的研究成果已廣泛應(yīng)用在網(wǎng)絡(luò)安全、金融、醫(yī)療、國防軍事等多個領(lǐng)域[3-11]。
針對管道數(shù)據(jù)這種復(fù)雜、多維的時序數(shù)據(jù),一般的閾值劃定、判定方法由于處理速度慢、準(zhǔn)確性低,已經(jīng)無法滿足目前的管道異常數(shù)據(jù)檢測的需求。隨著人工智能和深度學(xué)習(xí)技術(shù)的飛速發(fā)展,逐漸開始用于解決不同領(lǐng)域的異常數(shù)據(jù)問題,并取得了良好的效果。相關(guān)的國內(nèi)外研究工作如下:劉政等[12]用粒子群算法對神經(jīng)網(wǎng)絡(luò)進行優(yōu)化,建立預(yù)測模型,從而進行異常數(shù)據(jù)的檢測。通過深度網(wǎng)絡(luò)學(xué)習(xí)時間序列之間的關(guān)系建立預(yù)測模型,通過預(yù)測結(jié)果與實際序列的偏差進行異常檢測[13-14],但面對復(fù)雜數(shù)據(jù)時會出現(xiàn)特征提取不全等問題。趙文清等[15]利用LSTM網(wǎng)絡(luò)處理時序數(shù)據(jù)的優(yōu)勢,同時利用全連接層來檢測異常數(shù)據(jù)。通過研究發(fā)現(xiàn),LSTM網(wǎng)絡(luò)僅僅考慮正向的時序信息,沒有考慮反向的時序信息,從而導(dǎo)致異常數(shù)據(jù)檢測效果有待提高,因而雙向長短期記憶網(wǎng)絡(luò)被提出運用到異常數(shù)據(jù)檢測中。
綜上所述,單獨采用統(tǒng)計、聚類、神經(jīng)網(wǎng)絡(luò)等技術(shù)的異常檢測方法很難解決“特征提取不全和數(shù)據(jù)間關(guān)系挖掘不充分導(dǎo)致異常檢測方法準(zhǔn)確率低”的問題。為進一步提高異常數(shù)據(jù)檢測方法的準(zhǔn)確率,該文借鑒“分而治之、優(yōu)勢互補”的混合智能算法設(shè)計思想,提出一種融合CNN和Bi-LSTM的管道異常數(shù)據(jù)檢測方法。首先,使用CNN對管道數(shù)據(jù)的局部非相關(guān)性信息特征進行提取;其次,利用Bi-LSTM網(wǎng)絡(luò)處理時序數(shù)據(jù)的優(yōu)勢,將得到的特征向量輸入到Bi-LSTM網(wǎng)絡(luò)中進行訓(xùn)練并充分挖掘管道數(shù)據(jù)間的邏輯關(guān)系,得到預(yù)測模型;再次,使用預(yù)測值與實際值的誤差來檢測異常數(shù)據(jù);最后,通過實驗論證方法的有效性,并與不同檢測方法進行比較得到該方法的準(zhǔn)確性較高、誤報率較低。
定義1:取一組管道數(shù)據(jù)表示為Xt=[x1,x2,…,xm]T,其中X∈Rm×n且t∈[1,m]。xt表示t時刻所有屬性值的集合,其中xt∈Rn,xti表示時刻t第i個屬性值,即xt=[xt1,xt2,…,xtn]。Xt則為m階n維向量,展開式如公式(1)所示。
(1)
在管道運行的過程中,導(dǎo)致管道數(shù)據(jù)出現(xiàn)異常值的原因較多,其中包括通信故障、通信延遲;管道泄漏造成的相關(guān)數(shù)據(jù)值大幅度下降;高強度、長時間的使用可能使傳感器設(shè)備不靈敏或者損壞造成的數(shù)據(jù)不準(zhǔn);閥濾網(wǎng)單向堵造成數(shù)據(jù)值出現(xiàn)震蕩等。
異常檢測的目標(biāo)就是找出樣本中的異常點[16]。管道異常數(shù)據(jù)主要分為點異常和群異常兩種情況:點異常也稱為突變值異常,指的是管道數(shù)據(jù)在某一時刻的壓力值、流量值、溫度值等出現(xiàn)較大程度的升高和降低,過一段時間后又恢復(fù)到正常數(shù)據(jù)的情況。例如通信延遲可能使管道數(shù)據(jù)產(chǎn)生突變值異常數(shù)據(jù)。群異常,指的是管道數(shù)據(jù)普遍升高、降低、不變。例如計量儀器故障、閥濾網(wǎng)單向堵、通信故障、管道泄漏等方面造成的群數(shù)據(jù)異常。因此,在判斷管道數(shù)據(jù)異常時需要根據(jù)具體的情況進行分析。
1.3.1 卷積神經(jīng)網(wǎng)絡(luò)
CNN為深層前饋神經(jīng)網(wǎng)絡(luò),由卷積層、池化層構(gòu)成,每層都有不同的功能,卷積層利用卷積核對輸入向量進行卷積,得到特征向量。池化層分為最大池化、均值池化,池化層的作用是減少特征向量和參數(shù)的大小。例如,傳感器采集的管道數(shù)據(jù)為時序數(shù)據(jù),因此使用一維卷積神經(jīng)網(wǎng)絡(luò)對處理后的數(shù)據(jù)進行特征提取,卷積層計算公式如下所示:
F=f(W×X+b)
(2)
式中,X表示輸入數(shù)據(jù)向量,W表示卷積核權(quán)重矩陣,b表示偏置向量,f(·)為激活函數(shù)ReLU。
因此,該文采用CNN對管道數(shù)據(jù)進行特征提取,CNN結(jié)構(gòu)如圖1所示。
圖1 CNN基本結(jié)構(gòu)
1.3.2 雙向長短期記憶網(wǎng)絡(luò)
長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)在處理時間序列數(shù)據(jù)上具有一定的優(yōu)勢,其具有門控結(jié)構(gòu),能夠?qū)毎畔⑦M行選擇性刪除和添加,避免出現(xiàn)“梯度消失”和“梯度爆炸”等問題。LSTM神經(jīng)單元的三個“門”結(jié)構(gòu)包括遺忘門、 輸入門和輸出門。t時刻的計算表達式如下:
ft=σ(Whfht-1+Wxfxt+af)
(3)
it=σ(Whiht-1+Wxixt+at)
(4)
οt=σ(Whoht-1+Wxoxt+ao)
(5)
(6)
(7)
ht=ot*tanh(Ct)
(8)
基于LSTM網(wǎng)絡(luò),Bi-LSTM網(wǎng)絡(luò)可以利用過去和未來的數(shù)據(jù)進行學(xué)習(xí),從而預(yù)測未來時刻的參數(shù),彌補了LSTM網(wǎng)絡(luò)的不足。Bi-LSTM的隱藏層由正向LSTM細胞狀態(tài)和反向LSTM細胞狀態(tài)兩部分組成。Bi-LSTM的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)
(9)
(10)
(11)
本章節(jié)設(shè)計基于CNN-BiLSTM網(wǎng)絡(luò)異常數(shù)據(jù)檢測模型,主要包括數(shù)據(jù)預(yù)處理階段、數(shù)據(jù)預(yù)測階段、異常檢測階段。
為進一步提高異常檢查方法的準(zhǔn)確性,該文提出一種基于CNN-BiLSTM網(wǎng)絡(luò)的管道異常數(shù)據(jù)檢測方法,該方法主要包含數(shù)據(jù)預(yù)處理、數(shù)據(jù)預(yù)測和異常檢測三部分,異常檢測流程如圖3所示。
圖3 CNN-BiLSTM網(wǎng)絡(luò)異常檢測流程
(1)數(shù)據(jù)預(yù)處理。對輸入的管道數(shù)據(jù)進行野點剔除、均值填充、歸一化處理。數(shù)據(jù)預(yù)處理的步驟為:首先是對管道時序數(shù)據(jù)進行野點剔除操作,由于各種偶然因素導(dǎo)致的個別數(shù)據(jù)點的值過高或過低(野點),采用53H算法剔除野點;接著對剔除后的數(shù)據(jù)進行均值填充;然后對填充后的數(shù)據(jù)進行歸一化處理,這是由于管道數(shù)據(jù)的不同屬性數(shù)據(jù)的量綱也是不同的,差異較大時會影響檢測的結(jié)果,通過歸一化處理,將數(shù)據(jù)轉(zhuǎn)化為統(tǒng)一量綱,使數(shù)據(jù)分布在設(shè)定的區(qū)間[0,1]內(nèi)。公式如下所示:
(12)
(2)數(shù)據(jù)預(yù)測。將處理后的數(shù)據(jù)經(jīng)過CNN網(wǎng)絡(luò)進行特征提取,然后通過Bi-LSTN網(wǎng)絡(luò)訓(xùn)練并學(xué)習(xí)管道數(shù)據(jù)間的關(guān)系,得到預(yù)測模型,輸出預(yù)測值。
CNN的優(yōu)勢是利用卷積、池化操作進行特征提取,不僅實現(xiàn)了高維數(shù)據(jù)的降維,還減少了要訓(xùn)練的參數(shù),降低了全連接神經(jīng)網(wǎng)絡(luò)的計算復(fù)雜度,減少過擬合現(xiàn)象的出現(xiàn),實現(xiàn)了輸入數(shù)據(jù)關(guān)鍵特征的提取。Bi-LSTM網(wǎng)絡(luò)利用其處理時序數(shù)據(jù)的優(yōu)勢,能夠充分挖掘管道數(shù)據(jù)間的關(guān)系,從而提高異常數(shù)據(jù)檢測方法的準(zhǔn)確性。因此,利用CNN和Bi-LSTM網(wǎng)絡(luò)構(gòu)建預(yù)測數(shù)據(jù)模型,從而得到預(yù)測值,具體實現(xiàn)步驟如下:
步驟2:模型參數(shù)設(shè)置。基于理論研究和管道數(shù)據(jù)特點,CNN卷積層為1層,卷積核大小為2×2。Bi-LSTM隱藏層為2層,Bi-LSTM層設(shè)置60個隱藏神經(jīng)元,優(yōu)化器選擇Adam,迭代次數(shù)為3 000,輸入層的管道時序數(shù)據(jù)長度為6,而輸出層的輸出時間序列長度為1,其學(xué)習(xí)率為0.006,經(jīng)過CNN 提取特征后,變量數(shù)為1,輸入層和輸出層維數(shù)均為1。模型訓(xùn)練的過程中,為提高模型的預(yù)測精度,可以對各項參數(shù)值進行適當(dāng)修改。
步驟3:模型訓(xùn)練。構(gòu)建CNN-BiLSTM網(wǎng)絡(luò)異常檢測模型,輸入有效向量進行訓(xùn)練,損失函數(shù)選擇均方誤差(MSE),如公式(13)所示。通過損失函數(shù)的計算,進行反饋調(diào)節(jié),調(diào)整網(wǎng)絡(luò)參數(shù)設(shè)置,MSE最小值時,訓(xùn)練停止,得到最終預(yù)測模型。
(13)
由圖2可知,正向LSTM網(wǎng)絡(luò)和反向LSTM網(wǎng)絡(luò)的運算過程如公式(14)所示:
(14)
結(jié)合正向LSTM網(wǎng)絡(luò)和反向LSTM網(wǎng)絡(luò),形成雙向神經(jīng)網(wǎng)絡(luò),則可以得出Bi-LSTM網(wǎng)絡(luò)的輸出,公式如下所示:
(15)
式中,g為激活函數(shù);yt為Bi-LSTM網(wǎng)絡(luò)的輸出;V和c分別為相應(yīng)的權(quán)重和偏置。
最后得到歷史管道數(shù)據(jù)與未來管道數(shù)據(jù)的擬合關(guān)系,預(yù)測模型為Ytrain=f(w,b)Xtrain。由于輸入的數(shù)據(jù)是歸一化處理后的數(shù)據(jù),因此,通過模型得到的預(yù)測值需要進行反歸一化處理,處理過程如公式(16)所示。
Yfg=postmnmx(Yg,min(t),max(t))
(16)
式中,Yfg為Yg反歸一化后的輸出數(shù)據(jù),Yg為預(yù)測值。
傳統(tǒng)的異常數(shù)據(jù)檢測方法中大多是采用固定閾值,但是在實際的應(yīng)用過程中存在靈敏性較低、誤報率較高等問題,閾值的選取決定著異常數(shù)據(jù)檢測的準(zhǔn)確性。因此,該文引入動態(tài)閾值計算方法[17-18]得到不同特征的閾值。初始化閾值β,公式如下所示:
β=μ(se)+qσ(se)
(17)
式中,q為固定范圍內(nèi)的隨機數(shù),表示大于μ(se)標(biāo)準(zhǔn)偏差的數(shù)量。利用該預(yù)測誤差序列se分為異常誤差序列sa和正常誤差序列sn,并計算閾值ε,公式如下所示:
(18)
式中,Mseq表示每個特征中異常序列的數(shù)目,且Δμ(se)=μ(se)-μ(sa),Δσ(se)=σ(se)-σ(sa)。
通過不斷改變q來計算閾值ε,將ε與上一個閾值比較,若當(dāng)前的閾值大于上一個閾值則替換q,否則繼續(xù)保留,從而確定每個特征的目標(biāo)閾值ε。
實驗在Windows10操作系統(tǒng)上運行,CPU為Intel Core i7-1165G7(1.2 GHz/L3 12 M),內(nèi)存16 GB,顯卡為Intel Iris Xe Graphics,固態(tài)硬盤為1 TB;在 PyCharm 集成開發(fā)環(huán)境上編寫計算程序 使用的語言是Python3.6。
實驗數(shù)據(jù)選取盤錦市某油田管道真實數(shù)據(jù)作為實驗樣本,按照7∶3比例分為訓(xùn)練集和測試集。收集10組實驗數(shù)據(jù),包括5組正常數(shù)據(jù)和5組異常數(shù)據(jù),每一組數(shù)據(jù)包含不同時間段的管道壓力、管道溫度、管道流量、環(huán)境溫度等,異常數(shù)據(jù)集基本信息如表1所示。
表1 異常數(shù)據(jù)基本信息
實驗的測試數(shù)據(jù)來自盤錦市某油田2021年11月份的管道運行數(shù)據(jù),選擇管道溫度、管道壓力、管道流量、環(huán)境溫度各600條,測試集基本信息如表2所示。
表2 測試集基本信息
選用準(zhǔn)確率(Accuracy)和召回率(Recall)作為評價指標(biāo)。準(zhǔn)確率表示的是檢測正常的樣本數(shù)據(jù)占全部檢測樣本的比值,比值越大,檢測的效果越準(zhǔn)確、越好。召回率指正確檢測出來的異常數(shù)據(jù)個數(shù)與實際異常數(shù)據(jù)個數(shù)的比值,比值越大,表示檢測的效果越好。計算公式分別為:
(19)
(20)
式中,TN表示的是實際值為正常且檢測也正常的數(shù)據(jù)個數(shù);FP表示的是實際值為正常且檢測為異常的數(shù)據(jù)個數(shù);FN表示的是實際值為異常且檢測為正常的數(shù)據(jù)個數(shù);TP表示的是實際值為異常且檢測為異常的數(shù)據(jù)個數(shù)。
為驗證所提異常數(shù)據(jù)檢測方法的有效性,選取測試數(shù)據(jù)集,將所提方法與K-means算法、LSTM網(wǎng)絡(luò)、Bi-LSTM網(wǎng)絡(luò)3種方法進行對比,驗證基于CNN-BiLSTM網(wǎng)絡(luò)的異常數(shù)據(jù)檢測方法的效果。
圖4為K-Means、LSTM網(wǎng)絡(luò)、CNN-BiLSTM網(wǎng)絡(luò)的壓力預(yù)測值和真實值的對比圖,圖5為K-Means、LSTM網(wǎng)絡(luò)、CNN-BiLSTM網(wǎng)絡(luò)的流量預(yù)測值和真實值的對比圖。分析可得,CNN-BiLSTM網(wǎng)絡(luò)異常點數(shù)據(jù)的預(yù)測值與實際數(shù)據(jù)更加精準(zhǔn)、貼近,異常數(shù)據(jù)基本找出,相比較于其他方法,準(zhǔn)確率最高。
圖4 不同方法檢測壓力真實值與預(yù)測值對比
圖5 不同方法檢測流量真實值與預(yù)測值對比
圖6~圖8分別為K-Means算法、LSTM網(wǎng)絡(luò)、Bi-LSTM網(wǎng)絡(luò)檢測異常數(shù)據(jù)的效果圖??芍狵-Means算法、LSTM網(wǎng)絡(luò)和Bi-LSTM網(wǎng)絡(luò)均會出現(xiàn)漏檢和誤檢等情況。由此可以得到神經(jīng)網(wǎng)絡(luò)比K-Means算法異常檢測效果好,是由于神經(jīng)網(wǎng)絡(luò)考慮到了管道數(shù)據(jù)的時序性。由圖7、圖8對比可得,雙向神經(jīng)網(wǎng)絡(luò)比單向神經(jīng)網(wǎng)絡(luò)的效果好,是因為雙向神經(jīng)網(wǎng)絡(luò)還考慮到了反向時序信息。
圖6 K-Means算法異常數(shù)據(jù)檢測結(jié)果
圖7 LSTM網(wǎng)絡(luò)異常數(shù)據(jù)檢測結(jié)果
圖8 Bi-LSTM網(wǎng)絡(luò)異常數(shù)據(jù)檢測結(jié)果
由表3可知,針對管道異常數(shù)據(jù)情況,相比較于已有的異常檢測算法,CNN-BiLSTM網(wǎng)絡(luò)優(yōu)于同類算法,這是由于該方法通過CNN對管道數(shù)據(jù)進行特征提取和降維,得到有效的特征向量,然后利用Bi-LSTM網(wǎng)絡(luò)處理管道數(shù)據(jù)雙向時序信息的優(yōu)勢,可以有效檢測大量、復(fù)雜數(shù)據(jù)中的正常值和異常值,各項評價指標(biāo)均較高,證明了該方法的準(zhǔn)確性和優(yōu)越性。
表3 不同評價指標(biāo)對比
針對特征提取不全、數(shù)據(jù)間關(guān)系挖掘不充分的問題,提出了一種基于CNN和Bi-LSTM網(wǎng)絡(luò)的異常數(shù)據(jù)檢測方法,進一步提高了異常數(shù)據(jù)檢測方法的準(zhǔn)確率,降低了誤報率。
實驗結(jié)果表明,CNN-BiLSTM網(wǎng)絡(luò)方法相比同類模型在檢測速度、檢測精度和穩(wěn)定性方面具有明顯優(yōu)勢。CNN能夠高效地提取管道數(shù)據(jù)特征;Bi-LSTM網(wǎng)絡(luò)利用其記憶功能和處理雙向時序信息的優(yōu)勢,極大地提高了預(yù)測精度;動態(tài)閾值的確定有效地解決了靈敏性差等問題,能夠準(zhǔn)確地檢測異常點,同時還為異常數(shù)據(jù)填補正常的數(shù)值。未來的管道數(shù)據(jù)異常檢測可能還會對異常檢測結(jié)果的可解釋性提出新要求,同時要找到產(chǎn)生異常點的原因,這也是異常檢測方法的改進方向。