劉國璧,袁宏俊
(1.安徽電子信息職業(yè)技術(shù)學(xué)院 思想政治理論課教學(xué)科研部, 安徽 蚌埠 33030;2.安徽大學(xué) 數(shù)學(xué)與計算科學(xué)學(xué)院 數(shù)學(xué)系, 安徽 合肥 230039;3.安徽財經(jīng)大學(xué) 統(tǒng)計與應(yīng)用數(shù)學(xué)學(xué)院 財貿(mào)系, 安徽 蚌埠 233030)
支持向量機(Support Vector Machine,SVM )是20世紀(jì)90年代 Vpanik等人提出的一種機器學(xué)習(xí)方法,該算法基于結(jié)構(gòu)風(fēng)險最小化原則發(fā)展起來,能較好地解決非線性、小樣本和過學(xué)習(xí)等問題,已在文本圖像分類、數(shù)據(jù)挖掘和模式識別等領(lǐng)域廣泛應(yīng)用. 在SVM應(yīng)用中,核函數(shù)、懲罰參數(shù)及損失函數(shù)影響著SVM的學(xué)習(xí)和泛化性能,所以參數(shù)的確定非常重要,對SVM的參數(shù)優(yōu)化的研究成為熱點. 目前,SVM參數(shù)的確定方法有:交叉驗證法、粒子群算法、梯度下降法和遺傳算法等,但這些方法都有一定的缺陷. 交叉驗證法耗時較長[1];梯度下降法穩(wěn)定性不高[2];遺傳算法易陷入局部最優(yōu)[3];粒子群算法收斂速度快,但易陷入局部最優(yōu)[4].
人工魚群算法(Artificial Fish Swarm Algorithm,AFSA)是一種新型群智能算法,可以解決一些較復(fù)雜的模型優(yōu)化問題[5]. 該算法具有自適應(yīng)能力強、收斂速度較快、魯棒性強和不易陷入局部最優(yōu)等優(yōu)點,目前,已成為一種重要的群智能算法,但AFSA后期尋優(yōu)速度慢、易陷人局部最優(yōu).
針對以上問題,考慮到AFSA和SVM的優(yōu)缺點,本文將人工魚的視野和步長擴大到整個魚群搜索區(qū)域,提出一種改進AFSA優(yōu)化SVM參數(shù)的模型. 用改進后的AFSA尋找SVM的參數(shù). 最后,將該模型用于網(wǎng)絡(luò)安全態(tài)勢研究,通過仿真實驗來驗證了該算法具有較好的尋優(yōu)能力、較強的泛化性能和較高的預(yù)測精度.
支持向量機[6]將低維特征空間映射到高維特征控空間,將非線性回歸問題轉(zhuǎn)化為線性回歸問題,其數(shù)學(xué)模型為
設(shè)訓(xùn)練集為(xi,yi),i=1,2,…,l,x∈Rd,y∈R,回歸函數(shù)為
f(x)=ω·φ(x)+b
(1)
(2)
式中:φ(x)為非線性映射,ω為權(quán)向量,b為閾值,Lε為損失函數(shù),C為懲罰因子.
(3)
(4)
其對偶問題為
(5)
(6)
進而回歸函數(shù)為
(7)
式中:K(xi,x)=φ(xi)φ(x)為核函數(shù).
人工魚群算法(Artificial Fish Swarm Algorithm,AFSA)[7]通過模擬魚群的覓食、追尾、聚群以及隨機行為進行搜索,實現(xiàn)全局尋優(yōu). AFSA中各行為如下:
覓食行為
Xj=Xi+rand()·visual
(8)
(9)
式中:Xi為人工魚當(dāng)前位置,Xj為視野visual內(nèi)的隨機狀態(tài),rand()是[0,1]間隨機數(shù),step為移動步長,k為時刻. 如果Yi 聚群行為 (10) 式中:Xc為人工魚當(dāng)前中心位置. 如果Yc/nf>δYi,則向中心位置移動一步,否則,執(zhí)行覓食行為. 追尾行為 (11) 式中:Xmin為當(dāng)前人工魚鄰域位置. 如果Ymax/nf>δYi,則向Xmin移動一步,否則,執(zhí)行覓食行為. 隨機行為 (12) 覓食行為的缺省行為是隨機行為,在覓食行為中,超過一定的試探次數(shù)后,人工魚就隨機選擇一個狀態(tài),并向該方向移動. 為了克服AFSA后期尋優(yōu)速度慢、易陷人局部最優(yōu)等缺點,提高AFSA全局搜索能力,本文把每條人工魚的搜索區(qū)域擴大到整個魚群搜索范圍,有利于AFSA跳出局部最優(yōu)解[8]. 將式(9)~(12)依次進行如下修改 (13) (14) (15) Xnext=rand()·(xmax-xmin)+xmin (16) 式中:xmin和xmax分別為人工魚搜索邊界的最小、最大值,Xbest為全局最優(yōu)位置. 圖1 改進魚群優(yōu)化SVM網(wǎng)絡(luò)安全態(tài)勢預(yù)測模型流程圖 針對SVM參數(shù)選擇較難問題,用改進的AFSA尋找SVM的參數(shù),并用歷史數(shù)據(jù)作為SVM模型的輸入和輸出,進行學(xué)習(xí)和仿真. 改進的AFSA優(yōu)化SVM的網(wǎng)絡(luò)安全態(tài)勢預(yù)測模型流程如圖l所示. 模型步驟如下[9] 步驟1: 初始化人工魚群,視野visual,步長step,最大覓食次數(shù)try_number,最大迭代次數(shù)max gen等. 步驟2: 網(wǎng)絡(luò)安全態(tài)勢數(shù)據(jù)歸一化處理,分別將處理后的數(shù)據(jù)作為SVM的輸入和輸出,待優(yōu)化參數(shù)為σ2,C,魚群算法的適應(yīng)度函數(shù)為數(shù)據(jù)的均方根誤差. 步驟3: 每條人工魚執(zhí)行聚群和追尾,根據(jù)各結(jié)果判斷下一步行為: 聚群、追尾或覓食. 步驟4: 搜索一輪后,根據(jù)得出的每個人工魚的適應(yīng)值,將最優(yōu)值存于公告牌中. 步驟5: 判斷迭代次數(shù)是否達到終止條件,若達到最大迭代次數(shù),則輸出最優(yōu)值,否則返回步驟3. 步驟6: 結(jié)束尋優(yōu),將步驟5輸出參數(shù)作為SVM的建模參數(shù),建立SVM網(wǎng)絡(luò)安全態(tài)勢預(yù)測模型. 步驟7: 測試模型,利用網(wǎng)絡(luò)安全態(tài)勢數(shù)據(jù)進行模型測試,得出仿真結(jié)果,并將仿真值與實際值進行比較分析. 為了驗證改進AFSA對SVM模型優(yōu)化的有效性,運用該算法優(yōu)化SVM的懲罰因子C和核函數(shù)σ. 目前,權(quán)威的網(wǎng)絡(luò)安全數(shù)據(jù)集有麻省理工大學(xué)林肯實驗室的DARPA2000數(shù)據(jù)集和Honeynet數(shù)據(jù)集. 其中Honeynet數(shù)據(jù)集在反映網(wǎng)絡(luò)黑客行為時有一定優(yōu)勢,更能體現(xiàn)網(wǎng)絡(luò)安全態(tài)勢的變化規(guī)律,本文實驗數(shù)據(jù)采用Honeynet公布的網(wǎng)絡(luò)黑客數(shù)據(jù),共126個網(wǎng)絡(luò)安全態(tài)勢值,選取前110個數(shù)據(jù)作為SVM訓(xùn)練樣本,后16個數(shù)據(jù)作為SVM測試樣本. 為了避免網(wǎng)絡(luò)安全態(tài)勢值跨度大影響模型預(yù)測結(jié)果,對樣本數(shù)據(jù)進行預(yù)處理,將數(shù)據(jù)歸一化到區(qū)間(0,1)中,歸一化公式為 (17) 式中:yi,yi′分別為網(wǎng)絡(luò)安全態(tài)勢歸一化前后的值,ymin,ymax分別為態(tài)勢歸一化前得最大和最小值,n為態(tài)勢值個數(shù). 歸一化后的網(wǎng)絡(luò)安全態(tài)勢值如圖2所示. 圖2 歸一化后的網(wǎng)絡(luò)安全態(tài)勢值 SVM的懲罰因子C∈[1,100],核函數(shù)σ∈[0.0002,1],AFSA魚群數(shù)量為N=50,視野visual=10,步長step=0.02,變化系數(shù)α=0.2,最大迭代次數(shù)maxgen=60. 為了進行對比,分別建立GA-LSSVM、PSO-LSSVM及ABC-LSSVM模型對SVM的參數(shù)C和σ進行尋優(yōu)[10],對網(wǎng)絡(luò)安全態(tài)勢最后16個值進行仿真研究,得到如圖3所示的結(jié)果. 圖3 4種算法網(wǎng)絡(luò)安全態(tài)勢預(yù)測值與實際值對比 從圖3中可以看出,基于改進AFSA優(yōu)化的SVM模型的網(wǎng)絡(luò)安全態(tài)勢預(yù)測曲線與實際曲線吻合較好,吻合效果優(yōu)于GA-LSSVM、PSO-LSSVM及ABC-LSSVM的網(wǎng)絡(luò)安全態(tài)勢預(yù)測模型,這表明改進AFSA優(yōu)化的SVM模型的預(yù)測誤差更小、預(yù)測結(jié)果優(yōu)于其他3種方法. 為了進一步驗證改進AFSA優(yōu)化的SVM模型的優(yōu)越性,利用均方根誤差(RMSE)、平均絕對誤差(MAE)和相關(guān)系數(shù)(R)評價模型的性能,RMSE和MAE值越小,R越大,模型的預(yù)測性能越好[11]. 4種模型預(yù)測精度如表1所示. 表1 4種模型的性能評價指標(biāo) 從表1中可以看出,改進AFSA-SVM模型的RSME和MAE值均小于其他模型的RSME和MAE值,改進AFSA-SVM模型的網(wǎng)絡(luò)安全態(tài)勢預(yù)測值與實際值的相關(guān)系數(shù)R最大,表明相關(guān)性最強,因此,提出的改進AFSA-SVM模型性能優(yōu)于其他4種模型,適用于網(wǎng)絡(luò)安全態(tài)勢預(yù)測研究問題. 為了克服參數(shù)選擇對SVM性能的不利影響,本文對人工魚群算法進行了改進,提出了一種基于改進AFSA的SVM參數(shù)優(yōu)化算法, 加快了后期的收斂速度,避免陷入局部最優(yōu),提升了全局尋優(yōu)能力. 利用改進AFSA的SVM模型對網(wǎng)絡(luò)安全態(tài)勢進行預(yù)測,并且與GA-LSSVM、PSO-LSSVM及ABC-LSSVM模型進行對比分析,結(jié)果表明,改進AFSA優(yōu)化的SVM模型性能優(yōu)于其他比照模型,具有較高的預(yù)測精度,對網(wǎng)絡(luò)安全態(tài)勢值預(yù)測具有較好的效果. 另外,網(wǎng)絡(luò)安全態(tài)勢預(yù)測值可以為網(wǎng)絡(luò)管理者提供參考,以便更好地對網(wǎng)絡(luò)進行監(jiān)督與管理.2.2 人工魚群算法的改進
3 改進AFSA優(yōu)化SVM的預(yù)測模型
4 仿真實例
4.1 實驗數(shù)據(jù)及處理
4.2 參數(shù)設(shè)置
4.3 模型效果及評價
5 結(jié)語