?

Wasserstein自編碼器異常檢測模型

2020-11-17 06:56霍緯綱
計算機工程與設計 2020年11期
關鍵詞:脈沖星編碼器距離

王 星,霍緯綱

(中國民航大學 計算機科學與技術學院,天津 300300)

0 引 言

異常檢測技術廣泛應用于現實生產領域,并與實際應用場景密切相關[1]。例如從傳感器產生的時間序列數據中發現異常運行狀態,網絡安全領域中網絡攻擊、異常流量的檢測,金融業中用戶信用卡交易數據的欺詐檢測。由于現實的異常檢測任務中異常十分稀少并且標注十分的困難,使用以分類、預測為基礎的監督模型通過學習訓練數據的固定模式進行異常檢測不僅應用場景有限,而且待檢測數據含有噪聲且分布十分復雜時,異常檢測效果不佳[2]。

文獻[3-6]將變分自編碼器(variational autoencoder,VAE)[7]、生成對抗網絡(gererative adversarial net,GAN)[8,9]為代表的深度生成模型應用于半監督的異常檢測任務中。首先使用只由正常數據組成的訓練集訓練異常檢測模型收斂,模型能夠學習正常數據的高維復雜分布,再根據驗證集得到異常判定閾值,最后將待檢測數據輸入到訓練好的模型計算異常得分并與閾值比較進行異常檢測[9-11]?;谏疃壬赡P偷陌氡O督異常檢測模型根據數據的重建概率進行異常檢測,減少了隨機噪聲對模型異常檢測效果的影響,因此具有更高的魯棒性和可解釋性[15]。

在異常檢測任務中,當模型擬合分布與數據真實分布的支撐集沒有重疊或重疊很少時,VAE中用于度量兩個分布之間距離的KL散度(Kullback-Leibler divergence)沒有意義,而GAN中的JS(Jensen-Shannon divergence)散度為常數,都無法為模型學習輸入數據的真實分布提供有用的梯度信息[12]。同時,VAE模型使用變分推斷方法學習數據真實分布,該方法鼓勵神經網絡模型將輸入樣本的潛變量分布編碼為高斯分布,限制了模型學習高維復雜分布的能力[13]。GAN模型從隨機噪聲向量中學習數據的真實分布,但是缺少自編碼器的網絡結構使得模型在訓練中存在訓練模型崩潰(mode collapse)的問題[14]。

Wasserstein自編碼器[15](Wasserstein autoencoder,WAE)深度生成模型采用更易穩定訓練的自編碼器網絡結構,并且使用最優運輸理論中的Wasserstein距離度量數據真實分布與模型擬合分布之間的距離,對樣本數據分布支撐集的拓撲限制更少,因而能學習更加復雜的數據分布[16,17]。本文在原始WAE深度生成模型的基礎上結合收縮自編碼器(contractive autoencoder)理論[18],通過引入F范數作為模型隱藏層單元的懲罰項來進一步提高模型在異常檢測任務中的魯棒性,進而提出WAE-AD異常檢測模型。該模型使用正常數據訓練,再根據待檢測數據的重建概率計算異常得分,并與異常閾值比較進行異常檢測。在多種異常檢測數據集上的結果表明WAE-AD異常檢測模型能夠明顯提高異常檢測性能指標。

1 WAE深度生成模型及其改進

1.1 WAE深度生成模型

生成模型假設訓練數據集X={x1,x2,…,xn}中的樣本都由潛空間中的潛變量Z生成。其中,訓練數據集的真實分布記為PX,模型對該訓練數據集的擬合分布記為PG。最優運輸理論(optimal transport,OT)中的Wasserstein距離可以用來度量這兩個概率分布之間的距離。Wasserstein距離的原始定義為

(1)

基于Wasserstein距離定義構造的WAE深度生成模型通過限制模型中潛變量Z的條件后驗分布q(z) 與先驗分布p(z) 相等:q(z)?∑xq(z|x)p(x)=p(z) 來學習數據的真實分布PX。模型訓練時使用編碼器網絡對樣本數據x進行采樣計算得到潛變量Z的邊緣分布,再將Z輸入到生成器網絡進行分布變換,得到訓練數據的模型擬合分布。為了便于深度神經網絡計算,WAE模型構造p(z) 和q(z) 之間距離的懲罰項來放松模型中潛變量Z的約束。

本文選擇使用最大平均差異(maximum mean discre-pancy)作為懲罰項度量關于潛變量Z的兩個分布的距離。MMD距離使用核函數將兩個分布映射到高維空間并采樣計算得到分布的期望值,將產生的所有期望值的差值的上界定義為MMD距離。給定一個再生正定核函數k∶Z×Z→R,MMD距離的定義由式(2)表示

(2)

式中:Hk表示由正定核函數k構成的再生希爾伯特空間(reproducing kernel Hilbert space,RKHS)。

WAE模型假設潛變量Z的先驗分布為多元高斯分布N(Z;0,σ2·I),并選擇使用高斯徑向基核函數(radial basis function kernel,RBF)計算MMD距離。由于MMD距離理論上是一個無偏估計量,模型訓練時可以直接對q(z) 和p(z) 這兩個分布進行采樣,并將得到的樣本數據輸入到深度神經網絡,計算得到兩個分布的MMD距離。輸入一批樣本數據,其MMD距離可以通過式(3)進行計算

(3)

JWAE(PX,PG)=EPXEQ(Z|X)[c(X,G(Z))]+λ·MMD

(4)

算法1:基于MMD距離的WAE深度生成模型

輸入:正則化系數λ>0,正常數據組成的訓練數據集X={x1,x2,…,xn},正定核函數k,潛變量Z的先驗分布p(z),編碼器網絡Qφ,生成器網絡Gθ的初始化參數。

輸出:WAE模型

while(φ,θ)未收斂do:

從訓練數據集X中采樣得到 {x1,x2,…,xn}

從先驗分布中采樣得到 {z1,z2,…,zn}

fori=1 to n:

endfor

使用下面的公式更新Qφ和Gθ的參數

endwhile

1.2 改進的WAE深度生成模型

當輸入的訓練數據集含有隨機擾動帶來的噪聲時,為了進一步提高基于WAE模型的異常檢測性能,本文在WAE模型中引入收縮自編碼器理論。收縮自編碼器通過在傳統自編碼器模型的訓練目標函數中引入一個關于隱藏層單元的懲罰項來達到局部空間收縮的效果。該懲罰項是關于輸入數據的隱藏層單元表示的雅克比矩陣的F范數(Frobenius norm),其目的是使特征空間在訓練數據附近的映射達到收縮效果,具體表示為

(5)

式(5)作為自編碼器模型的懲罰項具有如下特性:當該懲罰項具有較小的一階導數時,表明該輸入數據對應的隱藏層表達比較平滑,那么當輸入出現一定的噪聲時,隱藏層單元的表達不會發生較大的改變。WAE模型將式(5)作為懲罰項加入到損失函數中,減少了模型中隱藏層對輸入數據微小變化的敏感程度,進一步提高了模型的魯棒性。改進后的WAE模型的損失函數為

(6)

2 WAE-AD異常檢測模型

2.1 異常得分計算

如圖1所示,我們使用只包含正常樣本數據組成的訓練集訓練WAE模型收斂后,將待檢測數據x輸入到訓練好的模型中,并利用式(7)中蒙特卡洛估計方法(Monte Carlo estimation)計算該樣本數據的重建概率(reconstruct probability),L設定為固定采樣次數10次

圖1 異常得分計算

(7)

2.2 WAE-AD異常檢測模型

本文提出的基于WAE的異常檢測模型WAE-AD的總體框架如圖2所示。該模型由數據預處理模塊和異常檢測模塊兩部分組成。

圖2 WAE-AD異常檢測模型總體框架

(1)數據預處理模塊首先需要對數據集中的數據依次使用缺失值填充,連續型數據離散化,特征數據歸一化方法。該過程首先將待檢測數據處理為適合異常檢測任務要求的形式,然后將數據集劃分為3部分:只含有正常數據的訓練集traindata,由正常數據和異常數據組成的驗證集validationdata、測試集testdata。

(2)異常檢測模塊將validationdata中的數據輸入到訓練好的WAE模型,并使用超參數搜索方法找到使得測試集中異常檢測性能指標F1值(F1 score)最大的檢測閾值τ。然后在測試集testdata中記錄WAE-AD異常檢測性能指標。該過程如算法2所示。

算法2:WAE-AD異常檢測算法

輸入:訓練好的WAE模型,驗證集validationdata,測試集testdata

輸出:檢測閾值τ

步驟1 確定異常檢測閾值τ的范圍和搜索步長;

步驟2 以F1值作為模型評價指標,在validationdata數據集中找到F1使得值最大的τ值;

步驟3 將測試集testdata中的數據輸入到WAE模型中,根據式(6)計算異常得分,異常大于τ則為異常數據;

步驟4 計算WAE-AD異常檢測的性能指標。

3 實驗與分析

3.1 實驗準備

實驗中使用HTRU2脈沖星檢測和ULB信用卡欺詐檢測作為異常檢測數據集。兩種數據集都使用CSV文件存儲,數據樣本中類別0和1分別代表正常數據和異常數據。HTRU2脈沖星檢測數據集包含17 898條數據樣本,將1939條標簽為1的脈沖星數據樣本視為異常數據,剩余 16 259 條標簽為0的非脈沖星數據樣本作為正常數據,異常比例為9.157%。ULB信用卡欺詐檢測數據集中共有 284 807 條數據樣本,其中492條標簽為1的欺詐數據樣本,異常數據比例為0.172%。兩個數據集都存在嚴重的數據傾斜,異常數據十分稀少,符合異常檢測任務要求。兩種數據集的詳細信息見表1。

表1 實驗數據集統計信息

實驗中使用Python數據分析工具包pandas讀取異常檢測數據集,ULB欺詐檢測數據集中每條樣本數據由經過PCA主成分分析處理后的30個數值型特征屬性組成,HTRU2 數據集中每條樣本數據由表示待分類數據樣本的簡單統計信息的8個數值型特征屬性組成。對兩個實驗數據集中的原始數據使用最小-最大歸一化方法進行歸一化預處理,使用公式x′=(x-xmin)/(xmax-xmin) 將原始數據映射到[0,1]范圍內,其中x為該數據的原始值,xmin為該屬性的最小值,xmax為該屬性最大值。

實驗所用計算機的硬件配置為Inter i7-6700 CPU、Nvidia GTX1080GPU、16G內存。編程環境采用Ubuntu16.04LTS操作系統,Python3.6及TensorFlow 1.10GPU深度神經網絡開發工具。

3.2 模型設置及評價指標

WAE-AD異常檢測模型中的編碼器網絡Encoder和解碼器網絡Decoder均采用全連接層(fully connected layers)實現的多層感知器MLP結構模型。在WAE-AD異常檢測模型中,編碼器輸入層和解碼器輸出層神經網絡的神經元個數均為與待檢測數據集特征屬性個數相同,信用卡欺詐檢測中設置為30維,脈沖星檢測中設置為8維。隱藏層神經網絡單元個數設置中,信用卡欺詐檢測任務設置為輸入層神經元個數的一半,脈沖星檢測任務設置為與輸入層神經元個數相同。

隨機抽取標簽為0的正常數據的80%組成訓練集traindata訓練WAE-AD模型,批大小(batch size)設置為128,epoch設置為200,使用Adam算法優化神經網絡中的參數,學習率設為0.0001。隨機抽取剩余10%的正常數據和50%的異常數據組成驗證集validationdata,并使用網絡搜索算法確定兩個超參數:潛變量Z的維度nZ和異常檢測閾值τ。由其余正常數據和異常數據組成測試集testdata,并選取合適評價指標驗證模型在異常檢測任務中的性能。

為驗證WAE-AD模型在異常檢測任務中的有效性,選取了以下異常檢測模型作為對比:

OC-SVM(one class support vector machines),它是使用核函數學習正常數據的決策邊界來進行異常檢測的監督模型。實驗中選擇使用徑向基核函數(RBF kernel),設置參數ν為待檢測數據集中的異常比例,參數γ為1/m,其中m為數據集的特征數,異常檢測中數據集劃分與WAE-AD模型相同。

AE-AD,使用與WAE-AD相同的模型結構及參數,根據待檢測數據的重建誤差進行異常檢測。

VAE-AD,使用WAE-AD模型相同的多層感知機MLP網絡結構及參數,選擇各向同性的高斯分布作為潛變量Z的先驗分布,最終根據待檢測數據的重建概率進行異常檢測。

GAN-AD,該模型中生成器網絡結構及參數與WAE-AD模型的生成器部分相同,鑒別器網絡采用兩層全連接網絡構成的二分類神經網絡。異常檢測中結合生成器網絡的重建概率和鑒別器網絡的分類輸出進行異常檢測。

DAGMM[19](deep autoencoding Gaussian mixture model),深度自編碼器部分使用和WAE-AD相同的結構及參數,使用具有兩個分量的高斯混合模型(Gaussian mixture model,GMM)作為樣本似然概率估計部分。該模型使用待檢測數據的重建概率進行異常檢測。

使用機器學習包scikit-learn及TensorFlow實現上述異常檢測模型,重復訓練10次并計算以下性能指標的平均值:

精確率(precision):它表示所有被檢測為異常的樣本數據中,實際標簽為異常的比例。P=TP/TP+FP,TP表示異常樣本被模型正確檢測到的數量,FP表示正常樣本被模型錯誤的檢測為異常數據樣本的數量。

召回率(recall):它表示被正確檢測為異常的數據樣本占所有異常數據樣本的比例。R=TP/TP+FN,FN表示異常樣本數據被模型錯誤檢測為正常樣本數據的數量。

F1值是精確率和召回率的調和均值,能夠綜合衡量異常檢測模型的性能。它可以由F1=2TP/2TP+FP+FN計算得到。

3.3 實驗結果及分析

(1)WAE-AD異常檢測模型中潛變量Z的維度nZ表征了模型對數據真實分布的擬合能力,當潛變量Z的維度較低時,模型的表征能力不足,潛變量Z不能通過學習真實數據的低維流形來完全重建輸入的正常數據。當潛變量Z的維度較高時,模型在潛空間中的低維流形存在過擬合,通過此過擬合的低維流形表示待檢測數據,解碼器網絡Decoder將無法對正常數據和異常數據進行差異化重建。

為確定潛變量維度對異常檢測模型性能的影響,實驗在兩個異常檢測任務的測試集traindata中設置其它參數相同,設定不同的潛變量維度,比較模型在測試集中的F1值來確定最優的潛變量維度nZ。如圖3所示,HTRU2脈沖星檢測中,設置潛變量Z的維度nZ為2時,模型的F1值達到最大,為0.902,ULB信用卡欺詐檢測中,當潛變量Z的維度nZ為4時,模型的F1值最大,達到0.773。

圖3 測試集中潛變量維度不同時模型的檢測性能比較

(2)表2、表3展示了各個異常檢測模型在HTRU2脈沖星檢測數據集和ULB信用卡欺詐檢測數據集中的性能表現,其中黑體表示最優檢測指標。從表中反映異常檢測模型性能的數值指標可以看出,傳統的基于分類方法的異常檢測模型在面對異常檢測任務中嚴重的數據傾斜時,模型傾向于將全部待檢測樣本數據分類為正常數據,因此召回率指標最差,體現了傳統機器學習模型的局限性。AE-AD模型使用數據的重建誤差進行異常檢測,相比于OC-SVM的分類模型提高了異常檢測任務中的召回率指標,因此改進了模型的異常檢測性能?;赩AE、GAN的異常檢測模型使用輸入數據的重建概率進行異常檢測,3種性能指標均高于自編碼器異常檢測模型,顯示出了深度生成模型在異常檢測任務中的明顯優勢。WAE-AD異常檢測模型在兩種數據集的異常檢測中性能指標均為最高,超過了目前異常檢測中的最佳模型。并且和基于VAE、GAN的異常檢測模型相比,3種異常檢測性能指標均有較大提高,驗證了WAE-AD模型在異常檢測任務中的優異性能。

表2 各異常檢測模型在HTRU2數據集中的性能比較

表3 各異常檢測模型在ULB數據集中的性能比較

(3)實驗分別在HTRU2脈沖星檢測和ULB信用卡欺詐檢測的驗證集traindata和測試集testdata中抽取3000例標簽為0的正常數據和300例標簽為1的異常數據輸入到訓練好的WAE-AD模型中,通過TSNE算法可視化展示 WAE-AD 模型對異常數據和正常樣本的重構輸出。圖4為 HTRU2 脈沖星檢測數據集重構輸出的可視化展示,圖5為ULB脈沖星數據集重構輸出的可視化展示??梢钥闯鰧⒋龣z測數據輸入訓練好的WAE-AD模型,模型的重構輸出中正常數據和異常數據有較好的區分。

圖4 可視化HTRU2數據集的重構輸出

圖5 可視化ULB數據集的重構輸出

4 結束語

本文基于WAE深度生成模型提出改進的半監督異常檢測模型WAE-AD。該模型使用Wasserstein距離度量數據真實分布與模型擬合分布之間的距離,與基于VAE、GAN的異常檢測模型相比易于訓練并且能夠學習更加復雜的數據真實分布。在多個公共數據集中的實驗結果表明了WAE-AD模型在異常檢測任務中的優異性能。下一步的研究工作中,可以從以下兩個方面進行進一步研究:一方面如何進一步提高WAE-AD模型的分布學習能力,使得模型能夠學習更加復雜的數據真實分布,另一方面如何將該深度生成模型和無監督學習方法相結合,擴展WAE-AD異常檢測模型在實際應用場景。

猜你喜歡
脈沖星編碼器距離
融合CNN和Transformer編碼器的變聲語音鑒別與還原
脈沖星方位誤差估計的兩步卡爾曼濾波算法
算距離
基于雙增量碼道的絕對式編碼器設計
宇宙時鐘——脈沖星
應用旋轉磁場編碼器實現角度測量
基于虛擬觀測值的X射線單脈沖星星光組合導航
長征十一號成功發射脈沖星試驗衛星
每次失敗都會距離成功更近一步
基于數字信號處理的脈沖編碼器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合