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