汪 杰,汪祖民
(大連大學(xué) 信息工程學(xué)院,遼寧 大連 116622)
近年來(lái),智能群優(yōu)化算法被廣泛應(yīng)用于機(jī)器學(xué)習(xí)用來(lái)解決各種場(chǎng)景的入侵檢測(cè)[1]。為提高入侵檢測(cè)性能,文獻(xiàn)[2]將改進(jìn)灰狼優(yōu)化算法應(yīng)用于BP神經(jīng)網(wǎng)絡(luò)。文獻(xiàn)[3]提出一種基于隨機(jī)森林和人工免疫的入侵檢測(cè)算法,并構(gòu)建了抗體森林的模型。文獻(xiàn)[4]在鯨魚(yú)算法中引入自適應(yīng)步長(zhǎng)和擁擠度因子以及高斯變異算子,并將改進(jìn)后的優(yōu)化算法對(duì)支持向量機(jī)算法的參數(shù)進(jìn)行尋優(yōu)。文獻(xiàn)[5]將人工蜂群算法用于特征提取,并利用XGBoost算法對(duì)需要評(píng)價(jià)的特征進(jìn)行分類。文獻(xiàn)[6]提出一種并行技術(shù)改進(jìn)支持向量機(jī)算法在大規(guī)模數(shù)據(jù)下訓(xùn)練速度慢的問(wèn)題,并融合改進(jìn)后的布谷鳥(niǎo)搜索算法設(shè)計(jì)了工控入侵測(cè)模型。
綜上所述,機(jī)器學(xué)習(xí)算法在入侵檢測(cè)的研究中十分常見(jiàn)。但是部分機(jī)器學(xué)習(xí)算法本身的性能不足,如文獻(xiàn)[7]實(shí)驗(yàn)證明同其它機(jī)器學(xué)習(xí)算法比較,XGBoost在各種入侵檢測(cè)中表現(xiàn)更為優(yōu)異。同時(shí)由于大部分尋優(yōu)算法收斂速度慢,易陷入局部最優(yōu)解,因此本文提出利用改進(jìn)被囊群算法對(duì)XGBoost算法的參數(shù)和數(shù)據(jù)集特征數(shù)量進(jìn)行尋優(yōu),提高入侵檢測(cè)性能。仿真結(jié)果表明,相比于其它機(jī)器學(xué)習(xí)算法,該入侵檢測(cè)模型的性能更好。
被囊群優(yōu)化算法(tunicate swarm algorithm,TSA)[8]是由Kaur等提出的一種元啟發(fā)式算法,其性能在74個(gè)基準(zhǔn)問(wèn)題中得到了有效證明。其數(shù)學(xué)模型如下。
1.1.1 避免搜索個(gè)體間沖突
為了避免搜索個(gè)體間的沖突,使用向量A來(lái)計(jì)算新的個(gè)體位置
(1)
式中:G表示重力
G=C1+C2-2·C3
(2)
M表示各個(gè)體間的社會(huì)力量
(3)
C1,C2,C3都是屬于[0,1]的隨機(jī)數(shù),Pmax和Pmin分別是社會(huì)力量的初始速度和從屬速度,上述公式有助于個(gè)體在給定的搜素空間中隨意移動(dòng),并避免不同搜索個(gè)體之間的沖突。
1.1.2 向最佳搜索個(gè)體移動(dòng)
個(gè)體在避免群體間沖突后向當(dāng)前最佳搜索個(gè)體的位置移動(dòng),由以下公式計(jì)算個(gè)體與最佳搜索個(gè)體間的距離
PD=Pbest-r·P(x)
(4)
式中:P(x) 表示第x次迭代時(shí)被囊群個(gè)體的位置,r是屬于[0,1]的隨機(jī)數(shù),Pbest為當(dāng)前最佳搜索個(gè)體的位置。
1.1.3 向最佳搜索代理匯聚
當(dāng)每個(gè)個(gè)體求得自身在當(dāng)前迭代與最佳個(gè)體間的距離后,個(gè)體開(kāi)始向當(dāng)前迭代中的最佳個(gè)體位置匯聚
(5)
TSA通過(guò)整合當(dāng)前個(gè)體的位置和上一次迭代個(gè)體的位置,來(lái)模擬被囊群的群體行為,其數(shù)學(xué)公式定義如下
(6)
基本被囊群算法的初始位置是隨機(jī)生成的,所以種群的初始位置在空間中分布不均勻,會(huì)降低種群的多樣性并影響收斂速度。因此本文提出采用混沌映射[9]來(lái)初始化種群,相比于另一種常用的logistic混沌映射,Tent混沌映射具有更好的遍歷性,能夠在[0,1]之間產(chǎn)生分布較均勻的初始值。因此基于Tent映射的TSA具有更好的種群多樣性和收斂速度。
Tent映射的表達(dá)式如下
(7)
式中:i=1,2,3…,P為種群規(guī)模,n=1,2,3…,D表示當(dāng)前求解問(wèn)題的維度。
通過(guò)式(7)可以得到P×D個(gè)混沌序列,再將其代入式(8)初始化種群位置
(8)
式中:ub代表個(gè)體位置的最大邊界值,lb代表個(gè)體位置的最小邊界值。
在標(biāo)準(zhǔn)被囊群算法中,算法的探索和開(kāi)發(fā)能力主要受到群體行為的影響,而式(6)中的參數(shù)C1影響著群體行為的步長(zhǎng)。當(dāng)C1越小時(shí),步長(zhǎng)越大,有利于算法的全局探索能力;當(dāng)C1越大時(shí),步長(zhǎng)越小,有利于算法的局部探索能力。而算法在迭代前期,需要更強(qiáng)的全局探索能力,幫助算法跳出局部最優(yōu)解;而在迭代后期,則需要更強(qiáng)的局部探索能力,幫助算法獲得更高的求解精度,綜上所述,C1的值應(yīng)該隨著迭代次數(shù)的增加而逐漸增大。由于標(biāo)準(zhǔn)算法中的C1是[0,1]之間的隨機(jī)數(shù),所以在群體位置更新時(shí),容易產(chǎn)生盲目性,使算法難以獲得更快的收斂和更高的精度。
針對(duì)以上問(wèn)題,本文將C1由如下公式代替
(9)
式中:t是當(dāng)前迭代次數(shù),Tmax代表最大迭代次數(shù),ω是一個(gè)慣性權(quán)重,它隨著迭代次數(shù)的增加而自適應(yīng)地減小。將式(9)代入式(6)更新為
(10)
被囊群中個(gè)體的移動(dòng)主要是依靠最優(yōu)個(gè)體的位置信息進(jìn)行移動(dòng),其中式(1)中的向量A決定了個(gè)體的更新距離,其值更是由多個(gè)范圍為[0,1]的隨機(jī)數(shù)決定,這大大降低了個(gè)體移動(dòng)的多樣性。當(dāng)最優(yōu)個(gè)體陷入局部最優(yōu)解時(shí),被囊群中的其它個(gè)體在向最優(yōu)個(gè)體移動(dòng)時(shí),很難再搜索到全局最優(yōu)解,因此本文提出利用萊維飛行[10]來(lái)增強(qiáng)個(gè)體向當(dāng)前最優(yōu)位置移動(dòng)時(shí)的路徑擾動(dòng),以此幫助算法更好的跳出局部最優(yōu)解,改進(jìn)公式如下
(11)
(12)
PLevy(x)=P(x)+ω·s·(Pbest-P(x))
(13)
上述改進(jìn)后的被囊群優(yōu)化算法(improved tunicate swarm algorithm,ITSA)的算法流程如下:
步驟1 種群個(gè)體的初始化位置由Tent混沌映射決定。
步驟2 初始化算法的各個(gè)參數(shù)。
步驟3 計(jì)算所有個(gè)體的適應(yīng)度值,此時(shí)最優(yōu)解的值就是當(dāng)前最優(yōu)個(gè)體的值。
步驟4 根據(jù)式(1)到式(5)進(jìn)行個(gè)體位置更新。
步驟5 根據(jù)式(13)利用萊維飛行策略對(duì)每個(gè)個(gè)體施加擾動(dòng),其中個(gè)體移動(dòng)步長(zhǎng)由自適應(yīng)步長(zhǎng)式(9)得出。
步驟6 根據(jù)式(10)進(jìn)行群體位置更新,其中個(gè)體移動(dòng)步長(zhǎng)由自適應(yīng)步長(zhǎng)式(9)得出。
步驟7 檢測(cè)每個(gè)個(gè)體的位置是否超出邊界,并調(diào)整超出邊界的個(gè)體位置。
步驟8 計(jì)算個(gè)體經(jīng)過(guò)群體行為后的適應(yīng)度值和經(jīng)過(guò)萊維飛行擾動(dòng)后的適應(yīng)度值,將兩者中的最佳適應(yīng)度值作為當(dāng)前最優(yōu)解。
步驟9 算法滿足停止條件則停止,否則重復(fù)步驟4~步驟8。
步驟10 返回最優(yōu)解。
XGBoost是機(jī)器學(xué)習(xí)中梯度提升樹(shù)的高效實(shí)現(xiàn),XGBoost中有許多的參數(shù)難以整定,同時(shí)不同數(shù)量的特征選擇對(duì)檢測(cè)精度有較大的影響,本文主要利用ITSA算法對(duì)選取的部分XGBoost參數(shù)和特征數(shù)量進(jìn)行尋優(yōu)。尋優(yōu)的參數(shù)及范圍見(jiàn)表1。
表1 參數(shù)選取
表2中max_feature代表數(shù)據(jù)集可選取的最大特征數(shù)量。
表2 12個(gè)測(cè)試函數(shù)
利用ITSA對(duì)XGBoost參數(shù)和特征數(shù)量尋優(yōu)的具體流程如下:
步驟1 刪去入侵檢測(cè)訓(xùn)練集和測(cè)試集中的重復(fù)數(shù)據(jù),對(duì)離散數(shù)據(jù)特征進(jìn)行映射,將離散特征轉(zhuǎn)化為數(shù)字型特征,對(duì)數(shù)據(jù)集進(jìn)行歸一化處理。
步驟2 通過(guò)遞歸式特征消除(recursive feature elimination,RFE)[12]對(duì)特征進(jìn)行排序,將XGBoost作為迭代分類器,得到排序后的特征。
步驟3 利用ITSA算法對(duì)XGBoost參數(shù)和特征數(shù)量進(jìn)行尋優(yōu),將在訓(xùn)練集中訓(xùn)練好的XGBoost模型用來(lái)對(duì)測(cè)試集進(jìn)行預(yù)測(cè),并把測(cè)試集的準(zhǔn)確度作為適應(yīng)度值返回,在達(dá)到最大迭代次數(shù)前,找到使測(cè)試集準(zhǔn)確度最高的參數(shù)及特征數(shù)量。
步驟4 輸出對(duì)XGBoost模型尋得最優(yōu)解后的測(cè)試集分類結(jié)果。
ITSA-XGBoost入侵檢測(cè)模型流程如圖1所示。
圖1 ITSA-XGBoost入侵檢測(cè)模型
實(shí)驗(yàn)硬件采用Intel(R) Core(TM) i5-10400H CPU+GeForece GTX 1660Ti+16 GB內(nèi)存;軟件環(huán)境,在ITSA性能測(cè)試中采用MATLAB R2022a,在ITSA-XGBoost入侵檢測(cè)實(shí)驗(yàn)中采用Python 3.9.5。
在本文中,被囊群算法的參數(shù)設(shè)置見(jiàn)表1,其中種群數(shù)量pop為50,最大迭代次數(shù)Max_iter為500,同時(shí)為了驗(yàn)證ITSA的算法性能,本文將灰狼優(yōu)化算法(grey wolf optimizer,GWO)[13]、海鷗優(yōu)化算法(seagull optimization algorithm,SOA)[14]、TSA和ITSA作對(duì)比。本文采用12個(gè)測(cè)試函數(shù)檢驗(yàn)ITSA的尋優(yōu)能力,其中F1~F4為多維單峰函數(shù),F(xiàn)5~F8為多維多峰函數(shù),F(xiàn)9~F12為固定維度函數(shù)。上述12個(gè)測(cè)試函數(shù)表達(dá)式見(jiàn)表2。收斂曲線如圖2所示。
圖2 各算法在12個(gè)函數(shù)上的收斂曲線對(duì)比
如圖2所示,在尋找最優(yōu)解方面,ITSA在多維單峰函數(shù)上提升較大,而在多維多峰函數(shù)和固定維度函數(shù)上相較于TSA也有不小的提升。在收斂速度方面,ITSA在不同函數(shù)上的表現(xiàn)都很好。因此實(shí)驗(yàn)驗(yàn)證利用Tent混沌映射、自適應(yīng)步長(zhǎng)和萊維飛行能夠使算法提高收斂速度,同時(shí)在算法迭代后期擁有跳出局部最優(yōu)解的能力。
4.3.1 入侵檢測(cè)數(shù)據(jù)集
本文采用由澳大利亞網(wǎng)絡(luò)安全中心在2015年創(chuàng)建的UNSW-NB15[15]數(shù)據(jù)集對(duì)模型進(jìn)行性能測(cè)試。該數(shù)據(jù)集中共有257 673條樣本,其中175 341條訓(xùn)練集樣本,82 332條測(cè)試集樣本。但是其中有相當(dāng)多的重復(fù)樣本,在將無(wú)用的“id”列剔除后,刪除重復(fù)樣本,此時(shí)數(shù)據(jù)集的樣本數(shù)量與分布見(jiàn)表3。
表3 UNSW-NB15的訓(xùn)練集和測(cè)試集
如表3所示,除Normal類為正常網(wǎng)絡(luò)行為,剩余9類均為攻擊行為。
4.3.2 實(shí)驗(yàn)基本設(shè)置
為測(cè)試ITSA-XGBoost模型的性能,將ITSA算法與TSA算法中的種群數(shù)量設(shè)為50,迭代次數(shù)設(shè)為100。對(duì)于UNSW-NB15數(shù)據(jù)集,在將“l(fā)abel”和“attack_cat”列抽離后,對(duì)離散數(shù)據(jù)特征進(jìn)行映射,將離散特征進(jìn)行Label-Encoder編碼轉(zhuǎn)化為數(shù)字型特征后,對(duì)數(shù)據(jù)集所有列進(jìn)行歸一化處理,最后利用RFE對(duì)特征進(jìn)行排序,得到排序后的42個(gè)特征值供ITSA-XGBoost模型進(jìn)行特征尋優(yōu)。
4.3.3 評(píng)估指標(biāo)
模型評(píng)價(jià)標(biāo)準(zhǔn)定義請(qǐng)參考文獻(xiàn)[16],定義如下:
準(zhǔn)確率(Accuracy,Acc)
(14)
精確率(Precision,Pre)
(15)
召回率(Recall)
(16)
F1-Score
(17)
AUC(area under curve)是ROC(receiver operating characteristic)曲線下的面積,定義如下
(18)
上述公式中,TP(true positive)是正確分類到正常網(wǎng)絡(luò)行為的樣本數(shù),TN(true negative)是正確分類到攻擊行為的樣本數(shù),F(xiàn)P(false positive)是將攻擊行為錯(cuò)誤分類為正常網(wǎng)絡(luò)行為的樣本數(shù),F(xiàn)N(false negative)是將正常網(wǎng)絡(luò)行為錯(cuò)誤分類為攻擊行為的樣本數(shù)。
4.3.4 ITSA優(yōu)化XGBoost效果分析
為測(cè)試ITSA-XGBoost模型在參數(shù)尋優(yōu)上的優(yōu)越性,將其與TSA-XGBoost模型進(jìn)行比較。設(shè)置TSA和ITSA算法的種群數(shù)量為50,最大迭代次數(shù)為100。兩種模型在UNSW-NB15數(shù)據(jù)集上的準(zhǔn)確率和ROC曲線如圖3所示。
圖3 TSA和ITSA結(jié)合XGBoost算法性能對(duì)比
如圖3所示,在準(zhǔn)確率對(duì)比曲線中,ITSA-XGBoost模型在收斂速度和準(zhǔn)確率上均優(yōu)于TSA-XGBoost模型,且ITSA-XGBoost模型不易陷入早熟收斂,在迭代后期依舊有跳出局部最優(yōu)解的能力。在ROC曲線中,ITSA-XGBoost模型的AUC值為0.9039,而TSA-XGBoost模型的AUC值為0.8545,這表明ITSA-XGBoost模型獲得了更高的真正率和更低的假正率。綜上,ITSA-XGBoost模型在參數(shù)尋優(yōu)上優(yōu)于TSA-XGBoost模型。
4.3.5 ITSA-XGBoost模型二分類和多分類性能對(duì)比
為體現(xiàn)ITSA-XGBoost模型的性能,本文選取了文獻(xiàn)[17]中的人工神經(jīng)網(wǎng)絡(luò)算法(artificial neural network,ANN)、邏輯回歸算法(logistic regression,LR)、K近鄰(k-nearestneighbor,KNN)、支持向量機(jī)算法(support vector machine,SVM)、決策樹(shù)算法(decision tree,DT)進(jìn)行性能對(duì)比,對(duì)比結(jié)果見(jiàn)表4、表5。
表4 二分類性能對(duì)比
表5 多分類性能對(duì)比
通過(guò)表4的實(shí)驗(yàn)結(jié)果可以看出,在二分類性能對(duì)比中,ITSA-XGBoost模型在準(zhǔn)確率上除了比決策樹(shù)算法(DT)低0.64%,均高于其它算法,在精確率和F1-Score上均優(yōu)于其它算法,而在召回率上則低于其它算法。
通過(guò)表5的實(shí)驗(yàn)結(jié)果可以看出,在多分類性能對(duì)比中,ITSA-XGBoost模型在準(zhǔn)確率、精確率、召回率和F1-Score上均優(yōu)于其它算法。
最后,為體現(xiàn)ITSA-XGBoost模型的優(yōu)越性,本文選取了另外6篇論文中的隨機(jī)森林樹(shù)算法(random forest,RF)[18,19]、RepTree算法[20]、IELM算法[21]、深度置信網(wǎng)絡(luò)算法(deep belief network,DBN)[22]、CNN-BiLSTM算法[23]進(jìn)行二分類和多分類的準(zhǔn)確率對(duì)比。對(duì)比結(jié)果見(jiàn)表6。
表6 測(cè)試集準(zhǔn)確率對(duì)比
ITSA-XGBoost模型在二分類中準(zhǔn)確率除了比決策樹(shù)算法(DT)低0.64%,均高于其它算法。而在多分類中則均優(yōu)于其它所有算法。因此,與其它算法相比,ITSA-XGBoost更加適合入侵檢測(cè)。
本文利用Tent混沌映射,自適應(yīng)步長(zhǎng)和萊維飛行3種策略改進(jìn)被囊群優(yōu)化算法,并用于XGBoost參數(shù)尋優(yōu)和特征選擇以構(gòu)建入侵檢測(cè)模型。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的ITSA相比于其它優(yōu)化算法收斂速度更快,且具有跳出局部最優(yōu)解的能力。同時(shí)相較于其它機(jī)器學(xué)習(xí)算法,在UNSW-NB15數(shù)據(jù)集中,ITSA-XGBoost模型的檢測(cè)性能更好。在未來(lái)的研究中,將通過(guò)生成對(duì)抗網(wǎng)絡(luò)等方法處理少數(shù)樣本數(shù)據(jù),提高入侵檢測(cè)的性能。