999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

深度自編碼器在數據異常檢測中的應用研究

2020-09-04 03:15:50張常華周雄圖張永愛姚劍敏郭太良
計算機工程與應用 2020年17期
關鍵詞:深度優化檢測

張常華,周雄圖 ,張永愛,姚劍敏,2,郭太良,嚴 群 ,2

1.福州大學 物理與信息工程學院,福州 350108

2.博感電子科技有限公司,福建 晉江 362200

1 引言

隨著互聯網的普及和信息技術的發展,異常檢測已逐漸成為數據挖掘領域的研究熱點。異常檢測旨在檢測出觀測數據中的非正常值,被廣泛應用于信用卡欺詐、網絡入侵檢測、設備異常檢測、醫療分析以及氣象預報等領域。在上述領域中,異常數據的產生,相對于大量存在的正常數據,通常被視作一種隨機現象,不符合正常數據的數據模式,也不具備正例樣本所具有的數據相關性,并且異常數據樣本較稀少。因此,如何精準地將大量數據中的少量異常數據檢測出來,成為該研究領域亟需解決的關鍵難點[1-4]。

近年來,國內外研究學者圍繞數據異常檢測做了大量的研究工作。數據異常檢測方法大致可分為傳統機器學習和深度神經網絡兩種方法。近幾年比較主流用于異常檢測的機器學習方法有孤立森林(Isolation Forest,IF)與單類支持向量機(One Class Support Vector Machine,OCSVM)等方法[5-7]。如李新鵬等人[8]采用IF數據異常檢測方法,在電力調度流數據異常檢測的AUC 值達到了0.968;吳旗等人[9]利用改進的OCSVM方法,對網絡流量異常進行檢測,使得分類準確率提高了近10%,有效解決了傳統流量異常檢測方法的低準確率和開銷大等弊端。目前主要應用于數據異常檢測的深度神經網絡模型有自編碼模型(Auto Encoder,AE)以及變分自編碼模型(Variational Auto Encoder,VAE)等。Sun等人[10]利用改進的變分自編碼器檢測網絡入侵數據集KDD-CUP,其AUC 值可達到0.951,高于傳統數據異常檢測模型,相比于AE方法提高了0.53%,相比于OCSVM方法提高了12.15%。

隨著深度神經網絡模型應用于數據異常檢測的研究不斷取得進展,傳統機器學習模型在異常檢測上的性能已不如神經網絡模型。如由于IF 和OCSVM 模型分類的性質,已不適應用于高維度的數據異常檢測。盡管自編碼以及變分自編碼模型模型在數據異常檢測上的性能普遍優于傳統機器學習模型、但是模型訓練需要正常(干凈)的數據。另一方面,采用傳統自編碼模型進行數據異常檢測,其訓練數據集一般包括正常數據和異常數據,如果模型只能用正常數據進行訓練,就必須事先進行數據預處理以獲取只包含正常數據的數據集,對實際數據異常檢測具有一定局限性[11]。

另一方面,在自編碼網絡構建中借鑒深度學習思路,已被用于特定環境中異常數據的檢測[10,12]。針對目前數據異常檢測方法存在的問題,本文引入深度學習網絡中的自編碼模型,并將自編碼模型進行改進,構建出深度自編碼模型(Deep Auto Encoder,DAE)。該模型方法不僅異常檢測性能優于傳統機器學習模型,而且克服了傳統自編碼需要正常數據進行模型訓練的局限性,無需輸入正常(干凈)數據就可以訓練網絡模型。對比實驗結果表明深度自編碼模型在數據異常檢測上的性能優于傳統的機器學習模型以及自編碼模型,對于現實問題中數據異常檢測具有很好的實用價值[3-4,13-14]。

2 深度自編碼器模型的構建

本文提出的深度自編碼器模型是在自編碼器模型的基礎上,采用主成分分析的方法將數據分為兩部分進行處理,可以彌補傳統自編碼模型需要正常數據集進行訓練的缺陷并有效地檢測出異常數據[15-16]。

2.1 自編碼器模型網絡

AE 是一種包含有輸入層、隱藏層、輸出層的三層神經網絡模型,通過無監督的學習算法獲取數據中重要信息。從輸入層到隱藏層的壓縮低維表達過程可以稱作模型的編碼階段(Encoder),從隱藏層的壓縮特征映射還原出輸出層的近似原始數據的過程稱為解碼階段(Decoder)。

設原始空間數據為Rm×n,m為原始空間中數據實例數,n為每條實例數據的維度。x(i)∈Rn(i=1,2,…,m),編碼和解碼過程分別如式(1)和式(2)所示:

式(1)中,h(i)為每一個輸入實例x(i)經過編碼器得到隱藏層的特征表達;θ=(W,b)為網絡參數,W為輸入層到隱藏層之前的權值矩陣,b為隱藏層神經元的偏置量,σ(x)為激活函數,本文選用式(3)的Sigmoid 函數。式(2)中,x?(i)為隱藏層經過解碼后得到的重構表達;θ=(W′,b′)為網絡參數,W′為隱藏層到輸出層的權值矩陣,通常取W′=WT,b′為輸出層神經元的偏置量。

AE 的學習目標是最小化重構誤差L的值,使得輸入與輸出值盡可能接近,誤差函數L的選擇為式(4)所示的均方誤差損失函數:

則自編碼器的目標函數可改寫為式(5):

其中,X為輸入數據,E代表編碼器,D代表解碼器,‖為L2 范數。本文所提到的深度自編碼器模型是在原自編碼器的基礎上進行改進,實際上是對式(5)進行改進,讓其更好地應用于數據異常檢測[16-19]。

2.2 深度自編碼器網絡構建

傳統自編碼網絡應用于數據異常檢測,首先用正常的數據集訓練一個自編碼器,通過訓練出的自編碼器計算異常數據的重建誤差,最后設置一個閾值α,重建誤差大于這個閾值則為異常,否則為正常,可見傳統的自編碼器應用于數據異常檢測,模型訓練需要正常(干凈)數據。并且,根據式(5)的目標函數可知,目標函數無任何約束項(正則項),也會使得模型易出現過擬合現象[10,20]。

另一方面,主成分分析(Principal Components Analysis,PCA)主要通過求數據集的協方差矩陣最大特征值對應的特征向量,由此找到數據方差最大的幾個方向,對數據達到降維的效果。在數據異常檢測過程中引入PCA 方法,將輸入數據分為正常數據和異常數據兩部分,正常數據部分由自編碼網絡重建輸出,異常數據部分由近端法進行優化輸出,如圖1所示。

圖1 深度自編碼模型結構

在初始時刻,假設輸入數據中異常部分為0,即把整個初始輸入數據X0當成正常部分,經過自編碼網絡訓練后,所輸出的重建數據LD0與初始輸入數據X0求差即為當前訓練的異常部分S0,并采用近端優化方法進行優化輸出再與輸入數據進行求差進行下一次模型訓練。如PCA方法中描述將輸入數據X分為兩部分進行處理,即:

其中,X代表輸入數據,L代表輸入數據中的正常(干凈)部分,S代表輸入數據中的異常部分。將L部分輸入到自編碼器網絡進行有效重建輸出LD,通過輸入數據X,得出S=X-LD,將其用近端法優化輸出S,與輸入數據X相減再次得到L=X-S,等待下一次輸入到自編碼器網絡重建輸出。如此交替優化后,模型即完成一次訓練。當達到所設定的迭代次數后輸出最終結果。通過PCA 方法將輸入數據分為異常與正常部分,模型不僅可以將輸入數據中的異常部分隔離開,并用正常部分去訓練(學習)自編碼器,而且還通過近端優化的方法去優化異常部分,通過迭代使正樣本與負樣本有效地分離開,達到異常檢測的效果。這樣構建將有利于模型更好地描述數據集中正常數據的分布,并且有望在無標簽的情況下達到很好的異常檢測效果。

將S加入到目標函數的正則項部分。根據式(5)與圖1模型構建,可將模型的目標函數重寫為:

其中,L是輸入數據中的正常(干凈)數據部分,可以由自編碼器很好地重建出;S包含著自編碼器難以重建的異常或噪聲數據;LD是正常(干凈)數據重建后輸出數據;式中的Eθ,Dθ是將編解碼進行參數化;λ是調整S稀疏程度的參數,即輸入數據中心異常數據的比例大小,是后續模型訓練中的重要參數。即λ越小代表模型認為越多的數據為異常數據,反之越少的數據為異常數據。式中為L21范數,其計算式為:

L21 范數為先求各行的L2 范數得到一個m行1 列的向量,再計算求這個向量的1范數。即:矩陣X每一行的L2范數之和[13-14,18-19]。

模型輸出結果y?可定義為矩陣X-LD-S對每行求L2范數,即得到一個m行的列向量,如式(9)。由于S矩陣代表異常數據,當S矩陣中某行基本接近于0向量,說明該條輸入實例很可能為正常數據,輸出結果y?近似于X-LD的L2范數;當S矩陣中某行的行向量中的值為不可忽略的值,說明該條輸入實例很有可能為異常數據,輸出結果y?為式(9)所示。最終模型的決策函數可設定一個相應的閾值將數據分為異常或者正常數據。

其中,xij為X-LD-S內i行j列的值。

3 算法實現

3.1 深度自編碼算法

本文構建的深度自編碼模型具體算法如算法1,其中步驟3 至步驟10 為DAE 算法主要部分。步驟3 先初始化S與LD,使其為m×n的0 值矩陣,并隨機初始化自編碼網絡中的權值W和偏置b。步驟5至步驟10為DAE模型一次訓練,其中步驟7、8為傳統自編碼器重建輸入的部分;步驟9、10為深度自編器改進的部分,具體根據重建的LD更新稀疏矩陣S,并用近端優化的方法優化稀疏矩陣。這樣即DAE 模型完成一次訓練,當訓練次數達到迭代次數上限iteration_limit時,模型輸出最后決策得分Sn。

算法1深度自編碼(DAE)算法

3.2 近端優化方法

近端優化方法提供一個近端算子,相當于閾值函數,與λ值比較,對數據中的S部分進行優化更新。并通過每次迭代優化后,正常數據(正樣本)的S部分將置為0,而異常數據(負樣本)的S部分值將置為與閾值相關的值,當該行的2 范數越大于λ時,其優化后的S值將越大,模型將認為當前行為異常值的概率更大,反之亦然。故可通過近端優化算法迭代后,可以使得輸入數據中的正常數據與異常數據有效地分離開,達到異常數據檢測的效果。

采用近端優化方法對算法1步驟10的S進行優化,根據λ值求解出S。其中λ為調控正常數據與異常數據的一個閾值,λ值越小模型越敏感,模型認為輸入數據中異常值比例越多,反之相反。近端優化算法具體如算法2,其中步驟4 至步驟9 為算法主要部分,步驟5、6計算S每一行的2范數,如果S當前行的2范數大于λ,將對該行進行更新,否則直接置0。故每次可通過近端優化算法迭代,使得正常數據與異常數據很好地分離開,λ也是后續模型調參中的一個重要參數。

算法2近端優化算法

3.3 模型訓練方法

本文中,DAE 采用交替方向乘子的優化方法進行模型訓練。交替方向乘子算法(Alternating Direction Method of Multipliers,ADMM)是將目標函數分為兩個或者多個部分進行優化的方法。首先,對其中一部分進行優化求解,對其他部分進行固定。將式(6)分為兩部分,一部分優化L,則S固定為常量,優化目標為:‖LD-Dθ(Eθ(L)) ‖2;另一部分優化S,則包含L的部分固定為常量。其中優化第一部分L時,使用反向傳播(Back Propagation,BP)方法,該方法是深度學習模型訓練中經典的優化方法;優化第二部分S,使用3.2節中所提到近端優化的方法最小化正則項部分。

最后,整個模型的訓練實際上是首先固定S,使用BP 算法訓練自編碼器并最小化再固定L,使用近端優化的方法優化正則項部分。在每次交替最小化中,都分別計算出S=X-LD和LD=X-S,直到達到迭代次數,模型訓練完成,輸出最終結果。從整個算法的構建以及訓練可以看出,DAE 模型訓練無需有標簽數據,屬于無監督學習,較之傳統AE需要正常(干凈)數據去訓練的半監督學習應用性更廣,并且DAE 模型加入了約束項(正則項),使得模型不易出現過擬合現象,泛化能力更強,有望獲得更加可靠的結果。

4 實驗結果與分析

實驗在Intel Core i5 CPU@1.6 GHz、顯卡AMD HD8600、4 GB RAM 環境下和 Windows7 操作系統下實現,使用Python3.5 進行仿真實驗,DAE 算法采用TensorFlow 框架實現,其他基線算法采用PyOD 自帶包來實現。

4.1 評價指標

采用AUC值來評價模型的性能。利用機器學習領域中二分類問題的四個概念進行分析,如圖2所示。

其中,TP(True Positive)為在預測正樣本中,預測正確的數目;FP(False Positive)為在預測正樣本中,預測錯誤的數目;TN(True Negative)為在預測負樣本中,預測正確的數目;FN(False Negative)為在預測負樣本中,預測錯誤的數目[16]。

AUC(Area Under Curve)值的概念解釋如下:ROC曲線(Receiver Operating Characteristic Curve)為接受者操作特性曲線,ROC曲線上每個點反映著對同一信號刺激的感受性,ROC 曲線下與坐標軸圍成的面積即為AUC值。其中,橫軸為假正類FPR(False Positive Rate):縱軸為真正率(召回率)TPR(True Positive Rate):TPR=。AUC 值是一個介于0.1 和1 之間的概率值,當隨機挑選一個正樣本以及負樣本,當前模型算法根據計算得到的Score 值將這個正樣本排在負樣本前面的概率就是AUC 值,AUC 值越大,當前分類算法越有可能將正樣本排在負樣本前面,從而能夠更好地分類,也可以有效地評價模型算法的好壞,即AUC 值越大模型性能越好。由于異常檢測數據正負樣本的不均勻性,而AUC 值又不受正負樣本不均衡的影響,故對比實驗主要是對各算法的AUC 值進行比較。

4.2 數據集

本文采用PyOD工具包中所用的數據集,與傳統異常檢測方法進行比較。PyOD 是一個全面且可拓展的Python異常檢測工具包,里面集成了很多傳統的異常檢測算法模型,便于驗證DAE 算法的性能優越性。本文選用7個多維點數據集進行對比,列數代表數據集的特征數(即維度)和標簽值(即y值),行數代表數據集的樣本數。具體算法模型輸入X為數據集的多維數據,所需要的標簽(y值)1代表異常值,0代表正常值。表1為各數據集的具體信息。

表1 各數據集具體信息

4.3 實驗結果與分析

對于每個數據集,首先將其隨機打亂分為兩部分:80%用于訓練,20%用于測試。為了研究不同超參對模型結果的影響,以mnist數據為例,分別對不同λ值以及自編碼網絡結構下的模型進行實驗,得到各種情況下的AUC 值并找到最優超參值,如表2 和表3 所示。表2 為對比不同自編碼隱藏層與神經元數對AUC 值影響,將模型其他參數設置最優參數,通過實驗可得,當自編碼隱藏層為3層時,并且第一層神經元數為輸入數據維度的 0.6~0.7 之間時,AUC 值達到最優。表3 分析了λ對模型的影響,將模型其他參數都設置為最優參數。由算法2 可知,λ為調控正常數據與異常數據的一個閾值,通過表1可知mnist數據集中異常值比例為9.21%,故對模型λ調參,當模型判定的異常值比例與9.21%接近,此時λ值作為模型可參考的最優參數。當λ=1 時,其異常值比例值接近于實際值,并且AUC值達到最大,則此時λ值為模型最優參數。

表2 mnist數據集下不同自編碼網絡結構的AUC值

表3 mnist數據集下不同λ 值下自編碼模型表現

通過模型在mnist 數據集上對不同超參的研究,用相同的方法對其他6個數據集進行細調參,其最優超參結果如表4所示。其中主要的需要細調的參數為:自編碼器隱藏層數以及各隱藏層中神經元個數(layers)、一次訓練所選取的樣本數(batch_size)、模型的學習率(learning_rate)、以及模型中定義的超參數(λ)。

目前常用的數據異常檢測方法主要有ABOD、FB、IForest、KNN、LOF、MCD、PCA、OCSVM 和AE 等。其中,前7種均為無監督的機器學習方法,OCSVM為半監督的機器學習方法,AE 為半監督的深度神經網絡方法。本文中提出的DAE模型是無監督深度神經網絡方法,為了考察DAE 模型的無監督異常檢測效果,選用7種無監督的機器學習方法、1種半監督的機器學習方法和1 種半監督的深度神經網絡方法作為基線方法進行對比實驗。實驗采用表4中DAE模型最優超參選擇,對10 種方法繪制ROC 曲線,進行可視化展示。圖3 給出了Minst數據集下各方法的ROC曲線,圖中橫軸為假正類FPR,縱軸為真正率TPR,不同顏色的曲線代表不同的方法,其中紅色粗實線代表DAE方法,虛線為其他基線方法,右下角為不同方法的AUC 值(即ROC 曲線下面積)。將DAE 模型AUC 值與其他9 種基線方法進行對比,并考察10種方法在各數據集中的AUC值排名,結果如表5 所示。表中加粗的數值為當前數據集中AUC值最優的結果。由表可得,DAE模型在4個數據集中的AUC 值達到最優,在1 個數據集中達到次優,在另兩個數據集分別排在第3 和第6,表現出較好的異常數據檢測效果。另一方面,7 種無監督機器學習方法中,只有IForest 和 KNN 這 2 種分別在 wbc 數 據集和 optdigits 數據集出現過一次最優,但這兩種方法在其他6種數據集的排名情況相對較差,如IForest在mnist數據集中的AUC值(0.796 5)明顯低于 DAE 模型的 AUC 值(0.883 6),KNN在pendigits數據集中的AUC值(0.748 7)明顯低于DAE 模型的AUC 值(0.953 2),表現出對數據集的依賴性。雖然OCSVM半監督機器學習方法在satimage-2和musk兩個數據集的AUC值達到最優,AE半監督深度神經網絡學習方法在3個數據集中達到次優的情況,但它們在其他數據集中AUC 值卻明顯低于DAE模型,且半監督學習需要正常數據進行訓練,對于實際數據異常檢測中具有一定局限性。從上述對比實驗結果可得,本實驗所采用的9 種基線方法對數據集都具有較大的依賴性,在不同數據的異常檢測穩定性和可靠性較差;DAE模型的穩定性與可靠性更強,更適用于實際的數據異常檢測中。改進后的模型不僅克服了傳統自編碼需要正常數據進行模型訓練的局限性,而且在數據異常檢測上的AUC值以及模型的穩定性也高于傳統機器學習模型與傳統自編碼模型,相較于傳統數據異常檢測方法具有很大的優勢。

表4 深度自編碼算法模型的超參選擇

圖3 mnist數據集下各方法的ROC曲線

5 結束語

本文將原有自編碼模型進行改進,結合主成分分析的方法構建出了一種深度自編碼網絡模型(DAE)。并使用近端優化方法去優化目標函數正則項部分,反向傳播優化方法去優化自編碼部分,最后采用交替方向乘子方法(ADMM)去訓練整個模型。在實驗部分,將深度自編碼模型應用在7個真實數據集上與9種基線方法進行比較評估。實驗結果表明本文所提的模型在4 個數據集中達到最優并且在1 個數據集中可以達到次優的結果,另兩個數據集分別排在第3和第6,其綜合結果優于其他的基線方法。因此就其表現來說,本文所提的算法模型可以作為當前數據異常檢測研究提供一種新的思路,具有一定研究價值。

表5 各模型算法AUC值

猜你喜歡
深度優化檢測
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
深度理解一元一次方程
深度觀察
深度觀察
主站蜘蛛池模板: 久久久久久久久亚洲精品| 国产亚洲精品在天天在线麻豆| 美女被躁出白浆视频播放| 四虎AV麻豆| 国产成人喷潮在线观看| 午夜国产不卡在线观看视频| 2020亚洲精品无码| 野花国产精品入口| 在线国产资源| 一级毛片免费不卡在线视频| 亚洲第一网站男人都懂| 国产男人的天堂| 真人免费一级毛片一区二区| 国内精品小视频在线| 国产一区二区影院| 好吊色妇女免费视频免费| 美女亚洲一区| av尤物免费在线观看| 在线欧美国产| 国产va在线观看| 久久99精品久久久大学生| 国产第一页亚洲| 日韩在线中文| 亚洲人成影院在线观看| 日韩乱码免费一区二区三区| 一级一级特黄女人精品毛片| 一级成人a毛片免费播放| 国产激情在线视频| 99人妻碰碰碰久久久久禁片| 国产青榴视频| 一级毛片a女人刺激视频免费| 99九九成人免费视频精品| 亚洲高清日韩heyzo| 久久天天躁狠狠躁夜夜2020一| 青草视频在线观看国产| 成人国产精品网站在线看| av在线手机播放| 亚洲成人一区在线| 欧美中文字幕一区| 国产成人h在线观看网站站| 日本久久网站| 日本国产精品| 日韩AV手机在线观看蜜芽| 久草视频福利在线观看| 午夜不卡福利| 日韩精品无码不卡无码| 精品福利视频导航| 中文纯内无码H| 欧美午夜视频在线| 无码福利视频| 在线观看免费AV网| www.亚洲一区| 国产精品19p| 日韩无码黄色网站| 福利在线一区| 亚洲伊人久久精品影院| 四虎成人精品在永久免费| 99热这里只有精品久久免费| 国内熟女少妇一线天| 免费观看精品视频999| 国产视频只有无码精品| 欧美精品一区二区三区中文字幕| 日本三级欧美三级| 中文字幕在线看视频一区二区三区| 久久亚洲日本不卡一区二区| 永久毛片在线播| 亚洲成AV人手机在线观看网站| 老司机精品久久| 精品国产一区二区三区在线观看 | 在线a网站| 国产亚洲精品无码专| 国产一区二区三区日韩精品| 69av免费视频| 毛片久久网站小视频| 毛片免费试看| 国产爽爽视频| 在线观看国产精品第一区免费| 亚洲中字无码AV电影在线观看| 欧美狠狠干| 丝袜国产一区| 天堂网亚洲系列亚洲系列| 久久国产高清视频|