張常華,周雄圖 ,張永愛,姚劍敏,2,郭太良,嚴(yán) 群 ,2
1.福州大學(xué) 物理與信息工程學(xué)院,福州 350108
2.博感電子科技有限公司,福建 晉江 362200
隨著互聯(lián)網(wǎng)的普及和信息技術(shù)的發(fā)展,異常檢測已逐漸成為數(shù)據(jù)挖掘領(lǐng)域的研究熱點。異常檢測旨在檢測出觀測數(shù)據(jù)中的非正常值,被廣泛應(yīng)用于信用卡欺詐、網(wǎng)絡(luò)入侵檢測、設(shè)備異常檢測、醫(yī)療分析以及氣象預(yù)報等領(lǐng)域。在上述領(lǐng)域中,異常數(shù)據(jù)的產(chǎn)生,相對于大量存在的正常數(shù)據(jù),通常被視作一種隨機現(xiàn)象,不符合正常數(shù)據(jù)的數(shù)據(jù)模式,也不具備正例樣本所具有的數(shù)據(jù)相關(guān)性,并且異常數(shù)據(jù)樣本較稀少。因此,如何精準(zhǔn)地將大量數(shù)據(jù)中的少量異常數(shù)據(jù)檢測出來,成為該研究領(lǐng)域亟需解決的關(guān)鍵難點[1-4]。
近年來,國內(nèi)外研究學(xué)者圍繞數(shù)據(jù)異常檢測做了大量的研究工作。數(shù)據(jù)異常檢測方法大致可分為傳統(tǒng)機器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)兩種方法。近幾年比較主流用于異常檢測的機器學(xué)習(xí)方法有孤立森林(Isolation Forest,IF)與單類支持向量機(One Class Support Vector Machine,OCSVM)等方法[5-7]。如李新鵬等人[8]采用IF數(shù)據(jù)異常檢測方法,在電力調(diào)度流數(shù)據(jù)異常檢測的AUC 值達到了0.968;吳旗等人[9]利用改進的OCSVM方法,對網(wǎng)絡(luò)流量異常進行檢測,使得分類準(zhǔn)確率提高了近10%,有效解決了傳統(tǒng)流量異常檢測方法的低準(zhǔn)確率和開銷大等弊端。目前主要應(yīng)用于數(shù)據(jù)異常檢測的深度神經(jīng)網(wǎng)絡(luò)模型有自編碼模型(Auto Encoder,AE)以及變分自編碼模型(Variational Auto Encoder,VAE)等。Sun等人[10]利用改進的變分自編碼器檢測網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)集KDD-CUP,其AUC 值可達到0.951,高于傳統(tǒng)數(shù)據(jù)異常檢測模型,相比于AE方法提高了0.53%,相比于OCSVM方法提高了12.15%。
隨著深度神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于數(shù)據(jù)異常檢測的研究不斷取得進展,傳統(tǒng)機器學(xué)習(xí)模型在異常檢測上的性能已不如神經(jīng)網(wǎng)絡(luò)模型。如由于IF 和OCSVM 模型分類的性質(zhì),已不適應(yīng)用于高維度的數(shù)據(jù)異常檢測。盡管自編碼以及變分自編碼模型模型在數(shù)據(jù)異常檢測上的性能普遍優(yōu)于傳統(tǒng)機器學(xué)習(xí)模型、但是模型訓(xùn)練需要正常(干凈)的數(shù)據(jù)。另一方面,采用傳統(tǒng)自編碼模型進行數(shù)據(jù)異常檢測,其訓(xùn)練數(shù)據(jù)集一般包括正常數(shù)據(jù)和異常數(shù)據(jù),如果模型只能用正常數(shù)據(jù)進行訓(xùn)練,就必須事先進行數(shù)據(jù)預(yù)處理以獲取只包含正常數(shù)據(jù)的數(shù)據(jù)集,對實際數(shù)據(jù)異常檢測具有一定局限性[11]。
另一方面,在自編碼網(wǎng)絡(luò)構(gòu)建中借鑒深度學(xué)習(xí)思路,已被用于特定環(huán)境中異常數(shù)據(jù)的檢測[10,12]。針對目前數(shù)據(jù)異常檢測方法存在的問題,本文引入深度學(xué)習(xí)網(wǎng)絡(luò)中的自編碼模型,并將自編碼模型進行改進,構(gòu)建出深度自編碼模型(Deep Auto Encoder,DAE)。該模型方法不僅異常檢測性能優(yōu)于傳統(tǒng)機器學(xué)習(xí)模型,而且克服了傳統(tǒng)自編碼需要正常數(shù)據(jù)進行模型訓(xùn)練的局限性,無需輸入正常(干凈)數(shù)據(jù)就可以訓(xùn)練網(wǎng)絡(luò)模型。對比實驗結(jié)果表明深度自編碼模型在數(shù)據(jù)異常檢測上的性能優(yōu)于傳統(tǒng)的機器學(xué)習(xí)模型以及自編碼模型,對于現(xiàn)實問題中數(shù)據(jù)異常檢測具有很好的實用價值[3-4,13-14]。
本文提出的深度自編碼器模型是在自編碼器模型的基礎(chǔ)上,采用主成分分析的方法將數(shù)據(jù)分為兩部分進行處理,可以彌補傳統(tǒng)自編碼模型需要正常數(shù)據(jù)集進行訓(xùn)練的缺陷并有效地檢測出異常數(shù)據(jù)[15-16]。
AE 是一種包含有輸入層、隱藏層、輸出層的三層神經(jīng)網(wǎng)絡(luò)模型,通過無監(jiān)督的學(xué)習(xí)算法獲取數(shù)據(jù)中重要信息。從輸入層到隱藏層的壓縮低維表達過程可以稱作模型的編碼階段(Encoder),從隱藏層的壓縮特征映射還原出輸出層的近似原始數(shù)據(jù)的過程稱為解碼階段(Decoder)。
設(shè)原始空間數(shù)據(jù)為Rm×n,m為原始空間中數(shù)據(jù)實例數(shù),n為每條實例數(shù)據(jù)的維度。x(i)∈Rn(i=1,2,…,m),編碼和解碼過程分別如式(1)和式(2)所示:
式(1)中,h(i)為每一個輸入實例x(i)經(jīng)過編碼器得到隱藏層的特征表達;θ=(W,b)為網(wǎng)絡(luò)參數(shù),W為輸入層到隱藏層之前的權(quán)值矩陣,b為隱藏層神經(jīng)元的偏置量,σ(x)為激活函數(shù),本文選用式(3)的Sigmoid 函數(shù)。式(2)中,x?(i)為隱藏層經(jīng)過解碼后得到的重構(gòu)表達;θ=(W′,b′)為網(wǎng)絡(luò)參數(shù),W′為隱藏層到輸出層的權(quán)值矩陣,通常取W′=WT,b′為輸出層神經(jīng)元的偏置量。
AE 的學(xué)習(xí)目標(biāo)是最小化重構(gòu)誤差L的值,使得輸入與輸出值盡可能接近,誤差函數(shù)L的選擇為式(4)所示的均方誤差損失函數(shù):
則自編碼器的目標(biāo)函數(shù)可改寫為式(5):
其中,X為輸入數(shù)據(jù),E代表編碼器,D代表解碼器,‖為L2 范數(shù)。本文所提到的深度自編碼器模型是在原自編碼器的基礎(chǔ)上進行改進,實際上是對式(5)進行改進,讓其更好地應(yīng)用于數(shù)據(jù)異常檢測[16-19]。
傳統(tǒng)自編碼網(wǎng)絡(luò)應(yīng)用于數(shù)據(jù)異常檢測,首先用正常的數(shù)據(jù)集訓(xùn)練一個自編碼器,通過訓(xùn)練出的自編碼器計算異常數(shù)據(jù)的重建誤差,最后設(shè)置一個閾值α,重建誤差大于這個閾值則為異常,否則為正常,可見傳統(tǒng)的自編碼器應(yīng)用于數(shù)據(jù)異常檢測,模型訓(xùn)練需要正常(干凈)數(shù)據(jù)。并且,根據(jù)式(5)的目標(biāo)函數(shù)可知,目標(biāo)函數(shù)無任何約束項(正則項),也會使得模型易出現(xiàn)過擬合現(xiàn)象[10,20]。
另一方面,主成分分析(Principal Components Analysis,PCA)主要通過求數(shù)據(jù)集的協(xié)方差矩陣最大特征值對應(yīng)的特征向量,由此找到數(shù)據(jù)方差最大的幾個方向,對數(shù)據(jù)達到降維的效果。在數(shù)據(jù)異常檢測過程中引入PCA 方法,將輸入數(shù)據(jù)分為正常數(shù)據(jù)和異常數(shù)據(jù)兩部分,正常數(shù)據(jù)部分由自編碼網(wǎng)絡(luò)重建輸出,異常數(shù)據(jù)部分由近端法進行優(yōu)化輸出,如圖1所示。
圖1 深度自編碼模型結(jié)構(gòu)
在初始時刻,假設(shè)輸入數(shù)據(jù)中異常部分為0,即把整個初始輸入數(shù)據(jù)X0當(dāng)成正常部分,經(jīng)過自編碼網(wǎng)絡(luò)訓(xùn)練后,所輸出的重建數(shù)據(jù)LD0與初始輸入數(shù)據(jù)X0求差即為當(dāng)前訓(xùn)練的異常部分S0,并采用近端優(yōu)化方法進行優(yōu)化輸出再與輸入數(shù)據(jù)進行求差進行下一次模型訓(xùn)練。如PCA方法中描述將輸入數(shù)據(jù)X分為兩部分進行處理,即:
其中,X代表輸入數(shù)據(jù),L代表輸入數(shù)據(jù)中的正常(干凈)部分,S代表輸入數(shù)據(jù)中的異常部分。將L部分輸入到自編碼器網(wǎng)絡(luò)進行有效重建輸出LD,通過輸入數(shù)據(jù)X,得出S=X-LD,將其用近端法優(yōu)化輸出S,與輸入數(shù)據(jù)X相減再次得到L=X-S,等待下一次輸入到自編碼器網(wǎng)絡(luò)重建輸出。如此交替優(yōu)化后,模型即完成一次訓(xùn)練。當(dāng)達到所設(shè)定的迭代次數(shù)后輸出最終結(jié)果。通過PCA 方法將輸入數(shù)據(jù)分為異常與正常部分,模型不僅可以將輸入數(shù)據(jù)中的異常部分隔離開,并用正常部分去訓(xùn)練(學(xué)習(xí))自編碼器,而且還通過近端優(yōu)化的方法去優(yōu)化異常部分,通過迭代使正樣本與負樣本有效地分離開,達到異常檢測的效果。這樣構(gòu)建將有利于模型更好地描述數(shù)據(jù)集中正常數(shù)據(jù)的分布,并且有望在無標(biāo)簽的情況下達到很好的異常檢測效果。
將S加入到目標(biāo)函數(shù)的正則項部分。根據(jù)式(5)與圖1模型構(gòu)建,可將模型的目標(biāo)函數(shù)重寫為:
其中,L是輸入數(shù)據(jù)中的正常(干凈)數(shù)據(jù)部分,可以由自編碼器很好地重建出;S包含著自編碼器難以重建的異常或噪聲數(shù)據(jù);LD是正常(干凈)數(shù)據(jù)重建后輸出數(shù)據(jù);式中的Eθ,Dθ是將編解碼進行參數(shù)化;λ是調(diào)整S稀疏程度的參數(shù),即輸入數(shù)據(jù)中心異常數(shù)據(jù)的比例大小,是后續(xù)模型訓(xùn)練中的重要參數(shù)。即λ越小代表模型認(rèn)為越多的數(shù)據(jù)為異常數(shù)據(jù),反之越少的數(shù)據(jù)為異常數(shù)據(jù)。式中為L21范數(shù),其計算式為:
L21 范數(shù)為先求各行的L2 范數(shù)得到一個m行1 列的向量,再計算求這個向量的1范數(shù)。即:矩陣X每一行的L2范數(shù)之和[13-14,18-19]。
模型輸出結(jié)果y?可定義為矩陣X-LD-S對每行求L2范數(shù),即得到一個m行的列向量,如式(9)。由于S矩陣代表異常數(shù)據(jù),當(dāng)S矩陣中某行基本接近于0向量,說明該條輸入實例很可能為正常數(shù)據(jù),輸出結(jié)果y?近似于X-LD的L2范數(shù);當(dāng)S矩陣中某行的行向量中的值為不可忽略的值,說明該條輸入實例很有可能為異常數(shù)據(jù),輸出結(jié)果y?為式(9)所示。最終模型的決策函數(shù)可設(shè)定一個相應(yīng)的閾值將數(shù)據(jù)分為異?;蛘哒?shù)據(jù)。
其中,xij為X-LD-S內(nèi)i行j列的值。
本文構(gòu)建的深度自編碼模型具體算法如算法1,其中步驟3 至步驟10 為DAE 算法主要部分。步驟3 先初始化S與LD,使其為m×n的0 值矩陣,并隨機初始化自編碼網(wǎng)絡(luò)中的權(quán)值W和偏置b。步驟5至步驟10為DAE模型一次訓(xùn)練,其中步驟7、8為傳統(tǒng)自編碼器重建輸入的部分;步驟9、10為深度自編器改進的部分,具體根據(jù)重建的LD更新稀疏矩陣S,并用近端優(yōu)化的方法優(yōu)化稀疏矩陣。這樣即DAE 模型完成一次訓(xùn)練,當(dāng)訓(xùn)練次數(shù)達到迭代次數(shù)上限iteration_limit時,模型輸出最后決策得分Sn。
算法1深度自編碼(DAE)算法
近端優(yōu)化方法提供一個近端算子,相當(dāng)于閾值函數(shù),與λ值比較,對數(shù)據(jù)中的S部分進行優(yōu)化更新。并通過每次迭代優(yōu)化后,正常數(shù)據(jù)(正樣本)的S部分將置為0,而異常數(shù)據(jù)(負樣本)的S部分值將置為與閾值相關(guān)的值,當(dāng)該行的2 范數(shù)越大于λ時,其優(yōu)化后的S值將越大,模型將認(rèn)為當(dāng)前行為異常值的概率更大,反之亦然。故可通過近端優(yōu)化算法迭代后,可以使得輸入數(shù)據(jù)中的正常數(shù)據(jù)與異常數(shù)據(jù)有效地分離開,達到異常數(shù)據(jù)檢測的效果。
采用近端優(yōu)化方法對算法1步驟10的S進行優(yōu)化,根據(jù)λ值求解出S。其中λ為調(diào)控正常數(shù)據(jù)與異常數(shù)據(jù)的一個閾值,λ值越小模型越敏感,模型認(rèn)為輸入數(shù)據(jù)中異常值比例越多,反之相反。近端優(yōu)化算法具體如算法2,其中步驟4 至步驟9 為算法主要部分,步驟5、6計算S每一行的2范數(shù),如果S當(dāng)前行的2范數(shù)大于λ,將對該行進行更新,否則直接置0。故每次可通過近端優(yōu)化算法迭代,使得正常數(shù)據(jù)與異常數(shù)據(jù)很好地分離開,λ也是后續(xù)模型調(diào)參中的一個重要參數(shù)。
算法2近端優(yōu)化算法
本文中,DAE 采用交替方向乘子的優(yōu)化方法進行模型訓(xùn)練。交替方向乘子算法(Alternating Direction Method of Multipliers,ADMM)是將目標(biāo)函數(shù)分為兩個或者多個部分進行優(yōu)化的方法。首先,對其中一部分進行優(yōu)化求解,對其他部分進行固定。將式(6)分為兩部分,一部分優(yōu)化L,則S固定為常量,優(yōu)化目標(biāo)為:‖LD-Dθ(Eθ(L)) ‖2;另一部分優(yōu)化S,則包含L的部分固定為常量。其中優(yōu)化第一部分L時,使用反向傳播(Back Propagation,BP)方法,該方法是深度學(xué)習(xí)模型訓(xùn)練中經(jīng)典的優(yōu)化方法;優(yōu)化第二部分S,使用3.2節(jié)中所提到近端優(yōu)化的方法最小化正則項部分。
最后,整個模型的訓(xùn)練實際上是首先固定S,使用BP 算法訓(xùn)練自編碼器并最小化再固定L,使用近端優(yōu)化的方法優(yōu)化正則項部分。在每次交替最小化中,都分別計算出S=X-LD和LD=X-S,直到達到迭代次數(shù),模型訓(xùn)練完成,輸出最終結(jié)果。從整個算法的構(gòu)建以及訓(xùn)練可以看出,DAE 模型訓(xùn)練無需有標(biāo)簽數(shù)據(jù),屬于無監(jiān)督學(xué)習(xí),較之傳統(tǒng)AE需要正常(干凈)數(shù)據(jù)去訓(xùn)練的半監(jiān)督學(xué)習(xí)應(yīng)用性更廣,并且DAE 模型加入了約束項(正則項),使得模型不易出現(xiàn)過擬合現(xiàn)象,泛化能力更強,有望獲得更加可靠的結(jié)果。
實驗在Intel Core i5 CPU@1.6 GHz、顯卡AMD HD8600、4 GB RAM 環(huán)境下和 Windows7 操作系統(tǒng)下實現(xiàn),使用Python3.5 進行仿真實驗,DAE 算法采用TensorFlow 框架實現(xiàn),其他基線算法采用PyOD 自帶包來實現(xiàn)。
采用AUC值來評價模型的性能。利用機器學(xué)習(xí)領(lǐng)域中二分類問題的四個概念進行分析,如圖2所示。
其中,TP(True Positive)為在預(yù)測正樣本中,預(yù)測正確的數(shù)目;FP(False Positive)為在預(yù)測正樣本中,預(yù)測錯誤的數(shù)目;TN(True Negative)為在預(yù)測負樣本中,預(yù)測正確的數(shù)目;FN(False Negative)為在預(yù)測負樣本中,預(yù)測錯誤的數(shù)目[16]。
AUC(Area Under Curve)值的概念解釋如下:ROC曲線(Receiver Operating Characteristic Curve)為接受者操作特性曲線,ROC曲線上每個點反映著對同一信號刺激的感受性,ROC 曲線下與坐標(biāo)軸圍成的面積即為AUC值。其中,橫軸為假正類FPR(False Positive Rate):縱軸為真正率(召回率)TPR(True Positive Rate):TPR=。AUC 值是一個介于0.1 和1 之間的概率值,當(dāng)隨機挑選一個正樣本以及負樣本,當(dāng)前模型算法根據(jù)計算得到的Score 值將這個正樣本排在負樣本前面的概率就是AUC 值,AUC 值越大,當(dāng)前分類算法越有可能將正樣本排在負樣本前面,從而能夠更好地分類,也可以有效地評價模型算法的好壞,即AUC 值越大模型性能越好。由于異常檢測數(shù)據(jù)正負樣本的不均勻性,而AUC 值又不受正負樣本不均衡的影響,故對比實驗主要是對各算法的AUC 值進行比較。
本文采用PyOD工具包中所用的數(shù)據(jù)集,與傳統(tǒng)異常檢測方法進行比較。PyOD 是一個全面且可拓展的Python異常檢測工具包,里面集成了很多傳統(tǒng)的異常檢測算法模型,便于驗證DAE 算法的性能優(yōu)越性。本文選用7個多維點數(shù)據(jù)集進行對比,列數(shù)代表數(shù)據(jù)集的特征數(shù)(即維度)和標(biāo)簽值(即y值),行數(shù)代表數(shù)據(jù)集的樣本數(shù)。具體算法模型輸入X為數(shù)據(jù)集的多維數(shù)據(jù),所需要的標(biāo)簽(y值)1代表異常值,0代表正常值。表1為各數(shù)據(jù)集的具體信息。
表1 各數(shù)據(jù)集具體信息
對于每個數(shù)據(jù)集,首先將其隨機打亂分為兩部分:80%用于訓(xùn)練,20%用于測試。為了研究不同超參對模型結(jié)果的影響,以mnist數(shù)據(jù)為例,分別對不同λ值以及自編碼網(wǎng)絡(luò)結(jié)構(gòu)下的模型進行實驗,得到各種情況下的AUC 值并找到最優(yōu)超參值,如表2 和表3 所示。表2 為對比不同自編碼隱藏層與神經(jīng)元數(shù)對AUC 值影響,將模型其他參數(shù)設(shè)置最優(yōu)參數(shù),通過實驗可得,當(dāng)自編碼隱藏層為3層時,并且第一層神經(jīng)元數(shù)為輸入數(shù)據(jù)維度的 0.6~0.7 之間時,AUC 值達到最優(yōu)。表3 分析了λ對模型的影響,將模型其他參數(shù)都設(shè)置為最優(yōu)參數(shù)。由算法2 可知,λ為調(diào)控正常數(shù)據(jù)與異常數(shù)據(jù)的一個閾值,通過表1可知mnist數(shù)據(jù)集中異常值比例為9.21%,故對模型λ調(diào)參,當(dāng)模型判定的異常值比例與9.21%接近,此時λ值作為模型可參考的最優(yōu)參數(shù)。當(dāng)λ=1 時,其異常值比例值接近于實際值,并且AUC值達到最大,則此時λ值為模型最優(yōu)參數(shù)。
表2 mnist數(shù)據(jù)集下不同自編碼網(wǎng)絡(luò)結(jié)構(gòu)的AUC值
表3 mnist數(shù)據(jù)集下不同λ 值下自編碼模型表現(xiàn)
通過模型在mnist 數(shù)據(jù)集上對不同超參的研究,用相同的方法對其他6個數(shù)據(jù)集進行細調(diào)參,其最優(yōu)超參結(jié)果如表4所示。其中主要的需要細調(diào)的參數(shù)為:自編碼器隱藏層數(shù)以及各隱藏層中神經(jīng)元個數(shù)(layers)、一次訓(xùn)練所選取的樣本數(shù)(batch_size)、模型的學(xué)習(xí)率(learning_rate)、以及模型中定義的超參數(shù)(λ)。
目前常用的數(shù)據(jù)異常檢測方法主要有ABOD、FB、IForest、KNN、LOF、MCD、PCA、OCSVM 和AE 等。其中,前7種均為無監(jiān)督的機器學(xué)習(xí)方法,OCSVM為半監(jiān)督的機器學(xué)習(xí)方法,AE 為半監(jiān)督的深度神經(jīng)網(wǎng)絡(luò)方法。本文中提出的DAE模型是無監(jiān)督深度神經(jīng)網(wǎng)絡(luò)方法,為了考察DAE 模型的無監(jiān)督異常檢測效果,選用7種無監(jiān)督的機器學(xué)習(xí)方法、1種半監(jiān)督的機器學(xué)習(xí)方法和1 種半監(jiān)督的深度神經(jīng)網(wǎng)絡(luò)方法作為基線方法進行對比實驗。實驗采用表4中DAE模型最優(yōu)超參選擇,對10 種方法繪制ROC 曲線,進行可視化展示。圖3 給出了Minst數(shù)據(jù)集下各方法的ROC曲線,圖中橫軸為假正類FPR,縱軸為真正率TPR,不同顏色的曲線代表不同的方法,其中紅色粗實線代表DAE方法,虛線為其他基線方法,右下角為不同方法的AUC 值(即ROC 曲線下面積)。將DAE 模型AUC 值與其他9 種基線方法進行對比,并考察10種方法在各數(shù)據(jù)集中的AUC值排名,結(jié)果如表5 所示。表中加粗的數(shù)值為當(dāng)前數(shù)據(jù)集中AUC值最優(yōu)的結(jié)果。由表可得,DAE模型在4個數(shù)據(jù)集中的AUC 值達到最優(yōu),在1 個數(shù)據(jù)集中達到次優(yōu),在另兩個數(shù)據(jù)集分別排在第3 和第6,表現(xiàn)出較好的異常數(shù)據(jù)檢測效果。另一方面,7 種無監(jiān)督機器學(xué)習(xí)方法中,只有IForest 和 KNN 這 2 種分別在 wbc 數(shù) 據(jù)集和 optdigits 數(shù)據(jù)集出現(xiàn)過一次最優(yōu),但這兩種方法在其他6種數(shù)據(jù)集的排名情況相對較差,如IForest在mnist數(shù)據(jù)集中的AUC值(0.796 5)明顯低于 DAE 模型的 AUC 值(0.883 6),KNN在pendigits數(shù)據(jù)集中的AUC值(0.748 7)明顯低于DAE 模型的AUC 值(0.953 2),表現(xiàn)出對數(shù)據(jù)集的依賴性。雖然OCSVM半監(jiān)督機器學(xué)習(xí)方法在satimage-2和musk兩個數(shù)據(jù)集的AUC值達到最優(yōu),AE半監(jiān)督深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法在3個數(shù)據(jù)集中達到次優(yōu)的情況,但它們在其他數(shù)據(jù)集中AUC 值卻明顯低于DAE模型,且半監(jiān)督學(xué)習(xí)需要正常數(shù)據(jù)進行訓(xùn)練,對于實際數(shù)據(jù)異常檢測中具有一定局限性。從上述對比實驗結(jié)果可得,本實驗所采用的9 種基線方法對數(shù)據(jù)集都具有較大的依賴性,在不同數(shù)據(jù)的異常檢測穩(wěn)定性和可靠性較差;DAE模型的穩(wěn)定性與可靠性更強,更適用于實際的數(shù)據(jù)異常檢測中。改進后的模型不僅克服了傳統(tǒng)自編碼需要正常數(shù)據(jù)進行模型訓(xùn)練的局限性,而且在數(shù)據(jù)異常檢測上的AUC值以及模型的穩(wěn)定性也高于傳統(tǒng)機器學(xué)習(xí)模型與傳統(tǒng)自編碼模型,相較于傳統(tǒng)數(shù)據(jù)異常檢測方法具有很大的優(yōu)勢。
表4 深度自編碼算法模型的超參選擇
圖3 mnist數(shù)據(jù)集下各方法的ROC曲線
本文將原有自編碼模型進行改進,結(jié)合主成分分析的方法構(gòu)建出了一種深度自編碼網(wǎng)絡(luò)模型(DAE)。并使用近端優(yōu)化方法去優(yōu)化目標(biāo)函數(shù)正則項部分,反向傳播優(yōu)化方法去優(yōu)化自編碼部分,最后采用交替方向乘子方法(ADMM)去訓(xùn)練整個模型。在實驗部分,將深度自編碼模型應(yīng)用在7個真實數(shù)據(jù)集上與9種基線方法進行比較評估。實驗結(jié)果表明本文所提的模型在4 個數(shù)據(jù)集中達到最優(yōu)并且在1 個數(shù)據(jù)集中可以達到次優(yōu)的結(jié)果,另兩個數(shù)據(jù)集分別排在第3和第6,其綜合結(jié)果優(yōu)于其他的基線方法。因此就其表現(xiàn)來說,本文所提的算法模型可以作為當(dāng)前數(shù)據(jù)異常檢測研究提供一種新的思路,具有一定研究價值。
表5 各模型算法AUC值