沈焱萍, 伍淳華, 羅 捷, 高方平
(1.防災(zāi)科技學(xué)院信息工程學(xué)院, 北京 101601;2.北京郵電大學(xué)網(wǎng)絡(luò)空間安全學(xué)院, 北京 100876;3.國家知識產(chǎn)權(quán)局專利局專利審查協(xié)作四川中心, 成都 610213)
隨著Wannacry等勒索軟件的爆發(fā),網(wǎng)絡(luò)安全問題越來越受到人們重視. 傳統(tǒng)的網(wǎng)絡(luò)安全防御技術(shù),如防火墻、訪問控制、加密技術(shù)等,難以全面保護(hù)網(wǎng)絡(luò)和系統(tǒng)安全[1-2]. 入侵檢測系統(tǒng)(intrusion detection system,IDS)作為一種積極主動(dòng)的檢測工具一直是學(xué)術(shù)界和工業(yè)界研究的熱點(diǎn).
根據(jù)檢測策略不同,入侵檢測技術(shù)可分為異常檢測、誤用檢測、特征檢測和混合檢測,還可按照基于時(shí)間、數(shù)據(jù)來源、系統(tǒng)部署等對入侵檢測技術(shù)進(jìn)行分類. 入侵檢測常用方法包括基于人工神經(jīng)網(wǎng)絡(luò)、基于模糊系統(tǒng)、基于進(jìn)化計(jì)算、基于人工免疫系統(tǒng)等方法[1]. 目前,國內(nèi)外對基于機(jī)器學(xué)習(xí)方法的入侵檢測技術(shù)研究達(dá)到比較成熟的階段,然而異常檢測仍然遭受低檢測率和高誤報(bào)率的困擾. 值得一提的是,一些機(jī)器學(xué)習(xí)方法必須經(jīng)過優(yōu)化才能發(fā)揮其理想效果. 例如:支持向量機(jī) (support vector machine, SVM)被證明是一種有效的檢測算法,但是它的性能取決于核參數(shù)和懲罰系數(shù)的選取;極限學(xué)習(xí)機(jī) (extreme learning machine, ELM)由于其高速的執(zhí)行效率也受到一些研究者的青睞,但它的性能取決于輸入層權(quán)重、偏置和隱藏層神經(jīng)元個(gè)數(shù)的選取.K-近鄰(K-nearest neighbor, KNN)算法也是應(yīng)用于入侵檢測領(lǐng)域較多的方法. KNN在使用中面臨2個(gè)基本問題:一是距離度量問題;二是參數(shù)K的選取問題. 對于距離度量問題,KNN算法需要計(jì)算測試樣本和每一個(gè)訓(xùn)練樣本間距離,導(dǎo)致算法復(fù)雜度隨樣本數(shù)量線性增加,這給KNN算法在現(xiàn)實(shí)中的應(yīng)用,尤其是處理大數(shù)據(jù)問題帶來挑戰(zhàn). Deng等[3]提出將KNN方法擴(kuò)展至大規(guī)模數(shù)據(jù)問題處理中,提出通過增加訓(xùn)練過程將聚類算法融入到KNN中. 將大量數(shù)據(jù)聚類后,在測試階段只需考慮測試數(shù)據(jù)和聚類后的每組數(shù)據(jù)中心的相似度,不需對每一訓(xùn)練數(shù)據(jù)計(jì)算相似度,節(jié)約了計(jì)算成本. Maillo等[4]利用云平臺技術(shù)解決大數(shù)據(jù)問題帶來的困擾,針對Hadoop MapReduce框架在設(shè)計(jì)可擴(kuò)展機(jī)器學(xué)習(xí)中存在的局限性,提出一種在Apache Spark環(huán)境下實(shí)現(xiàn)的迭代的基于MapReduce的KNN算法. Spark通過使用內(nèi)存原語執(zhí)行分布式計(jì)算的速度更快. 參數(shù)K的選取方法主要包括2種:1) 為所有測試樣本分配固定的專家預(yù)定義的最佳K值;2) 為不同測試樣本分配不同的最佳K值. Zhang等[5]提出一種kTree方法,通過在KNN分類中增加訓(xùn)練階段為不同的測試/新樣本分配不同的最優(yōu)K值.
對于距離度量問題,一般選取歐氏距離作為基本的距離度量,在計(jì)算兩點(diǎn)間距離時(shí),傳統(tǒng)KNN 賦予所有特征相同的權(quán)重,而在多特征問題中,這種做法是不可取的,目前存在一些針對KNN的特征權(quán)重調(diào)整方案[6-10]. Chen等[6]提出基于粒子群優(yōu)化算法的KNN權(quán)重學(xué)習(xí)方法;Tahir等[7]采用禁忌搜索(tabu search, TS)算法進(jìn)行特征選擇的同時(shí)對特征權(quán)重和KNN參數(shù)K進(jìn)行調(diào)整;李峰等[8]提出一種基于互信息的粒化特征加權(quán)多標(biāo)簽分類的KNN學(xué)習(xí)算法,將標(biāo)簽間的相關(guān)性融入到特征權(quán)重系數(shù)的計(jì)算中. 以上研究的均是在通用領(lǐng)域KNN的權(quán)重調(diào)整問題,缺少針對性,而且并沒有體現(xiàn)某種智能啟發(fā)算法的優(yōu)勢. KNN在入侵檢測領(lǐng)域被廣泛使用[9-16]. Su[9]提出一種實(shí)時(shí)異常檢測模型,由于是實(shí)時(shí)檢測,所用特征均是數(shù)據(jù)包頭部信息的簡單抽取,不包含其他統(tǒng)計(jì)信息,這對全方位的攻擊檢測是不可取的;Su等[10]提出基于遺傳算法和KNN的DoS/DDoS入侵檢測模型,根據(jù)特征權(quán)重大小選取排序靠前的特征數(shù)據(jù)做測試. 上述工作[9-10]都是基于遺傳算法的KNN權(quán)重調(diào)整方案進(jìn)行的DoS攻擊檢測,不包含其他種類的攻擊檢測. Aburomman等[11]將SVM模型和KNN模型通過粒子群優(yōu)化算法構(gòu)建集成模型進(jìn)行攻擊檢測;Li等[12]提出一種基于KNN的無線傳感器網(wǎng)絡(luò)的入侵檢測模型;Meng等[13]設(shè)計(jì)了一種基于KNN的智能報(bào)警濾波器,以濾除不必要的報(bào)警;Tsai等[14]和Lin等[15]提出的網(wǎng)絡(luò)特征提取方法,將KNN作為一種典型的入侵檢測模型進(jìn)行分類. 文獻(xiàn)[11-15]只是當(dāng)參數(shù)K取不同值時(shí)對模型進(jìn)行評估,并沒有考慮不同特征權(quán)重對模型結(jié)果的影響. Su[16]提出基于遺傳算法的加權(quán)KNN洪水攻擊的異常檢測分類器,采用聚類方法減少冗余樣本,提高檢測效率. 本文重點(diǎn)研究的是基于智能啟發(fā)算法優(yōu)化特征權(quán)重的KNN入侵檢測模型.
智能啟發(fā)算法對初始條件沒有特殊要求,不需要精確的數(shù)學(xué)模型,對目標(biāo)函數(shù)的可微性也沒有要求,不需要領(lǐng)域先驗(yàn)知識,具有較好的黑盒優(yōu)化能力,在設(shè)計(jì)機(jī)器學(xué)習(xí)算法框架中發(fā)揮重要作用[17-19]. 常見的智能啟發(fā)方法包括遺傳算法 (genetic algorithm, GA)、粒子群優(yōu)化(particle swarm optimization, PSO)算法、差分進(jìn)化(differential evolution, DE)算法等. 無免費(fèi)午餐定理[20]指出:一個(gè)特定的智能啟發(fā)方法可能在一組問題上顯示出較好的結(jié)果,但在另一組問題上可能表現(xiàn)出較差的性能,即所有優(yōu)化方法在眾多應(yīng)用場景中的平均性能是相等的. 因此,研究基于不同優(yōu)化算法優(yōu)化入侵檢測模型具有重要意義.
由于優(yōu)化方法在諸多方案框架中扮演的是輔助角色,大多數(shù)研究者的研究重心往往是主體模型設(shè)計(jì),對于優(yōu)化方案的選取沒有深入研究. 為了探究入侵檢測領(lǐng)域KNN模型優(yōu)化問題,本文提出一種基于局部單峰采樣的元優(yōu)化特征權(quán)重的KNN入侵檢測模型. 元優(yōu)化(meta-optimization)是指使用一種優(yōu)化方案調(diào)整另一種優(yōu)化算法的方法,和它類似的有超啟發(fā)式(hyper-heuristics). 超啟發(fā)式方法采用啟發(fā)式算法驅(qū)動(dòng)其他啟發(fā)式方法,而元優(yōu)化采用各種控制策略(靜態(tài)函數(shù)甚至是啟發(fā)式)對問題進(jìn)行優(yōu)化. 超啟發(fā)式是更具有包容性的元優(yōu)化的一部分[21]. 由于差分進(jìn)化算法的性能嚴(yán)格依賴于算法相關(guān)參數(shù)的選取,所以選用局部單峰采樣方法確定其相關(guān)參數(shù),即本文提出的元優(yōu)化方案. DE算法[22]是由Rainer Store和Kenneth Price于1997年提出的,基本思想是:應(yīng)用種群個(gè)體差異對種群進(jìn)行重組,采用父代和子代競爭方法獲得新的種群. 與遺傳算法相比,該算法待選參數(shù)少,有較強(qiáng)的局部搜索能力,是一種較好的智能啟發(fā)搜索算法. 因此,本文重點(diǎn)研究基于差分進(jìn)化算法的權(quán)重調(diào)整方案,采用一種局部搜索算法來確定差分進(jìn)化算法相關(guān)參數(shù)并使其更精準(zhǔn)地進(jìn)行尋優(yōu)工作. 考慮到無免費(fèi)午餐定理,將該算法和其他常用優(yōu)化算法包括GA、PSO算法和灰狼優(yōu)化(grey wolf optimization,GWO)算法進(jìn)行比較.
KNN算法是一種懶惰式的基于樣本的機(jī)器學(xué)習(xí)算法,由于其理論簡單,易于實(shí)現(xiàn),不用提前訓(xùn)練等優(yōu)點(diǎn),一直是學(xué)者們研究的熱點(diǎn). KNN屬于有監(jiān)督分類技術(shù),不像SVM,可直接解決多分類問題.
在KNN分類過程中,訓(xùn)練數(shù)據(jù)表示為(xi,yi),其中xi=(xi1,xi2,…,xiD)∈RD,xi表示樣本特征空間,yi表示樣本標(biāo)簽,D表示特征維數(shù). 測試樣本所屬類別由其周邊大部分訓(xùn)練樣本所屬類別決定,KNN算法中的K即表示特征空間中測試樣本周邊訓(xùn)練樣本點(diǎn)的個(gè)數(shù),因此,參數(shù)K的選取對KNN算法的分類效果至關(guān)重要. 在評估樣本距離時(shí),用的最多的是歐氏距離
(1)
在實(shí)際應(yīng)用中,當(dāng)測量樣本間相似度度量時(shí),不同特征的重要性往往是不同的,可以通過給每一維特征賦予一定權(quán)重來表示該特征的重要性,因此,樣本間歐氏距離可表示為
(2)
式中:wk表示第k個(gè)特征的特征權(quán)重;dF(xi,xj)表示在不同的特征權(quán)重下樣本xi和xj間的歐氏距離.
DE算法主要應(yīng)用于連續(xù)數(shù)據(jù)的優(yōu)化問題,包括個(gè)體的變異、交叉和選擇等過程,基本步驟如下.
步驟2對種群中的每個(gè)個(gè)體,隨機(jī)生成多個(gè)互不相同的整數(shù),按任意一種變異策略生成變異個(gè)體,F(xiàn)為變異因子,r1,r2,r3,r4,r5∈{1,2,…,N},表示隨機(jī)生成的整數(shù),Vi,G表示變異個(gè)體,i表示當(dāng)前種群個(gè)體序號. 6種變異策略[23]如下:
·DE/Rand/1
Vi,G=Xr1,G+F(Xr2,G-Xr3,G)
(3)
·DE/Best/1
Vi,G=Xbest,G+F(Xr1,G-Xr2,G)
(4)
·DE/RandToBest/1
Vi,G=Xi,G+F(Xbest,G-Xi,G)+
F(Xr1,G-Xr2,G)
(5)
·DE/Rand/2
Vi,G=Xr1,G+F(Xr2,G-Xr3,G)+
F(Xr4,G-Xr5,G)
(6)
·DE/Best/2
Vi,G=Xbest,G+F(Xr1,G-Xr2,G)+
F(Xr3,G-Xr4,G)
(7)
·DE/RandToBest/2
Vi,G=Xi,G+F(Xbest,G-Xi,G)+F(Xr1,G-Xr2,G)+
F(Xr3,G-Xr4,G)
(8)
步驟3變異產(chǎn)生的個(gè)體與目標(biāo)個(gè)體按
(9)
步驟4如果上一步產(chǎn)生的個(gè)體適應(yīng)度優(yōu)于目標(biāo)個(gè)體適應(yīng)度,則用試驗(yàn)個(gè)體取代目標(biāo)個(gè)體形成下一代[22]
(10)
步驟5重復(fù)執(zhí)行步驟2~4,直到達(dá)到最大迭代次數(shù),輸出最終最優(yōu)位置和適應(yīng)值.
局部單峰采樣(local unimodal sampling, LUS)[24]不需要計(jì)算導(dǎo)數(shù)和梯度,是一種有效的局部搜索算法.
基本思想是在一定范圍內(nèi)對參數(shù)進(jìn)行隨機(jī)采樣,不斷減少參數(shù)取值范圍d直到達(dá)到最優(yōu)解. 采樣范圍最初覆蓋整個(gè)搜索空間,隨著迭代的增加呈指數(shù)級下降. LUS特別適用于只能執(zhí)行短期運(yùn)行的優(yōu)化問題. 初始搜索范圍由上限bup和下限blow決定.s=(s1,s2,…,sn)表示最優(yōu)解,其中n為優(yōu)化參數(shù)個(gè)數(shù).s更新方式為
snew=s+a
(11)
式中a是搜索范圍內(nèi)均勻分布的隨機(jī)向量. 搜索范圍更新為
d=qd
(12)
式中減少因子q定義為
(13)
式中β為用戶自定義參數(shù).
Meta-DE-KNN入侵檢測模型整體框架如圖1所示. 采用智能啟發(fā)算法DE對KNN權(quán)重進(jìn)行調(diào)整,如圖1內(nèi)部2層所示. DE算法性能受到變異因子等參數(shù)的影響,盡管可以通過反復(fù)實(shí)驗(yàn)進(jìn)行確定,但通過添加一層優(yōu)化選擇參數(shù)會(huì)更有效. 因此,采用基于LUS的元優(yōu)化方法確定DE算法相關(guān)參數(shù),即圖1外層所示. DE算法的重要參數(shù)包括變異因子和交叉概率因子,變異因子設(shè)置為某一區(qū)間的隨機(jī)數(shù),交叉概率因子由LUS確定. LUS不需要評估梯度,使用抽樣方法通過迭代逐步調(diào)整搜索范圍來尋找最佳參數(shù).
整體框架如圖2所示,一部分?jǐn)?shù)據(jù)用來做訓(xùn)練,通過輸入優(yōu)化框架尋找最佳權(quán)重;另一部分用來做測試,應(yīng)用優(yōu)化框架輸出的特征權(quán)重基于KNN做最終的預(yù)測. 從根本上來說,基于DE優(yōu)化的特征權(quán)重是模型核心部分,以下是基于已知優(yōu)化參數(shù)的DE算法設(shè)計(jì),包括種群個(gè)體表示和適應(yīng)度函數(shù)定義.
1) 種群個(gè)體表示
種群個(gè)體由1×D的行向量表示,其中D表示特征維數(shù). 向量中的每一維表示特征權(quán)重,由[0,1]范圍內(nèi)的隨機(jī)數(shù)表示,數(shù)值越大表示該特征對分類貢獻(xiàn)越大,數(shù)值越小表示該特征對分類影響較小甚至無影響.
2) 適應(yīng)度函數(shù)定義
差分進(jìn)化算法是在適應(yīng)度函數(shù)的指引下不斷地搜索迭代,最終輸出最優(yōu)解,適應(yīng)度函數(shù)直接影響最優(yōu)解的質(zhì)量. 適應(yīng)度函數(shù)的定義由入侵檢測模型算法評估參數(shù)決定.
Meta-DE優(yōu)化偽代碼見算法1,LUS并不直接生成權(quán)重,相反,它通過優(yōu)化DE參數(shù)基于DE間接生成權(quán)重,因此,LUS和DE適應(yīng)度函數(shù)相同.
算法1Meta-DE優(yōu)化算法
輸入:迭代次數(shù)NoIter1、減少因子q、參數(shù)β;
輸出:交叉概率因子和特征權(quán)重;
初始化: NoIter1,q,β,m;
1. fit = DE (m, train_data, test_data);
2. while iter < NoIter1
3. 在搜索范圍內(nèi)采樣新的參數(shù),按式(11)更新;
4. if newFit>fit
5. 更新參數(shù)和適應(yīng)值;
6. Else
7. 按式(12)更新d
8. iter++;
9. end
本文使用標(biāo)準(zhǔn)評估參數(shù)評估該模型,應(yīng)用混淆矩陣得出模型評估參數(shù),混淆矩陣如表1所示. 其中,TP表示攻擊樣本被正確分類的實(shí)例數(shù);FP表示正常樣本被判斷為攻擊樣本的實(shí)例數(shù);FN表示攻擊樣本被判斷為正常樣本的實(shí)例數(shù);TN表示正常樣本被正確分類的實(shí)例數(shù).
模型評估參數(shù)包括檢測率DR、誤報(bào)率FPR和準(zhǔn)確率Acc,定義[25]如下:
(14)
(15)
(16)
在訓(xùn)練階段,驗(yàn)證集上的準(zhǔn)確率決定目標(biāo)參數(shù)的優(yōu)劣,適應(yīng)度函數(shù)定義為
(17)
表1 入侵檢測中的混淆矩陣
3) 算法流程
本文所用數(shù)據(jù)集分為訓(xùn)練集、驗(yàn)證集和測試集. 訓(xùn)練集和驗(yàn)證集用來獲取最佳特征權(quán)重,測試集用來進(jìn)行最后的測試. 算法首先初始化種群,根據(jù)特征權(quán)重初始化個(gè)體位置. 其次根據(jù)個(gè)體位置初始化適應(yīng)度函數(shù),并得到最優(yōu)個(gè)體適應(yīng)度值. 然后進(jìn)入差分進(jìn)化算法種群迭代的主體循環(huán)部分,由雙層循環(huán)表示,外層循環(huán)表示迭代次數(shù),內(nèi)層循環(huán)表示種群規(guī)模. 在適應(yīng)度函數(shù)的指引下,種群中的個(gè)體選擇式(3)~(8)中任意一種進(jìn)行變異操作,根據(jù)式(9)~(10)進(jìn)行交叉和選擇操作,當(dāng)滿足一定迭代次數(shù)即訓(xùn)練結(jié)束后搜索到種群最優(yōu)位置,輸出種群最優(yōu)解,主體循環(huán)部分結(jié)束. 最后,根據(jù)獲得的最優(yōu)特征權(quán)重在測試集上測試從而得到最終實(shí)驗(yàn)結(jié)果. DE-KNN算法的偽代碼見算法2,算法流程如圖3所示.
算法2DE-KNN算法
輸入:訓(xùn)練集、最近鄰參數(shù)K、允許的迭代次數(shù)NoIter2、變異因子F、交叉概率因子CR、種群數(shù)量pop;
輸出:混淆矩陣、準(zhǔn)確率、檢測率和誤報(bào)率等;
0.初始化: pop, NoIter2,F(xiàn), CR;K;
1.初始化種群;
2.根據(jù)適應(yīng)值選出最佳個(gè)體bestSol;
3.While iter < NoIter2
4. fori=1 : pop
5. 按式(3)~(8)選擇任意策略進(jìn)行變異操作;
6. 按式(9)進(jìn)行交叉操作;
7. 根據(jù)式(10)進(jìn)行選擇;
8. NewSol.Cost = KNN(K, NewSol.Position, train_data, validate_data);
9. if NewSol.Cost > pop(i).Cost
10. pop(i) = NewSol;
11. if pop(i).Cost > bestSol.Cost
12. bestSol = pop(i);
13. end
14. end
15.i++;
16. end
17. bestCost(iter) = bestSol.Cost;
18. iter++;
19.End
20.bestfit = max(bestCost);
21.bestWeight = bestSol.Position;
22. fit=KNN(K, bestWeight, train_data, test_data);
KNN算法復(fù)雜度由訓(xùn)練樣本個(gè)數(shù)決定,可表示為O(N),N為訓(xùn)練樣本個(gè)數(shù). 差分進(jìn)化算法屬于黑盒優(yōu)化算法,算法迭代過程有其自身固定的操作環(huán)節(jié),算法復(fù)雜度主要由適應(yīng)度函數(shù)決定. 基于DE的KNN優(yōu)化模型的算法復(fù)雜度為O(N)×m×NoIter2,其中:m表示種群規(guī)模;NoIter2為迭代次數(shù). 假設(shè)LUS迭代次數(shù)為NoIter1,則算法整體復(fù)雜度為O(N)×m×NoIter2×NoIter1.
當(dāng)前深度學(xué)習(xí)網(wǎng)絡(luò)盛行,在圖像分析和語音識別方面獲得巨大突破. 值得一提的是,參數(shù)選取是深度學(xué)習(xí)算法面臨的重要問題,然而采用智能啟發(fā)算法對其進(jìn)行優(yōu)化,雖然在理論上是可行的,但是由于深度學(xué)習(xí)模型的復(fù)雜度和智能啟發(fā)算法的迭代特性,采用智能啟發(fā)算法對其進(jìn)行優(yōu)化的復(fù)雜度將大大增加. 在本文中,KNN屬于淺層簡單機(jī)器學(xué)習(xí)算法,算法復(fù)雜度由訓(xùn)練樣本個(gè)數(shù)決定,而且LUS適用于短期迭代優(yōu)化問題,因此,選用LUS結(jié)合差分進(jìn)化算法對KNN模型進(jìn)行優(yōu)化是可行的.
本文選用NSL[26]入侵檢測數(shù)據(jù)集,NSL數(shù)據(jù)集是由KDD99數(shù)據(jù)集演變而來的,針對KDD99中存在大量重復(fù)記錄對分類器性能產(chǎn)生的影響,NSL數(shù)據(jù)集去除了KDD99中存在的重復(fù)記錄,與KDD99相比,對分類器性能有更嚴(yán)格的要求. KDD99和NSL有5種類別樣本,包含正常數(shù)據(jù)Normal和攻擊數(shù)據(jù). 攻擊數(shù)據(jù)分為4類:Probe、DoS、U2R和R2L,每條數(shù)據(jù)包含傳輸控制協(xié)議(transmission control protocol,TCP)連接基本特征和網(wǎng)絡(luò)流量統(tǒng)計(jì)特征. 本文所用數(shù)據(jù)從原始訓(xùn)練數(shù)據(jù)隨機(jī)抽樣得到,并隨機(jī)分為三部分.T1、T2和T3分別為訓(xùn)練集、驗(yàn)證集和測試集,其中樣本類別分布基本遵循原數(shù)據(jù)集,樣本條數(shù)分別為4 018、4 017和4 017. 在算法實(shí)施前,數(shù)據(jù)均做了歸一化處理.
對于迭代次數(shù)和種群數(shù)量的選取需保證算法收斂. DE參數(shù)設(shè)置如下: 最大迭代次數(shù)NoIter=120; 群體數(shù)目pop=40; 變異因子F是[0.2,0.8]范圍內(nèi)的隨機(jī)數(shù);采用局部單峰采樣優(yōu)化的變量主要是交叉概率因子,數(shù)值取0.2. 實(shí)驗(yàn)平臺部署環(huán)境為Windows操作系統(tǒng),主頻2.4 GHz,32 GB內(nèi)存,所有實(shí)驗(yàn)均在matlabR2012a平臺實(shí)現(xiàn)并運(yùn)行.
參數(shù)K的選取直接影響KNN的檢測結(jié)果,表2~4分別給出了K=1,3,5時(shí)基本KNN和6種變異策略下的Meta-DE-KNN在NSL數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果. 所有數(shù)據(jù)均為10次隨機(jī)抽取數(shù)據(jù)的平均值. 最佳實(shí)驗(yàn)結(jié)果以黑體顯示.
表2 K=1時(shí)KNN、Meta-DE-KNN的實(shí)驗(yàn)結(jié)果
表3 K=3時(shí)KNN、Meta-DE-KNN的實(shí)驗(yàn)結(jié)果
表4 K=5時(shí)KNN、Meta-DE-KNN的實(shí)驗(yàn)結(jié)果
由表2~4可知,不管K取1、3或5,基于Meta-DE優(yōu)化的KNN檢測模型均優(yōu)于傳統(tǒng)的KNN模型. 其中當(dāng)K=1時(shí),Meta-DE-KNN(randTobest/2)的效果最好,如表2加粗字體所示;當(dāng)K=3時(shí),Meta-DE-KNN(randTobest/2)的準(zhǔn)確率最高為97.91%;當(dāng)K=5時(shí),Meta-DE-KNN(rand/2)的準(zhǔn)確率和檢測率最高,分別為97.73%和98.12%. 綜上,當(dāng)K=1時(shí),Meta-DE-KNN的效果最佳,其中變異策略為randTobest/2時(shí),準(zhǔn)確率、檢測率和誤報(bào)率最理想,以下均采取此參數(shù)K和變異策略進(jìn)行實(shí)驗(yàn).
無免費(fèi)午餐定理不僅適用于眾多機(jī)器學(xué)習(xí)分類算法,對于優(yōu)化算法同樣適用. 如今存在大量啟發(fā)優(yōu)化算法,而且還有其他智能啟發(fā)算法不斷被提出,由無免費(fèi)午餐定理可知,研究針對某領(lǐng)域的最佳優(yōu)化算法具有重要意義. 因此,本節(jié)研究基于KNN特征權(quán)重優(yōu)化的最佳智能優(yōu)化算法.
因?yàn)榇嬖谝恍┗贕A的KNN權(quán)重調(diào)整方案進(jìn)行的DoS攻擊檢測,所以本節(jié)將基于GA和DE對KNN優(yōu)化并進(jìn)行比較. 另外,PSO作為啟發(fā)智能算法應(yīng)用最多的一種,本節(jié)也將考慮基于PSO的KNN權(quán)重調(diào)整方案,同時(shí)GWO算法[27]作為一種新的群智能搜索算法也被考慮進(jìn)來. 因此,4種優(yōu)化方案迭代過程如圖4所示. 其中藍(lán)色、紅色、綠色和黃色曲線分別表示基于Meta-DE、GA、PSO和GWO優(yōu)化算法的迭代過程. 在初始階段,GA在短時(shí)間內(nèi)獲得比DE更好的適應(yīng)值,但是隨著迭代次數(shù)的增加,基于Meta-DE優(yōu)化的KNN模型準(zhǔn)確率超過基于GA的KNN模型,直到達(dá)到算法終止條件,基于Meta-DE的優(yōu)化模型達(dá)到最優(yōu)并保持穩(wěn)定. 圖4表明PSO相比Meta-DE和GA有更快的收斂速度,在迭代次數(shù)小于10時(shí)就已經(jīng)達(dá)到一定的優(yōu)化能力,但是相比Meta-DE算法,在后期不易跳出局部極值點(diǎn). GWO算法與PSO算法的迭代過程類似,收斂速度較快,但在求解精度上不如PSO算法. 綜上,和其他3種優(yōu)化算法相比,Meta-DE算法不僅具有一定的收斂速度而且在變異策略randTobest/2的指引下易于跳出局部極值,有更強(qiáng)的全局搜索能力.
其次,KNN、GA-KNN、PSO-KNN、Meta-DE-KNN算法和GWO-KNN算法對各類樣本檢測準(zhǔn)確率的比較如圖5所示. 總體來看,基于權(quán)重優(yōu)化的KNN性能優(yōu)于原始模型. 與原始模型相比,GA-KNN對于U2R類型提升比較明顯,對于R2L和原算法持平;與GA-KNN、PSO-KNN和GWO-KNN相比,Meta-DE-KNN除了對于U2R沒有明顯改進(jìn),對于其他類型的檢測率均有所提升.
將Meta-DE-KNN入侵檢測模型和現(xiàn)有文獻(xiàn)模型進(jìn)行比較,包括SVM、ELM、RandomForest (RF)和J48算法在準(zhǔn)確率、檢測率、誤報(bào)率三方面的比較. 實(shí)驗(yàn)結(jié)果表明,基于Meta-DE的優(yōu)化模型和其他算法相比,性能得到了改善,準(zhǔn)確率和檢測率得到提升. 其中,RF為多棵決策樹的集成,其準(zhǔn)確率和誤報(bào)率略優(yōu)于Meta-DE-KNN,Meta-DE-KNN的檢測率優(yōu)于RF算法. 表5表明,經(jīng)過Meta-DE優(yōu)化的KNN具有一定優(yōu)勢,應(yīng)用于入侵檢測是可行的.
表5 仿真實(shí)驗(yàn)結(jié)果對比
1) 入侵檢測作為網(wǎng)絡(luò)安全的一項(xiàng)重要技術(shù),一直是國內(nèi)外學(xué)者研究的熱點(diǎn),基于KNN的機(jī)器學(xué)習(xí)技術(shù)是重要的入侵檢測方法. 本文針對基于KNN算法的入侵檢測模型檢測率低和誤報(bào)率高的問題, 提出一種元優(yōu)化模型優(yōu)化特征權(quán)重問題. 實(shí)驗(yàn)結(jié)果表明,該方法可有效確定相關(guān)算法參數(shù)并搜索出合適的特征權(quán)重,與未進(jìn)行特征權(quán)重優(yōu)化算法相比能獲得較好的分類精度并淘汰冗余或無關(guān)的特征.
2) 與其他常用智能啟發(fā)算法優(yōu)化KNN模型進(jìn)行比較,實(shí)驗(yàn)結(jié)果在準(zhǔn)確率、檢測率和誤報(bào)率方面都有所改善,與現(xiàn)有的機(jī)器學(xué)習(xí)算法相比也具有一定優(yōu)勢.
3) 如何提高KNN算法執(zhí)行效率是下一步需要進(jìn)行的工作,研究DE算法本身的優(yōu)化,例如:借助其他優(yōu)化策略提高DE算法的收斂性和精度,也是下一步要考慮的問題.