陳 虹,王閏婷,肖成龍,郭鵬飛,黃 潔,陳紅霖
遼寧工程技術(shù)大學(xué) 軟件學(xué)院,遼寧 葫蘆島125105
網(wǎng)絡(luò)的高速發(fā)展使用戶之間的信息交換和數(shù)據(jù)傳輸更為便捷,但伴隨而來(lái)的是用戶私密數(shù)據(jù)被攻擊的危險(xiǎn),一旦網(wǎng)絡(luò)受到未知攻擊產(chǎn)生故障,極易導(dǎo)致重要信息被惡意泄露、非法使用,進(jìn)而造成巨大損失。因此,怎樣有效預(yù)測(cè)并及時(shí)處理網(wǎng)絡(luò)攻擊始終是網(wǎng)絡(luò)安全的研究重點(diǎn)。在這種網(wǎng)絡(luò)安全背景下,1980 年Anderson 首次提出了入侵檢測(cè)的概念[1],而后以入侵檢測(cè)專家系統(tǒng)[2](Intrusion Detection Expert System,IDES)為代表的檢測(cè)模型相繼誕生,這些系統(tǒng)按照一定的安全策略,通過(guò)軟、硬件監(jiān)控網(wǎng)絡(luò)的運(yùn)行狀態(tài),盡可能多地檢測(cè)出各種入侵行為,以達(dá)到預(yù)防入侵行為的目的。
近年網(wǎng)絡(luò)發(fā)展的速度突飛猛進(jìn),海量復(fù)雜的網(wǎng)絡(luò)數(shù)據(jù)單憑入侵檢測(cè)系統(tǒng)難以得到有效的監(jiān)測(cè)和處理,進(jìn)而導(dǎo)致入侵檢測(cè)系統(tǒng)很難同時(shí)滿足完整性和并行性的要求。因此,單一的入侵檢測(cè)系統(tǒng)具有一定的局限性,如存在難檢測(cè)出未知網(wǎng)絡(luò)攻擊類別、誤檢率高、檢測(cè)率和正確率較低等缺陷。因此,人們將機(jī)器學(xué)習(xí)[3](Machine Learning,ML)引入入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS)中可以很好地實(shí)現(xiàn)對(duì)未知網(wǎng)絡(luò)攻擊的經(jīng)驗(yàn)學(xué)習(xí),可有效提高對(duì)未知網(wǎng)絡(luò)攻擊類別的檢測(cè)率。而深度學(xué)習(xí)和集成學(xué)習(xí)是機(jī)器學(xué)習(xí)的兩個(gè)分支。深度學(xué)習(xí)[4](Deep Learning,DL)在特征分類方面具有突出能力,結(jié)合到入侵檢測(cè)模型中可有效識(shí)別攻擊,提升各項(xiàng)檢測(cè)指標(biāo)。集成學(xué)習(xí)[5-6](Ensemble Learning,EL)通過(guò)結(jié)合多個(gè)泛化能力弱的組件學(xué)習(xí)器,用投票等方法組建可以達(dá)到預(yù)期效果的學(xué)習(xí)器,將集成學(xué)習(xí)應(yīng)用到入侵檢測(cè)可獲得更好的泛化性能。
Hinton等人[7]于2006年提出的深度信念網(wǎng)絡(luò)(Deep Belief Networks,DBN)模型是深度學(xué)習(xí)模型的代表之一。深度信念網(wǎng)絡(luò)使用層疊玻爾茲曼機(jī)的方法組成深度神經(jīng)網(wǎng)絡(luò)。它的一種應(yīng)用是對(duì)數(shù)據(jù)進(jìn)行壓縮,即數(shù)據(jù)降維,可使海量、高維的網(wǎng)絡(luò)數(shù)據(jù)得到更為優(yōu)秀的處理,同時(shí)便于計(jì)算。另一種應(yīng)用則是實(shí)現(xiàn)對(duì)數(shù)據(jù)特征提取及分類,使得DBN廣泛應(yīng)用在文本分類、語(yǔ)音識(shí)別等領(lǐng)域[8-11]。目前,已有將DBN應(yīng)用于入侵檢測(cè)領(lǐng)域的研究,高娜等人于2014 年將DBN 運(yùn)用到入侵檢測(cè)領(lǐng)域中,重點(diǎn)研究了入侵檢測(cè)系統(tǒng)中大數(shù)據(jù)分類的問(wèn)題[12],隨后DBN與IDS的結(jié)合應(yīng)用更為廣泛[13]。但單一DBN模型存在耗時(shí)長(zhǎng)、內(nèi)存占用多以及易陷入局部最優(yōu)等缺陷,文獻(xiàn)[14]針對(duì)傳統(tǒng)海量數(shù)據(jù)難以識(shí)別的現(xiàn)象,提出一種DBN-MSVM 的入侵檢測(cè)方法,提高了分類結(jié)果的準(zhǔn)確性,但對(duì)低頻攻擊的誤報(bào)率卻高達(dá)83.5%。文獻(xiàn)[15]提出一種DBN-OGB 入侵檢測(cè)模型,通過(guò)DBN 對(duì)數(shù)據(jù)降維,提取特征,由多個(gè)梯度提升樹(shù)進(jìn)行分類識(shí)別,經(jīng)實(shí)驗(yàn)證明該模型有效提高了對(duì)海量、非均衡數(shù)據(jù)中罕見(jiàn)攻擊類別的檢測(cè)性能,但處理非均衡數(shù)據(jù)的過(guò)程復(fù)雜,實(shí)驗(yàn)耗時(shí)長(zhǎng)。機(jī)器學(xué)習(xí)、深度學(xué)習(xí)引起網(wǎng)絡(luò)安全領(lǐng)域越來(lái)越多的關(guān)注,隨著技術(shù)的日益成熟,將會(huì)成為入侵檢測(cè)領(lǐng)域值得探索的研究方向[16]。
1993年Schapire首次將集成學(xué)習(xí)中早期的Boosting算法用于實(shí)際應(yīng)用[17],它是將多個(gè)弱學(xué)習(xí)器提升成強(qiáng)學(xué)習(xí)器的算法。隨后,F(xiàn)reund和Schapire于1995年提出了改進(jìn)的Boosting算法——Adaboost(Adaptive Boosting)[18],該算法運(yùn)行高效且實(shí)際應(yīng)用廣泛[19-20]。文獻(xiàn)[21]在Adaboost算法之后提出了梯度提升決策樹(shù)的概念(Gradient Boosting Decision Tree,GBDT),即梯度提升方法結(jié)合決策樹(shù)基學(xué)習(xí)器構(gòu)建的學(xué)習(xí)模型。而后在2014年,陳天奇等人在GBDT算法和隨機(jī)森林算法的基礎(chǔ)上提出極限梯度提升算法(eXtreme Gradient Boosting,XGBoost)[22],給出了一個(gè)改進(jìn)的正則化學(xué)習(xí)方法和默認(rèn)缺失值處理方法等。因?yàn)閄GBoost 算法是以GBDT 算法模型為基礎(chǔ),所以該算法的模型亦稱XGBDT 模型。XGBoost 具有多種功能:快速處理,接受多種類型的輸入數(shù)據(jù),內(nèi)置交叉驗(yàn)證,樹(shù)剪枝,高度靈活,較其他增強(qiáng)模型能更好地控制過(guò)擬合。與傳統(tǒng)方法相比,將XGBoost應(yīng)用在入侵檢測(cè)系統(tǒng)中不僅產(chǎn)生了高精度檢測(cè)效果,而且效率更高[23]。
數(shù)據(jù)集的不平衡分布易導(dǎo)致模型檢測(cè)錯(cuò)誤,研究人員基于深度學(xué)習(xí)、集成學(xué)習(xí)深入研究了不平衡數(shù)據(jù)問(wèn)題,提出了多種針對(duì)性的方案。Laxmi 等人[24]為解決不平衡數(shù)據(jù)導(dǎo)致模型的錯(cuò)誤分類問(wèn)題,采用DBN 訓(xùn)練不平衡數(shù)據(jù),結(jié)合頂層BP反向微調(diào),通過(guò)均方誤差的特征選擇方式,提出了能有效處理不平衡數(shù)據(jù)的分類模型,但由于損失函數(shù)的影響,導(dǎo)致模型較標(biāo)準(zhǔn)算法的分類性能欠佳。文獻(xiàn)[25]提出了一種基于DBN 的重采樣支持向量機(jī)集成學(xué)習(xí)模式,以解決信用分類中的不平衡數(shù)據(jù)問(wèn)題,但模型還需從處理數(shù)據(jù)冗余、設(shè)置懲罰函數(shù)等角度進(jìn)一步改進(jìn)。集成學(xué)習(xí)在分類性能方面較深度學(xué)習(xí)表現(xiàn)得更好。文獻(xiàn)[26]針對(duì)集成算法對(duì)不均衡數(shù)據(jù)分類易發(fā)生過(guò)擬合的情況,提出基于XGBoost算法進(jìn)行特征選擇、參數(shù)優(yōu)化等規(guī)則實(shí)現(xiàn)對(duì)不均衡數(shù)據(jù)的分類,取得較好的分類效果,但單一分類器不能很好地?cái)M合數(shù)據(jù)集。因此,本文將XGBoost 引入IDS 領(lǐng)域進(jìn)行研究,設(shè)計(jì)的入侵檢測(cè)模型總體思路為:應(yīng)用DBN處理海量、高維網(wǎng)絡(luò)數(shù)據(jù)的優(yōu)勢(shì),結(jié)合XGBoost 的訓(xùn)練速度快、分類精度高、可并行處理和高泛化性能等特點(diǎn),建立可有效識(shí)別并處理高維、復(fù)雜、不均衡入侵?jǐn)?shù)據(jù)的檢測(cè)模型。
綜上,本文將DBN降維等數(shù)據(jù)處理技術(shù)融合XGBDT模型對(duì)入侵?jǐn)?shù)據(jù)的分類策略,提出一種深度信念網(wǎng)絡(luò)下極限梯度提升決策樹(shù)多分類器入侵檢測(cè)模型(DBNXGBDT)。建立該模型的大致步驟如下:首先,將數(shù)據(jù)預(yù)處理后再輸入DBN中進(jìn)行122維降至5維的操作,便于XGBoost分類器的計(jì)算。其次,將5類攻擊每?jī)深悩?gòu)成一組分類,在XGBoost 中采用二叉樹(shù)分類方式,使得多分類下不平衡的結(jié)果變得相對(duì)平衡,減少XGBoost方法的計(jì)算次數(shù),從而縮短訓(xùn)練時(shí)間。最后,利用NSL-KDD數(shù)據(jù)集[27]進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明DBN-XGBDT模型可有效處理高維、不均衡數(shù)據(jù),同時(shí)正確率、檢測(cè)率、誤報(bào)率等性能指標(biāo)均有所提升,可作為解決不均衡入侵?jǐn)?shù)據(jù)對(duì)罕見(jiàn)攻擊檢測(cè)率低的新方法。
深度信念網(wǎng)絡(luò)(DBN)是一種概率生成模型,也是神經(jīng)網(wǎng)絡(luò)模型之一,旨在從高維復(fù)雜的數(shù)據(jù)中獲得低維、便于計(jì)算的特征向量。經(jīng)典的DBN模型如圖1所示,通過(guò)層疊受限玻爾茲曼機(jī)(Restricted Boltzmann Machines,RBM)以及頂層采用的反向傳播(Back Propagation,BP)算法組合而成。圖1中虛線箭頭為反向傳播過(guò)程,誤差為預(yù)期與實(shí)際輸出結(jié)果之差,用于微調(diào)過(guò)程。DBN 模型將訓(xùn)練分為預(yù)訓(xùn)練和微調(diào)兩部分。
圖1 DBN模型
圖1 所示的預(yù)處理箭頭即為自底向上的預(yù)訓(xùn)練過(guò)程,此過(guò)程是無(wú)監(jiān)督地逐層訓(xùn)練RBM,確??梢院Y選出特征信息。微調(diào)過(guò)程可視為整體調(diào)優(yōu),可對(duì)應(yīng)圖1中的“反向傳播”和“微調(diào)”。在DBN的頂層設(shè)置BP網(wǎng)絡(luò),接收RBM 輸出的特征信息作為輸入,有監(jiān)督地訓(xùn)練分類器,而且每層RBM 網(wǎng)絡(luò)只能確保所處層的權(quán)值達(dá)到最優(yōu)(即局部最優(yōu)),但最終目標(biāo)為全局最優(yōu),因此利用反向傳播網(wǎng)絡(luò)將誤差信息自頂向下逐層傳播,進(jìn)而微調(diào)整個(gè)DBN 網(wǎng)絡(luò)。RBM 網(wǎng)絡(luò)訓(xùn)練模型的過(guò)程可以看作對(duì)一個(gè)頂層BP 網(wǎng)絡(luò)權(quán)值參數(shù)的初始化,使DBN 克服了BP網(wǎng)絡(luò)因隨機(jī)初始化權(quán)值參數(shù)而容易陷入局部最優(yōu)和訓(xùn)練時(shí)間長(zhǎng)的缺點(diǎn)。
(1)預(yù)訓(xùn)練核心架構(gòu)——受限玻爾茲曼機(jī)。它是一種具有二層架構(gòu)的、全連接無(wú)自反饋的隨機(jī)神經(jīng)網(wǎng)絡(luò)模型,如圖2所示。
圖2 RBM模型
圖2 所示RBM 模型為“層內(nèi)無(wú)連接,層間全連接”的兩層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò),上、下層為隱含層(hidden layer,h)、可見(jiàn)層(visible layer,v)。假設(shè)隱含層中有m 個(gè)神經(jīng)元節(jié)點(diǎn),可見(jiàn)層中有n 個(gè)神經(jīng)元節(jié)點(diǎn),并且各層中的神經(jīng)元分別用vi、hj表示相應(yīng)層中第i、j 個(gè)神經(jīng)元節(jié)點(diǎn)的狀態(tài),其中{j|j=1,2,…,m},{i|i=1,2,…,n}。圖2 中ai、bj分別為所在層的偏置,wij表示第i 個(gè)可見(jiàn)神經(jīng)元和第j 個(gè)隱含神經(jīng)元間的權(quán)值。欲確定模型,需將θ={wij,ai,bj}和各層神經(jīng)元數(shù)量設(shè)定好。
(2)反向微調(diào)——BP算法。DBN根據(jù)BP算法中正向訓(xùn)練與反向微調(diào)的特性,在頂層運(yùn)用此算法。d 為期望輸出,o 為輸出層結(jié)果,主要的誤差公式為:
本文實(shí)現(xiàn)DBN算法的過(guò)程及偽代碼詳見(jiàn)3.2節(jié)。
極限梯度提升(XGBoost)算法屬于Boosting集成學(xué)習(xí)方法,與Boosting的經(jīng)典模型GBDT同樣都是基于樹(shù)模型的算法,而B(niǎo)oosting是一種將多個(gè)弱分類器最終提升為強(qiáng)分類器的方法,其目標(biāo)函數(shù)具有累加性。同樣地,XGBoost 算法繼承了累加基學(xué)習(xí)器的思想,并給出由損失函數(shù)和復(fù)雜度組成的目標(biāo)函數(shù)公式,如式(1):
假設(shè)弱分類器疊加t 輪,式(1)的C 為常數(shù),l 項(xiàng)表示第t 輪的損失,其中yi是第i 條數(shù)據(jù)的實(shí)際輸出,是經(jīng)過(guò)學(xué)習(xí)的前t-1 個(gè)分類器對(duì)第i 條數(shù)據(jù)的集成輸出,ft(xi)是待學(xué)習(xí)的第t 個(gè)分類器,將實(shí)例映射到葉索引映射函數(shù)中,見(jiàn)式(2):
式(2)中,q(xi)視為樹(shù)的結(jié)構(gòu),w 表示葉的向量,因此每一次迭代即為樹(shù)的建立。而式(1)第二項(xiàng)Ω 表示懲罰模型的復(fù)雜度,表示如下:
其中,T 為基分類回歸樹(shù)的葉子節(jié)點(diǎn)總數(shù),wt為第t 個(gè)葉子節(jié)點(diǎn)的輸出值,λ 與γ 為L(zhǎng)2 正則化項(xiàng)的系數(shù)。為增強(qiáng)泛化性能,有效防止過(guò)擬合,要求生成的葉子節(jié)點(diǎn)不宜過(guò)多且權(quán)值不可太大。根據(jù)二階泰勒展開(kāi)式和式(1)~(3)將目標(biāo)函數(shù)更新為:
定義實(shí)例集再對(duì)式(4)求解可得最優(yōu)葉子權(quán)重和最優(yōu)目標(biāo):
因?yàn)楣剿惴ǖ暮诵氖墙鉀Q如何高效地尋找分割點(diǎn)來(lái)構(gòu)建樹(shù)問(wèn)題,根據(jù)式(6)給出分割增益Gain 式(7),分割原則是當(dāng)Gain 取得最大值時(shí)即為最優(yōu)分割。
中括號(hào)中第一、二項(xiàng)為左、右子樹(shù)分?jǐn)?shù),第三項(xiàng)為不分割時(shí)得到的分?jǐn)?shù),最后一項(xiàng)則為新葉子的代價(jià)復(fù)雜度。
現(xiàn)今的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)呈現(xiàn)海量、高維的特性,各個(gè)攻擊類別的數(shù)目相差巨大,造成分類偏向于占比多的類別,這種情況下的數(shù)據(jù)稱為不均衡數(shù)據(jù)。大多數(shù)檢測(cè)模型對(duì)此類數(shù)據(jù)的處理效果不佳,通常伴有計(jì)算耗時(shí)多、檢測(cè)性能低等缺陷,故本文模型設(shè)計(jì)思想主要針對(duì)兩方面:如何將海量、高維的數(shù)據(jù)集轉(zhuǎn)換成低維、易計(jì)算的特征數(shù)據(jù);如何解決攻擊數(shù)據(jù)不均衡問(wèn)題。處理不平衡數(shù)據(jù)問(wèn)題的一個(gè)主要方法是集成學(xué)習(xí)。集成學(xué)習(xí)中XGBoost具有良好的分類訓(xùn)練能力,可以結(jié)合其他模型達(dá)到良好的預(yù)期效果,卻難以處理高維的特征數(shù)據(jù),而深度信念網(wǎng)絡(luò)DBN在處理海量高維數(shù)據(jù)時(shí)能夠有效實(shí)施降維,使得模型的計(jì)算效率更高,處理效果更好。故本文利用深度信念網(wǎng)絡(luò)實(shí)現(xiàn)特征降維,融合XGBoost算法中構(gòu)成強(qiáng)分類器的方法處理高維、不均衡入侵?jǐn)?shù)據(jù),最終提出了一個(gè)主要實(shí)現(xiàn)數(shù)據(jù)特征降維和處理數(shù)據(jù)不均衡的方案。
方案中,將入侵檢測(cè)數(shù)據(jù)集輸入并進(jìn)行預(yù)處理。數(shù)據(jù)集中包含字符型和數(shù)值型,除攻擊標(biāo)簽外需對(duì)字符型標(biāo)準(zhǔn)化處理為數(shù)值型;為縮小取值范圍便于統(tǒng)一計(jì)算,需進(jìn)一步進(jìn)行歸一化處理。再將預(yù)處理后的標(biāo)準(zhǔn)數(shù)據(jù)按比例劃分為:訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集。隨后輸入訓(xùn)練數(shù)據(jù)集到DBN 模型中,進(jìn)行內(nèi)部RBM 預(yù)訓(xùn)練和BP權(quán)值微調(diào)的過(guò)程,實(shí)現(xiàn)對(duì)數(shù)據(jù)集的降維處理、特征提取,并獲得訓(xùn)練好的DBN 模型。隨后,訓(xùn)練數(shù)據(jù)通過(guò)這個(gè)訓(xùn)練好的模型輸出特征數(shù)據(jù),同有標(biāo)簽的測(cè)試數(shù)據(jù)集比對(duì),實(shí)現(xiàn)性能測(cè)試。隨機(jī)將兩類標(biāo)簽分為一組,分別映射為-1和1,如normal和attack分別對(duì)應(yīng)-1和1,若判定為1可在同映射規(guī)則下,再嵌套判定DoS和其他三類攻擊,便于分類器進(jìn)行二分類。將特征訓(xùn)練數(shù)據(jù)集輸入XGBDT 分類器中,實(shí)現(xiàn)分類器的訓(xùn)練過(guò)程。再將特征提取過(guò)的測(cè)試數(shù)據(jù)集輸入訓(xùn)練好的分類器中,將映射后的數(shù)據(jù)標(biāo)簽按投票法判定入侵行為的類別(入侵?jǐn)?shù)據(jù)的類別或正常數(shù)據(jù)),輸出相應(yīng)的檢測(cè)指標(biāo)。上述建立DBN-XGBDT檢測(cè)模型的方案如圖3所示。
圖3 建立DBN-XGBDT檢測(cè)模型
(1)將數(shù)據(jù)集標(biāo)準(zhǔn)化(Data Standardization)處理,利用One-Hot編碼(獨(dú)熱編碼,用N 位狀態(tài)寄存器對(duì)N個(gè)狀態(tài)進(jìn)行編碼)首先將字符型的各特征值映射到整數(shù)值,再被表示為二進(jìn)制向量,統(tǒng)一成便于后期計(jì)算的數(shù)值型數(shù)據(jù),如tcp、udp、icmp 對(duì)應(yīng)的數(shù)值編碼為1,0,0、0,1,0、0,0,1。
(2)由于高維、復(fù)雜的數(shù)據(jù)會(huì)增加訓(xùn)練時(shí)間,存在“大特征取代小特征”的現(xiàn)象,故將數(shù)據(jù)進(jìn)行歸一化(Data Normalization)處理,從而縮小數(shù)據(jù)的取值范圍,使得尋優(yōu)過(guò)程平緩進(jìn)行,更易準(zhǔn)確收斂到最優(yōu)解。
預(yù)處理過(guò)程詳解見(jiàn)4.2節(jié)。
高維數(shù)據(jù)多冗余特征,合理有效地對(duì)數(shù)據(jù)進(jìn)行特征提取和降維操作,無(wú)論是在計(jì)算時(shí)間、內(nèi)存空間,還是分類算法可用性上,都有顯著的提升效果。上述過(guò)程是在DBN 模型中經(jīng)多層RBM 預(yù)訓(xùn)練和BP 反向微調(diào)實(shí)現(xiàn)的。因此,算法1分為RBM預(yù)訓(xùn)練和BP反向傳播兩部分。預(yù)訓(xùn)練過(guò)程確保特征向量既能映射到不同特征空間,也能更多地保留特征信息,最終實(shí)現(xiàn)局部最優(yōu)。首先初始化各層間的權(quán)值矩陣V 和W 、期望與輸出層誤差E 及學(xué)習(xí)率η,遍歷輸入向量和第一層隱層神經(jīng)元節(jié)點(diǎn),再將此二層作為一個(gè)RBM訓(xùn)練出參數(shù)(各層間權(quán)重、偏置),確定此參數(shù)后再將輸出的神經(jīng)元狀態(tài)作為第二個(gè)RBM 的輸入向量,“輸出即輸入”地逐層傳遞反復(fù)訓(xùn)練,并計(jì)算期望輸出與實(shí)際輸出的誤差,為后面反向微調(diào)做準(zhǔn)備。而反向微調(diào)過(guò)程的目的是更新參數(shù),以此學(xué)得整體最優(yōu)的訓(xùn)練結(jié)果。根據(jù)預(yù)訓(xùn)練輸出層結(jié)果及誤差,由各輸出層至隱層的反向傳播方式訓(xùn)練出相應(yīng)的誤差信號(hào),實(shí)現(xiàn)各層參數(shù)的更新。
其中,DBN 模型實(shí)現(xiàn)參數(shù)微調(diào)的核心是基于誤差反向傳播的BP 神經(jīng)網(wǎng)絡(luò),它被架構(gòu)在整個(gè)模型的頂層位置,實(shí)現(xiàn)有監(jiān)督的學(xué)習(xí)訓(xùn)練過(guò)程。算法1給出了標(biāo)準(zhǔn)DBN 算法,輸入向量為X=(x1,x2,…,xi,…,xn)T,隱層輸出向量為Y=(y1,y2,…,yj,…,ym)T,輸出層向量為O=(o1,o2,…,ok,…,ol)T,期望輸出向量為d=(d1,d2,…,dk,…,dl)T,輸入層與隱層、隱層與輸出層之間的權(quán)值矩陣分別為V=(V1,V2,…,Vi,…,Vm)T,W=(W1,W2,…,Wj,…,Wl)T;對(duì)輸出層均有j={0,1,…,m},k={1,2,…,l};對(duì)隱層均有i={0,1,…,n},j={1,2,…,m};設(shè)p 為數(shù)據(jù)總量,η 為學(xué)習(xí)率,E 為期望與輸出層結(jié)果的誤差,初始值設(shè)為0。算法1如下。
2) 三級(jí)數(shù)量彈性契約的供應(yīng)鏈在價(jià)格隨機(jī)或是價(jià)格穩(wěn)定的突發(fā)事件下顯現(xiàn)出來(lái)的規(guī)律性質(zhì)大體相同.它們的主要區(qū)別是:價(jià)格隨機(jī)情景下批發(fā)價(jià)調(diào)整的幅度、供應(yīng)鏈上企業(yè)的期望收益變化的比率,要比價(jià)格穩(wěn)定的情況要大一些.由此可見(jiàn),價(jià)格隨機(jī)的突發(fā)事件對(duì)供應(yīng)鏈系統(tǒng)的影響較大,企業(yè)需要采取定特定的手段以消除突發(fā)事件的影響.
算法1 標(biāo)準(zhǔn)DBN訓(xùn)練過(guò)程
將經(jīng)過(guò)DBN 特征提取過(guò)的數(shù)據(jù),按照標(biāo)簽每?jī)深惙譃橐唤M,通過(guò)投票方式選出攻擊類別,再由基于XGBoost算法的二分類決策樹(shù)訓(xùn)練,尋優(yōu)選取最佳參數(shù)組合,最終計(jì)算出各個(gè)檢測(cè)指標(biāo),與其他檢測(cè)模型比對(duì)最終效果。
XGBoost算法在選取分割節(jié)點(diǎn)時(shí),采用了貪心策略和最優(yōu)化思想相結(jié)合的方法,即增益最大化決定分割。因而,訓(xùn)練分類器的核心是通過(guò)增益尋找最優(yōu)分割節(jié)點(diǎn),構(gòu)建決策樹(shù)完成特征選擇的過(guò)程。過(guò)程如下:初始化一、二階導(dǎo)數(shù)的和G、H 及初始增益Gain 的值,輸入當(dāng)前節(jié)點(diǎn)的數(shù)據(jù)集I 。將I 臨時(shí)排序,對(duì)左、右子樹(shù)的兩類導(dǎo)數(shù)進(jìn)行計(jì)算更新。特別的,當(dāng)枚舉遇缺失值時(shí)默認(rèn)分裂方向?yàn)橛?,向左則相反。每次根據(jù)式(7)計(jì)算增益,選擇增益最大的方向作為分裂方向,當(dāng)樹(shù)達(dá)到最大深度n 時(shí)停止建樹(shù),最終實(shí)現(xiàn)特征提取。
訓(xùn)練分類器的實(shí)現(xiàn)見(jiàn)算法2。
算法2 XGBoost構(gòu)建樹(shù)的過(guò)程
考慮到集成學(xué)習(xí)、深度學(xué)習(xí)和統(tǒng)計(jì)學(xué)習(xí)在入侵檢測(cè)中的優(yōu)越表現(xiàn),選取了3個(gè)具有代表性的模型作比較對(duì)象,分別是XGBoost、DBN-BP和DBN-MSVM模型。一方面,上述3 個(gè)模型均有處理不均衡數(shù)據(jù)分類的能力,也可應(yīng)用到入侵檢測(cè)領(lǐng)域中,確保實(shí)驗(yàn)結(jié)果是統(tǒng)一的、可比的。另一方面,它們可間接體現(xiàn)出單一模型與混合模型、機(jī)器學(xué)習(xí)中各分支算法間的性能比較。故選擇以上3 個(gè)模型在數(shù)據(jù)集NSL-KDD 上進(jìn)行實(shí)驗(yàn),得出模型間的性能比對(duì)結(jié)果并加以分析。
(1)實(shí)驗(yàn)環(huán)境
本文算法實(shí)驗(yàn)環(huán)境如下:
操作系統(tǒng):Win7_64位。
內(nèi)存(RAM):4.00 GB(3.89 GB可用)。
編程環(huán)境:Python3.6.4。
實(shí)驗(yàn)數(shù)據(jù)采用KDD CUP99數(shù)據(jù)集的子數(shù)據(jù)集——NSL-KDD數(shù)據(jù)集。
(2)評(píng)價(jià)指標(biāo)
由于數(shù)據(jù)中不同攻擊類別的分布是不均衡的,為方便評(píng)估模型的泛化能力和各個(gè)模型的檢測(cè)性能,本文使用了正確率(Accuracy Rate,AR)、檢測(cè)率(Detection Rate,DR)和誤檢率(False Detection Rate,F(xiàn)DR)進(jìn)行度量。相應(yīng)的計(jì)算公式如下:
其中蘊(yùn)含的重要概念有:
(1)對(duì)于二分類問(wèn)題,可將樣例數(shù)據(jù)根據(jù)其真實(shí)值與預(yù)測(cè)值劃分為TP、FP、TN、FN,定義如下:
TP(True Positive)為被正確地劃分為正例的個(gè)數(shù);
FP(False Positive)為被錯(cuò)誤地劃分為正例的個(gè)數(shù);
TN(True Negative)為被正確地劃分為負(fù)例的個(gè)數(shù);
FN(False Negative)為被錯(cuò)誤地劃分為負(fù)例的個(gè)數(shù)。
(2)根據(jù)上述定義得到二值混淆矩陣,它可衡量一個(gè)分類器分類的準(zhǔn)確程度,延伸出各個(gè)評(píng)價(jià)指標(biāo)。二值混淆矩陣見(jiàn)表1。
表1 二值混淆矩陣
本文選取20%的NSL-KDD 數(shù)據(jù)集作為訓(xùn)練集,它是由KDD CUP99 數(shù)據(jù)集生成的,具有訓(xùn)練去冗余、測(cè)試無(wú)重復(fù)等優(yōu)勢(shì)。此數(shù)據(jù)集包含125 973個(gè)訓(xùn)練樣本和22 544 個(gè)測(cè)試樣本,每條數(shù)據(jù)由1 個(gè)攻擊行為標(biāo)簽、41個(gè)特征和末尾的難度標(biāo)記構(gòu)成,本文在清理無(wú)效特征時(shí)將難度標(biāo)記舍去。攻擊行為標(biāo)簽主要包括5個(gè)類別:正常(Normal)、拒絕服務(wù)(DoS)、探測(cè)(Probe)、本地特權(quán)用戶進(jìn)入(R2L)、遠(yuǎn)端未授權(quán)進(jìn)入(U2R)。NSL-KDD的訓(xùn)練、測(cè)試數(shù)據(jù)的分布情況如圖4 所示。觀察圖4 可知不同類別中的數(shù)據(jù)分布是不均衡的,又因數(shù)據(jù)特征的類型復(fù)雜,不易統(tǒng)一輸入模型進(jìn)行訓(xùn)練,所以需要對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理以便于模型訓(xùn)練數(shù)據(jù)。而每條數(shù)據(jù)中前41 個(gè)特征數(shù)據(jù)包括字符型和數(shù)值型,又可根據(jù)功能分為4個(gè)特征類別:TCP連接的基本特征、內(nèi)容特征、基于時(shí)間和主機(jī)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征。
圖4 NSL-KDD數(shù)據(jù)集分布
NSL-KDD 數(shù)據(jù)集中3 個(gè)離散字符型特征protocol_type(2)、service(3)、flag(4)需做標(biāo)準(zhǔn)化和歸一化數(shù)據(jù)處理。而攻擊行為標(biāo)簽作為分類的標(biāo)準(zhǔn),同樣需要數(shù)值化處理。本文根據(jù)上述三種特征中值的個(gè)數(shù)來(lái)構(gòu)造相應(yīng)維數(shù)的二進(jìn)制編碼。具體操作如下:
(1)離散型特征標(biāo)準(zhǔn)化。特征protocol_type包含3個(gè)值(tcp、udp、icmp),利用One-Hot 編碼思想得到相應(yīng)的二進(jìn)制編碼為1,0,0、0,1,0、0,0,1;同樣將余下的兩個(gè)特征含有的70、11個(gè)字符值映射到整數(shù)值上,再相應(yīng)地完成二進(jìn)制編碼操作。給出部分字符型數(shù)據(jù)轉(zhuǎn)化為數(shù)值型數(shù)據(jù),見(jiàn)表2。
表2 數(shù)值化
(2)標(biāo)簽預(yù)處理。特別地,攻擊行為標(biāo)簽在進(jìn)行上述標(biāo)準(zhǔn)化操作之前,需將其與這41個(gè)特征剝離開(kāi),目的是提取有用的特征構(gòu)造到標(biāo)簽的映射,為后面對(duì)攻擊行為的分類、檢測(cè)做準(zhǔn)備。由于攻擊行為標(biāo)簽共5 類,故本文將構(gòu)造5維映射,二進(jìn)制編碼方式同(1)。
(3)數(shù)據(jù)歸一化。將經(jīng)過(guò)標(biāo)準(zhǔn)化處理的離散型特征數(shù)據(jù)統(tǒng)一映射到[0,1]區(qū)間。本文采用離差標(biāo)準(zhǔn)化公式對(duì)數(shù)據(jù)線性轉(zhuǎn)換,公式為,其中max 是樣本最大值,min 為最小值,每當(dāng)輸入新數(shù)據(jù)時(shí)需經(jīng)上述公式重新計(jì)算,完成數(shù)據(jù)歸一化操作。
DBN-XGBDT 模型需通過(guò)設(shè)置參數(shù)使模型達(dá)到可控的擬合效果,本文參照文獻(xiàn)[15]中的調(diào)優(yōu)方法,為獲取一組較優(yōu)的參數(shù)集進(jìn)行多次調(diào)參實(shí)驗(yàn),使最終的訓(xùn)練結(jié)果達(dá)到較優(yōu)水平。參數(shù)配置見(jiàn)表3所示。
表3 參數(shù)配置
每條NSL-KDD數(shù)據(jù)集中的41維數(shù)據(jù)特征,經(jīng)處理后擴(kuò)展為122個(gè)輸入層節(jié)點(diǎn),在DBN模型中設(shè)定兩個(gè)隱層,設(shè)置對(duì)應(yīng)各層節(jié)點(diǎn)數(shù)為90、60,而頂層輸出維數(shù)為對(duì)應(yīng)5類攻擊行為,故設(shè)置為5。一次RBM的訓(xùn)練會(huì)處理50 條輸入數(shù)據(jù),將此訓(xùn)練過(guò)程最多重復(fù)110 次,誤差閾值為0.01。頂層輸出后反向微調(diào)需迭代100 次,誤差閾值也為0.01。XGBoost中執(zhí)行二分類操作(對(duì)應(yīng)的默認(rèn)設(shè)置為objective=binary:logistic),將正常與4 類攻擊每次從中隨機(jī)選取兩類為一組,經(jīng)投票選出“normal”與“attack”,方便最終計(jì)算混淆矩陣中的指標(biāo)值。
4.4.1 模型整體性能分析
為驗(yàn)證DBN-XGBDT模型的有效性,本文采用隨機(jī)抽取的4組實(shí)驗(yàn)數(shù)據(jù)集進(jìn)行驗(yàn)證,表4、表5分別給出訓(xùn)練、測(cè)試數(shù)據(jù)。
使用表4 和表5 所示4 組實(shí)驗(yàn)數(shù)據(jù)集,將本文模型與XGBoost、DBN-BP和DBN-MSVM模型進(jìn)行實(shí)驗(yàn),分別對(duì)正確率、檢測(cè)率、誤檢率等性能指標(biāo)進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如圖5~圖7 以及表6 所示。由圖5 可知,本文提出的模型較其他對(duì)比模型的正確率提升效果顯著。圖6的DBN-XGBDT不但顯示出高檢測(cè)性,而且在4組抽樣數(shù)據(jù)環(huán)境下的結(jié)果較為穩(wěn)定,其他對(duì)比模型的檢測(cè)結(jié)果波動(dòng)卻很大。由圖7 的分析可知,因隨機(jī)性等干擾因素,除DATA1實(shí)驗(yàn)環(huán)境外,DBN-XGBDT模型的誤檢率較低且基本平穩(wěn),說(shuō)明該模型在檢測(cè)異常數(shù)據(jù)時(shí)能正確識(shí)別出兩類數(shù)據(jù)——正常與攻擊。通過(guò)指標(biāo)值的3 個(gè)對(duì)比圖,驗(yàn)證了本文所給的檢測(cè)模型DBN-XGBDT是一種具有高可信度且較穩(wěn)定的有效識(shí)別模型。
表4 4組訓(xùn)練數(shù)據(jù)
圖6 檢測(cè)率對(duì)比
圖7 誤檢率對(duì)比
表6 平均指標(biāo)對(duì)比 %
4.4.2 罕見(jiàn)攻擊檢測(cè)性能分析
此實(shí)驗(yàn)的主要目的是分析各實(shí)驗(yàn)?zāi)P歪槍?duì)罕見(jiàn)攻擊U2R 和R2L 的檢測(cè)性能,證明本文模型在識(shí)別不均衡數(shù)據(jù)方面有所改進(jìn)。4.4.1 小節(jié)對(duì)各個(gè)模型的整體檢測(cè)性能進(jìn)行了實(shí)驗(yàn)分析,為進(jìn)一步驗(yàn)證各個(gè)模型對(duì)不平衡數(shù)據(jù)中各攻擊類型的檢測(cè)性能,選取4組各攻擊類型的測(cè)試數(shù)據(jù)數(shù)量多于訓(xùn)練數(shù)據(jù)的實(shí)驗(yàn)數(shù)據(jù)。原因是測(cè)試集中多為訓(xùn)練集中未出現(xiàn)過(guò)的網(wǎng)絡(luò)攻擊數(shù)據(jù),以此模擬真實(shí)網(wǎng)絡(luò)環(huán)境下可能出現(xiàn)的攻擊行為,進(jìn)而保證結(jié)果具有真實(shí)性和代表性。又由于真實(shí)網(wǎng)絡(luò)環(huán)境中的數(shù)據(jù)分布也多呈現(xiàn)不平衡分布的特點(diǎn),正常類型的數(shù)據(jù)量普遍多于異常類型的,故選取的數(shù)據(jù)集也遵循了此分布特性。
采用表7、表8 的數(shù)據(jù)集,將DBN-XGBDT 模型同XGBoost、DBN-BP和DBN-MSVM模型,對(duì)所有出現(xiàn)的攻擊類別的檢測(cè)能力進(jìn)行對(duì)比。由于本文主要研究不平衡入侵?jǐn)?shù)據(jù)中罕見(jiàn)攻擊類別的識(shí)別能力,故給出針對(duì)R2L、U2R“小類”攻擊的檢測(cè)率對(duì)比結(jié)果,見(jiàn)圖8、圖9。為更直觀地分析各模型針對(duì)各類攻擊的檢測(cè)性能,計(jì)算出平均檢測(cè)率便于分析,結(jié)果見(jiàn)表9。
表7 4組訓(xùn)練數(shù)據(jù)
表8 4組測(cè)試數(shù)據(jù)
圖8 R2L檢測(cè)率對(duì)比
圖9 U2R檢測(cè)率對(duì)比
表9 平均檢測(cè)率對(duì)比 %
表6 給出了3 個(gè)平均指標(biāo)結(jié)果,本文模型較上述單一、混合分類模型的正確率分別提升了2.07 個(gè)百分點(diǎn)、1.14 個(gè)百分點(diǎn),誤報(bào)方面較混合模型顯著下降,顯示出DBN-XGBDT模型的整體檢測(cè)能力良好。在此基礎(chǔ)上,表9顯示本文模型針對(duì)罕見(jiàn)攻擊R2L、U2R的檢測(cè)性能明顯優(yōu)于DBN-MSVM、DBN-BP、XGBoost模型。DBNMSVM、XGBoost與DBN-XGBDT針對(duì)常見(jiàn)攻擊的檢測(cè)效果基本一致,而XGBoost模型對(duì)罕見(jiàn)攻擊的檢測(cè)性能卻遜色于DBN-XGBDT 模型,DBN-MSVM 較XGBoost對(duì)U2R 的檢測(cè)率低。DBN-BP 模型在對(duì)前3 類攻擊檢測(cè)時(shí)表現(xiàn)良好,但識(shí)別少數(shù)攻擊U2R 的檢測(cè)率低至47.50%。上述3 個(gè)對(duì)比模型無(wú)法使得模型整體性能和針對(duì)罕見(jiàn)攻擊的檢測(cè)性能均達(dá)到同等水平,而且可以說(shuō)是相差甚遠(yuǎn)。而本文模型實(shí)現(xiàn)了在保證模型整體的高檢測(cè)性能的同時(shí),切實(shí)有效地提升了對(duì)U2R 和R2L 的檢測(cè)能力。較針對(duì)罕見(jiàn)攻擊表現(xiàn)最好的XGBoost模型,DBN-XGBDT模型的平均檢測(cè)率分別提升了18.49個(gè)百分點(diǎn)和3.73個(gè)百分點(diǎn),說(shuō)明本文模型可有效解決罕見(jiàn)攻擊的特征屬性難識(shí)別的問(wèn)題。綜上,DBN-XGBDT模型對(duì)高維、不平衡的入侵檢測(cè)數(shù)據(jù)具有高檢測(cè)性能,尤其在罕見(jiàn)攻擊的識(shí)別上表現(xiàn)得更為突出。
針對(duì)現(xiàn)有模型在識(shí)別高維、非均衡分布的入侵?jǐn)?shù)據(jù)時(shí)效果不佳的問(wèn)題,本文提出了DBN-XGBDT模型。首先采用了DBN 逐層訓(xùn)練的降維方式,其次在對(duì)提升罕見(jiàn)攻擊類別的檢測(cè)性能方面,結(jié)合XGBoost中二分類法提升原多分類檢測(cè)精度,以期提高不均衡數(shù)據(jù)集的正確率指標(biāo)。實(shí)驗(yàn)結(jié)果表明,DBN-XGBDT 模型能夠從高維、分布不均衡的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)中提取出特征數(shù)據(jù),與DBN-BP、XGBoost、DBN-MSVM 等已有的優(yōu)越模型相比,本文模型明顯提高了對(duì)罕見(jiàn)攻擊的檢測(cè)效果,平均正確率、檢測(cè)率分別高達(dá)99.21%、98.67%,且具有較低的誤報(bào)率。此外,它很好地解決了數(shù)據(jù)集中類別分布不均衡的問(wèn)題,針對(duì)少數(shù)攻擊類別的檢測(cè)性能進(jìn)行了改進(jìn),為網(wǎng)絡(luò)入侵檢測(cè)領(lǐng)域提供了一種新的研究方法。然而該模型還存在一些不足之處,雖然對(duì)U2R的檢測(cè)率較現(xiàn)有模型有所提升,但并未完全實(shí)現(xiàn)高水平檢測(cè),因此采用何種方法可更好地選出模型的最優(yōu)參數(shù)組,如何降低誤檢率有待進(jìn)一步研究。