国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于彈性網(wǎng)的深度去噪自編碼器異常檢測(cè)方法

2020-06-12 09:17譚敏生李行健
關(guān)鍵詞:編碼器重構(gòu)閾值

譚敏生,呂 勛,丁 琳,李行健

(南華大學(xué) 計(jì)算機(jī)學(xué)院,湖南 衡陽 421001)

0 引 言

與傳統(tǒng)有線網(wǎng)絡(luò)相比,無線網(wǎng)絡(luò)更容易受到惡意攻擊。由于無線通信中的傳感節(jié)點(diǎn)缺乏監(jiān)督,惡意攻擊很容易入侵系統(tǒng)并浪費(fèi)大量資源。為此,學(xué)者們從各個(gè)角度對(duì)異常檢測(cè)方法[1,2]進(jìn)行了研究,如多尺度主成分分析算法(MSPCA[3])、支持向量機(jī)(SVM)、K最近鄰算法(K-NN)等。深度學(xué)習(xí)作為一種很有前景的解決方案[4,5],在處理復(fù)雜大規(guī)模數(shù)據(jù)方面有著更出色的性能,一方面,深度學(xué)習(xí)算法[6]可以揭示輸入數(shù)據(jù)之間更深層的關(guān)系;另一方面,深度學(xué)習(xí)算法具有更強(qiáng)大的特征提取和表示能力,同時(shí)盡可能地保留有關(guān)信息。自編碼器[7]作為深度學(xué)習(xí)的一種新穎降維方法[8],通過使用神經(jīng)網(wǎng)絡(luò)[9]可以找到最佳子空間,捕獲特征之間的非線性相關(guān)性。例如,V.L.Cao等[10]提出了結(jié)合自編碼器和密度估計(jì)的異常檢測(cè)方法;Zong等[11]提出了用于無監(jiān)督異常檢測(cè)的深度自編碼高斯混合模型,能避免陷入局部最優(yōu);Zhou等[12]提出了一種魯棒深度自編碼器(RDA)來用于異常檢測(cè),但是誤檢率較高;Hong等[13]提出了一種用于高維數(shù)據(jù)的混合半監(jiān)督異常檢測(cè)模型,降低了計(jì)算復(fù)雜度;L.Bontemps等[14]提出了基于長(zhǎng)短時(shí)記憶遞歸神經(jīng)網(wǎng)絡(luò)(LSTM-RNN)的集體異常檢測(cè)方法,但存在過擬合現(xiàn)象。

現(xiàn)有研究成果在處理維度不高的數(shù)據(jù)時(shí),效果不錯(cuò),但在處理多元和高維數(shù)據(jù)時(shí),算法的誤報(bào)率較高,性能達(dá)不到預(yù)期效果。為此,本文提出一種基于彈性網(wǎng)的深度去噪自編碼器異常檢測(cè)方法,用正常數(shù)據(jù)對(duì)基于彈性網(wǎng)的深度去噪自編碼器進(jìn)行訓(xùn)練獲得數(shù)據(jù)的重構(gòu)誤差閾值,來對(duì)數(shù)據(jù)進(jìn)行異常檢測(cè)。

1 深度自編碼器

自編碼器(AE)是一種無監(jiān)督[15]的三層神經(jīng)網(wǎng)絡(luò),將輸入壓縮成潛在的空間表征來重構(gòu)輸出,利用反向傳播算法使輸出值盡可能等于輸入值。自編碼器由編碼器和解碼器構(gòu)成,如圖1所示。

圖1 自編碼器模型

深度自編碼器(DAE)是由多個(gè)自編碼器端到端連接組成的神經(jīng)網(wǎng)絡(luò),前一層自編碼器的輸出作為下一個(gè)自編碼器層的輸入,以獲得輸入數(shù)據(jù)的更高級(jí)別特征表示,逐步將特定特征向量轉(zhuǎn)換為抽象特征向量,實(shí)現(xiàn)從高維數(shù)據(jù)空間到低維數(shù)據(jù)空間的非線性轉(zhuǎn)換。深度自編碼器結(jié)構(gòu)如圖2所示。

圖2 深度自編碼器結(jié)構(gòu)

深度自編碼器的工作過程可分為兩個(gè)步驟:編碼和解碼,這兩個(gè)步驟可定義為:

編碼:輸入向量(Xn∈Rd)被壓縮成構(gòu)成隱藏層的mm

(1)

其中,X為輸入向量,θ為參數(shù)Winput,φinput,W表示大小為m×d的編碼器權(quán)重矩陣,φ表示維數(shù)為m的偏置向量。

解碼:將得到的隱藏層輸出Hi解碼回原始輸入空間Rd,映射函數(shù)如下

(2)

其中,解碼器的參數(shù)θ′=Whidden,φhidden,Y是輸入數(shù)據(jù)后的重構(gòu)向量,fθ(·)和gθ′(·)分別表示隱藏層神經(jīng)元和輸出層神經(jīng)元的激活函數(shù),激活函數(shù)是非線性函數(shù),用以揭示輸入特征之間的非線性相關(guān)性。本文采用relu函數(shù)和tanh函數(shù)作為激活函數(shù),relu函數(shù)和tanh函數(shù)表達(dá)式如式(3)和式(4)所示

(3)

relu(x)=max(0,x)

(4)

通過訓(xùn)練自編碼器來重構(gòu)原始數(shù)據(jù),調(diào)整編碼器和解碼器的參數(shù),使輸出重構(gòu)數(shù)據(jù)和輸入數(shù)據(jù)之間的誤差最小化,即誤差函數(shù)最小,把編碼器最后一層隱藏層的輸出數(shù)據(jù)作為輸入的最佳低維數(shù)據(jù)。重構(gòu)誤差函數(shù)JE(W,φ)用式(5)所示均方差函數(shù)表示

(5)

2 基于彈性網(wǎng)的深度去噪自編碼器構(gòu)建

深度自編碼器是由多個(gè)自編碼器端到端連接而形成的神經(jīng)網(wǎng)絡(luò),相比簡(jiǎn)單的自編碼器,深度自編碼器能更好的逐層學(xué)習(xí)原始數(shù)據(jù)的多種表達(dá),刻畫更復(fù)雜的特征。θ,θ′用均方誤差函數(shù)來優(yōu)化深度自編碼器的參數(shù)

(6)

其中,n表示樣本數(shù)量,JE表示均方差函數(shù)。將訓(xùn)練集中一部分標(biāo)簽為“正?!钡臄?shù)據(jù)去訓(xùn)練基于彈性網(wǎng)的深度去噪自編碼器,對(duì)重構(gòu)誤差進(jìn)行閾值處理,利用正常數(shù)據(jù)與異常數(shù)據(jù)的重構(gòu)誤差值,來對(duì)不同數(shù)據(jù)特征進(jìn)行分類。

為了提高網(wǎng)絡(luò)的泛化能力和抗擾動(dòng)能力,使結(jié)構(gòu)風(fēng)險(xiǎn)最小化,在深度自編碼器的隱藏層輸出值加入某種約束,降低不重要特征的權(quán)重。一般在自編碼器中加入正則化,可用L1范數(shù)來正則化,L1范數(shù)符合拉普拉斯變換,是指權(quán)值向量W中各個(gè)元素的絕對(duì)值之和,可以產(chǎn)生稀疏權(quán)重矩陣即產(chǎn)生一個(gè)稀疏模型,用于特征選擇,這樣式(6)更新為如下表達(dá)式

(7)

也可以利用L2范數(shù)來正則化,L2范數(shù)符合高斯分布,是完全可微的,指權(quán)值向量W中各個(gè)元素的平方和然后再求平方根,也就是歐幾里得距離之和,這樣式(6)更新成如下表達(dá)式

(8)

而彈性網(wǎng)的正則化是L1和L2懲罰函數(shù)的線性混合,所以基于彈性網(wǎng)的深度自編碼器的重構(gòu)誤差函數(shù)如式(9)所示

(9)

利用參數(shù)λ2可以控制稀疏性,利用參數(shù)λ1可以防止網(wǎng)絡(luò)過擬合,最小化重構(gòu)誤差,提高網(wǎng)絡(luò)的泛化能力。

自編碼器是高度非線性的,通過在輸入層添加噪聲,可以提高自編碼器的重構(gòu)能力。如圖3所示,引入一個(gè)損壞過程C(X′/X)將輸入X進(jìn)行處理后產(chǎn)生一個(gè)損壞樣本X′,然后再對(duì)數(shù)據(jù)X′進(jìn)行重構(gòu)。本文使用加性高斯噪聲作為對(duì)輸入數(shù)據(jù)進(jìn)行處理,通過引入噪聲使學(xué)習(xí)到的特征更具魯棒性,從而給深度自編碼器帶來更好的性能。

圖3 去噪自編碼器訓(xùn)練過程

考慮到網(wǎng)絡(luò)中存在約束,對(duì)不同參數(shù)使用不同的學(xué)習(xí)速率,例如降低不頻繁特征的更新頻率。然而,大多數(shù)傳統(tǒng)流行的梯度下降算法包括隨機(jī)梯度下降和小批量梯度下降,對(duì)網(wǎng)絡(luò)中所有需要更新的參數(shù)使用相同的學(xué)習(xí)速率,使得難以選擇合適的學(xué)習(xí)速率以及容易陷入局部最小。因此,為了訓(xùn)練更好的深度網(wǎng)絡(luò),本文使用自適應(yīng)矩估計(jì)(Adam)梯度下降算法[16]來實(shí)現(xiàn)不同參數(shù)的動(dòng)態(tài)自適應(yīng)調(diào)整,Adam算法通過計(jì)算梯度一階矩估計(jì)mt和二階矩估計(jì)vt來實(shí)現(xiàn)不同參數(shù)的動(dòng)態(tài)調(diào)整,調(diào)整方法如式(10)~式(15)所示

mt=β1mt-1+(1-β1)gt

(10)

(11)

(12)

計(jì)算mt和vt的偏差矯正

(13)

(14)

(15)

β1和β2分別表示一階和二階的矩估計(jì)指數(shù)衰減率,gt表示損失函數(shù)中時(shí)間步長(zhǎng)t的參數(shù)梯度,γ表示更新的步長(zhǎng),ξ表示采用一個(gè)很小常數(shù)來防止分母為零。

本文把[122-110-90-10-90-110-122]作為深度網(wǎng)絡(luò)的結(jié)構(gòu)。由于輸入數(shù)據(jù)是122維,所以把輸入層的神經(jīng)元數(shù)設(shè)為122,在神經(jīng)元數(shù)為10的隱含層中采用relu函數(shù)作為激活函數(shù),其余層的激活函數(shù)采用tanh函數(shù)。

3 基于彈性網(wǎng)的深度去噪自編碼器異常檢測(cè)方法

在訓(xùn)練階段使用標(biāo)簽為“正?!钡臄?shù)據(jù)進(jìn)行訓(xùn)練,則相應(yīng)的測(cè)試集中正常數(shù)據(jù)的重構(gòu)誤差會(huì)較小,而異常數(shù)據(jù)將具有相對(duì)較高的重構(gòu)誤差。通過對(duì)重構(gòu)誤差進(jìn)行閾值處理,可以對(duì)惡意數(shù)據(jù)進(jìn)行分類,如式(16)所示

(16)

基于彈性網(wǎng)的深度自編碼器網(wǎng)絡(luò)異常檢測(cè)算法(e-DDAE)主要步驟如下:

步驟1 數(shù)據(jù)預(yù)處理。使用獨(dú)熱(one-hot)編碼對(duì)NSL-KDD數(shù)據(jù)集進(jìn)行符號(hào)特征數(shù)值化,然后對(duì)數(shù)據(jù)進(jìn)行最小最大歸一化處理,將所有特征轉(zhuǎn)換為[0,1]的范圍。

步驟2 構(gòu)建彈性網(wǎng)正則化的深度自編碼器。根據(jù)式(7)-式(9),在深度自編碼器的損失函數(shù)中加入彈性網(wǎng)正則化即L1和L2范數(shù)的線性混合,使得重構(gòu)誤差函數(shù)最小化。

步驟3 對(duì)彈性網(wǎng)正則化的深度自編碼器的輸入數(shù)據(jù)加入高斯噪聲,提高深度自編碼器重構(gòu)能力,根據(jù)式(10)-式(15),用Adam算法對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,對(duì)輸入數(shù)據(jù)進(jìn)行降維重構(gòu),把輸入數(shù)據(jù)壓縮降維到10維,再重構(gòu)為122維數(shù)據(jù)。

步驟4 自編碼器訓(xùn)練。在訓(xùn)練階段,抽取NSL-KDD訓(xùn)練集中90%的標(biāo)簽為“正常”數(shù)據(jù)樣本作為基于彈性網(wǎng)的深度去噪自編碼器的訓(xùn)練集,剩下的10%的“正?!睌?shù)據(jù)作為驗(yàn)證集,并結(jié)合BP算法來訓(xùn)練基于彈性網(wǎng)的深度去噪自編碼器,用驗(yàn)證數(shù)據(jù)集進(jìn)行測(cè)試,使其能夠捕獲正常數(shù)據(jù)的特征。通過訓(xùn)練基于彈性網(wǎng)的深度去噪自編碼器,構(gòu)建正常數(shù)據(jù)的重構(gòu)誤差閾值。

步驟5 自編碼器檢測(cè)。將測(cè)試數(shù)據(jù)集輸入到自編碼器網(wǎng)絡(luò)中并根據(jù)式(16)進(jìn)行分類,把訓(xùn)練集的重構(gòu)誤差作為異常閾值,重構(gòu)誤差低于閾值的數(shù)據(jù)將被分類為正常,高于閾值的數(shù)據(jù)則被分類為異常。

4 實(shí)驗(yàn)與結(jié)果分析

4.1 實(shí)驗(yàn)數(shù)據(jù)集

使用NSL-KDD數(shù)據(jù)集來評(píng)價(jià)基于彈性網(wǎng)的深度去噪自編碼器異常檢測(cè)算法(e-DDAE),NSL-KDD數(shù)據(jù)集在KDD99數(shù)據(jù)集基礎(chǔ)上得到了改進(jìn),消除了KDD99數(shù)據(jù)集中的冗余數(shù)據(jù)。NSL-KDD數(shù)據(jù)集包含125 973個(gè)訓(xùn)練樣本和22 543個(gè)測(cè)試樣本,包括拒絕服務(wù)攻擊(Dos)、探測(cè)攻擊(Probe)、遠(yuǎn)程到本地攻擊(R2L)、用戶到根攻擊(U2R)這4種攻擊樣本類型,具體分布見表1。

表1 NSL-KDD數(shù)據(jù)集攻擊數(shù)目和分類

4.2 數(shù)據(jù)預(yù)處理

NSL-KDD數(shù)據(jù)集包含41個(gè)屬性特征,使用獨(dú)熱(one-hot)編碼來對(duì)數(shù)據(jù)集數(shù)字化。NSL-KDD數(shù)據(jù)集的符號(hào)特征包括“Protocol_type”,“Service”和“Flag”,其中“Protocol_type”包括TCP,UDP,ICMP這3種不同的協(xié)議類型,“Service”包括70種不同的符號(hào)特征值,“Flag”包括11種不同的符號(hào)特征值。因此,在完成數(shù)字化處理后,NSL-KDD數(shù)據(jù)集的41維特征數(shù)據(jù)擴(kuò)展為122維。

為了將特征統(tǒng)一量綱,提高算法收斂速度和精度,使用式(17)歸一化方法來處理NSL-KDD數(shù)據(jù)集中的特征值,將特征線性映射到[0,1]區(qū)間上。xmax和xmin分別表示原始特征最大值和最小值,x表示原始特征值

(17)

4.3 實(shí)驗(yàn)評(píng)估指標(biāo)與設(shè)置

本文使用基于混淆矩陣的方法來評(píng)估實(shí)驗(yàn)結(jié)果,混淆矩陣的定義見表2,TP(true positive)表示預(yù)測(cè)為正常的正常數(shù)據(jù),TN(true negative)表示預(yù)測(cè)為攻擊的攻擊數(shù)據(jù),F(xiàn)P(false positive)表示被預(yù)測(cè)為正常的攻擊數(shù)據(jù),F(xiàn)N(false negative)表示被預(yù)測(cè)為攻擊的正常數(shù)據(jù)。

表2 混淆矩陣

本文使用的度量指標(biāo)主要包括ACC(準(zhǔn)確度)、FAR(誤報(bào)率)、DR(檢測(cè)率)、Recall(召回率)、F1值(F1 score),定義如下

(18)

(19)

(20)

(21)

(22)

實(shí)驗(yàn)采用Adam優(yōu)化算法,學(xué)習(xí)率取0.001,batch-size設(shè)置為128,網(wǎng)絡(luò)迭代次數(shù)設(shè)置為20,懲罰項(xiàng)系數(shù)λ1=0.0001,λ2=0.00001,β1=0.9,β2=0.999,ξ=10e-8。

4.4 實(shí)驗(yàn)結(jié)果分析

e-DDAE算法構(gòu)建一個(gè)深度去噪自編碼器,在損失函數(shù)中加入彈性網(wǎng)正則化,抽取訓(xùn)練集中標(biāo)簽為“正?!钡臄?shù)據(jù)來訓(xùn)練網(wǎng)絡(luò)以獲得重構(gòu)誤差閾值,利用閾值和自編碼器來對(duì)測(cè)試集數(shù)據(jù)進(jìn)行分類。實(shí)驗(yàn)通過正常數(shù)據(jù)和異常數(shù)據(jù)的重構(gòu)數(shù)據(jù)值的分布來評(píng)估e-DDAE算法的有效性。

圖4的提琴圖顯示了測(cè)試集中所有數(shù)據(jù)樣本的重構(gòu)損失值的分布,從圖中陰影部分也就是數(shù)據(jù)的分布密度可以明顯看出,異常數(shù)據(jù)(攻擊數(shù)據(jù))的重構(gòu)值基本要高于閾值,而正常樣本的數(shù)據(jù)要低于閾值。

圖4 不同數(shù)據(jù)重構(gòu)誤差值分布

圖5是NSL-KDD數(shù)據(jù)集中不同訓(xùn)練集比例下5種不同數(shù)據(jù)重構(gòu)誤差值,可以明顯看出,隨著訓(xùn)練集比例的增加,正常數(shù)據(jù)的重構(gòu)誤差值明顯低于其它4種攻擊類數(shù)據(jù),其中R2L攻擊和U2R攻擊數(shù)據(jù)的重構(gòu)誤差值要比其它兩種攻擊的重構(gòu)誤差值低,說明本文提出方法可以有效地對(duì)異常數(shù)據(jù)進(jìn)行檢測(cè)。

圖5 不同訓(xùn)練集比例下5種數(shù)據(jù)的重構(gòu)誤差值

為了更好地分析本文e-DDAE算法的性能,從準(zhǔn)確率、誤報(bào)率、精確率、召回率和F1值方面與AE算法(自編碼器算法)、SVM算法(支持向量機(jī)算法)、K-NN算法(K最近鄰算法)進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果見表3。

表3 不同分類算法性能比較/%

從表3可以看出,e-DDAE的召回率比AE、SVM、K-NN分別提高了4.06%、3%、8.56%;e-DDAE的F1值比AE、SVM、K-NN分別提高了1.98%、0.12%、4.42%;e-DDAE誤報(bào)率比AE、SVM、K-NN分別降低了4.33%、3.85%、3.76%;e-DDAE分類準(zhǔn)確率比AE提高了2.23%,比SVM略低了1.35%、比K-NN提高了4.15%;e-DDAE檢測(cè)率比AE略低了0.28%,比SVM略低了2.90%,比K-NN提高了0.17%。

e-DDAE算法的靈敏度高,總體性能良好,在保證較好的分類準(zhǔn)確率和檢測(cè)率的情況下,召回率和F1值明顯提高,誤報(bào)率明顯降低。

e-DDAE等4種算法對(duì)數(shù)據(jù)集中4種攻擊類數(shù)據(jù)被分類為異常數(shù)據(jù)的準(zhǔn)確率見表4,可以看出,在Dos攻擊類數(shù)據(jù)方面,e-DDAE比AE、SVM、K-NN分別提高了0.18%、1.09%、4.23%;在U2R攻擊類數(shù)據(jù)方面,e-DDAE比AE、SVM、K-NN分別提高了7.47%、5.65%、11.29%;在R2L攻擊類數(shù)據(jù)方面,e-DDAE比AE、SVM、K-NN分別提高了2.10%、5.33%、9.21%;在Probe攻擊類數(shù)據(jù)方面,e-DDAE比AE、SVM、K-NN分別提高了0.19%、4.67%、10.67%。e-DDAE算法對(duì)不同攻擊類數(shù)據(jù)被分類為異常數(shù)據(jù)的準(zhǔn)確率明顯高于其它同類算法。

表4 不同算法對(duì)不同攻擊數(shù)據(jù)的分類準(zhǔn)確率比較

5 結(jié)束語

本文提出了一種基于彈性網(wǎng)的深度去噪自編碼器網(wǎng)絡(luò)異常檢測(cè)方法,在構(gòu)建深度去噪自編碼器中加入彈性網(wǎng)正則化,用經(jīng)過預(yù)處理的訓(xùn)練集中的一部分“正?!睒?biāo)簽數(shù)據(jù)去訓(xùn)練網(wǎng)絡(luò),獲得數(shù)據(jù)的重構(gòu)誤差閾值,通過自編碼器和閾值來檢測(cè)網(wǎng)絡(luò)異常數(shù)據(jù),避免了人為操縱閾值帶來的主觀影響。實(shí)驗(yàn)結(jié)果表明,該方法的檢測(cè)性能優(yōu)于其它的異常檢測(cè)方法,在保持了較高分類準(zhǔn)確率和檢測(cè)率的同時(shí),降低了誤報(bào)率,提高了召回率和F1值,對(duì)不同攻擊類數(shù)據(jù)被分類為異常數(shù)據(jù)的準(zhǔn)確率也優(yōu)于其它算法。

猜你喜歡
編碼器重構(gòu)閾值
融合CNN和Transformer編碼器的變聲語音鑒別與還原
視頻壓縮感知采樣率自適應(yīng)的幀間片匹配重構(gòu)
長(zhǎng)城敘事的重構(gòu)
小波閾值去噪在深小孔鉆削聲發(fā)射信號(hào)處理中的應(yīng)用
基于CS-TWR的動(dòng)態(tài)閾值貪婪算法成像研究
北方大陸 重構(gòu)未來
基于自適應(yīng)閾值和連通域的隧道裂縫提取
基于雙增量碼道的絕對(duì)式編碼器設(shè)計(jì)
北京的重構(gòu)與再造
應(yīng)用旋轉(zhuǎn)磁場(chǎng)編碼器實(shí)現(xiàn)角度測(cè)量
临清市| 临洮县| 迁安市| 黔西| 漳浦县| 安国市| 阳信县| 襄垣县| 合江县| 大同市| 商城县| 石门县| 达尔| 大兴区| 武鸣县| 晋宁县| 九龙坡区| 彩票| 社会| 桦川县| 塔河县| 承德市| 丽江市| 东丰县| 河北省| 小金县| 安化县| 东台市| 中西区| 乡城县| 杭锦后旗| 洛浦县| 咸丰县| 绥江县| 逊克县| 建始县| 大竹县| 宁陕县| 海口市| 全南县| 闵行区|