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