亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

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

        1 引言

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

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

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

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

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

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

        2.1 自編碼器模型網絡

        AE 是一種包含有輸入層、隱藏層、輸出層的三層神經網絡模型,通過無監(jiān)督的學習算法獲取數據中重要信息。從輸入層到隱藏層的壓縮低維表達過程可以稱作模型的編碼階段(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 深度自編碼器網絡構建

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

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

        圖1 深度自編碼模型結構

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

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

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

        其中,L是輸入數據中的正常(干凈)數據部分,可以由自編碼器很好地重建出;S包含著自編碼器難以重建的異常或噪聲數據;LD是正常(干凈)數據重建后輸出數據;式中的Eθ,Dθ是將編解碼進行參數化;λ是調整S稀疏程度的參數,即輸入數據中心異常數據的比例大小,是后續(xù)模型訓練中的重要參數。即λ越小代表模型認為越多的數據為異常數據,反之越少的數據為異常數據。式中為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為傳統(tǒng)自編碼器重建輸入的部分;步驟9、10為深度自編器改進的部分,具體根據重建的LD更新稀疏矩陣S,并用近端優(yōu)化的方法優(yōu)化稀疏矩陣。這樣即DAE 模型完成一次訓練,當訓練次數達到迭代次數上限iteration_limit時,模型輸出最后決策得分Sn。

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

        3.2 近端優(yōu)化方法

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

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

        算法2近端優(yōu)化算法

        3.3 模型訓練方法

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

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

        4 實驗結果與分析

        實驗在Intel Core i5 CPU@1.6 GHz、顯卡AMD HD8600、4 GB RAM 環(huán)境下和 Windows7 操作系統(tǒng)下實現,使用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工具包中所用的數據集,與傳統(tǒng)異常檢測方法進行比較。PyOD 是一個全面且可拓展的Python異常檢測工具包,里面集成了很多傳統(tǒng)的異常檢測算法模型,便于驗證DAE 算法的性能優(yōu)越性。本文選用7個多維點數據集進行對比,列數代表數據集的特征數(即維度)和標簽值(即y值),行數代表數據集的樣本數。具體算法模型輸入X為數據集的多維數據,所需要的標簽(y值)1代表異常值,0代表正常值。表1為各數據集的具體信息。

        表1 各數據集具體信息

        4.3 實驗結果與分析

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

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

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

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

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

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

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

        5 結束語

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

        表5 各模型算法AUC值

        猜你喜歡
        編碼器編碼深度
        基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達圖像配準
        深度理解一元一次方程
        《全元詩》未編碼疑難字考辨十五則
        子帶編碼在圖像壓縮編碼中的應用
        電子制作(2019年22期)2020-01-14 03:16:24
        深度觀察
        深度觀察
        Genome and healthcare
        基于FPGA的同步機軸角編碼器
        深度觀察
        基于PRBS檢測的8B/IOB編碼器設計
        97精品国产一区二区三区| 日本二区三区视频免费观看| 天堂久久一区二区三区| 久久久久亚洲精品男人的天堂| 国产人妻人伦精品1国产盗摄| 欧美国产高清| 成人全视频在线观看免费播放| 亚洲国产精品一区二区成人av| 亚洲色图视频在线播放| 能看的网站中文字幕不卡av | 精品少妇一区二区三区免费| 国产又爽又黄又刺激的视频| 四虎影永久在线观看精品| 国产男女猛烈无遮挡免费视频网址| 亚洲av人片在线观看| 成人aaa片一区国产精品| 国产成人v爽在线免播放观看| 中文字幕成人乱码亚洲| 亚洲毛片在线免费视频| 无码乱人伦一区二区亚洲一| 狠狠色综合播放一区二区| 色佬易精品视频免费在线观看| 日韩经典午夜福利发布| 午夜精品久久久久久中宇| 2021久久精品国产99国产 | 就爱射视频在线视频在线| 特黄特色的大片观看免费视频| 国产一级免费黄片无码AV| 国产精品久久三级精品| 内射夜晚在线观看| 国产欧美日韩a片免费软件| 一区二区特别黄色大片| 亚洲一区二区三区地址| 无码任你躁久久久久久久| 国产AV无码专区亚洲AV桃花庵| 伊人久久大香线蕉av色婷婷| 亚洲无av码一区二区三区| 国产精品久久久久久妇女| a级毛片在线观看| 亚州五十路伊人网| 一本色道久久88—综合亚洲精品|