尹春勇,周立文
(南京信息工程大學(xué) 計(jì)算機(jī)與軟件學(xué)院,南京 210044)
近年來時(shí)間序列在風(fēng)險(xiǎn)評(píng)估、金融分析、物聯(lián)網(wǎng)、醫(yī)療等方面得到了廣泛的應(yīng)用[1]。它在計(jì)算機(jī)視覺、統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)中越來越重要,比如觸屏手勢(shì)序列[2]被用來識(shí)別人類行為,基于時(shí)間序列成像提取時(shí)間序列特征[3]。然而,在時(shí)間序列中可能存在一些不符合現(xiàn)實(shí)變化規(guī)律的數(shù)據(jù),稱之為異常數(shù)據(jù),雖然異常所占的比例很小,但容易被忽略。比如,在心電圖診斷中忽略掉異常,這會(huì)發(fā)生誤診,對(duì)患者的健康造成巨大威脅。在物聯(lián)網(wǎng)中,傳感器網(wǎng)絡(luò)目前被廣泛使用在地下施工安全檢測(cè)和預(yù)警系統(tǒng),然而傳感器網(wǎng)絡(luò)容易受到攻擊,如果不能有效檢測(cè)到異??赡軙?huì)造成災(zāi)難,因此,提高時(shí)間序列異常檢測(cè)準(zhǔn)確率十分重要。時(shí)間序列數(shù)據(jù)分為單變量和多變量時(shí)間序列數(shù)據(jù)。在氣象、社交媒體流量、出租車服務(wù)等方面多變量時(shí)間序列無處不在,這也表明在現(xiàn)實(shí)世界中大部分時(shí)間序列都是多變量時(shí)間序列。
然而,時(shí)間序列往往缺乏標(biāo)簽,同時(shí)標(biāo)記異常需要高昂的專家成本而且還不能保證所有的異常類型都被標(biāo)記,因此,設(shè)計(jì)不嚴(yán)重依賴標(biāo)記數(shù)據(jù)的模型具有重要意義。在這種情況下,此類模型在現(xiàn)實(shí)場(chǎng)景中更有適應(yīng)性;但是時(shí)間序列含有噪聲和復(fù)雜的異常模式,這使得捕獲高度復(fù)雜的時(shí)間相關(guān)性和檢測(cè)異常更加困難。此外,許多模型忽略了時(shí)間序列中的時(shí)間相關(guān)性。深度學(xué)習(xí)方法使用了具有更多隱藏層的神經(jīng)網(wǎng)絡(luò),因此能夠捕獲復(fù)雜的潛在特征和時(shí)間相關(guān)性,例如,MAD-GAN(Multivariate Anomaly Detection with Generative Adversarial Network)[4]和USAD(UnSupervised Anomaly Detection)[5]使用長(zhǎng) 短期記 憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)捕獲時(shí)間相關(guān)性。同樣,使用深度學(xué)習(xí)方法也有缺 陷,比 如,使 用AutoEncoder[6]和LSTM-VAE(Long Short-Term Memory Variational AutoEncoder)[7]等模型 通過重構(gòu)誤差進(jìn)行異常檢測(cè)。這類模型可以很好地?cái)M合數(shù)據(jù),當(dāng)使用具有L2目標(biāo)函數(shù)的LSTM 時(shí),仍然存在過擬合問題。如果數(shù)據(jù)中包含異常,這些深度學(xué)習(xí)方法也擬合了這些異常,從而降低異常檢測(cè)的性能,因此,當(dāng)異常數(shù)據(jù)非常接近正常數(shù)據(jù)時(shí),通常無法檢測(cè)異常。
基于生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)的異常檢測(cè)方法:首次由Schlegl等[8]提出,它針對(duì)醫(yī)學(xué)圖像進(jìn)行異常檢測(cè),引起很多學(xué)者對(duì)GAN 進(jìn)行異常檢測(cè)的廣泛關(guān)注。原始GAN 只是通過比較原始數(shù)據(jù)與生成數(shù)據(jù)的分布差異判定異常,導(dǎo)致模型需要大量的計(jì)算成本。GAN本身有著模式崩潰的問題,訓(xùn)練也存在困難。Dendorfer等[9]提出MG-GAN(Multi-Generator Generative Adversarial Network),使用多個(gè)生成器,避免模式崩潰同時(shí)減少了分布外的樣本。GAN 雖然在異常檢測(cè)中使用廣泛,但是GAN 對(duì)時(shí)間序列的異常檢測(cè)研究較少。
考慮到上述問題,本文提出一個(gè)基于無監(jiān)督深度學(xué)習(xí)的新 型GAN結(jié)構(gòu)RTGAN(Re-encoding Time series based on Generative Adversarial Network),使用具有周期一致性的多個(gè)生成器,以確保生成器能夠生成多樣性的樣本并學(xué)習(xí)時(shí)間序列數(shù)據(jù)中的特征空間,從而使RTGAN 能夠捕獲給定數(shù)據(jù)的正態(tài)性。異常分?jǐn)?shù)由多個(gè)生成器、再編碼誤差和兩個(gè)鑒別器的輸出計(jì)算得出。
本文的主要工作如下:
1)提出了一種新穎的基于GAN 的無監(jiān)督異常檢測(cè)方法。多個(gè)生成器保證生成樣本多樣性,在不同子空間中捕獲復(fù)雜的異常模式,同時(shí)使用循環(huán)一致性,以避免沖突,并確保映射過程中的一一對(duì)應(yīng)。
2)設(shè)計(jì)堆 疊LSTM-dropout RNN(Stacked Long Short-Term Memory dropout Recurrent Neural Network)作為生成器和判別器的基本模型,盡可能地捕獲高度復(fù)雜的時(shí)間相關(guān)性,解決了單一LSTM 在訓(xùn)練過程中難以保持樣本間的時(shí)間特性的問題。
3)為了提高模型的可擴(kuò)展性和可移植性,引入具有LSTM-dropout RNN 的編碼器進(jìn)行二次編碼輸入數(shù)據(jù),再編碼誤差作為異常評(píng)分的一部分。當(dāng)生成的時(shí)間序列在第一個(gè)編碼器之后再次編碼時(shí),可以獲得潛在空間的差異和時(shí)間相關(guān)性。
前文提到時(shí)間序列被廣泛應(yīng)用在多個(gè)領(lǐng)域,但異常數(shù)據(jù)十分稀少而且容易被忽略,有時(shí)蘊(yùn)含著重要的信息。一直以來針對(duì)異常的類型、數(shù)據(jù)類型以及工業(yè)應(yīng)用提出了眾多異常檢測(cè)方法[10-12],這些方法可以被分類為基于近似、基于預(yù)測(cè)和基于重構(gòu)的方法。
基于近似值的方法 給定特征空間中的一組對(duì)象,使用距離或密度測(cè)量來量化對(duì)象之間的相似性。遠(yuǎn)離其他對(duì)象的不同對(duì)象可以被視為異常值??梢苑譃榛诰嚯x的方法,比如K 近鄰(K-Nearest Neighbors,KNN)[13]和基于密度的方法,比如局部離群因子[14]。在時(shí)間序列中應(yīng)用此方法也有2個(gè)主要缺陷:1)需要異常持續(xù)時(shí)間和異常個(gè)數(shù)的先驗(yàn)知識(shí);2)基于近似值的方法無法獲得時(shí)間序列相關(guān)性。
基于預(yù)測(cè)的方法 如果一個(gè)數(shù)據(jù)點(diǎn)的預(yù)測(cè)輸入與原始輸入之間的之差超過某一閾值,則將該數(shù)據(jù)點(diǎn)識(shí)別為異常。統(tǒng)計(jì)模型,如ARIMA(AutoRegressive Integrated Moving Average)[15]、Fisher Discriminant Analysis[16]可以用來對(duì)時(shí)間序列進(jìn)行異常檢測(cè),但是對(duì)參數(shù)的選擇極為敏感?;跈C(jī)器學(xué)習(xí)的方法試圖解決以上問題,Ahmad等[17]引入了HTM(Hierarchical Temporal Memory),用于實(shí)時(shí)數(shù)據(jù)流的異常檢測(cè)。雖然循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)可以捕捉時(shí)間序列的相關(guān)性,但是隨著時(shí)間步長(zhǎng)的增加,并不能很好地捕捉時(shí)間序列相關(guān)性,因此對(duì)上下文異常檢測(cè)準(zhǔn)確率有較大影響。
基于重構(gòu)的方法 一個(gè)學(xué)習(xí)后的模型可以對(duì)一個(gè)時(shí)間序列進(jìn)行編碼,然后對(duì)其進(jìn)行解碼。重構(gòu)誤差可以通過原始樣本和重構(gòu)樣本之間的差值來得到。重構(gòu)誤差越大表明為異常的可能性越大。主成分分析(Principal Component Analysis,PCA)[18]是最常見的數(shù)據(jù)降維的方法,將原始數(shù)據(jù)映射到低維空間后,也可以根據(jù)數(shù)據(jù)在低維空間里的坐標(biāo)來重構(gòu)原始數(shù)據(jù)。但是僅限于線性重構(gòu),要求時(shí)間序列數(shù)據(jù)具有高度相關(guān)性并且服從高斯分布。自編碼(AutoEncoder,AE)模型與PCA 類似,但AE 使用非線性激活函數(shù)時(shí)克服了PCA線性的限制。其他基于AE 的方法,如Dai等[19]提出SDF-VAE(Static and Dynamic Factorized-Variational Auto Encoder)。這些模型通過顯式地將潛在變量分解為動(dòng)態(tài)部分和靜態(tài)部分來學(xué)習(xí)KPI(Key Performance Indicators)表示。霍緯綱等[20]將自編碼和隱馬爾可夫模型相結(jié)合,提取時(shí)間序列特征,同時(shí)可以很好地表征時(shí)間序列。Schleinitz等[21]提出將異常檢測(cè)和時(shí)間序列預(yù)測(cè)任務(wù)相結(jié)合的VASP(Variational Autoencoder based Selective Prediction)。然而,這些基于重構(gòu)的方法容易出現(xiàn)過擬合,并且原始LSTM 無法捕獲高度復(fù)雜的時(shí)間相關(guān)性,這將降低異常檢測(cè)的準(zhǔn)確性。原始的GAN[22]無法捕獲時(shí)間相關(guān)性,于是Li等[4]提出了一種普通的GAN,它使用LSTM 作為GAN 的基礎(chǔ),并且生成器可以學(xué)習(xí)多元時(shí)間序列的分布。Yooh等[23]提出的TimeGAN(Time Generative Adversarial Network),可以捕獲每個(gè)時(shí)間步的特征分布和關(guān)系。王靜等[24]考慮到生成對(duì)抗網(wǎng)絡(luò)訓(xùn)練不穩(wěn)定、預(yù)測(cè)準(zhǔn)確率不高等問題,提出EMD-WGAN(EMDWasserstein Generative Adversarial Network)模型。
本文使用生成對(duì)抗模型進(jìn)行重構(gòu),并引入堆疊式 LSTMdropout RNN 作為生成器和鑒別器的基本模型捕獲時(shí)間相關(guān)性。再編碼誤差作為異常評(píng)分的一部分并且多個(gè)生成器的重構(gòu)誤差可以直接作為異常評(píng)分,可以提高異常檢測(cè)的性能。
首先,針對(duì)高度復(fù)雜的相關(guān)性設(shè)計(jì)堆疊LSTM-dropout RNN 作為生成器和鑒別器的基本框架,它由多個(gè)隱藏層組成堆疊LSTM 網(wǎng)絡(luò)并且使用了dropout 機(jī)制。其次,考慮到GAN 存在模式崩潰缺陷應(yīng)用了Wasserstein 損失[25];但是,這需要更大的搜索空間。因此,使用了周期一致性損失。最后,對(duì)于正常數(shù)據(jù)經(jīng)過兩次編碼后在潛在空間上的差異較小,然而當(dāng)使用正常樣本訓(xùn)練后檢測(cè)異常數(shù)據(jù)時(shí),潛在的空間差異往往很大。因此,使用兩個(gè)編碼器和一個(gè)解碼器來獲得重編碼器的損失,擴(kuò)大異常。再編碼損失可以作為異常分?jǐn)?shù)的一部分,以提高異常分?jǐn)?shù)的準(zhǔn)確性。
對(duì)于時(shí)間序列的無監(jiān)督異常檢測(cè)方法的主要思想是觀察某段時(shí)間的數(shù)值是否符合正常分布,利用重構(gòu)的方法檢測(cè)異常。通過學(xué)習(xí)后的模型可以獲得真實(shí)數(shù)據(jù)的特征,生成數(shù)據(jù)與真實(shí)數(shù)據(jù)誤差較小則為正常,然而如果生成的數(shù)據(jù)與真實(shí)數(shù)據(jù)誤差較大,就可以判定為異常。在RTGAN 模型中,如圖1 所示,學(xué)習(xí)了2 個(gè)域x、z之間的映射,也就是ε:x→z以及g:z→x。對(duì)于正常的數(shù)據(jù),通過編碼映射到潛在空間后解碼為數(shù)據(jù),最后將數(shù)據(jù)再次編碼映射到潛在空間,此時(shí)和第一次編碼后在潛在空間上的差異不會(huì)特別大。
圖1 RTGAN模型的框架Fig.1 Framework of RTGAN model
但是,針對(duì)異常數(shù)據(jù)時(shí),再經(jīng)歷兩次編碼過程下潛在空間上的差距較大。為此設(shè)計(jì)了再編碼結(jié)構(gòu),也就是ε:x→z。同時(shí)設(shè)置了多個(gè)生成器,確保生成樣本的多樣性,可以學(xué)習(xí)到多種異常模式。
生成器ε1、ε2充當(dāng)編碼器學(xué)習(xí)時(shí)間序列的特征,gi充當(dāng)解碼器,將編碼后的潛在空間解碼回時(shí)間序列,ε2將解碼后的時(shí)間序列再次編碼回潛在空間,可以通過潛在空間的差異判定異常。使用了多個(gè)生成器,保證了生成樣本的多樣性學(xué)習(xí)到更多的異常模式,可以提高異常檢測(cè)的準(zhǔn)確度。Dx可以區(qū)分來自真實(shí)的時(shí)間序列還是生成的時(shí)間序列,Dz判定ε1的映射能力,保障了生成器ε1可以很好地學(xué)習(xí)到時(shí)間序列的特征。為了能夠處理較長(zhǎng)的或者具有高度復(fù)雜時(shí)間相關(guān)性的時(shí)間序列,設(shè)計(jì)了堆疊LSTM-dropout RNN(如圖2 所示)為生成器與判別器的基礎(chǔ)模型。將編碼器ε1、ε2和解碼器G={g1,g2,…,gnum_gen}看作是生成器,ε1充當(dāng)編碼器將時(shí)間序列映射到潛在空間中。多個(gè)解碼器G,從潛在空間重構(gòu)時(shí)間序列,ε2將重構(gòu)后的時(shí)間序列再次編碼回潛在空間,通過學(xué)習(xí)時(shí)間序列之間的時(shí)間相關(guān)性以及潛在空間上的差異計(jì)算重構(gòu)誤差。
堆疊式LSTM-dropout RNN 內(nèi)部由堆疊式LSTM 網(wǎng)絡(luò)和dropout 組成,使用多個(gè)隱藏層組成的堆疊LSTM 網(wǎng)絡(luò)獲取時(shí)間序列相關(guān)性及其特征,解決了單一LSTM 在訓(xùn)練過程中難以保持樣本間的時(shí)間特性的問題。dropout 提高了生成對(duì)抗模型的泛化能力和魯棒性,如圖2 所示。
圖2 堆疊式LSTM-dropout RNN框架Fig.2 Framework of stacked LSTM-dropout RNN
RNN 模型有梯度消失和梯度爆炸的缺陷,梯度爆炸可以采用梯度截?cái)鄬⒊^閾值θ的梯度手動(dòng)降到θ。相對(duì)于梯度爆炸,由于長(zhǎng)期依賴的現(xiàn)象也會(huì)產(chǎn)生很小的梯度,無法通過類似此方法得到解決,如果刻意提高梯度的值將會(huì)使模型失去捕捉長(zhǎng)期依賴性的能力。LSTM 引入了門機(jī)制用于控制特征的流通和損失,解決了長(zhǎng)期依賴的問題。因此,LSTM 可以作為GAN 的基礎(chǔ)模型,捕獲時(shí)間序列相關(guān)性。LSTM 主要有三個(gè)門,分別是遺忘門、輸入門、輸出門:遺忘門決定什么樣的信息需要從單元中丟棄;輸入門決定輸入中哪些值來更新記憶狀態(tài);輸出門根據(jù)輸入和單元的內(nèi)存決定輸出內(nèi)容。在內(nèi)部狀態(tài)的更新中使用了遺忘門和輸入門。輸入門是單元實(shí)際輸出什么的最后限制。正是這些門和一致的數(shù)據(jù)流被稱為CEC(Constant Error Carrousel),可以保持每個(gè)單元穩(wěn)定,即不產(chǎn)生梯度爆炸或者梯度消失。
原始GAN 通過生成器與判別器優(yōu)化自己的目標(biāo)函數(shù),可以看作是極大極小博弈V(D,G)。在訓(xùn)練過程中,生成網(wǎng)絡(luò)G的目標(biāo)就是盡可能生成真實(shí)的樣本去欺騙判別網(wǎng)絡(luò)D。而D的目標(biāo)就是盡可能將G生成的樣本和真實(shí)的樣本區(qū)分開。V(D,G)定義如下:
為了解決這個(gè)問題,首先使用Wasserstein loss 作為對(duì)抗損失,用Wasserstein-1 距離來訓(xùn)練判別器。其次使用了多個(gè)生成器保證生成樣本的多樣性。對(duì)于映射函數(shù)gi:z→x,以及它的判別器Dx,Dx是用來區(qū)分生成樣本和真實(shí)樣本,衡量生成器gi的映射能力并對(duì)生成器進(jìn)行懲罰,從而生成器可以生成更加真實(shí)的樣本,有以下目標(biāo):
k-利普希茨(k-Lipschitz)連續(xù)條件限制了一個(gè)連續(xù)函數(shù)的最大局部變動(dòng)幅度,可以減小產(chǎn)生梯度爆炸的風(fēng)險(xiǎn),使模型訓(xùn)練更加穩(wěn)定。
同樣對(duì)于映射函數(shù)ε1:x→z,以及判別器Dz,有以下目標(biāo):
Dz是判定ε1將樣本映射到潛在空間的能力,使ε1學(xué)習(xí)時(shí)間序列的特征,同時(shí)辨別樣本是來自于隨機(jī)樣本z~pz還是編碼后的樣本ε1(x)。
周期一致性損失保證數(shù)據(jù)的不同域之間可以相互轉(zhuǎn)換,通常用于不同風(fēng)格之間的轉(zhuǎn)換。目前基于重構(gòu)的方法,一般學(xué)習(xí)如何將輸入映射到目標(biāo)空間然后根據(jù)目標(biāo)空間還原輸入數(shù)據(jù)。由于目標(biāo)空間太大,往往增加模型的訓(xùn)練難度和時(shí)間,然而Wasserstein 的優(yōu)化僅加快了模型的訓(xùn)練和避免模式崩潰。周期一致性損失恰好可以解決這個(gè)問題,它可以保證數(shù)據(jù)不同域之間的轉(zhuǎn)換,因?yàn)樗鼫p小了映射空間。為此,使用最小化原始樣本與重構(gòu)樣本之間的L2范數(shù),訓(xùn)練具有自適應(yīng)的循環(huán)周期一致性損失生成網(wǎng)絡(luò)ε1,ε2,gi:
改進(jìn)的再編碼器將堆疊式LSTM-dropout RNN 作為編碼器的基本架構(gòu),能夠?qū)W習(xí)數(shù)據(jù)相關(guān)性。之前的模型架構(gòu)通常對(duì)比原始數(shù)據(jù)分布與生成數(shù)據(jù)分布之間的差異并沒有考慮到時(shí)間序列的相關(guān)性,當(dāng)異常的數(shù)據(jù)十分接近正常數(shù)據(jù)時(shí),這種差異很小,很容易讓判別器判定為正常。使用具有堆疊式LSTM-dropout RNN 編碼器針對(duì)輸入進(jìn)行二次編碼,由于改進(jìn)的再編碼有捕獲時(shí)間序列的相關(guān)性特征。因此,如果是異常樣本經(jīng)歷過兩次編碼后潛在空間差異比較明顯,可以更好地檢測(cè)到異常。通過最小化輸入特征ε1(x)=z與生成的時(shí)間序列的編碼特征ε2(gi(x))之間的差異,可以使生成器學(xué)習(xí)如何正常樣本編碼成對(duì)應(yīng)的潛在空間。定義如下:
結(jié)合所給的目標(biāo)函數(shù)(2)~(5)可以得到最終的MinMax的目標(biāo)函數(shù):
RTGAN 整個(gè)框架如圖1 所示。在異常檢測(cè)方面,首先,模型中的Dx不僅可以區(qū)分真實(shí)時(shí)間序列數(shù)據(jù)和假的時(shí)間序列數(shù)據(jù),而且會(huì)對(duì)輸入的時(shí)間序列進(jìn)行評(píng)分,可以直接用來判定異常;生成器可以對(duì)時(shí)間序列進(jìn)行編碼再解碼,可以用它們的誤差也就是重構(gòu)誤差值判定異常,RTGAN 使用了二次編碼,通過對(duì)比潛在空間的差異判定異常。使用多個(gè)生成器保證生成樣本多樣性,可以生成各種正常樣本從而降低異常檢測(cè)的假陽性,同時(shí)學(xué)習(xí)到不同的異常模式。
在現(xiàn)實(shí)世界中的時(shí)間序列數(shù)據(jù)往往不是連續(xù)的或者長(zhǎng)度一致的,這給衡量?jī)蓚€(gè)時(shí)間序列之間的差異帶來了挑戰(zhàn)。針對(duì)這個(gè)問題,本文使用動(dòng)態(tài)時(shí)間規(guī)劃(Dynamic Time Warping,DTW)計(jì)算重構(gòu)誤差,衡量?jī)蓚€(gè)長(zhǎng)度不同的時(shí)間序列的相似度。首先將其中一個(gè)序列進(jìn)行線性放縮保證兩個(gè)時(shí)間序列對(duì)齊,然后計(jì)算第一個(gè)時(shí)間序列的一個(gè)點(diǎn)與第二個(gè)時(shí)間序列中所有點(diǎn)之間的歐幾里得距離,最后存儲(chǔ)最小距離(稱 為“時(shí)間扭 曲”)。假設(shè)x={xm-l,xm-l+1,…,xm} 為RTGAN 的輸入數(shù)據(jù)為生成器生成的數(shù)據(jù),它們之間的歐氏距離作為一個(gè)矩陣,warping 的路徑會(huì)穿越這個(gè)矩陣也就是最優(yōu)路徑。warping 路徑的第k個(gè)元素表示為wk=(i,j)k即為最小距離。兩個(gè)時(shí)間序列x和的DTW 距離定義如下:
RTGAN 的重構(gòu)誤差為:
再編碼誤差Venc(ε1,gi,ε2):
使用重構(gòu)誤差Re(x)、再編碼誤差lre和判別器輸出Dx(x)相結(jié)合為最后的異常分?jǐn)?shù),Re(x)和lre越大,Dx(x)越小,為異常的概率越大。本文使用z-score 標(biāo)準(zhǔn)化分別計(jì)算它們的值(ZRe(x),Zlre,ZDx(x)),然后正則化它們,越大的值表明異常的概率越大:
RTGAN 在每次迭代時(shí),先訓(xùn)練判別器nd次再訓(xùn)練ng次生成器。在訓(xùn)練過程中學(xué)習(xí)率為lr,使用RMSProp(Root Mean Square Prop)優(yōu)化器。
使用Python3.6 版本作為編程基礎(chǔ),用PyTorch1.9.0、Anaconda 4.10.1、cuda11.3 實(shí)現(xiàn)和測(cè)試。使用Ubuntu 18.04.5 LTS、Intel Xeon CPU E5-2678 v3、2 塊RTX 3060 GPU、16 GB 內(nèi)存的計(jì)算機(jī)上運(yùn)行程序。
研究工作主要針對(duì)時(shí)間序列異常檢測(cè)任務(wù),為了檢驗(yàn)?zāi)P偷男Ч?,選用4 個(gè)數(shù)據(jù)集:對(duì)單變量時(shí)間序列異常檢測(cè),本文使用NASA(MSL 和SMAP)提供的航天器遙測(cè)信號(hào);對(duì)多變量時(shí)間序列異常檢測(cè),使用了CPS(Cyber Physical Systems)安全水處理和分配系統(tǒng)數(shù)據(jù)集(SWaT 和WADI)。
不同來源的數(shù)據(jù)集包含不同的異常,并且每個(gè)異常位置已知,表1 給出了每個(gè)數(shù)據(jù)集的細(xì)節(jié)。
表1 四個(gè)數(shù)據(jù)集的統(tǒng)計(jì)信息Tab.1 Statistics of four datasets
SWaT 和WADI:安全水處理系統(tǒng)和水分配系統(tǒng)數(shù)據(jù)集來自新加坡iTrust 網(wǎng)絡(luò)安全研究中心,為多變量時(shí)間序列。SWaT 數(shù)據(jù)集中51 個(gè)變量對(duì)應(yīng)有946 719 個(gè)樣本,其中496 800 個(gè)樣本在正常工作情況下的樣本,449 919 個(gè)樣本在具有攻擊情況下的樣本,異常比率為11.98%。WADI 數(shù)據(jù)集中127 個(gè)變量對(duì)應(yīng)有5 962 172 個(gè)樣本,其中5 789 371 個(gè)樣本在正常工作情況下的樣本,172 801 個(gè)樣本在具有攻擊情況下的樣本。選擇其中577 658 個(gè)樣本作為其中的數(shù)據(jù)集,異常比率為5.99%。
SMAP 和MSL:它們是兩個(gè)真實(shí)世界的公共數(shù)據(jù)集,來自NASA 專家標(biāo)記的數(shù)據(jù)集。SMAP 總共有562 800 個(gè)樣本只有25 個(gè)變量,異常比率為13.13%;MSL 總共有132 046 個(gè)樣本只有55 個(gè)變量,異常比率為10.27%,檢測(cè)異常時(shí)使用單一的變量組成的時(shí)間序列。
在SWaT 中,攻擊點(diǎn)包括了傳感器和執(zhí)行器,比如壓強(qiáng)的變化會(huì)影響水流速度和水位等,這些傳感器和執(zhí)行器之間有著不同的相關(guān)性,WADI 收集了這些信息并處理。隨著傳感器和執(zhí)行器的增加,時(shí)間相關(guān)性會(huì)變得更復(fù)雜,這給時(shí)間序列異常檢測(cè)帶來了挑戰(zhàn)。
這些數(shù)據(jù)集中大部分時(shí)間序列都是正常的,而異常的時(shí)間序列十分稀少,這導(dǎo)致數(shù)據(jù)集不平衡,從而降低異常檢測(cè)的準(zhǔn)確率。
本文選擇了7 個(gè)最新的異常檢測(cè)模型作為基準(zhǔn)模型,以比較所提出的RTGAN 模型的性能。
AutoEncoder 編碼器可提取時(shí)間序列的特征,解碼器可以還原時(shí)間序列數(shù)據(jù),利用重構(gòu)誤差計(jì)算異常,因此將RTGAN 與具有密集層或LSTM 層的變分自動(dòng)編碼器進(jìn)行了比較。密集層自動(dòng)編碼器有3 層編碼器有2 層分別有60、20個(gè)隱藏單元,解碼器有60 個(gè)隱藏單元。LSTM 自動(dòng)編碼器有三層,有256 個(gè)隱藏單元的LSTM 編碼器層和有512 個(gè)隱藏單元的LSTM 解碼器層。
孤立森林(Isolation Forest,IF)孤立森林是基于決策樹的算法,從給定的特征集合,隨機(jī)選擇兩個(gè)特征,通過在所選特征的最大值和最小值之間隨機(jī)選擇一個(gè)值來分割數(shù)據(jù)點(diǎn),觀察值的劃分遞歸地重復(fù),直到所有的觀察值被孤立。根據(jù)平均路徑長(zhǎng)度來區(qū)分正常和異常數(shù)據(jù)點(diǎn):較短的路徑表示異常,較長(zhǎng)的路徑表示正常的觀測(cè)。
OmniAnomaly[26]這是一 個(gè)結(jié)合了GRU(Gated Recurrent Unit)和VAE(Variation Auto-Encoder)的隨機(jī)循環(huán)神經(jīng)網(wǎng)絡(luò)模型,通過學(xué)習(xí)多元時(shí)間序列的正常模式,并使用重構(gòu)概率判定異常。
LSTM-VAE 編碼器由一個(gè)LSTM 單元組成,像在VAE架構(gòu)中的每個(gè)編碼器一樣,它會(huì)產(chǎn)生一個(gè)2D 輸出用于逼近潛在分布的平均值和方差。解碼器從二維潛在分布上采樣,形成三維序列。然后將生成的序列與通過LSTM 單元傳遞的原始分類嵌入序列連接回去,以重建原始的流量序列,根據(jù)重構(gòu)誤差和判別結(jié)果檢測(cè)異常。
MAD-GAN 它使用了深度為3 和100 個(gè)隱藏(內(nèi)部)單元的堆疊LSTM 網(wǎng)絡(luò)。鑒別器是相對(duì)簡(jiǎn)單的LSTM 網(wǎng)絡(luò),具有深度1 和100 個(gè)隱藏單元,支持多元時(shí)間序列重構(gòu)。
DAGMM 網(wǎng)絡(luò)結(jié)構(gòu)分為壓縮網(wǎng)絡(luò)和估計(jì)網(wǎng)絡(luò)。壓縮網(wǎng)絡(luò)是一個(gè)常規(guī)的自編碼。通過壓縮網(wǎng)絡(luò)可以得到前面提到的兩部分關(guān)鍵信息:一個(gè)是中間隱藏層特征(低維空間特征信息),一個(gè)是由輸入向量和輸出向量計(jì)算得到的重構(gòu)誤差。
英語演講選修課的開設(shè),發(fā)展了學(xué)生的英語應(yīng)用能力和批判性思維能力,強(qiáng)化了學(xué)生的人際溝通能力和演講技巧,培養(yǎng)了學(xué)生的跨文化交際意識(shí)和自主學(xué)習(xí)能力。英語演講課不只是一門語言應(yīng)用類課程,也是拓寬知識(shí)、了解世界文化的素質(zhì)教育課程,兼具工具性和人文性。[4]演講課教學(xué)以學(xué)生為主體,注重學(xué)習(xí)過程。這種教學(xué)模式的改變實(shí)現(xiàn)了從以教師為中心、單純傳授語言知識(shí)和技能的教學(xué)思想向以學(xué)生為中心、既傳授語言知識(shí)與技能,更注重培養(yǎng)語言實(shí)際應(yīng)用能力和自主學(xué)習(xí)能力的教育思想的轉(zhuǎn)變。
USAD 基于重構(gòu)的無監(jiān)督方法,USAD 結(jié)構(gòu)由3 個(gè)部分組成,1 個(gè)編碼器和2 個(gè)解碼器,共享同一編碼器網(wǎng)絡(luò)的兩個(gè)自動(dòng)編碼器AE1 和AE2 組成的架構(gòu),該模型被用來獲得異常得分,如果異常分?jǐn)?shù)高于選定的異常閾值,則判定為異常。
對(duì)每個(gè)模型選擇合適的閾值用于判定異常,并且給出了每個(gè)模型的最優(yōu)F1 值。表2 中描述了在公共數(shù)據(jù)集上的所有模型的結(jié)果(最優(yōu)結(jié)果用粗體標(biāo)記)。在整體性能上RTGAN 超越了其他的無監(jiān)督方法,在所有的公共數(shù)據(jù)集中獲得了最高的平均F1 值(0.815)。
表2 異常檢測(cè)的F1值對(duì)比Tab.2 Comparison of F1-scores for anomaly detection
為了檢查異常檢測(cè)的準(zhǔn)確性,在4 個(gè)數(shù)據(jù)集中集成了145 個(gè)異常,其中式(10)中的異常分?jǐn)?shù)被用于檢測(cè)異常。最后發(fā)現(xiàn)RTGAN 模型檢測(cè)到143 個(gè)異常(如圖3 所示),而USAD 檢測(cè)到123 個(gè)異常,意味著總體性能上看,RTGAN優(yōu)于USAD。本文在NASA 數(shù)據(jù)集上(SMAP、MSL)測(cè)試了RTGAN 的收斂性,在訓(xùn)練和測(cè)試時(shí)使用了SMAP 和MSL 數(shù)據(jù)集上的平均損失,如圖4 所示,當(dāng)訓(xùn)練到70 次左右收斂。在時(shí)間開銷上,機(jī)器學(xué)習(xí)方法異常檢測(cè)速度比深度學(xué)習(xí)的方法快,雖然RTGAN 在訓(xùn)練集和測(cè)試集上消耗了較多的時(shí)間,但是獲得了最優(yōu)的性能,隨著硬件設(shè)備的快速發(fā)展,耗時(shí)的問題帶來的影響會(huì)更小。
圖3 4個(gè)數(shù)據(jù)集組成的樣本上的異常檢測(cè)情況Fig.3 Anomaly detection on samples consisting of four datasets
圖4 NASA數(shù)據(jù)集上的收斂結(jié)果Fig.4 Convergence results on NASA datasets
在時(shí)間序列分析中,往往通過信噪比(Signal-to-Noise Ratio,SNR)檢測(cè)模型的健壯性,使用不同信噪比的高斯噪聲加入到原始時(shí)間序列中,所有數(shù)據(jù)集上的最優(yōu)性能平均F1 值實(shí)驗(yàn)結(jié)果如表3 所示,其中噪聲對(duì)LSTM-VAE、USAD、OmniAnomaly 的影響較大,RTGAN 雖然隨著信噪比的增加性能在逐漸下降,但是仍然明顯優(yōu)于其他模型。
表3 在原始數(shù)據(jù)中加入不同的SNR噪聲時(shí)的平均F1值Tab.3 Average F1-scores when adding noise at different SNR to original data
1)多變量時(shí)間序列SWaT 和WADI。在SWaT 數(shù)據(jù)集中,RTGAN 的平均F1 值比傳統(tǒng)的方法IF(0.738)高出15.58%,對(duì)比USAD(0.846)表現(xiàn)出最佳的性能。在WADI 數(shù)據(jù)集中,RTGAN 比MAD-GAN 降低了1.13%,但勝過了DAGMM(0.201)、IF(0.315)、LSTM-VAE(0.38)和AE(0.354),比USAD(0.43)高出43.49%。從表2 可以得出RTGAN 在SWaT和WADI 數(shù)據(jù)集上的最佳的總體平均性能(0.735),相較于MADGAN(0.717)和 USAD(0.638)提高了 2.51% 和26.36%。
2)單變量時(shí)間序列SMAP 和MSL。RTGAN 在SMAP 和MSL 數(shù)據(jù)集上都獲得了最好的性能。在SMAP 數(shù)據(jù)集上,RTGAN 比MAD-GAN(0.381)和IF(0.473)更優(yōu),高出LSTMVAE(0.684)25.88%,相較于USAD(0.817)的平均F1 值高出5.39%,同時(shí)優(yōu)于OmniAnomaly。在MSL 數(shù)據(jù)集上,RTGAN 遠(yuǎn)優(yōu)于MAD-GAN,并且MAD-GAN 在MSL 數(shù)據(jù)集上表現(xiàn)最差平均F1 值僅有0.124,同時(shí)RTGAN 的性能明顯優(yōu)于AE(0.483)而且分別高出LSTM-VAE(0.579)、IF(0.612)60.10%和51.47%。從表2 中可以看出RTGAN 在SMAP 和MSL 數(shù)據(jù)集上表現(xiàn)最優(yōu)性能,同時(shí)在總體F1 均值上也比其他的基準(zhǔn)模型都優(yōu)秀。MAD-GAN 與RTGAN 完全相反,不管單從SMAP、MSL 還是在總體性能方面,表現(xiàn)都最差。
在計(jì)算重構(gòu)誤差時(shí)發(fā)現(xiàn)相乘比相加效果更優(yōu),在所有的計(jì)算重構(gòu)誤差方法中DTW 效果更好,因此使用DTW 計(jì)算重構(gòu)誤差和式(10)計(jì)算最后的異常分?jǐn)?shù),本文對(duì)RTGAN 進(jìn)行了以下消融研究:生成器的數(shù)量、再編碼誤差、堆疊LSTMdropout RNN 的時(shí)間相關(guān)性。在圖5 中,在所有基準(zhǔn)數(shù)據(jù)集上測(cè)試了RTGAN 總體性能,針對(duì)不同的生成器的數(shù)量(1~6)使用了再編碼誤差、堆疊LSTM-dropout RNN 以及它們的結(jié)合。
生成器數(shù)量 RTGAN 在多變量和單變量時(shí)間序列上多個(gè)生成器能夠捕捉到不同的模式,避免模式崩潰,保證了生成樣本的多樣性,對(duì)于不同類型的異常都能夠?qū)W習(xí)到其潛在空間分布。在圖5 中可以看到,當(dāng)生成器數(shù)量為4 時(shí),其性能在所有的變種中都獲得了最好的性能,當(dāng)生成器數(shù)量增加,性能隨之降低,當(dāng)僅使用再編碼誤差(Velocity Encoding,Venc)生成器數(shù)量為4 時(shí)相對(duì)于生成器為5 時(shí)提高了10.09%的性能,同時(shí)從各個(gè)變種來看,隨著生成器數(shù)量從1 增加到4,性能有著提高的趨勢(shì),從5 到6 反而逐漸下降。
堆疊式LSTM-dropout RNN 在圖5 中可以得出使用了堆疊LSTM-dropout RNN 的性能都明顯優(yōu)于(1 到6 個(gè)生成器)未使用堆疊式LSTM-dropout RNN(Without stacked LSTMdropout RNN),尤其是最優(yōu)情況下(生成器數(shù)量為2)高出13.55%,在生成器數(shù)量為4 時(shí)高出11.21%,由于GAN 生成的數(shù)據(jù)可能會(huì)忽略掉時(shí)間序列相關(guān)性,而RTGAN 采用了堆疊的LSTM-dropout RNN 可以很好地避免這類問題,明顯提高了異常檢測(cè)的性能。
再編碼誤差 使用再編碼誤差(Venc),以往通過比較數(shù)據(jù)分布差異檢測(cè)異常,而再編碼誤差是通過潛在空間中的差異,可以在圖5 中看出在通過加入再編碼誤差即在潛在空間上的誤差和時(shí)間相關(guān)性提高RTGAN 異常檢測(cè)的性能,對(duì)于沒使用再編碼誤差(Without Venc)相比最優(yōu)情況下(生成器數(shù)量為4)提高了3.3%,說明考慮到潛在空間上的差異和時(shí)間相關(guān)性對(duì)RTGAN 異常檢測(cè)的性能有所提高。
圖5 生成器數(shù)量為1~6時(shí),各個(gè)變種在所有基準(zhǔn)數(shù)據(jù)集上的總體F1值Fig.5 Overall F1-scores of each variant on all benchmark datasets when the number of generators is from 1 to 6
結(jié)合(Combined)方法 同時(shí)使用再編碼誤差和堆疊式LSTM-dropout RNN。在圖5 中,當(dāng)生成器數(shù)量為4(平均F1 值為0.815)時(shí),組合方法達(dá)到最佳結(jié)果。如圖6 所示,結(jié)合的方法分別比單獨(dú)使用重編碼器和堆疊LSTM-dropout RNN 時(shí)的結(jié)果高出6.68%和3.95%。當(dāng)生成器數(shù)量為5 時(shí),結(jié)果比單獨(dú)使用重編碼器高出12.57%,比堆疊式LSTM-dropout RNN 的結(jié)果高出5.87%。
圖6 結(jié)合方法超越僅使用再編碼器、堆疊式LSTM-dropout RNN方法F1的比率Fig.6 Performance improvement ratio of combined model versus only using re-encoder,stacked LSTM-dropout RNN respectively
本文針對(duì)單變量時(shí)間序列和多變量時(shí)間序列進(jìn)行異常檢測(cè),并提出基于重構(gòu)的無監(jiān)督學(xué)習(xí)模型RTGAN。本文針對(duì)時(shí)間序列相關(guān)性引入了堆疊式LSTM-dropout RNN,通過實(shí)驗(yàn)表明它提高了異常檢測(cè)的性能。引入了改進(jìn)的具有堆疊式LSTM-dropout RNN 編碼器,對(duì)輸入進(jìn)行二次編碼,考慮到了潛在空間誤差和時(shí)間相關(guān)性,同時(shí)也引入了多個(gè)生成器不僅避免模式崩潰,還可以保證生成樣本的多樣性,利用多個(gè)生成器的重構(gòu)誤差均值計(jì)算異常分?jǐn)?shù)。在CPS 和NASA 數(shù)據(jù)集上,為了評(píng)估本文的模型,通過對(duì)比其他模型發(fā)現(xiàn)RTGAN 獲得了最好的總體性能(最高F1)0.815。
由于生成對(duì)抗網(wǎng)絡(luò)(GAN)的對(duì)抗訓(xùn)練不穩(wěn)定性,訓(xùn)練時(shí)往往導(dǎo)致模式崩潰或者判別器與生成器不平衡,因此設(shè)計(jì)一個(gè)訓(xùn)練穩(wěn)定的GAN 模型很有挑戰(zhàn)。同時(shí),時(shí)間序列異常檢測(cè)的準(zhǔn)確率對(duì)滑動(dòng)窗口大小的選擇十分敏感。這都是基于重構(gòu)方法的困難課題。未來工作中,將研究這些問題,探索其他重構(gòu)誤差的方法對(duì)異常檢測(cè)的影響。