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

?

基于降噪自編碼器和彈性網(wǎng)絡(luò)的入侵檢測模型

2023-02-08 12:54:50常會鑫楊麗敏陳麗芳
關(guān)鍵詞:編碼器重構(gòu)彈性

常會鑫,楊麗敏,陳麗芳

(華北理工大學(xué) 理學(xué)院,河北 唐山 063210)

0 引言

近年來,計(jì)算機(jī)網(wǎng)絡(luò)發(fā)展迅速,對信息化生活產(chǎn)生了重大影響,然而計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用使其面臨各種嚴(yán)重的威脅,如惡意活動、網(wǎng)絡(luò)入侵和網(wǎng)絡(luò)犯罪[1]。入侵檢測系統(tǒng)是目前最有前景的網(wǎng)絡(luò)安全防御機(jī)制之一,在網(wǎng)絡(luò)安全領(lǐng)域引起了大量的關(guān)注與研究[2]。盡管入侵檢測系統(tǒng)已經(jīng)發(fā)展到一個高度成熟的水平,但由于當(dāng)今互聯(lián)網(wǎng)的廣泛應(yīng)用,迅猛增長的網(wǎng)絡(luò)流量和復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)為入侵檢測帶來新的挑戰(zhàn)。如何從海量網(wǎng)絡(luò)數(shù)據(jù)中學(xué)習(xí)最魯棒的特征表示,提高入侵檢測精度是目前的研究熱點(diǎn)。

機(jī)器學(xué)習(xí)算法應(yīng)用,在入侵檢測領(lǐng)域使其具有更高的魯棒性和適應(yīng)性[3]。許多機(jī)器學(xué)習(xí)算法,如SVM[4]、logistic 回歸[5]、XGBoost[6]等,已被用于開發(fā)入侵檢測模型。然而,網(wǎng)絡(luò)流量數(shù)據(jù)的高維性和復(fù)雜性,使網(wǎng)絡(luò)入侵檢測成為一項(xiàng)具有挑戰(zhàn)性的任務(wù)。深度學(xué)習(xí)作為一種機(jī)器學(xué)習(xí)方法,因其對高維大規(guī)模數(shù)據(jù)的挖掘能力而受到廣泛關(guān)注,成功地解決了文本分類、目標(biāo)識別、圖像分類等研究領(lǐng)域所面臨的許多問題,也逐漸應(yīng)用于網(wǎng)絡(luò)入侵檢測系統(tǒng)中。雖然深度學(xué)習(xí)算法RNN[7]、DNN[8]在入侵檢測方面取得了良好的效果,但通過研究發(fā)現(xiàn)在其算法中還存在數(shù)據(jù)不完整對模型訓(xùn)練結(jié)果影響過大、訓(xùn)練過程中存在數(shù)據(jù)過擬合、模型對未知攻擊流量缺少判斷依據(jù)等問題。

為解決上述問題,本文提出了一種基于降噪自編碼器(Denoising Autoencoders,DAE)和彈性網(wǎng)絡(luò)(Elastic Net,EN)的入侵檢測模型—DAE-EN。該模型可以高效準(zhǔn)確地對網(wǎng)絡(luò)流量中的攻擊流量部分進(jìn)行識別,達(dá)到保證網(wǎng)絡(luò)安全的目的。為了方便閱讀本文以DAE-EN 代替降噪自編碼器-彈性網(wǎng)絡(luò)模型。

1 理論基礎(chǔ)

1.1 自編碼器概念

自編碼器是神經(jīng)網(wǎng)絡(luò)算法的一種,用于在無監(jiān)督的情況下學(xué)習(xí)有效的數(shù)據(jù)編碼[9]。自編碼器為了學(xué)習(xí)一組數(shù)據(jù)編碼,需要訓(xùn)練網(wǎng)絡(luò)去除信號中的“噪聲”,其主要功能是降低數(shù)據(jù)特征的維數(shù)。自編碼器包含編碼器和解碼器,分別用于將輸入映射到隱藏層以及從隱藏層映射到輸出。

最簡單的自編碼器形式是前饋非遞歸神經(jīng)網(wǎng)絡(luò),其類似于單層感知器,自編碼器輸入層和輸出層需要一個或多個隱藏層進(jìn)行處理。輸入層和輸出層必須具有相同數(shù)量的節(jié)點(diǎn)(神經(jīng)元)才能保證重構(gòu)輸入,重構(gòu)的結(jié)果是得到一個輸入和輸出之間的最小化差異,而不是預(yù)測給定輸入X情況下的目標(biāo)值Y。

將自編碼器中的編碼器定義?,解碼器定義為ψ,則表達(dá)式為:

自編碼器架構(gòu)如圖1 所示。通常情況下,自編碼只會使用一個隱藏層來連接輸入與輸出,編碼器接收輸入x∈Rd =X,并將其映射到h∈Rp =F:

圖1 自編碼器架構(gòu)Fig.1 Autoencoder architecture

式中,h通常被稱為潛在變量;σ為激活函數(shù),例如sigmoid 函數(shù)或修正線性單元;W為權(quán)重矩陣;b為偏置向量。權(quán)重矩陣和偏置向量的初始化過程是隨機(jī)的,這兩個參數(shù)在訓(xùn)練過程中通過反向傳播迭代更新。自編碼器的解碼階段將h映射到與x具有相同維度的x′為

解碼器中的變量σ′ W′ b′與編碼器中的變量σWb沒有強(qiáng)關(guān)聯(lián)性。自編碼器經(jīng)過訓(xùn)練最小化重建誤差(例如:平方誤差),通常稱為“損失”:

X通常是訓(xùn)練集的平均值。自編碼器訓(xùn)練與其它前饋神經(jīng)網(wǎng)絡(luò)一樣,均是通過誤差的反向傳播進(jìn)行。

特征空間F的維度應(yīng)低于輸入特征X的維度,特征向量?(X)可以看做是輸入x壓縮而來的。在使用欠完備自編碼器情況下,如果隱藏層節(jié)點(diǎn)數(shù)量大于等于輸入層的節(jié)點(diǎn)數(shù)量,自編碼器會一直學(xué)習(xí)同一個函數(shù),導(dǎo)致整個訓(xùn)練過程是無效的。然而通過實(shí)驗(yàn)發(fā)現(xiàn),欠完備的自編碼仍然可能學(xué)習(xí)到有用的特性[10],模型代碼維度和模型容量可以根據(jù)所需建模的數(shù)據(jù)分布情況來設(shè)定,這種方法稱為正則化自編碼器。

1.2 降噪自編碼器

降噪自編碼器(DAE)是在自編碼器的基礎(chǔ)上增強(qiáng)了健壯性[11],DAE 使用部分“損壞”的輸入并經(jīng)過訓(xùn)練以恢復(fù)原始未失真的輸入。在實(shí)踐中,自編碼器去噪的目標(biāo)是清除“損壞”的輸入,為實(shí)現(xiàn)這個目的通常采用兩種方法[12]:一是使用更高級別的輸入特征,提高相對穩(wěn)定性和健壯性;二是為了更好的對特征進(jìn)行去噪,模型需要提取特征來分析輸入中的有效結(jié)構(gòu)。DAE 主要是為了從噪聲輸入數(shù)據(jù)中學(xué)習(xí)更一般化的特征,其訓(xùn)練過程如下:

Step 3在隱藏層中對該模型進(jìn)行重構(gòu)z =gθ′(h)。

模型中的參數(shù)θ和θ′是為了最小化訓(xùn)練集的平均重構(gòu)誤差,特別是最小化數(shù)據(jù)z和原始未輸入數(shù)據(jù)x之間的差異?;?,每個隨機(jī)示例X輸入到模型中,都會隨機(jī)產(chǎn)生一個新的“損壞” 版本。

1.3 彈性網(wǎng)絡(luò)

在統(tǒng)計(jì)學(xué)中,特別是在線性或邏輯回歸模型的擬合中,彈性網(wǎng)絡(luò)線性組合了Lasso 和Ridge 方法的L1和L2懲罰[13]。彈性網(wǎng)絡(luò)可以向Lasso 學(xué)習(xí)輸入少量參數(shù)非零的稀疏模型,同時能保持Ridge 的正則性質(zhì)。該方法基于公式(5):

在高維數(shù)據(jù)、樣本數(shù)量不多的情況下,Lasso 在飽和之前最多選擇n(樣本個數(shù))個變量[14]。此外,若樣本是一組高度相關(guān)的變量時,Lasso 會優(yōu)先選擇變量中的一個變量而忽略其它變量。為了克服這些限制,彈性網(wǎng)絡(luò)增加了一個懲罰‖β‖2,單獨(dú)使用時就是一個Ridge 回歸[15]。彈性網(wǎng)絡(luò)的定義為

二次懲罰項(xiàng)使損失函數(shù)具有很強(qiáng)的凸函數(shù)性質(zhì),因此具有唯一的最小值[16]。

1.4 DEA-EN 模型構(gòu)建與實(shí)現(xiàn)流程

DEA-EN 模型的構(gòu)建主要是由兩部分組成:一是由輸入層、隱藏層、輸出層組成的降噪自編碼器(DEA);二是在DEA 的隱藏層中增加的彈性網(wǎng)絡(luò)。

如圖2 所示,DAE-EN 模型的實(shí)現(xiàn)步驟如下。

圖2 DAE-EN 模型實(shí)現(xiàn)流程Fig.2 DAE-EN model implementation process

Step 1導(dǎo)入NSL-KDD 數(shù)據(jù)集,按照8:2 的比例將該數(shù)據(jù)集劃分訓(xùn)練集和測試集。為方便模型使用,訓(xùn)練集和測試集均需要對數(shù)據(jù)進(jìn)行預(yù)處理。

Step 2將訓(xùn)練集數(shù)據(jù)輸入Dropout 層,其可以隨機(jī)的臨時屏蔽掉一半的隱藏神經(jīng)元,達(dá)到防止模型過擬合,提升模型泛化能力。

Step 3經(jīng)過一個具有8 個神經(jīng)元的編碼層進(jìn)入降噪自編碼器的隱藏層。在隱藏層采用彈性網(wǎng)絡(luò),避免數(shù)據(jù)的過擬合,最后再從解碼層輸出,最終構(gòu)建好整個模型。

Step 4調(diào)整模型參數(shù)。

Step 5通過訓(xùn)練集數(shù)據(jù)對模型進(jìn)行訓(xùn)練,使用測試集評估模型效果,得到最終分類結(jié)果。

2 仿真實(shí)驗(yàn)

2.1 數(shù)據(jù)集來源

NSL-KDD 數(shù)據(jù)集基于KDD99 進(jìn)行改進(jìn),解決了KDD99 數(shù)據(jù)集數(shù)據(jù)的重復(fù)性和冗余性問題,避免了訓(xùn)練模型優(yōu)先使用出現(xiàn)頻率較高數(shù)據(jù)的情況,該數(shù)據(jù)集被廣泛應(yīng)用于入侵檢測系統(tǒng)中。NSLKDD 數(shù)據(jù)集中共有148 517 條數(shù)據(jù),訓(xùn)練集和測試集占比為84.8%和15.2%,分別存放在NSL_Trian.csv 和NSL_Test.csv 文件中。整個數(shù)據(jù)集包含41個特征值和一個標(biāo)志位(見表1),同時NSL-KDD數(shù)據(jù)集包含39 種攻擊類型,按照其性質(zhì)劃分為4 種一般的攻擊類型:DoS、R2L、U2R 和Probe。具體分類情況見表2。

表1 NSL-KDD 數(shù)據(jù)集的部分?jǐn)?shù)據(jù)Tab.1 Partial data of NSL-KDD dataset

表2 NSL-KDD 數(shù)據(jù)集中的攻擊分類Tab.2 Attack classification in NSL-KDD dataset

2.2 數(shù)據(jù)集預(yù)處理

數(shù)據(jù)集預(yù)處理是模型訓(xùn)練前的必要步驟,其中包括兩部分處理內(nèi)容:針對連續(xù)數(shù)據(jù)進(jìn)行歸一化處理;針對字符串?dāng)?shù)據(jù)進(jìn)行一位有效編碼處理。

采用最小-最大歸一化方法,將連續(xù)值縮放到數(shù)值范圍[0,1],如公式(7):

其中,max(xf)和min(xf)分別代表特征值xfj的最大值和最小值。歸一化的結(jié)果取值范圍為[0,1]。一位有效編碼將協(xié)議類型、服務(wù)和標(biāo)志3 個特征轉(zhuǎn)換為數(shù)值,每個類別屬性都由二進(jìn)制值表示。例如:protocol_type 字段有tcp、udp 和icmp 3 個值,一位有效編碼將其分別轉(zhuǎn)換為二進(jìn)制向量[1,0,0]、[0,1,0]、[0,0,1],同時把服務(wù)和標(biāo)志兩個字段處理成向量。經(jīng)過預(yù)處理后,數(shù)據(jù)集的特征值由原來的41 個變成了122 個。其中,連續(xù)特征38 個,協(xié)議類型、服務(wù)和標(biāo)志3 個特征相關(guān)的向量特征為84 個。

2.3 訓(xùn)練方法及參數(shù)調(diào)整

為了避免訓(xùn)練數(shù)據(jù)中每種攻擊類型樣本不平衡以及無法通過訓(xùn)練分析未知攻擊類型的問題,本文提出利用自編碼器和彈性網(wǎng)絡(luò)來檢測異常的方法。該方法使用一個帶有dropout 的降噪自編碼器。由于輸入樣本的特征數(shù)是122,所以輸入層由122 個神經(jīng)元組成,緊接著是一個dropout 層和一個由8 個神經(jīng)元組成的隱藏層,最后是一個有122 個神經(jīng)單元的輸出層,隱藏層和輸出層的激活函數(shù)為relu 函數(shù)。

降噪自編碼器通過訓(xùn)練,將輸入進(jìn)行重構(gòu)。模型只針對訓(xùn)練集中標(biāo)志位為正常的數(shù)據(jù)訓(xùn)練,進(jìn)一步得到輸入和輸出之間的均方誤差,最終目的是通過訓(xùn)練使均方誤差最小化。自編碼器強(qiáng)制在訓(xùn)練階段結(jié)合彈性網(wǎng)絡(luò)正則化處理,防止訓(xùn)練時出現(xiàn)簡單地將輸入復(fù)制到輸出的情況。為防止過擬合問題,需要對Lasso、Ridge 的L1和L2懲罰參數(shù)進(jìn)行調(diào)整,均設(shè)為0.001時效果最好。此外,這種自編碼器被訓(xùn)練成從自身的一個“損壞”版本來重構(gòu)輸入,迫使自編碼器學(xué)習(xí)更多的數(shù)據(jù)屬性。該模型使用大小為100 的Adam優(yōu)化器訓(xùn)練10 個epoch,使用訓(xùn)練集90%的數(shù)據(jù)對模型進(jìn)行訓(xùn)練,預(yù)留10%的數(shù)據(jù)驗(yàn)證模型。

2.4 結(jié)果分析

本模型的訓(xùn)練方法只使用正常樣本數(shù)據(jù),將正常數(shù)據(jù)與攻擊數(shù)據(jù)分別輸入到訓(xùn)練好的模型中。具有攻擊的數(shù)據(jù)所得到的重構(gòu)誤差相對偏高,因此可以通過設(shè)置重構(gòu)誤差的閾值檢測攻擊,假設(shè)一個數(shù)據(jù)樣本的重構(gòu)誤差高于預(yù)設(shè)的閾值,該樣本則被歸為攻擊,否則歸為正常流量。

對于閾值的選擇,采用訓(xùn)練數(shù)據(jù)上的模型損失和驗(yàn)證數(shù)據(jù)上的模型損失,本實(shí)驗(yàn)中使用訓(xùn)練數(shù)據(jù)生成的模型損失作為一個閾值。

本次實(shí)驗(yàn)的目的是為了進(jìn)行異常檢測,檢測網(wǎng)絡(luò)數(shù)據(jù)中的攻擊數(shù)據(jù),本模型只涉及二分類。為了更好的評估模型的性能,根據(jù)輸入特征與預(yù)測特征的特性,使用了一個損失函數(shù)式(8)計(jì)算每個輸入的重構(gòu)損失,通過對比重構(gòu)誤差和預(yù)設(shè)閾值的大小來進(jìn)行分類。

為了評估該模型,準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F分?jǐn)?shù)(F -score)等計(jì)算性能指標(biāo)。其計(jì)算公式分別為:

通過實(shí)驗(yàn)得出準(zhǔn)確率為90.3,召回率為95.3,精確率為88.5,F(xiàn)1分?jǐn)?shù)為91.8。為了使數(shù)據(jù)更加直觀,繪制了正常流量和攻擊流量的混淆矩陣[14],如圖3 所示。其中,橫軸是預(yù)測值,縱軸是實(shí)際值。

圖3 正常流量與攻擊流量的混淆矩陣Fig.3 Confusion matrix of normal traffic and attack traffic

針對模型的測試結(jié)果,計(jì)算出4 種攻擊的檢測率見表3,以及如圖4 所示的小提琴圖。由圖中可以清楚的看出測試集中所有數(shù)據(jù)樣本重構(gòu)損失值的分布。其中,攻擊的損失值大多高于閾值,正常流量的值則大部分小于閾值。

表3 4 種攻擊類型檢測率Tab.3 Detection rates of four attack types

圖4 測試集的損失分布Fig.4 Loss distribution of the test set

2.5 算法性能對比分析

為了進(jìn)一步驗(yàn)證本模型針對入侵檢測的性能,將其與決策樹(DT)、K 鄰近算法(KNN)、梯度提升決策樹(GBDT)、隨機(jī)森林(RF)以及變分自編碼器(VAE)算法[15-16]的準(zhǔn)確率進(jìn)行對比,其結(jié)果見表4。

表4 與傳統(tǒng)機(jī)器學(xué)習(xí)算法對比Tab.4 Comparison with traditional machine learning algorithms

由表4 中可以看出,決策樹、K 鄰近算法、梯度提升決策樹、隨機(jī)森林4 種傳統(tǒng)機(jī)器學(xué)習(xí)算法中,準(zhǔn)確率最高的為決策樹算法,其值為81.42%;變分自編碼器深度學(xué)習(xí)模型的準(zhǔn)確率為84.28%;而DAEEN 模型對于區(qū)分正常流量與攻擊流量的能力都優(yōu)于其它算法,準(zhǔn)確率為90.31%。

3 結(jié)束語

入侵檢測系統(tǒng)面對大量的網(wǎng)絡(luò)流量,其中大部分流量是正常流量,只有小部分流量是具有攻擊的流量,所以本文設(shè)計(jì)DAE-EN 模型通過訓(xùn)練正常流量計(jì)算損失值,根據(jù)重構(gòu)誤差的大小,通過設(shè)置合理的閾值來區(qū)分正常數(shù)據(jù)和攻擊數(shù)據(jù)。DAE-EN 模型中降噪自編碼器將輸入數(shù)據(jù)經(jīng)編碼器和解碼器映射后,生成重構(gòu)數(shù)據(jù),在訓(xùn)練過程中增加了彈性網(wǎng)絡(luò)正則方法避免訓(xùn)練過程的過擬合問題。通過實(shí)驗(yàn)結(jié)果對比表明,本文提出的DAE-EN 模型檢測準(zhǔn)確性達(dá)到90.31%,高于決策樹等傳統(tǒng)機(jī)器學(xué)習(xí)算法以及變分自編碼器模型,對網(wǎng)絡(luò)入侵檢測具有更優(yōu)的檢測效果。目前,DAE-EN 模型只能區(qū)分正常流量和攻擊流量,計(jì)劃在未來工作中將模型擴(kuò)展到多個類別,并且可以完成對特定攻擊類型的識別。

猜你喜歡
編碼器重構(gòu)彈性
長城敘事的重構(gòu)
攝影世界(2022年1期)2022-01-21 10:50:14
為什么橡膠有彈性?
軍事文摘(2021年18期)2021-12-02 01:28:12
為什么橡膠有彈性?
注重低頻的細(xì)節(jié)與彈性 KEF KF92
彈性夾箍折彎模的改進(jìn)
模具制造(2019年4期)2019-06-24 03:36:40
北方大陸 重構(gòu)未來
基于FPGA的同步機(jī)軸角編碼器
北京的重構(gòu)與再造
商周刊(2017年6期)2017-08-22 03:42:36
基于PRBS檢測的8B/IOB編碼器設(shè)計(jì)
論中止行為及其對中止犯的重構(gòu)
邳州市| 安塞县| 紫阳县| 三原县| 南靖县| 红桥区| 元谋县| 永泰县| 宁夏| 巫山县| 阿拉善右旗| 三江| 青海省| 东港市| 二连浩特市| 巫山县| 兴国县| 阿城市| 大余县| 达拉特旗| 赤峰市| 海林市| 凤阳县| 莱阳市| 诸城市| 大丰市| 鄂托克旗| 手游| 柳江县| 涿州市| 资兴市| 衡水市| 京山县| 丰台区| 诏安县| 巴青县| 延吉市| 海丰县| 沙坪坝区| 永善县| 璧山县|