趙 飏 李 曉 馬 博 王保全 周 喜
(中國(guó)科學(xué)院新疆理化技術(shù)研究所 新疆 烏魯木齊 830011) (中國(guó)科學(xué)院大學(xué) 北京 100049) (新疆理化技術(shù)研究所新疆民族語音語言信息處理實(shí)驗(yàn)室 新疆 烏魯木齊 830011)
隨著物聯(lián)網(wǎng)技術(shù)的普及,種類豐富的信息傳感器已經(jīng)在人們的生活中隨處可見,加油站中的信息采集也由人工記錄全面轉(zhuǎn)化為電子傳感設(shè)備自動(dòng)錄入,使得數(shù)據(jù)采集更加高效。但由于系統(tǒng)故障錯(cuò)誤或人為操作失誤等因素,會(huì)產(chǎn)生異常加油數(shù)據(jù)。如何高效、準(zhǔn)確地在海量加油數(shù)據(jù)中檢測(cè)異常,成為加油站日常運(yùn)營(yíng)管理中不可忽視的問題。傳統(tǒng)上,基于規(guī)則的異常檢測(cè)方法是檢測(cè)異常數(shù)據(jù)的常用解決方案,但由于加油數(shù)據(jù)體量巨大且擁有多變量的時(shí)序特性,無法簡(jiǎn)單通過基于規(guī)則的方法來準(zhǔn)確判別異常。機(jī)器學(xué)習(xí)方法也逐步運(yùn)用在異常檢測(cè)中并取得了一定成果,但想要在加油站時(shí)序數(shù)據(jù)中檢測(cè)異常,仍然是一項(xiàng)挑戰(zhàn)。因?yàn)橛斜O(jiān)督機(jī)器學(xué)習(xí)方法需要大量真實(shí)的正常數(shù)據(jù)和帶有標(biāo)注的異常數(shù)據(jù)來訓(xùn)練學(xué)習(xí),但實(shí)際中加油數(shù)據(jù)缺乏標(biāo)記且異常數(shù)據(jù)較為稀少;而無監(jiān)督學(xué)習(xí)大多是將樣本數(shù)據(jù)進(jìn)行線性變換和投影后嵌入向量空間,通過比較原始數(shù)據(jù)和預(yù)測(cè)數(shù)據(jù)的差異值來檢測(cè)異常,但實(shí)際加油數(shù)據(jù)雖然數(shù)量較多,但個(gè)體加油樣本普遍較少,且復(fù)雜的加油時(shí)序序列數(shù)據(jù)隱含的內(nèi)在相關(guān)性往往是非線性的。
為了解決這一問題,本文針對(duì)加油時(shí)序數(shù)據(jù)異常檢測(cè)提出一種基于生成式對(duì)抗網(wǎng)絡(luò)[1](Generative Adversarial Network,GAN)的無監(jiān)督異常檢測(cè)方法,該方法通過捕捉加油站時(shí)序數(shù)據(jù)之間的非線性相關(guān)性來建立模型,并結(jié)合模型中的生成器和鑒別器共同來進(jìn)行異常檢測(cè)。
目前關(guān)于無監(jiān)督學(xué)習(xí)的異常檢測(cè)算法主要可以分成四類:(1) 基于線性模型的方法;(2) 基于距離的方法;(3) 基于概率和密度估計(jì)的方法;(4) 基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法。
基于線性模型的無監(jiān)督異常檢測(cè)方法中,一種主流的方法是主成分分析(Principal Component Analysis,PCA)[2],它對(duì)數(shù)據(jù)進(jìn)行降維后嵌入到低維空間,通過比較單個(gè)數(shù)據(jù)樣本跟整體數(shù)據(jù)樣本的偏離程度來挖掘異常;另一種方法是偏最小二乘法(Partial Least Squares,PLS)[3],它不僅可以克服共線性問題,還去除了對(duì)回歸無益的噪聲影響,因此被廣泛應(yīng)用于模型建立和異常檢測(cè)。然而,它們只對(duì)具有高度相關(guān)性的數(shù)據(jù)有效[4],加油數(shù)據(jù)中個(gè)體和個(gè)體之間的加油行為卻往往是相互獨(dú)立的,因此并不適用于加油時(shí)序數(shù)據(jù)。
基于距離的異常檢測(cè)方法中[5],K近鄰(K-NearestNeighbor,KNN)算法是比較簡(jiǎn)單有效的一種,它通過參考特征空間中距離該樣本最近的k個(gè)“鄰居”的類別來對(duì)樣本進(jìn)行分類,從而達(dá)到檢測(cè)異常點(diǎn)的目的[6]。此外還有基于密度、基于聚類的一些衍生方法,例如局部異常因子(Local Outlier Factor,LOF)算法[7],它會(huì)給數(shù)據(jù)中的每個(gè)點(diǎn)計(jì)算離群因子,通過判斷這個(gè)離群因子是否接近于1來判定該點(diǎn)是否離群。以及對(duì)前者進(jìn)行改進(jìn)的基于聚類的局部離群因子(Cluster-Based Local Outlier Factor,CBLOF)[8]方法,它使用一個(gè)預(yù)定義的異常評(píng)分函數(shù)來識(shí)別異常。雖然這些基于距離的方法在某些情況下是有效的,但在加油時(shí)序數(shù)據(jù)中,數(shù)據(jù)間的距離難以界定,且正常數(shù)據(jù)可能沒有足夠的樣本鄰居,因此基于距離的異常檢測(cè)方法不適用于加油時(shí)序數(shù)據(jù)。
基于概率和密度估計(jì)的方法中,有基于角度的異常檢測(cè)(Angle-Based Outlier Detection,ABOD)算法[9],還有特征裝袋(Feature Bagging,FB)算法[10],它們都是通過考慮變量之間的相關(guān)性來處理數(shù)據(jù)。但是這些方法不能考慮時(shí)序數(shù)據(jù)中時(shí)間步長(zhǎng)上的相關(guān)性,因而并不適合用來處理加油時(shí)序數(shù)據(jù)。
還有基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法,通過神經(jīng)網(wǎng)絡(luò)具備的強(qiáng)特征提取能力和信息記憶能力來捕捉正常數(shù)據(jù)中的異常點(diǎn),提出很多有效的模型,并應(yīng)用在了各個(gè)領(lǐng)域。比較有代表性的有變分自編碼器(Variational Auto-Encoder,VAE)[11]和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[12]等,它們都是利用正常數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),然后通過檢測(cè)實(shí)際數(shù)據(jù)的重構(gòu)誤差來進(jìn)行異常檢測(cè)。
綜上,通過神經(jīng)網(wǎng)絡(luò)來進(jìn)行機(jī)器學(xué)習(xí),捕獲數(shù)據(jù)特征間隱藏的相關(guān)性,建立符合實(shí)際需求的模型,能夠更好地開展對(duì)加油時(shí)序數(shù)據(jù)的異常檢測(cè)工作。
本文繼承了基于無監(jiān)督學(xué)習(xí)的異常檢測(cè)算法思想,并受到GAN模型博弈原理[13]的啟發(fā)后,提出一種新的異常檢測(cè)方法。主要工作如下:(1) 提出一種基于GAN的無監(jiān)督異常檢測(cè)方法,用于檢測(cè)加油時(shí)序數(shù)據(jù)中的異常;(2) 模型結(jié)構(gòu)采用了廣泛應(yīng)用在圖像開發(fā)中的GAN框架,將長(zhǎng)短期循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM)嵌入GAN框架作為生成器和鑒別器[14]來分析加油時(shí)序數(shù)據(jù),捕捉其時(shí)間相關(guān)性;(3) 綜合鑒別器的判別結(jié)果和生成器的數(shù)據(jù)重構(gòu)殘差來對(duì)每一個(gè)測(cè)試樣本進(jìn)行異常評(píng)分。
近年來提出的生成式對(duì)抗網(wǎng)絡(luò)(GAN)框架能夠通過博弈訓(xùn)練生成模型,它以對(duì)抗的方式同時(shí)訓(xùn)練生成器和鑒別器:生成器(generator,G)的思想是將一個(gè)噪聲包裝成一個(gè)逼真的樣本,判別器(discriminator,D)則需要判斷送入的樣本是否真實(shí),即通過對(duì)抗訓(xùn)練共同進(jìn)步,判別器D對(duì)樣本的判別能力不斷上升,生成器G生成樣本能力也不斷上升[15]。目前GAN主要應(yīng)用在一些生成圖像的工作中,并取得了一定成果,例如在醫(yī)學(xué)領(lǐng)域可以通過GAN模型來對(duì)腫瘤CT圖像進(jìn)行語義分割與檢測(cè)[16];或是在影像方面進(jìn)行視頻修復(fù)[17],但是目前在時(shí)間序列數(shù)據(jù)中采用GAN框架的工作還比較少,且加油時(shí)序數(shù)據(jù)還要求同時(shí)處理多個(gè)具有潛在關(guān)系的變量。
為了處理加油的時(shí)間序列數(shù)據(jù),將GAN的生成器和鑒別器構(gòu)造為兩個(gè)長(zhǎng)短期遞歸神經(jīng)網(wǎng)絡(luò)(LSTM)。首先將加油數(shù)據(jù)通過PCA進(jìn)行降維后輸入至GAN模型,在添加來自潛在空間的隨機(jī)噪聲后將序列輸入至生成器中,生成器根據(jù)輸入生成序列樣本傳遞給鑒別器,鑒別器將嘗試區(qū)分生成的序列樣本和實(shí)際的訓(xùn)練樣本,并根據(jù)鑒別結(jié)果更新自身和生成器的參數(shù),這樣可以訓(xùn)練鑒別器盡可能地為真序列和假序列分配正確的標(biāo)簽。在經(jīng)過足夠多輪的迭代后,生成器將被訓(xùn)練得能生成足夠逼真的樣本,并且鑒別器也能夠以較高精準(zhǔn)度區(qū)分真(正常)數(shù)據(jù)和假(異常)數(shù)據(jù)。在加油時(shí)序數(shù)據(jù)異常檢測(cè)工作中,通過計(jì)算實(shí)際測(cè)試樣本和生成測(cè)試樣本之間的差異來得到數(shù)據(jù)的重構(gòu)損失以及鑒別器對(duì)實(shí)際測(cè)試樣本的判別損失,綜合這兩部分來檢測(cè)數(shù)據(jù)中的潛在異常。本文方法的總體流程如圖1所示。
圖1 GAN模型流程
長(zhǎng)短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM)模型由Hochreiter等[18]在1997年提出,是對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種改進(jìn)。RNN的隱藏層只有一個(gè)狀態(tài),它對(duì)短時(shí)間內(nèi)的輸入較為敏感,而LSTM添加了一個(gè)內(nèi)部記憶單元c來保存長(zhǎng)期狀態(tài),并同時(shí)增加3個(gè)門用于控制[19],分別是遺忘門ft、輸入門it和輸出門ot。遺忘門ft決定上一層隱藏層輸出被遺忘的程度大小:
ft=δ(Wf×xt+Uf×ht-1+Vf×Ct-1+bf)
(1)
式中:C表示LSTM中的細(xì)胞狀態(tài)。
輸入門it控制輸入和當(dāng)前計(jì)算的狀態(tài)更新到記憶單元的程度大小:
it=δ(Wi×xt+Uiht-1+ViCt-1+bi)
(2)
輸出門ot控制輸入和當(dāng)前輸出取決于當(dāng)前記憶單元的程度大?。?/p>
ot=δ(Wo×xt+Uo×ht-1+Vo×Ct+bo)
(3)
通過這三個(gè)控制門,記憶單元c即可有效記憶歷史輸入值,從而增加了模型的特征包含能力和記憶能力,其在t時(shí)刻的狀態(tài)即可表示為:
ct=ft×ct-1+it×tanh(Wc×xt+Uc×ht-1+bc)
(4)
所以LSTM單元在t時(shí)間點(diǎn)的所有輸出為:
ht=ot×tanh(ct)
(5)
式中:W、U、V、b分別是系數(shù)組成的矩陣和偏置的向量;δ是激活函數(shù)Sigmoid。
通過數(shù)據(jù)預(yù)處理以后,將訓(xùn)練集Dtrain=(xi,i=1,2,…,n)以及對(duì)其添加隨機(jī)噪聲后生成的樣本Z=(zi,i=1,2,…,n)輸入GAN模型,對(duì)抗訓(xùn)練可以看成是采用生成器與判別器之間的一個(gè)極小極大化策略[20],目標(biāo)函數(shù)如下:
min maxL(D,G)=εx~pdata(D)[logD(x)]+
εz~pz(z)[log(1-D(G(z)))]
(6)
式中:ε指代取期望;D(x)為判別映射函數(shù);G(z)為生成映射函數(shù);Pdata為真實(shí)數(shù)據(jù)分布;Pz為原始噪聲的分布。
經(jīng)過足夠多輪的迭代訓(xùn)練后模型達(dá)到擬合,訓(xùn)練好的鑒別器(D)和生成器(G)即可用于檢測(cè)測(cè)試集中的異常。模型訓(xùn)練過程如圖2所示。
圖2 GAN模型訓(xùn)練過程
這里通過加權(quán)計(jì)算鑒別器(D)的鑒別損失LD和生成器(G)的重構(gòu)殘差LG兩部分得到異常損失L,通過比較L的交叉熵H和預(yù)定值T來判斷是否為異常點(diǎn)。并將每一條數(shù)據(jù)標(biāo)記如下:
(7)
式中:Li代表測(cè)試集中第i條數(shù)據(jù)yi的異常損失。
在GAN模型訓(xùn)練達(dá)到擬合后,將訓(xùn)練好的鑒別器和生成器共同用來檢測(cè)異常,如圖3所示的測(cè)試過程中,將兩部分都應(yīng)用于異常評(píng)判中能夠更好地來識(shí)別異常,所以基于GAN的異常檢測(cè)由兩部分構(gòu)成。
(1) 基于判別器的異常檢測(cè):訓(xùn)練后的鑒別器能夠以較高靈敏度將“假數(shù)據(jù)”(即異常數(shù)據(jù))與真實(shí)數(shù)據(jù)區(qū)分開來,可以直接用來進(jìn)行異常檢測(cè)。
(2) 基于生成器的異常檢測(cè):訓(xùn)練后的生成器能夠生成足夠逼真的數(shù)據(jù)樣本,它實(shí)際上是一種從潛在空間到真實(shí)數(shù)據(jù)的映射:G(Z):Z→X。如果潛在空間中的輸入十分接近,則生成器可輸出相似的樣本。因此,如果能夠在測(cè)試集Dtest的潛在空間中找到對(duì)應(yīng)的映射,那么測(cè)試集Dtest和通過生成器重構(gòu)的測(cè)試樣本G(Z)之間的相似性可以在一定程度上反映測(cè)試集是否符合生成器所反映的數(shù)據(jù)分布。這樣可以利用測(cè)試集和生成樣本之間的重構(gòu)殘差LG來識(shí)別測(cè)試數(shù)據(jù)中的異常點(diǎn)。
圖3 GAN模型測(cè)試過程
為了找到與測(cè)試樣本相對(duì)應(yīng)的最佳Zt,首先從測(cè)試集中隨機(jī)抽取一個(gè)集合Z1作為樣本,通過潛在空間映射輸入生成器,得到重構(gòu)樣本G(Z1)。然后用Dtest和G(Z1)定義的誤差函數(shù)得到的梯度來更新映射到潛在空間中的樣本。為了便于計(jì)算,這里通過計(jì)算協(xié)方差來比較數(shù)據(jù)樣本之間的相似性[21]。
minErr(Dtest,G(Zi))=1-Sim(Dtest,G(Z1))
(8)
式中:Err(Dtest,G(Zi))為重構(gòu)樣本損失函數(shù);G(Z1)為生成映射函數(shù);Sim(Dtest,G(Z1))為相似性函數(shù)。
經(jīng)過迭代多輪更新后,誤差會(huì)達(dá)到足夠小,此時(shí)將樣本Zt記錄為測(cè)試樣本在潛在空間中的對(duì)應(yīng)映射。所以得到測(cè)試樣本的重構(gòu)殘差:
(9)
再結(jié)合鑒別器的判別損失,可以得到異常檢測(cè)的損失L為:
L=λLG+(1-λ)LD
(10)
式中:LG為生成器的重構(gòu)殘差;LD為判別器的判別損失;λ為影響因子。
為了驗(yàn)證本文方法在時(shí)序數(shù)據(jù)異常檢測(cè)上的準(zhǔn)確性和有效性,本文在兩個(gè)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),第一個(gè)是在中國(guó)某省份各加油站采集的加油數(shù)據(jù)集,另一個(gè)是公開時(shí)序數(shù)據(jù)集UCR[22]。
實(shí)驗(yàn)機(jī)系統(tǒng)為Windows 7 64位操作系統(tǒng),CPU為Intel(R) Core(TM) i7-3770HQ CPU @ 3.40 GHz,內(nèi)存8 GB,Python版本為3.5,使用的數(shù)據(jù)庫(kù)為MongoDB 3.0。
加油數(shù)據(jù)集采用了某省份所有加油站兩個(gè)月的加油記錄作為原始數(shù)據(jù),對(duì)其進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)融合和特征處理等操作后得到真實(shí)可靠的實(shí)驗(yàn)數(shù)據(jù),將其作為實(shí)驗(yàn)中的正常數(shù)據(jù);異常數(shù)據(jù)選取歷史檢測(cè)工作中通過預(yù)警記錄、人工篩查等方式確認(rèn)的部分異常數(shù)據(jù)。最后將正常數(shù)據(jù)的80%作為實(shí)驗(yàn)的訓(xùn)練集,另外20%正常數(shù)據(jù)和異常數(shù)據(jù)共同作為測(cè)試集。
3.2.1加油數(shù)據(jù)集
加油數(shù)據(jù)集采用了某省份所有加油站兩個(gè)月的加油記錄作為原始數(shù)據(jù),對(duì)其進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)融合、特征處理等操作后得到真實(shí)可靠的實(shí)驗(yàn)數(shù)據(jù),將其作為實(shí)驗(yàn)中的正常數(shù)據(jù);異常數(shù)據(jù)選取歷史檢測(cè)工作中通過預(yù)警記錄、人工篩查等方式確認(rèn)的部分異常數(shù)據(jù)。最后將正常數(shù)據(jù)的80%作為實(shí)驗(yàn)的訓(xùn)練集,另外20%正常數(shù)據(jù)和異常數(shù)據(jù)共同作為測(cè)試集。
UCR數(shù)據(jù)集是一個(gè)用于時(shí)間序列分類預(yù)測(cè)的公開數(shù)據(jù)集,其中包含80多個(gè)用于時(shí)間序列分類的數(shù)據(jù)集,本文從中選取了Wafer數(shù)據(jù)集和Ford數(shù)據(jù)集作為對(duì)比實(shí)驗(yàn)數(shù)據(jù)集。Wafer數(shù)據(jù)集共有7 174條記錄,含有類別標(biāo)簽和152個(gè)特征;Ford數(shù)據(jù)集共有4 921條記錄,含有類別標(biāo)簽和500個(gè)特征。兩個(gè)數(shù)據(jù)集都按照7 ∶3的比例劃分訓(xùn)練集和測(cè)試集。
3.3.1加油數(shù)據(jù)樣本生成
在GAN模型的博弈對(duì)抗過程中,為了使鑒別器能夠敏銳地分辨真假樣本,生成器會(huì)根據(jù)輸入盡可能生成逼真的數(shù)據(jù)樣本。為了驗(yàn)證LSTM-GAN模型是否可以捕捉到時(shí)序數(shù)據(jù)樣本的特征分布,將加油數(shù)據(jù)集訓(xùn)練過程中初期(第10輪)和后期(第80輪)生成的數(shù)據(jù)樣本進(jìn)行可視化,這里選擇了t6和t8兩個(gè)特征,結(jié)果如圖4所示,其中:圖4(a)為原始數(shù)據(jù)的特征分布;圖4(b)為訓(xùn)練初期(第10輪)生成的樣本;圖4(c)為訓(xùn)練后期(第80輪)生成的樣本。
(a) 真實(shí)樣本分布
可以看出,在訓(xùn)練初期生成器的穩(wěn)定性較差,產(chǎn)生的數(shù)據(jù)樣本有很強(qiáng)的隨機(jī)性,但隨著迭代輪數(shù)的增加,在訓(xùn)練達(dá)到第80輪時(shí),生成器產(chǎn)生的樣本已經(jīng)基本符合真實(shí)樣本的數(shù)據(jù)分布,說明通過多輪訓(xùn)練LSTM-GAN模型可以有效學(xué)習(xí)到加油時(shí)序數(shù)據(jù)樣本特征的分布。
3.3.2最佳子序列長(zhǎng)度分析對(duì)比
在實(shí)驗(yàn)中,加油數(shù)據(jù)被處理成序列輸入模型中進(jìn)行訓(xùn)練,而子序列長(zhǎng)度會(huì)影響到模型訓(xùn)練時(shí)間以及預(yù)測(cè)結(jié)果的好壞,從而影響異常檢測(cè)的結(jié)果。選擇合適的子序列長(zhǎng)度不僅可以提高模型的效率,還能提升模型的檢測(cè)效果。這里通過嘗試一些子序列長(zhǎng)度來確定最佳值。具體結(jié)果如表1所示。
表1 不同子序列長(zhǎng)度結(jié)果對(duì)比
可以看出子序列長(zhǎng)度較小時(shí),GAN模型在加油數(shù)據(jù)集上的預(yù)測(cè)效果一般,精確率低于60%;隨著子序列長(zhǎng)度提升至50,預(yù)測(cè)效果相較于之前較好,精確率和F1值都有較大提升;而當(dāng)子序列長(zhǎng)度達(dá)到100左右時(shí),雖然模型召回率能提升至接近90%,但精確率開始大幅下滑,整體預(yù)測(cè)效果較差。所以在模型訓(xùn)練時(shí)子序列長(zhǎng)度選定為50,此時(shí)模型異常檢測(cè)的效果最好。
如前所述,為了減少模型的計(jì)算量,提高模型效率,在輸入模型前對(duì)加油數(shù)據(jù)使用PCA進(jìn)行降維處理,剔除次要變量。為了能夠盡可能保留原始樣本信息,這里計(jì)算了PCA各保留特征數(shù)的方差率,結(jié)果如圖5所示。
圖5 PCA方差率
可以看出當(dāng)通過PCA保留5個(gè)特征時(shí),占所有特征方差的百分比已超過90%,意味著基本保留了所有信息,所以確定PCA保留特征數(shù)為5。
3.3.4加油數(shù)據(jù)集實(shí)驗(yàn)
在加油數(shù)據(jù)集實(shí)驗(yàn)中,通過與已經(jīng)驗(yàn)證在異常檢測(cè)領(lǐng)域上有效的K近鄰(KNN)、裝袋法(FB)、自動(dòng)編碼機(jī)(AutoEncoder)和孤立森林(IsolationForest)[23]進(jìn)行比較評(píng)估,來驗(yàn)證本文算法的性能。為了考量模型檢測(cè)異常的整體效果,實(shí)驗(yàn)結(jié)果使用精確率(Precision)、召回率(Recall)和F1值來綜合評(píng)估LSTM-GAN模型的異常檢測(cè)性能:
(11)
(12)
(13)
式中:TP是實(shí)際檢測(cè)出的異常樣本數(shù)量(檢測(cè)值:1;真實(shí)值:1);FP是檢測(cè)為異常但實(shí)際非異常的樣本數(shù)量(檢測(cè)值:1;真實(shí)值:0);FN是未被檢測(cè)出的異常樣本數(shù)量(檢測(cè)值:0;真實(shí)值:1);TN是實(shí)際檢測(cè)為正常的樣本數(shù)量(檢測(cè)值:0;真實(shí)值:0);Precision簡(jiǎn)寫為Pre;Recall簡(jiǎn)寫為Rec。
實(shí)驗(yàn)結(jié)果如表2所示。
表2 加油數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對(duì)比
實(shí)驗(yàn)結(jié)果表明相比于傳統(tǒng)的異常檢測(cè)算法,本文提出的LSTM-GAN模型在召回率和F1值上都具有較好的效果,雖然精確率相對(duì)于FeatureBagging和IForest較低,但是后兩者的召回率較差,無法同時(shí)兼顧精確率和召回率。而LSTM-GAN模型的精確率和召回率都在75%以上,且從F1值上可以看出LSTM-GAN模型整體預(yù)測(cè)效果更好,說明LSTM-GAN模型在加油時(shí)序數(shù)據(jù)上有著較好的檢測(cè)結(jié)果。
Wafer數(shù)據(jù)集上的結(jié)果如表3所示。
表3 Wafer數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對(duì)比
Ford數(shù)據(jù)集上的結(jié)果如表4所示。
表4 Ford數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對(duì)比
結(jié)果表明,在UCR的兩個(gè)數(shù)據(jù)集上LSTM-GAN模型相比于其他三種方法的整體預(yù)測(cè)效果較好。在Wafer數(shù)據(jù)集上IsolationForest和LSTM-GAN相較于其他兩種方法效果更好,且LSTM-GAN的F1值更高。在Ford數(shù)據(jù)集上由于數(shù)據(jù)的維數(shù)較高且樣本數(shù)量較少,整體預(yù)測(cè)結(jié)果都不是很理想,但LSTM-GAN模型還是能夠有近90%的精確率和超過60%的召回率,說明LSTM-GAN模型在時(shí)序數(shù)據(jù)上相比于其他方法有較好的預(yù)測(cè)結(jié)果。
本文鑒于目前在加油時(shí)序數(shù)據(jù)上的無監(jiān)督異常檢測(cè)方法存在一定缺陷,提出一種將LSTM嵌入GAN模型并通過生成器和鑒別器共同檢測(cè)數(shù)據(jù)異常的方法。該方法首先通過PCA對(duì)數(shù)據(jù)進(jìn)行降維處理,提取有效特征后輸入GAN模型進(jìn)行訓(xùn)練,待模型擬合后將測(cè)試數(shù)據(jù)輸入,通過訓(xùn)練好的生成器和鑒別器共同得到異常損失,與設(shè)定閾值進(jìn)行比較來對(duì)時(shí)序數(shù)據(jù)進(jìn)行異常檢測(cè)。在加油數(shù)據(jù)集和UCR中兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明該方法對(duì)于現(xiàn)有算法有了一定的改進(jìn)與提升。但是LSTM-GAN模型中的LSTM神經(jīng)網(wǎng)絡(luò)在處理較長(zhǎng)時(shí)間序列時(shí)需要更多的時(shí)間且GAN模型的博弈訓(xùn)練過程自由性較高,還不是足夠穩(wěn)定,后續(xù)的研究過程中將探索是否能夠結(jié)合其他神經(jīng)網(wǎng)絡(luò)提高模型效率并且能使訓(xùn)練過程更加穩(wěn)定的異常檢測(cè)方法。