本發(fā)明涉及工業(yè)控制系統(tǒng)的時序數(shù)據(jù)異常檢測,特別涉及一種基于深度學(xué)習(xí)的工控時序數(shù)據(jù)異常檢測方法。
背景技術(shù):
1、工業(yè)控制系統(tǒng)(industrial?control?system,ics)是一個涵蓋多種類型控制系統(tǒng)的總稱,包括監(jiān)控數(shù)據(jù)采集系統(tǒng)(scada)、分布式控制系統(tǒng)(dcs)、可編程邏輯控制器(plc)等;為保障工業(yè)控制系統(tǒng)的安全運行,需要對工控設(shè)備產(chǎn)生的多變量時間序列數(shù)據(jù)進(jìn)行監(jiān)測和分析,包括設(shè)備狀態(tài)、傳感器讀數(shù)和控制指令等;由于在實際的工控環(huán)境中,異常通常較為稀少,所以相關(guān)研究只使用正常數(shù)據(jù)訓(xùn)練模型,稱為無監(jiān)督學(xué)習(xí)。
2、在訓(xùn)練中,有經(jīng)典機(jī)器學(xué)習(xí)方法,通常包括單類支持向量機(jī)(one-class?supportvector?machine,ocsvm)、局部離群因子(local?outlier?factor,lof)、孤立森林(isolation?forest,iforest)和主成分分析(principal?component?analysis,pca)等,此類算法具有原理簡單、可解釋性強(qiáng)的優(yōu)點,但此類方法通常是基于單一假設(shè),且通常沒有充分關(guān)注數(shù)據(jù)的時間依賴和變量依賴關(guān)系,從而缺乏對時間特征或變量特征的提取能力,難以有效處理工業(yè)控制系統(tǒng)中關(guān)聯(lián)復(fù)雜的多變量時序數(shù)據(jù);有基于預(yù)測的深度學(xué)習(xí)方法,此類方法是利用深度學(xué)習(xí)模型預(yù)測多變量時間序列的變化趨勢,從而將不符合預(yù)期趨勢的數(shù)據(jù)點識別為異常,此類方法能夠?qū)W習(xí)并提取變量之間的圖結(jié)構(gòu)特征,以提高對多變量時序數(shù)據(jù)的異常檢測,但由于工控系統(tǒng)及其時序數(shù)據(jù)的復(fù)雜性,此類模型通常難以實現(xiàn)對多變量時間序列的精準(zhǔn)預(yù)測;有基于重構(gòu)的深度學(xué)習(xí)方法,此類方法通過學(xué)習(xí)重構(gòu)數(shù)據(jù)并計算樣本的重構(gòu)偏差來檢測異常,但該模型常常存在欠擬合問題,在實際的工業(yè)控制系統(tǒng)中,數(shù)據(jù)通常具有復(fù)雜性的關(guān)聯(lián),因而此類模型難以很好地學(xué)習(xí)到數(shù)據(jù)的復(fù)雜關(guān)系以對其進(jìn)行預(yù)測。
3、因此,由于工控系統(tǒng)中時序數(shù)據(jù)的復(fù)雜關(guān)聯(lián)性較高,現(xiàn)階段所采取的方法難以識別出復(fù)雜時序數(shù)據(jù)中的信息,從而無法取得較佳的異常檢測效果。
技術(shù)實現(xiàn)思路
1、本發(fā)明實施例提供一種基于深度學(xué)習(xí)的工控時序數(shù)據(jù)異常檢測方法,可以解決現(xiàn)有技術(shù)中,存在的由于工控系統(tǒng)中時序數(shù)據(jù)的復(fù)雜關(guān)聯(lián)性較高,現(xiàn)階段所采取的方法難以識別出復(fù)雜時序數(shù)據(jù)中的信息,從而無法取得較佳的異常檢測效果的問題。
2、本發(fā)明實施例提供一種基于深度學(xué)習(xí)的工控時序數(shù)據(jù)異常檢測方法,包括以下步驟:
3、獲取工業(yè)控制系統(tǒng)中的時序數(shù)據(jù);
4、利用多層神經(jīng)網(wǎng)絡(luò)分別構(gòu)建第一編碼器和第一解碼器,并將第一編碼器和第一解碼器級聯(lián)以構(gòu)建自編碼器ae;利用多層神經(jīng)網(wǎng)絡(luò)分別構(gòu)建第二編碼器和第二解碼器,并引入記憶模塊memory,將第二編碼器、第二解碼器與記憶模塊memory級聯(lián)以構(gòu)建記憶增強(qiáng)自編碼器memae;將自編碼器ae與記憶增強(qiáng)自編碼器memae級聯(lián)形成雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae;
5、在雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae的輸入層后級聯(lián)一個裁剪歸一化層dc,形成改進(jìn)的輸入層;將雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae中記憶增強(qiáng)自編碼器memae內(nèi)記憶模塊的余弦相似度替換為均方誤差,形成改進(jìn)的記憶模塊;將記憶增強(qiáng)自編碼器memae中的第二編碼器、第二解碼器和改進(jìn)的記憶模塊級聯(lián)形成改進(jìn)的記憶增強(qiáng)自編碼器memae;在雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae的輸出層的損失函數(shù)中添加一個正則項,形成改進(jìn)的輸出層;
6、將改進(jìn)的輸入層、自編碼器ae、改進(jìn)的記憶增強(qiáng)自編碼器memae及改進(jìn)的輸出層融合,得到改進(jìn)后的雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae;
7、將時序數(shù)據(jù)輸入至改進(jìn)后的雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae中,利用改進(jìn)的輸入層內(nèi)的裁剪歸一化層dc對時序數(shù)據(jù)超出設(shè)定值邊界的取值進(jìn)行裁剪并篩選,獲得篩選后的時序數(shù)據(jù);將篩選后的時序數(shù)據(jù)在改進(jìn)的記憶模塊中量化為多個記憶向量,利用改進(jìn)的記憶模塊內(nèi)的均方誤差獲取多個記憶向量之間的均方誤差,并根據(jù)均方誤差獲取時序數(shù)據(jù)之間的相似度;利用改進(jìn)的輸出層內(nèi)的損失函數(shù)內(nèi)的正則項將時序數(shù)據(jù)之間的相似度變換為時序數(shù)據(jù)的異常分?jǐn)?shù),并根據(jù)異常分?jǐn)?shù)獲得工業(yè)控制系統(tǒng)中的異常數(shù)據(jù)。
8、優(yōu)選地,所述裁剪歸一化層dc,包括:
9、將工業(yè)控制系統(tǒng)中,由n個傳感器或控制器在長度為t的時間范圍內(nèi)收集的多變量時間序列定義為d∈rn×t,然后,將d劃分為訓(xùn)練集和測試集;其dtrain表示訓(xùn)練集,dtest表示測試集;
10、為保持測試數(shù)據(jù)dtest與訓(xùn)練數(shù)據(jù)dtrain有一致的分布,在雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae的輸入層后級聯(lián)一個裁剪歸一化層dc;則輸出為:
11、
12、其中:x表示輸入的數(shù)據(jù)點;y表示輸入對應(yīng)的輸出。
13、優(yōu)選地,所述余弦相似度替換為均方誤差,包括:
14、記憶模塊級聯(lián)在記憶增強(qiáng)自編碼器memae的編碼器后,記憶模塊包括一個固定尺寸的記憶矩陣,其中每一行代表一個記憶向量,并用記憶向量存儲時序數(shù)據(jù)的特征關(guān)聯(lián);
15、各個記憶向量之間的相似度通過獲取記憶向量之間的均方誤差來度量;其相似度獲取方程為:
16、
17、其中:sim表示相似度計算函數(shù);gx表示記憶向量;my表示另一個記憶向量;n表示記憶矩陣中記憶向量的個數(shù)。
18、優(yōu)選地,所述損失函數(shù)中添加一個正則項為:
19、l=mse(x,x′)+β·mse(x,x′a)
20、其中:mse(x,x’)表示模型的重構(gòu)目標(biāo);mse(x,xa’)表示正則項;β表示正則項的權(quán)重;x表示輸入的數(shù)據(jù)點;x’表示輸出的數(shù)據(jù)點。
21、優(yōu)選地,所述時序數(shù)據(jù)的異常分?jǐn)?shù)的獲得,包括:
22、將改進(jìn)后的雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型dmemae輸出的時序數(shù)據(jù)的多個異常分?jǐn)?shù)片段組合成一個異常分?jǐn)?shù)序列,對其中的重復(fù)時間點進(jìn)行平均,則重復(fù)值平均化后的異常分?jǐn)?shù)序列st獲取方程為:
23、
24、其中:表示多變量時間序列在t時刻上的數(shù)據(jù)結(jié)點;表示其重構(gòu);st表示t時刻上的所有數(shù)據(jù)節(jié)點及其重構(gòu);
25、對每個變量i,取變量重復(fù)值平均化后的異常分?jǐn)?shù)序列中的一段異常分?jǐn)?shù)序列,則此序列為:
26、
27、p=pratio·ttest
28、其中:p表示該序列的長度;pratio表示p占測試序列總長度ttest的比例;
29、再分別求該序列的10%、50%及90%分位數(shù),其獲取方程為:
30、
31、其中:percentile表示取分位數(shù);
32、對該變量在每個時間點t上的異常分?jǐn)?shù)進(jìn)行歸一化,其歸一化方程為:
33、
34、其中:表示序列的中位數(shù)(50%分位數(shù));表示該序列的十分位距;和分別表示該序列的10%和90%分位數(shù);ε表示小正數(shù)。
35、本發(fā)明實施例提供一種基于深度學(xué)習(xí)的工控時序數(shù)據(jù)異常檢測方法,與現(xiàn)有技術(shù)相比,其有益效果如下:
36、本發(fā)明將自編碼器和記憶增強(qiáng)自編碼器融合為雙分支記憶增強(qiáng)自編碼器網(wǎng)絡(luò)模型;在網(wǎng)絡(luò)模型的輸入層引入裁剪歸一化層對超出設(shè)定范圍的最大值或最小值邊界的取值進(jìn)行裁剪并篩選,將網(wǎng)絡(luò)模型記憶模塊中的余弦相似度替換為均方誤差,以擴(kuò)大異常數(shù)據(jù)之間的差異,從而獲得時序數(shù)據(jù)之間的相似度,同時在網(wǎng)絡(luò)模型的輸出層的損失函數(shù)中添加正則項,以度量時序數(shù)據(jù)間的相似度并篩選異常數(shù)據(jù),從而更為清晰地識別出復(fù)雜時序中的異常信息,能獲得更貼近實際情況的檢測結(jié)果。