耿永利,李永忠,陳興亮
(1. 鎮(zhèn)江高等職業(yè)技術(shù)學(xué)校計(jì)算機(jī)教研室,江蘇 鎮(zhèn)江 212016; 2. 江蘇科技大學(xué)計(jì)算機(jī)學(xué)院,江蘇 鎮(zhèn)江 212003)
計(jì)算機(jī)網(wǎng)絡(luò)安全一直是一個(gè)亟待解決的棘手問題,如何識(shí)別網(wǎng)絡(luò)攻擊是一個(gè)關(guān)鍵問題. 網(wǎng)絡(luò)入侵[1]指未經(jīng)過用戶授權(quán)而對(duì)系統(tǒng)資源進(jìn)行非法的操作行為,如何預(yù)防入侵行為成為網(wǎng)絡(luò)安全領(lǐng)域的研究熱點(diǎn). 粒子群優(yōu)化算法[2](particle swarm optimization, PSO)是一種基于群體智能的,通過粒子的最優(yōu)積累和跟隨粒子群的最優(yōu)來實(shí)現(xiàn)尋優(yōu)目的的方法,在人工智能和入侵檢測(cè)領(lǐng)域的應(yīng)用都較為廣泛. 文獻(xiàn)[3]提出了極限學(xué)習(xí)機(jī)(extreme learning machine,ELM)的概念,其比傳統(tǒng)的誤差反向傳播算法[4]具有更快的訓(xùn)練速度以及更強(qiáng)的泛化能力. 之后,文獻(xiàn)[5]在極限學(xué)習(xí)機(jī)的實(shí)踐基礎(chǔ)上又對(duì)核極限學(xué)習(xí)機(jī)(kernel extreme learning machine, KELM)進(jìn)行了研究. 核極限學(xué)習(xí)機(jī)將核學(xué)習(xí)和標(biāo)準(zhǔn)化的優(yōu)化方法結(jié)合起來求出最優(yōu)解,同時(shí)減少了確定最優(yōu)隱節(jié)點(diǎn)的過程,比ELM具有更好的泛化能力[6-7],減少了大量的先驗(yàn)工作. 本研究提出一種利用粒子群優(yōu)化的極限學(xué)習(xí)機(jī)入侵檢測(cè)算法,并通過檢測(cè)模型進(jìn)行檢測(cè),達(dá)到檢測(cè)的預(yù)期效果. 首先針對(duì)網(wǎng)絡(luò)數(shù)據(jù)數(shù)量龐大,特征分布離散等問題,該模型采用改進(jìn)的粒子群優(yōu)化k均值算法處理數(shù)據(jù),增加入侵?jǐn)?shù)據(jù)集中相似數(shù)據(jù)的聚集度; 然后將數(shù)據(jù)進(jìn)行10-CV分割,利用粒子群算法全局搜索能力的優(yōu)點(diǎn)優(yōu)化多核極限學(xué)習(xí)機(jī)的參數(shù),最后將10-CV的數(shù)據(jù)通過優(yōu)化的多核極限學(xué)習(xí)機(jī)進(jìn)行訓(xùn)練檢測(cè). 本文的入侵檢測(cè)模型是利用改進(jìn)的粒子群優(yōu)化算法對(duì)核極限學(xué)習(xí)機(jī)的核參數(shù)進(jìn)行優(yōu)化,并以入侵檢測(cè)率作為適應(yīng)函數(shù),不斷對(duì)核參數(shù)進(jìn)行優(yōu)化,直到滿足條件為止.
粒子群算法能夠?qū)崿F(xiàn)參數(shù)的最優(yōu)查詢[8],然而,當(dāng)粒子群算法進(jìn)入后期時(shí),粒子群容易陷入局部最優(yōu)狀態(tài)[9-12]. 本研究采用改進(jìn)的優(yōu)化算法,利用粒子群的多樣性度量diversity和適應(yīng)度方差θ2來判斷粒子群是否陷入局部最優(yōu),當(dāng)粒子群的多樣性或適應(yīng)度方差小于設(shè)定值時(shí),采用高斯擾動(dòng)優(yōu)化此時(shí)的全局最優(yōu)粒子:
(1)
改進(jìn)的粒子群算法步驟如下.
Step1初始化粒子群,包括粒子數(shù)N,最大迭代數(shù)tmax,加速因子c1,c2,慣性權(quán)重最大值和最小值wmax,wmin,以及粒子的速度范圍[Vmin,Vmax],diversity∈(0,H1],θ2∈(0,H2].
Step2計(jì)算每個(gè)粒子的適應(yīng)度值,粒子初始最優(yōu)值設(shè)置為當(dāng)前適應(yīng)度值,并比較初始最優(yōu)值計(jì)算出全體最優(yōu)值.
Step3計(jì)算粒子的個(gè)體最優(yōu)位置和全局最優(yōu)位置.
Step4用下列公式更新粒子的速度和位置:
(2)
Step5利用公式(1)計(jì)算出粒子的平均距離、 適應(yīng)度方差,如果di
Step6利用以下公式對(duì)當(dāng)前的全局最優(yōu)值采用高斯擾動(dòng),并將原來的值替換成計(jì)算后的值:
(3)
式中:Xmax,Xmin分別表示當(dāng)前粒子中所有粒子每一維的最大值和最小值;σmax,σmin分別代表σ的上限和下限;t表示正在進(jìn)行的迭代次數(shù);tmax表示粒子最大的迭代次數(shù).
Step7對(duì)新粒子的適應(yīng)度值進(jìn)行計(jì)算,并對(duì)新粒子的個(gè)體最優(yōu)值和全局最優(yōu)值進(jìn)行比較; 對(duì)新粒子的先前個(gè)體最優(yōu)值和全局最優(yōu)值比較,如果比較結(jié)果有更好的,就進(jìn)行更新,如果沒有就不更新.
Step8假如迭代次數(shù)t
ELM是針對(duì)單隱層前饋神經(jīng)網(wǎng)絡(luò)缺陷提出的新算法,具有較快的學(xué)習(xí)速度和較好的泛化性能[7, 13]. 假設(shè)有N個(gè)任意樣本{(xi,ti),xi∈Rn,ti∈Rm},對(duì)于一個(gè)有L個(gè)隱藏神經(jīng)元的ELM輸出函數(shù)可表示為:
(4)
多核極限學(xué)習(xí)機(jī)是將核函數(shù)代替ELM中特征矩陣運(yùn)算HTH,解決了ELM算法隨機(jī)初始化問題,多核極限學(xué)習(xí)機(jī)的輸出函數(shù)表示為:
(5)
式中:kmix(xi,xj)是多核極限學(xué)習(xí)機(jī).
從式(5)中可看出,多核極限學(xué)習(xí)機(jī)保留了原ELM的學(xué)習(xí)速度、 泛化性能等優(yōu)點(diǎn),同時(shí)不需要給出原ELM的激活函數(shù),不需要設(shè)置隱層神經(jīng)元個(gè)數(shù),只需要設(shè)定核函數(shù)的參數(shù)就能獲得較高的識(shí)別率. 其中,多核極限學(xué)習(xí)機(jī)中核函數(shù)是通過線性組合多個(gè)核函數(shù)得到的新核:
(6)
這里,μj是核函數(shù)的加權(quán)系數(shù).
基于粒子群優(yōu)化和核極限學(xué)習(xí)入侵檢測(cè)算法(PSO-KELM)如圖1所示,本研究提出的入侵檢測(cè)模型的核心思想是利用改進(jìn)的粒子群優(yōu)化算法對(duì)核極限學(xué)習(xí)機(jī)的核參數(shù)進(jìn)行優(yōu)化,并以入侵檢測(cè)率作為適應(yīng)函數(shù). 若測(cè)試集的檢測(cè)率即粒子群的適應(yīng)度值未達(dá)到指定的精度,或者迭代次數(shù)小于最大迭代次數(shù),則繼續(xù)對(duì)核參數(shù)進(jìn)行優(yōu)化,直到滿足條件為止.
在該模型中,選取核極限學(xué)習(xí)機(jī)為入侵檢測(cè)模型的分類器. 相對(duì)極限學(xué)習(xí)機(jī)而言,核極限學(xué)習(xí)機(jī)不需要激活函數(shù)和給定隱藏節(jié)點(diǎn),只需要給定核函數(shù)即可,具有更快的學(xué)習(xí)效率. 由于每個(gè)核函數(shù)的自身的局限性及應(yīng)用的場(chǎng)合有所不同,在面對(duì)數(shù)據(jù)結(jié)構(gòu)不規(guī)則、 樣本規(guī)模巨大及樣本分布不均的應(yīng)用需求時(shí),單核函數(shù)構(gòu)成的核機(jī)器會(huì)出現(xiàn)魯棒性能差、 檢測(cè)率低等缺陷[14]. 本研究通過核函數(shù)的分析與對(duì)比實(shí)驗(yàn),得出多核極限學(xué)習(xí)機(jī)的準(zhǔn)確度比較穩(wěn)定,誤報(bào)率也相對(duì)較低.
圖1 粒子群優(yōu)化和核極限學(xué)習(xí)入侵檢測(cè)模型Fig.1 The intrusion detection model of PSO and kernel extreme learning
同時(shí),為了結(jié)合局部函數(shù)和全局函數(shù)的優(yōu)點(diǎn),本實(shí)驗(yàn)選取的核函數(shù)為高斯核與多項(xiàng)式核:
(7)
由公式(5)~(7)可知,在該入侵檢測(cè)模型中,需要對(duì)加權(quán)系數(shù)μ、 懲罰系數(shù)γ、 指數(shù)系數(shù)s及正規(guī)化系數(shù)c進(jìn)行選優(yōu).
本研究算法的多核極限學(xué)習(xí)機(jī)為:
第一步:創(chuàng)建應(yīng)用程序并獲取相應(yīng)平臺(tái)的商家ID標(biāo)識(shí)碼,也就是注冊(cè)分配標(biāo)識(shí)碼。以支付寶為例,要想應(yīng)用程序能使用支付寶移動(dòng)支付,首先需要開發(fā)者到支付寶的螞蟻金服開放平臺(tái)的開發(fā)者中心中實(shí)名認(rèn)證,創(chuàng)建登記應(yīng)用,并提交審核,審核通過后會(huì)生成應(yīng)用APPID,這時(shí)就可以申請(qǐng)開通開放產(chǎn)品使用權(quán)限,通過APPID應(yīng)用能調(diào)用開放接口。一般來說,只需填寫應(yīng)用的基礎(chǔ)信息,如應(yīng)用名稱、應(yīng)用圖標(biāo),這一部分可以在以后的開發(fā)中再更改。在開發(fā)應(yīng)用中需要先選擇使用場(chǎng)景,也就是使用類型。
(8)
算法的具體步驟如下.
在測(cè)試集中隨機(jī)選取N份數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行特征值提取和歸一化處理. 設(shè)定最大適應(yīng)值ε=0.95,最大迭代次數(shù)tmax=100,粒子群個(gè)數(shù)m=30,粒子群初始位置(μ,γ,s,c).
Step1用核極限學(xué)習(xí)機(jī)對(duì)測(cè)試集進(jìn)行學(xué)習(xí),核極限學(xué)習(xí)機(jī)的核系數(shù)為粒子的位置(μ,γ,s,c),輸出識(shí)別率即函數(shù)適應(yīng)度值.
Step2根據(jù)輸出的適應(yīng)度值確定粒子的個(gè)體最優(yōu)值pbest和全體最優(yōu)值gbest.
Step3若gbest>0.95或者迭代次數(shù)t>100,跳轉(zhuǎn)到Step6,否則,進(jìn)入Step4.
Step4利用改進(jìn)的粒子群優(yōu)化算法優(yōu)化核參數(shù).
Step5重復(fù)Step1到Step3.
Step6輸出粒子的全局最優(yōu)位置,保存全局最優(yōu)位置對(duì)應(yīng)的適應(yīng)值.
算法中,通過核函數(shù)的Mercer性質(zhì)合成多核函數(shù),以解決單核機(jī)器中出現(xiàn)魯棒性能差、 檢測(cè)率低等缺陷; 然后通過高斯擾動(dòng)等方式提高粒子群算法的局部搜索能力,用來優(yōu)化多核極限學(xué)習(xí)機(jī)中的核參數(shù)以及正則化因子,以提高多核極限學(xué)習(xí)機(jī)的收斂速度和泛化能力.
為了驗(yàn)證本研究所提算法的有效性,在Matlab2012b上進(jìn)行實(shí)驗(yàn)仿真,測(cè)試數(shù)據(jù)集選用的是目前大家公認(rèn)的實(shí)用網(wǎng)絡(luò)安全審計(jì)數(shù)據(jù)集KDD CUP 99[15]. 該數(shù)據(jù)集中有四大類攻擊,分別為DOS攻擊、 Probe攻擊、 U2R攻擊及R2L攻擊, 每條記錄的數(shù)據(jù)有41個(gè)特征屬性. 本次實(shí)驗(yàn)選用了KDD CUP 99中的10%部分測(cè)試訓(xùn)練集作為實(shí)驗(yàn)數(shù)據(jù),具體如表1所示.
表1 實(shí)驗(yàn)數(shù)據(jù)集
為了測(cè)試算法的性能,將測(cè)試數(shù)據(jù)集通過入侵檢測(cè)模型進(jìn)行檢測(cè),獲得實(shí)驗(yàn)數(shù)據(jù)如圖2所示. 由圖2可知,利用改進(jìn)的粒子群優(yōu)化算法優(yōu)化核參數(shù)時(shí),經(jīng)過17次迭代即可達(dá)到最優(yōu),此時(shí)的最優(yōu)適應(yīng)度即入侵檢測(cè)率高達(dá)0.951 2,全局最優(yōu)位置即加權(quán)系數(shù)μ=0.64,懲罰系數(shù)γ=4.12,指數(shù)系數(shù)s=2.0,正規(guī)化系數(shù)c=6.07. 同時(shí),當(dāng)?shù)螖?shù)t=14時(shí),粒子群算法陷入了局部最優(yōu),通過本研究改進(jìn)的粒子群優(yōu)化算法利用高斯擾動(dòng)使算法跳出了局部最優(yōu).
為了進(jìn)一步對(duì)所提算法的有效性進(jìn)行驗(yàn)證,表2給出其他3種分類器與本研究提出的改進(jìn)的粒子群優(yōu)化核PSO-KELM分類器的性能對(duì)比結(jié)果.
圖2 PSO-KELM算法的適應(yīng)值曲線 Fig.2 The fitness curve of PSO-KELM algorithm
表2 分類器的性能對(duì)比
圖3 分類器ROC對(duì)比曲線Fig.3 The ROC comparison curves of different classifier
由表2可知,利用改進(jìn)粒子群優(yōu)化核極限學(xué)習(xí)機(jī)算法的入侵檢測(cè)率有明顯的優(yōu)勢(shì),同時(shí),漏警率同其他分類器相比得到了降低 (表2中,檢測(cè)率為檢測(cè)出的入侵?jǐn)?shù)據(jù)占總?cè)肭謹(jǐn)?shù)據(jù)百分比,漏警率為誤認(rèn)為正常數(shù)據(jù)的入侵?jǐn)?shù)據(jù)占總?cè)肭謹(jǐn)?shù)據(jù)的百分比,誤報(bào)率為誤認(rèn)為入侵?jǐn)?shù)據(jù)的正常數(shù)據(jù)占總正常數(shù)據(jù)百分比). 圖3中以誤報(bào)率為橫坐標(biāo),檢測(cè)率為縱坐標(biāo)分別畫出SVM分類器、 ELM分類器、 KELM分類器以及本研究所提分類器的ROC對(duì)比曲線,從中可直觀地看出各個(gè)分類器的性能比. 由圖3可看出,改進(jìn)的粒子群優(yōu)化多核極限學(xué)習(xí)機(jī)的入侵檢測(cè)模型明顯優(yōu)于其他分類器模型.
本研究提出一種基于PSO算法優(yōu)化核極限學(xué)習(xí)機(jī)的入侵檢測(cè)算法. 通過判斷粒子的平均距離和適應(yīng)度方差,決定是否采用高斯擾動(dòng)對(duì)PSO進(jìn)行優(yōu)化, 利用優(yōu)化的PSO對(duì)核極限學(xué)習(xí)機(jī)進(jìn)行參數(shù)選優(yōu), 結(jié)合KDD99數(shù)據(jù)集,并通過實(shí)驗(yàn)證明,該算法能有效提升入侵檢測(cè)算法的性能.