沈少禹,蔡滿春,蘆天亮,趙 琪
中國(guó)人民公安大學(xué) 信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院,北京100035
近年,隨著互聯(lián)網(wǎng)周邊產(chǎn)業(yè)的興起,“互聯(lián)網(wǎng)+”模式將互聯(lián)網(wǎng)與傳統(tǒng)行業(yè)進(jìn)行了結(jié)合,正在不斷地改變?nèi)藗兊纳罘绞健M瑫r(shí),隨著智能設(shè)備以及移動(dòng)設(shè)備不斷更新、功能更加豐富,越來(lái)越多的移動(dòng)設(shè)備也都接入了互聯(lián)網(wǎng),使得當(dāng)前網(wǎng)絡(luò)的信息量急劇增加,隨之增加的信息安全隱患也給人們?cè)斐闪嗽S多危害。入侵檢測(cè)系統(tǒng)(IDS)是一種主動(dòng)的防御計(jì)算手段,對(duì)于網(wǎng)絡(luò)的安全能夠起到有效的保護(hù)作用[1],而基于機(jī)器學(xué)習(xí)的入侵檢測(cè)方法由于可以根據(jù)已有的數(shù)據(jù)建立模型,對(duì)入侵行為進(jìn)行監(jiān)測(cè)和預(yù)警,而成為了保護(hù)網(wǎng)絡(luò)安全的主要方法。
DUAN等人提出了基于SVM主動(dòng)學(xué)習(xí)的算法[2],加強(qiáng)了對(duì)少數(shù)樣本的學(xué)習(xí)能力并減少了訓(xùn)練時(shí)間。王旭仁等人提出了基于信息增益和主成分分析(PCA)的檢測(cè)方法,去除樣本的冗余特征實(shí)現(xiàn)降維,提高了準(zhǔn)確率的同時(shí)降低了檢測(cè)時(shí)間[3]。文獻(xiàn)[4]結(jié)合K-means算法與PCA算法實(shí)現(xiàn)了在縮短檢測(cè)時(shí)間和增強(qiáng)實(shí)時(shí)性的同時(shí)保持高準(zhǔn)確率。徐凌偉等人基于BP神經(jīng)網(wǎng)絡(luò)提出了一種移動(dòng)物理層安全性能智能預(yù)測(cè)方法,縮短了檢測(cè)時(shí)間[5]。然而,網(wǎng)絡(luò)數(shù)據(jù)中存在著的特征冗余和屬性非線性相關(guān)等問(wèn)題,仍然對(duì)入侵檢測(cè)的效率產(chǎn)生較大的影響。
核主成分分析算法(KPCA)[6]是PCA[7]算法的一種非線性擴(kuò)展。KPCA算法的主要思想將非線性的數(shù)據(jù)從低維空間通過(guò)核函數(shù)映射投影到高維空間上[8],使得數(shù)據(jù)在高維空間上成為線性可分的,之后再用主成分分析算法的方法處理數(shù)據(jù)。極限學(xué)習(xí)機(jī)(ELM)是于2006年由黃廣斌教授提出的[9]。ELM的結(jié)構(gòu)是一個(gè)單隱藏層前饋神經(jīng)網(wǎng)絡(luò)(SLFN),包含輸入層、隱藏層和輸出層三個(gè)部分[10]。ELM的輸入權(quán)重和偏差是隨機(jī)產(chǎn)生的[11],只需設(shè)置隱藏層中神經(jīng)節(jié)點(diǎn)的個(gè)數(shù),再根據(jù)廣義逆矩陣?yán)碚撚?jì)算便可以計(jì)算出輸出權(quán)重。因此,ELM在學(xué)習(xí)速度以及泛化能力上與傳統(tǒng)的一些機(jī)器學(xué)習(xí)算法相比有更好的表現(xiàn)。但是,ELM在處理不平衡數(shù)據(jù)集時(shí),效果仍然不夠理想。為解決該問(wèn)題,Zong等人提出了根據(jù)不同類別樣本賦予權(quán)值的加權(quán)極限學(xué)習(xí)機(jī)WELM[12],該方法只考慮了不同類別樣本之間的區(qū)別,而沒(méi)有考慮同類樣本之間的差異。梅穎等人在WELM的基礎(chǔ)上提出了雙重加權(quán)極限學(xué)習(xí)機(jī),將同類樣本分為安全、邊界、噪音三種進(jìn)行二次加權(quán)[13],提高了分類精度,但是由于雙重加權(quán)的方法需要計(jì)算兩個(gè)加權(quán)矩陣,這使得算法在進(jìn)行分類時(shí)所需要的時(shí)間增加了,降低了分類效率。
為解決上述問(wèn)題,本文提出了基于LFKPCA和DWELM的入侵檢測(cè)算法,首先通過(guò)改進(jìn)的果蠅優(yōu)化算法(LFOA)對(duì)KPCA的核參數(shù)進(jìn)行迭代尋優(yōu)得到最優(yōu)值,然后再對(duì)入侵?jǐn)?shù)據(jù)進(jìn)行特征提取去除冗余特征,最后通過(guò)基于數(shù)據(jù)離散度的加權(quán)極限學(xué)習(xí)機(jī)(DWELM)進(jìn)行分類檢測(cè),提高了分類精度和效率,實(shí)現(xiàn)預(yù)期的檢測(cè)效果。
果蠅優(yōu)化算法(FOA),是根據(jù)果蠅覓食行為演化而來(lái)的一種全局優(yōu)化的方法[14]。果蠅群體在尋找食物的過(guò)程中會(huì)利用視覺(jué)和嗅覺(jué)來(lái)確定食物的具體位置。果蠅算法的實(shí)現(xiàn)一共包含以下7個(gè)步驟:
(1)對(duì)果蠅個(gè)體的數(shù)量Size_pop、位置以及算法的迭代次數(shù)Max_gen進(jìn)行初始化設(shè)置。
(2)根據(jù)濃度值最優(yōu)的果蠅的位置,更新每個(gè)果蠅的位置。
(3)根據(jù)每個(gè)果蠅與原點(diǎn)之間的距離計(jì)算出濃度判定值(Si)。
(4)將濃度判定值代入適應(yīng)度函數(shù)(Fitness function)求得果蠅個(gè)體所在位置的濃度值。
(5)求出濃度值最高的果蠅個(gè)體。
(6)記錄最高值和對(duì)應(yīng)的位置坐標(biāo),之后果蠅群體向該位置進(jìn)行移動(dòng)。
(7)循環(huán)執(zhí)行(2)至(5)進(jìn)行迭代尋優(yōu),每完成一次迭代就進(jìn)行判斷一次當(dāng)前濃度最優(yōu)值是否優(yōu)于上一輪迭代的最優(yōu)值,若是則實(shí)行步驟(6)。FOA尋優(yōu)步驟中,適應(yīng)度函數(shù)需要根據(jù)具體問(wèn)題進(jìn)行設(shè)置。
果蠅算法有著算法過(guò)程簡(jiǎn)單、控制參數(shù)少和易于實(shí)現(xiàn)的優(yōu)點(diǎn)。但是,果蠅優(yōu)化算法的搜索距離通常是固定值,缺少自適應(yīng)性,從而導(dǎo)致FOA在全局搜索時(shí)容易陷入局部搜索[15]。
Levy飛行是一種隨機(jī)游走策略,其步長(zhǎng)是隨機(jī)的,服從重尾特征的概率分布。并且Levy飛行是高頻短距離探索和低頻長(zhǎng)距離探索相間的,因此Levy飛行可以在大范圍內(nèi)快速尋找最優(yōu)解,同時(shí)避免陷入局部最優(yōu)[16]。Levy飛行的搜索路徑計(jì)算公式采用文獻(xiàn)[17]的公式:
式中,Γ為伽馬函數(shù),β的取值范圍為(0,2),通過(guò)上面兩個(gè)式子可以得到Levy的搜索路徑Levy(λ)。
本文根據(jù)Levy飛行對(duì)步驟(2)中的搜索距離進(jìn)行了改進(jìn)。將式(2)改為:
相比于式(2)以固定距離進(jìn)行位置更新,導(dǎo)致算法收斂速度慢、易陷入局部最優(yōu)等問(wèn)題,式(9)使用Levy飛行對(duì)搜索距離的更新進(jìn)行了改進(jìn),由于Levy飛行是高頻短距離和低頻長(zhǎng)距離相間的,使得算法的收斂速度變快,并且避免陷入局部最優(yōu)的情況。
設(shè)樣本集合為X=[X1,X2,…,Xn],其中n為樣本數(shù)量,d為樣本的特征數(shù)。設(shè)非線性映射為φ,則在特征空間F中協(xié)方差矩陣為:計(jì)算矩陣C的特征值和特征向量則有:
為了避免復(fù)雜計(jì)算過(guò)程,引入核函數(shù)進(jìn)行化簡(jiǎn),定義N×N維核矩陣K:
化簡(jiǎn)為:
設(shè)αk為特征值λk對(duì)應(yīng)的特征向量,訓(xùn)練樣本φ()x在特征向量空間F中Vk方向上的投影為:
基于LFOA的KPCA特征提取算法中最重要的是KPCA算法中核函數(shù)的選取和LFOA算法適應(yīng)度函數(shù)的設(shè)置,本文選取高斯徑向基核函數(shù)為例。
使用KPCA算法對(duì)數(shù)據(jù)進(jìn)行特征提取是為了更好地對(duì)數(shù)據(jù)進(jìn)行識(shí)別分類,而在分類問(wèn)題中,數(shù)據(jù)的各類樣本區(qū)分得越開,則分類的準(zhǔn)確率越高。
線性判別分析(LDA)算法在模式識(shí)別領(lǐng)域應(yīng)用非常廣泛,是經(jīng)典的降維算法[18]。LDA的思想是將高維的數(shù)據(jù)樣本沿著某個(gè)方向投影到低維空間上,使投影后的樣本在低維空間上表現(xiàn)出同一個(gè)類別的樣本盡可能貼近,不同類別的樣本之間盡可能分離[19],使各類樣本之間在低維空間上區(qū)分得更開,而同類別樣本之間分布更加聚集從而能更好地進(jìn)行分類。因此,可以借鑒LDA的中心思想通過(guò)計(jì)算類間距離和類內(nèi)距離構(gòu)造FOA的適應(yīng)度函數(shù),具體如下:
設(shè)(1 ,2,…,n1),(1 ,2,…,n2)是兩種不同類別的樣本,計(jì)算出這兩類樣本在特征空間上的均值向量為:
樣本的總體均值為:
則類間散度矩陣、類內(nèi)散度矩陣[20]分別為:
根據(jù)線性判別分析的中心思想,當(dāng)不同類別之間的樣本的距離越大,同類別樣本之間的距離越小時(shí),數(shù)據(jù)樣本的可分離性越優(yōu)。因此,可以設(shè)置LFOA的適應(yīng)度函數(shù)為:
當(dāng)fitness取極小值時(shí),KPCA的核參數(shù)取得最優(yōu)值,樣本在特征空間上有最佳分離性。
設(shè)訓(xùn)練集為{xi,ti|xi∈RD,ti∈Rm,i=1,2,…,N},L為極限學(xué)習(xí)機(jī)隱藏層的節(jié)點(diǎn)個(gè)數(shù)。其中xi表示第i個(gè)數(shù)據(jù)示例,ti表示第i個(gè)數(shù)據(jù)示例對(duì)應(yīng)的類別,集合代指所有訓(xùn)練數(shù)據(jù),則該單隱層神經(jīng)網(wǎng)絡(luò)的輸出為:
其中,βi表示輸出權(quán)重,hi(x)表示第i個(gè)隱藏層節(jié)點(diǎn)的輸出。hi(x)具體為:
在求解上式時(shí),同時(shí)也考慮了最小化輸出權(quán)重的范數(shù)‖‖β,通過(guò)線代和矩陣論的知識(shí)可推導(dǎo)得式(21)的最小范數(shù)最小二乘解為:
其中,H+是矩陣H的Moore-Penrose廣義逆矩陣。
可以使用正交投影法、正交化法、迭代法和奇異值分解法(SVD)[23]進(jìn)行式(22)的求解。用正交投影法求解,有兩種形式的解:
在極限學(xué)習(xí)機(jī)學(xué)習(xí)的過(guò)程中,由于并沒(méi)有考慮數(shù)據(jù)集樣本可能存在各類樣本的數(shù)量相互之間差值較大的情況,從而導(dǎo)致了在處理這類數(shù)據(jù)集時(shí)會(huì)出現(xiàn)由于多數(shù)類樣本的影響,使得檢測(cè)少數(shù)類樣本的準(zhǔn)確率較低的問(wèn)題。加權(quán)極限學(xué)習(xí)機(jī)(WELM)是由Zong等人提出的[12],能夠解決由于數(shù)據(jù)集中各類樣本數(shù)量差值較大而產(chǎn)生分類不準(zhǔn)確的問(wèn)題。在文獻(xiàn)[12]中,提供了兩種加權(quán)的方案:
g(wi,bi,x)為激活函數(shù),是一個(gè)可以使ELM獲得良好通用逼近能力的非線性分段連續(xù)函數(shù)[21]。為了得到在訓(xùn)練樣本集上具有良好效果的β,可以通過(guò)最小化近似平方差的方法對(duì)權(quán)重β進(jìn)行求解[22],目標(biāo)函數(shù)如下:
其中,ti是樣本t所屬類別i的樣本總數(shù),而AVG表示訓(xùn)練集中平均每個(gè)類別的樣本數(shù)量。然而,在上述的兩種加權(quán)方案中都考慮的是數(shù)據(jù)樣本數(shù)量差值帶來(lái)的影響,卻忽略了在分類問(wèn)題中,若數(shù)據(jù)集樣本的離散度較大時(shí)會(huì)對(duì)分類器的性能產(chǎn)生較大的影響。標(biāo)準(zhǔn)差是衡量數(shù)據(jù)離散度的常用指標(biāo)[24]。標(biāo)準(zhǔn)差的求解公式為:
其中,N為樣本數(shù)量,xi表示第i個(gè)樣本,表示樣本的平均值。根據(jù)標(biāo)準(zhǔn)差的公式可以看出,標(biāo)準(zhǔn)差的值與樣本距離相關(guān),即樣本之間的距離可以體現(xiàn)出數(shù)據(jù)集的離散程度。
對(duì)于樣本中每一個(gè)類別,都存在唯一一個(gè)樣本中心(樣本均值)。當(dāng)某樣本其與所屬類別樣本中心的距離較大時(shí),則該樣本與所屬類別的其他樣本的相似度就較低,在分類器訓(xùn)練時(shí)會(huì)受這類樣本的影響,使得分類邊界位置不夠理想。反之,則能得到較好的分類邊界。
由此,本文提出了一種基于數(shù)據(jù)離散度的加權(quán)極限學(xué)習(xí)機(jī),該加權(quán)方案根據(jù)數(shù)據(jù)的離散程度對(duì)樣本進(jìn)行加權(quán),降低了數(shù)據(jù)離散度對(duì)分類準(zhǔn)確度的影響。加權(quán)方案具體的表達(dá)式為:
其中,ri1表示第i個(gè)樣本到其所屬類別樣本中心的距離,ri2表示第i個(gè)樣本到其他類別樣本中心的距離的最小值,距離可通過(guò)式(27)計(jì)算獲得。對(duì)于樣本離散度的影響,式(26)用ri1、ri2的比值進(jìn)行了平衡,當(dāng)樣本到所屬類別的樣本中心的距離小時(shí),表示該樣本與所屬類別相似度高,若分類器將該樣本分到其他類別,則會(huì)造成較大的損失,使得分類效果變差。當(dāng)樣本到非所屬類別的樣本中心的距離小時(shí),表示該樣本與所屬類別相似度低,若分類器將該樣本分到所屬類別,會(huì)使分類邊界貼近其他類別樣本,使得分類效果變差。因此,對(duì)于而言當(dāng)樣本離所屬類別的樣本中心越近,則分母ri1越小,分子ri2越大使得值越大,該樣本的權(quán)值也越大。反之,樣本的權(quán)值越小。
基于新的加權(quán)方案,DWELM的最小范數(shù)最小二乘解同式(22),其求解可以通過(guò):
其中,ti表示樣本i的期望輸出(類別),εi表示實(shí)際輸出與期望輸出之間的偏差,h(xi)表示樣本在隱藏層的輸出向量。C為懲罰因子,對(duì)網(wǎng)絡(luò)的泛化性和精確性間的平衡關(guān)系進(jìn)行調(diào)控[25],β表示輸出向量。優(yōu)化式可以根據(jù)Karush-Kuhn-Tucker(KKT)理論進(jìn)行求解:
對(duì)式(29),求解最優(yōu)條件:
其中α為拉格朗日乘子,根據(jù)上面三式可得到的解:
其中,L為節(jié)點(diǎn)個(gè)數(shù),N為樣本個(gè)數(shù)。
基于LFKPCA和DWELM的入侵檢測(cè)算法的流程如圖1所示。
圖1 基于LFKPCA和DWELM的入侵檢測(cè)算法流程圖Fig.1 Flow chart of intrusion detection algorithm based on LFKPCA and DWELM
首先導(dǎo)入入侵檢測(cè)數(shù)據(jù)集,其次對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理。數(shù)據(jù)預(yù)處理包括:
(1)對(duì)數(shù)據(jù)集中字符型特征進(jìn)行數(shù)字化,通過(guò)獨(dú)熱編碼的方式,根據(jù)每個(gè)特征的種類數(shù)將字符特征轉(zhuǎn)換為相應(yīng)維度的向量特征。
(2)進(jìn)行歸一化,在數(shù)據(jù)集中經(jīng)常出現(xiàn)同一個(gè)樣本數(shù)據(jù)的不同特征的取值相差較大,從而導(dǎo)致了各特征的重要性相差變大,這將對(duì)分類檢測(cè)產(chǎn)生很多的影響,所以需要將數(shù)據(jù)集進(jìn)行歸一化處理,使樣本各特征的數(shù)值都轉(zhuǎn)化為分布在0~1之間的數(shù)值。
對(duì)數(shù)據(jù)集完成預(yù)處理后,使用1.3節(jié)提出的LFKPCA算法對(duì)處理后的數(shù)據(jù)集進(jìn)行特征提取去除冗余特征,并對(duì)提取完的數(shù)據(jù)集進(jìn)行劃分,其中訓(xùn)練集占80%,測(cè)試集占20%。對(duì)DWELM設(shè)置合適的神經(jīng)元個(gè)數(shù),并將訓(xùn)練集作為DWELM的輸入進(jìn)行訓(xùn)練,最后將完成訓(xùn)練后的DWELM模型用于測(cè)試集的分類檢測(cè),輸出分類結(jié)果。
3.2.1 數(shù)據(jù)集來(lái)源
KDD99數(shù)據(jù)集是MIT林肯實(shí)驗(yàn)室通過(guò)建立模擬的美國(guó)空軍局域網(wǎng)環(huán)境并仿真各種不同的攻擊手段而獲得的網(wǎng)絡(luò)流量數(shù)據(jù)集,多年來(lái)一直被國(guó)內(nèi)外眾多學(xué)者用于檢測(cè)入侵檢測(cè)算法性能的實(shí)驗(yàn)中[26]。然而KDD99數(shù)據(jù)集樣本存在大量冗余等問(wèn)題。NSL-KDD數(shù)據(jù)集是將KDD99數(shù)據(jù)集中重復(fù)的和無(wú)用的樣本剔除之后,并重新劃分了訓(xùn)練集與測(cè)試集的比例而得到的數(shù)據(jù)集,這使得NSL-KDD數(shù)據(jù)集更適用于入侵檢測(cè)的實(shí)驗(yàn)。NSLKDD數(shù)據(jù)中訓(xùn)練集共有125 972條記錄,測(cè)試集共有22 542條記錄。當(dāng)前研究者大多采用的實(shí)驗(yàn)數(shù)據(jù)集為NSL-KDD數(shù)據(jù)集的10%。本文所使用的原始數(shù)據(jù)集是隨機(jī)從10%數(shù)據(jù)集中進(jìn)行抽取組成的,進(jìn)行特征提取實(shí)驗(yàn),并將特征提取后的數(shù)據(jù)集分為訓(xùn)練集和測(cè)試機(jī)用于本文之后的實(shí)驗(yàn)中。
NSL-KDD數(shù)據(jù)集中樣本可分為5類,分別為正常行為(Normal)、拒絕服務(wù)攻擊(DOS)、端口監(jiān)視或掃描(Probe)、非法獲取本地超級(jí)用戶權(quán)限(U2R)、遠(yuǎn)程非授權(quán)訪問(wèn)攻擊(R2L)[27]。數(shù)據(jù)集中每一個(gè)樣本都是由41個(gè)屬性特征和一個(gè)類標(biāo)簽組成。為了確保實(shí)驗(yàn)的客觀性,本文采用的訓(xùn)練集和測(cè)試集分別是從NSL-KDD的10%訓(xùn)練集和10%測(cè)試集中各隨機(jī)抽取的7 000條實(shí)驗(yàn)數(shù)據(jù)組成的。抽取的入侵?jǐn)?shù)據(jù)具體分布如表1所示。
表1 選取的入侵?jǐn)?shù)據(jù)分布Table 1 Distribution of selected intrusion data
3.2.2 數(shù)據(jù)預(yù)處理
(1)字符特征數(shù)字化
在數(shù)據(jù)集樣本的41維特征中,屬于字符型的特征包括協(xié)議類型Protocol_type、服務(wù)類型Service以及狀態(tài)標(biāo)志位Flag。本文用獨(dú)熱編碼的方式對(duì)三個(gè)特征進(jìn)行數(shù)字化。對(duì)于協(xié)議類型,數(shù)據(jù)樣本一共有TCP、UDP、ICMP三種不同的協(xié)議,則將三種協(xié)議分別對(duì)應(yīng)轉(zhuǎn)換為(1,0,0)、(0,1,0)、(0,0,1)的3維向量,而服務(wù)類型中共有70種不同的服務(wù),則分別對(duì)應(yīng)轉(zhuǎn)換為70維的向量,狀態(tài)標(biāo)志位共有11種不同取值,則分別對(duì)應(yīng)轉(zhuǎn)換為11維的向量[28]。最終,將數(shù)據(jù)樣本的特征數(shù)由41維擴(kuò)大到了122維。
(2)歸一化
在抽取的數(shù)據(jù)集中,由于同一個(gè)樣本的不同特征的取值存在差別較大,這對(duì)之后的分類檢測(cè)會(huì)產(chǎn)生很多的影響,因此需要對(duì)數(shù)據(jù)集進(jìn)行歸一化處理,將樣本各特征的值都轉(zhuǎn)化為分布在0~1之間的數(shù)值。歸一化的方法如下:
其中,x為樣本中某一列特征的值,xmin、xmax是該特征中的最小值和最大值。通過(guò)進(jìn)行歸一化處理,能使樣本該列特征的數(shù)值從[xmin,xmax]映射到[0,1]之間。
3.2.3 數(shù)據(jù)特征提取
本節(jié)使用LFKPCA算法對(duì)預(yù)處理后的數(shù)據(jù)集進(jìn)行特征提取去除冗余特征。首先設(shè)置果蠅種群的大小為30,最高迭代次數(shù)為100,開始對(duì)KPCA算法中核參數(shù)c進(jìn)行優(yōu)化。圖2、3分別是LFOA和FOA的優(yōu)化過(guò)程中迭代次數(shù)與適應(yīng)度值之間的關(guān)系圖,從圖中的曲線的變化情況能夠看出,當(dāng)LFOA迭代到40次左右時(shí)達(dá)到了收斂,而FOA則是在迭代到60次左右時(shí)才達(dá)到了收斂,因此LFOA相比于FOA收斂的速度要更快。根據(jù)適應(yīng)度最小值計(jì)算求得核參數(shù)c的最優(yōu)值為0.005。
圖2 LFOA優(yōu)化過(guò)程Fig.2 LFOA optimization process
圖3 FOA優(yōu)化過(guò)程Fig.3 FOA optimization process
用LFKPCA算法對(duì)實(shí)驗(yàn)的數(shù)據(jù)進(jìn)行特征提取,將核參數(shù)設(shè)定為最優(yōu)值。將LFKPCA提取的特征累計(jì)貢獻(xiàn)率設(shè)定為90%,表2為L(zhǎng)FKPCA特征提取后前10個(gè)特征向量的累計(jì)貢獻(xiàn)率。
表2 前10個(gè)特征向量累計(jì)貢獻(xiàn)率Table 2 Cumulative contribution rate of top 10 eigenvectors
根據(jù)表中數(shù)據(jù)可知,經(jīng)過(guò)LFKPCA算法對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行特征提取之后,前9個(gè)特征的累計(jì)貢獻(xiàn)率達(dá)到了93.145 7%超過(guò)了所設(shè)定的閾值90%,符合要求。為了使處理后的數(shù)據(jù)能更好地表示原始數(shù)據(jù),本文選取表2中所列的10個(gè)特征為提取后的數(shù)據(jù)特征。
3.2.4 仿真與實(shí)驗(yàn)結(jié)果分析
本節(jié)對(duì)上述提出的LFKPCA算法和DWELM算法進(jìn)行仿真實(shí)驗(yàn)對(duì)算法的性能進(jìn)行測(cè)試。為了方便評(píng)估算法的泛化能力和檢測(cè)性能,本文使用精確率、準(zhǔn)確率和誤報(bào)率作為評(píng)價(jià)指標(biāo)進(jìn)行度量。
首先,本文選取了主成分分析算法(PCA)、局部線性嵌入算法(LLE)[29]和等距特征映射算法(ISOMAP)[30]三種常用的數(shù)據(jù)降維算法[31]作為對(duì)比算法,與LFKPCA算法進(jìn)行性能對(duì)比。其中PCA算法常用于線性數(shù)據(jù)的降維處理,而LLE算法和ISOMAP算法常用于非線性數(shù)據(jù)的降維處理。實(shí)驗(yàn)使用的是3.2節(jié)抽取的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行了預(yù)處理形成標(biāo)準(zhǔn)化數(shù)據(jù),再分別使用LFKPCA算法、PCA算法、LLE算法和ISOMAP算法對(duì)數(shù)據(jù)進(jìn)行特征提取,將數(shù)據(jù)維度降到10維,最后用DWELM算法進(jìn)行分類識(shí)別。圖4為DWELM分別使用四種不同特征提取算法進(jìn)行分類的準(zhǔn)確度,圖5為四種算法對(duì)數(shù)據(jù)進(jìn)行特征提取時(shí)所需要的時(shí)間。從圖中的數(shù)值對(duì)比可以看出,使用LFKPCA算法對(duì)數(shù)據(jù)進(jìn)行特征提取后再進(jìn)行分類測(cè)試的準(zhǔn)確度遠(yuǎn)高于其他三種算法。而在算法降維所需的運(yùn)行時(shí)間上,LFKPCA只比PCA算法相比高了4.44 s,但和LLE算法、ISOMAP算法相比分別低了8.43 s和11.63 s。因此,綜合準(zhǔn)確率以及所需運(yùn)行時(shí)間而言,LFKPCA算法的性能要優(yōu)于另外三種對(duì)比算法。
圖4 不同特征提取算法的分類準(zhǔn)確度Fig.4 Classification accuracy of different feature extraction algorithms
圖5 不同特征提取算法所用的時(shí)間Fig.5 Time taken by different feature extraction algorithms
其次,本文選取DWELM算法、WELM算法以及ELM算法進(jìn)行對(duì)比實(shí)驗(yàn),測(cè)試DWELM算法的性能。實(shí)驗(yàn)使用3.2節(jié)抽取的數(shù)據(jù),并進(jìn)行數(shù)據(jù)預(yù)處理獲得標(biāo)準(zhǔn)化數(shù)據(jù),再使用LFKPCA算法進(jìn)行特征提取將數(shù)據(jù)降到10維,然后分別使用三種算法進(jìn)行分類實(shí)驗(yàn)。表3為三種算法對(duì)各數(shù)據(jù)類別的精確度,圖6為三種算法的誤報(bào)率。從表3中可以看出,對(duì)于多數(shù)類樣本如Normal、DOS和Probe,三種算法都有較高的精確度,沒(méi)有明顯差距。但是,對(duì)于少數(shù)類樣本尤其是U2R類的樣本,DWELM算法的精確度要遠(yuǎn)高于WELM算法和ELM算法。并且,DWELM算法的誤報(bào)率也低于WELM算法和ELM算法。由此可見(jiàn),DWELM算法與WELM算法和ELM算法相比能夠在保證低誤報(bào)率和多數(shù)類樣本高精確率的情況下,明顯提高少數(shù)類樣本的精確率。
表3 不同算法的精確率Table 3 Accuracy of different algorithms %
圖6 不同算法的誤報(bào)率Fig.6 False positives of different algorithms
根據(jù)上述兩個(gè)對(duì)比實(shí)驗(yàn)可知,基于LFKPCA-DWELM的入侵檢測(cè)算法能夠提高入侵檢測(cè)的效果,為了增強(qiáng)實(shí)驗(yàn)結(jié)果的客觀性,本文選取基于樸素貝葉斯[32]的入侵檢測(cè)算法、基于SVM的入侵檢測(cè)算法、基于ELM的入侵檢測(cè)算法和基于BP神經(jīng)網(wǎng)絡(luò)[33]的入侵檢測(cè)算法進(jìn)行對(duì)比。其中BP神經(jīng)網(wǎng)絡(luò)的輸入層、隱藏層、輸出層的神經(jīng)元個(gè)數(shù)分別設(shè)置為13、10、5,并選取sigmoid函數(shù)作為轉(zhuǎn)移函數(shù)[34]。將ELM的隱藏層節(jié)點(diǎn)數(shù)設(shè)為150,將SVM中的懲罰系數(shù)C設(shè)為1.5,參數(shù)gamma設(shè)為0.1,而樸素貝葉斯的參數(shù)alpha設(shè)置為1。
從表4中可以看出,LFKPCA-DWELM算法相比BP神經(jīng)網(wǎng)絡(luò)、ELM、SVM和Naive_Bayes,誤報(bào)率為最低的3.2%,并且準(zhǔn)確率相比分別提升了2.8個(gè)百分點(diǎn)、8.79個(gè)百分點(diǎn)、4.72個(gè)百分點(diǎn)、25.94個(gè)百分點(diǎn),原因是LFKPCA-DWELM算法有效地提高了少數(shù)類樣本的準(zhǔn)確率從而使整體的準(zhǔn)確率也得到了提升。從精確率和召回率的值上看,LFKPCA-DWELM算法也達(dá)到了五種算法中最好的效果。在分類時(shí)間上,LFKPCA-DWELM算 法 比BP神經(jīng)網(wǎng)絡(luò)、SVM和Naive_Bayes分別快 了6.69 s、9.47 s和0.05 s,而和ELM算法相比慢了0.26 s,原因是LFKPCA-DWELM在訓(xùn)練模型時(shí)需要多計(jì)算一個(gè)加權(quán)矩陣。
表4 不同分類器的性能對(duì)比Table 4 Performance comparison of different classifiers
本文提出了一種基于LFKPCA算法和DWELM算法的入侵檢測(cè)模型,該模型先使用LFKPCA算法對(duì)數(shù)據(jù)集進(jìn)行特征提取,之后再用提取好的特征訓(xùn)練DWELM部分并完成分類測(cè)試。實(shí)驗(yàn)結(jié)果顯示,本文提出的方法與傳統(tǒng)方法相比具有更好的性能,并且能在保證高準(zhǔn)確率和低誤報(bào)率的情況下,提高了對(duì)少數(shù)類樣本的精確率,減少檢測(cè)時(shí)間。