劉 唐,周創(chuàng)明,周 煒,王曉丹
(1.解放軍31436 部隊,沈陽 110000;2.空軍工程大學防空反導學院,西安 710051;3.西安財經(jīng)大學行知學院,西安 710038)
人工神經(jīng)網(wǎng)絡(luò)因其具有很強的記憶力和魯棒性而被眾多領(lǐng)域廣泛應用。極限學習機[1]是一種快速學習的單隱層前饋神經(jīng)網(wǎng)絡(luò),隱層輸入權(quán)值和偏置根據(jù)輸入節(jié)點和隱層節(jié)點數(shù)隨機生成,根據(jù)隱層輸入權(quán)值和偏置求得隱層輸出矩陣。盡管極限學習機與標準的神經(jīng)網(wǎng)絡(luò)相比有很多的優(yōu)點,但是并不能滿足人們對精度更高和速度更快的需要,因此,很多優(yōu)化的ELM 算法出現(xiàn)。例如小波核極限學習機、粒子群極限學習機、蟻群優(yōu)化極限學習機、人工蜂群算法優(yōu)化極限學習機等[2],優(yōu)化了極限學習機的分類性能或極限學習機的隱層節(jié)點。
受煙花在空中爆炸產(chǎn)生火花,照亮臨近的天空并構(gòu)造出美麗的圖案這一現(xiàn)象的啟發(fā),譚營[3]等在首屆國際群體智能大會上提出了煙花算法。煙花算法是一種由爆炸產(chǎn)生火花的群體優(yōu)化算法,它具有局部探索能力和全局搜索能力,是一種求解復雜問題最優(yōu)解的高效方法。因此,煙花算法在許多領(lǐng)域都有應用[4-5]。
極限學習機的隱層輸入權(quán)值和偏置隨機生成可能使誤報率較大,并導致使用許多無效隱層節(jié)點。因此,為了得到更高的精度和更好的泛化性能,提出了基于改進的煙花算法的ELM 分類模型,并通過實驗驗證,結(jié)果表明:改進煙花算法極限學習機(IFWAELM)具有更高的精度、更好的泛化性能,同時所需的隱層節(jié)點數(shù)更少。
以上N 個方程的矩陣形式可寫為
式中:
H 為隱層輸出矩陣,H 的第i 行表示全部隱層節(jié)點與輸入xi相關(guān)的輸出。
ELM 算法對輸入權(quán)值wi和偏置bi的值采取隨機設(shè)置,在輸入樣本集(xj,y)j,j=1,2,…,N 給定的情況下,隱層輸出矩陣H 也被確定了,Y 從而求得符合以下條件的學習參數(shù):
由上式得到的解為最小范數(shù)二乘解:
式中:H+為H 的Moore-Penrose 廣義逆。
煙花算法是一種模擬煙花爆炸過程的新型群體智能優(yōu)化算法,與一般的群智能算法類似,對于一個優(yōu)化問題,經(jīng)過多次迭代搜索求得最優(yōu)解,具體描述過程參考文獻[4]。煙花算法主要有爆炸算子、變異算子、映射規(guī)則和選擇策略4 部分組成,爆炸算子主要由爆炸半徑、爆炸火花數(shù)、爆炸強度等組成;變異算子一般選擇高斯變異[8-9],選擇策略有隨機選擇和基于距離選擇等。
煙花算法具有局部探索能力和全局搜索能力自動調(diào)節(jié)功能,其中單個煙花的爆炸火花數(shù)和爆炸半徑是不同的,適應度值低的煙花爆炸半徑小,在其周圍具有更大的挖掘能力;適應度值高的煙花爆炸半徑大,在全局范圍具有更大的搜索能力[10]。初始化每個煙花的爆炸半徑Ri和爆炸火花數(shù)Si的公式分別為:
為了避免適應度值高的煙花爆炸產(chǎn)生過少的火花,同時限制適應度值低的不會產(chǎn)生太多的火花[3],對每個煙花產(chǎn)生火花數(shù)進行如下限制:
式中:a、b 是兩個給定常數(shù),round(·)是取整函數(shù)。
針對極限學習機隨機生成的隱層輸入權(quán)值和偏置可能只有很少部分是較優(yōu)的,更多的是較差的,更可能造成誤報率過大,導致使用更多無效隱層節(jié)點。本文提出了改進煙花算法極限學習機。改進煙花算法(IFWA)是一種新型群體智能優(yōu)化算法,在提高精度的同時有很強收斂性、魯棒性和穩(wěn)定性。IFWA 通過多次迭代搜索求解出最優(yōu)的隱層輸入權(quán)值和偏置,然后訓練極限學習機得到分類模型。
3.1.1 自適應動態(tài)爆炸半徑
在動態(tài)搜索煙花算法中煙花種群被分為核心煙花(core fireworks)和非核心煙花(non-core fireworks),核心煙花就是目前煙花種群中適應度值最低的煙花。非核心煙花的爆炸半徑用式(5)計算,核心煙花xc的爆炸半徑用Rc表示,計算如下:
式中:Ca、Cr是兩個調(diào)整變量,分別用來增加和減小爆炸半徑;t 為當前迭代次數(shù)為新的最優(yōu)火花個體。
針對動態(tài)搜索煙花算法面對多峰問題時可能陷入局部最優(yōu),導致算法提前收斂的問題,提出在算法中增加一個產(chǎn)生火花的自調(diào)節(jié)算子。自調(diào)節(jié)算子利用搜索過程中的歷史成功信息和最優(yōu)的煙花位置來學習總結(jié)。具體如下:
式中:xbest為目前最優(yōu)煙花位置;z 是記憶因子,用于調(diào)節(jié)新生火花與目前最優(yōu)煙花間距,其使煙花向種群中最好煙花個體學習并向歷史最優(yōu)煙花位置逼近,其產(chǎn)生如下:
式中:randz(a,b)是位置、尺度參數(shù)分別為a、b 的柯西分布;rand 為服從均勻分布的隨機數(shù)[11]。p 是變量,計算如下:
式中:t1、t2分別為大參數(shù)、小參數(shù)時,柯西分布產(chǎn)生c 的次數(shù);p 初始值取0.6,每迭代T 次更新一次,即對這次迭代過程進行學習總結(jié)。由于記憶因子是向歷史最優(yōu)煙花學習生成的,為后面的求解提供了更優(yōu)的候選解和更佳的尋優(yōu)方向,增強了算法全局的魯棒性和穩(wěn)定性。
3.1.2 變異算子生成策略
在FWA 中高斯變異算子采用隨機選取原則,這使得生成更優(yōu)煙花的幾率降低。為提高生成更優(yōu)煙花的幾率并且讓變異具有更好的方向性,選擇目前種群最優(yōu)煙花作為變異對象,變異公式如下:式中:xk是變異煙花個體的第k 個分量;x(best,k)是目前種群最優(yōu)煙花的第k 個分量;g~N(0,1),q 是高斯變異概率,反映種群中最優(yōu)煙花對變異后火花產(chǎn)生的作用大小。作用越小,其值越大。作用越大,其值越?。?]。具體取值根據(jù)實驗具體情況而定。
3.1.3 映射規(guī)則
產(chǎn)生的一些火花可能超出邊界,為解決這一情況,提出如下映射規(guī)則來處理超出邊界的火花:
式中:xik為第i 個煙花的第k 維分量位置;x(lb,k)、x(ub,k)分別表示煙花第k 維分量位置的下界和上界。
3.1.4 精英選擇策略
在FWA 中采用的是基于距離的選擇策略,增加選擇多樣性的同時也增加了算法的迭代時間。為加快選擇速度,采用精英選擇策略,在候選集K(煙花種群、爆炸火花)中按下式概率選擇:
易知,適應度值越低的個體,被選中的概率越大,反之則概率越小。特別地,適應度值最低(即目前最優(yōu))的個體被選中的概率為1,如果按此方法選出的數(shù)不夠N 個,則在候選集中采用輪盤賭方法選取足夠個填補。
利用原始ELM 求出隱層輸出權(quán)值(選用效果較好的Sigmoid 作為激勵函數(shù)),并以訓練樣本集求得的均方根誤差(RMSE)為IFWA 的適應度值函數(shù)。算法的維度大小取n=h(d+1),h 是輸入神經(jīng)元個數(shù),d 是隱層節(jié)點數(shù)[12]。算法中參數(shù)設(shè)為r=36,m=56,a=0.05,b=0.7。IFWAELM 算法流程如圖1:
圖1 IFWAELM 算法流程圖
IFWAELM 算法具體過程如下:
1)初始化隨機生成N 個煙花,設(shè)定初始迭代次數(shù)i=1;
2)根據(jù)適應度值函數(shù)計算每一個煙花的適應度值;
3)使用式(5)計算非核心煙花的爆炸半徑,使用式(8)~式(11)計算核心煙花的爆炸半徑;
4)使用式(6)和式(7)計算每個煙花產(chǎn)生的爆炸火花數(shù)Si;
5)選擇目前種群最優(yōu)煙花使用式(12)進行高斯變異操作,并選出最優(yōu)火花,使用式(13)把超出邊界的火花映射到可行域內(nèi);
6)計算所有火花的適應度值(包括爆炸火花和變異火花);
7)使用式(14)從候選集K 中最合適的N 個個體作為下一代煙花;
8)令i=i+1,判斷是否達到結(jié)束條件,如果沒達到則返回2)繼續(xù)進行。
根據(jù)上面算法求得最優(yōu)的煙花個體,即最優(yōu)的隱層輸入權(quán)值和偏置,代入得到輸出權(quán)值矩陣,根據(jù)ELM 的式(3)和式(4)求得符合條件的學習訓練參數(shù)。
本實驗采取的數(shù)據(jù)為美國國防部高級研究規(guī)劃署(DARPA)在1999 年KDD 競賽所供給的入侵檢測系統(tǒng)評估的數(shù)據(jù)[13]。數(shù)據(jù)集含有一個標明入侵攻擊類型的標識屬性,一共有23 種類型,Normal 為正常的網(wǎng)絡(luò)活動,其他22 種(Smurf、Back、Neptune等)為入侵行為[14]。將其映射為5 大類型,即Normal、DoS、R2L、U2R 和Probing。實驗數(shù)據(jù)需要進行數(shù)據(jù)預處理和數(shù)據(jù)劃分。
所采用的學習訓練數(shù)據(jù)集(Kddcup10per)共有494 021 條記錄,其中標記為Normal 的有97 278 條記錄,占19.6%,而攻擊記錄396 743 條,占80.4%。測試數(shù)據(jù)集共有311 029 條記錄。
此數(shù)據(jù)集中有41 個特征屬性,其中34 個特征屬性為數(shù)值型變量、4 個為二元變量、3 個為標稱變量(屬性及其意義見文獻[13])。在實驗檢測過程中發(fā)現(xiàn),并不是所有的特征屬性都對入侵檢測有幫助,有些特征屬性甚至會降低辨別率。根據(jù)文獻[15],屬性約簡后如表1:
表1 特征屬性約簡
此外,原始數(shù)據(jù)中有34 個數(shù)值屬性,但每個屬性的取值范圍卻大不相同,所以,對數(shù)據(jù)進行規(guī)范化處理,將其規(guī)范化到區(qū)間[-1,+1]。采用如下公式:
規(guī)范化后,upper 為上界,取+1;lower 為下界,取-1;max(fi),min(fi)分別表示屬性fi的最大值和最小值。
數(shù)據(jù)劃分即把原始數(shù)據(jù)分成學習訓練樣本集和測試樣本集。學習訓練樣本集是從原始學習訓練數(shù)據(jù)集隨機抽取出來的10 000 條數(shù)據(jù);測試樣本集是從原始測試樣本集中隨機抽取出來的10 000 條數(shù)據(jù),包括Normal 數(shù)據(jù)5 182 條、DoS 攻擊3 869條、R2L 攻擊276 條、U2R 攻擊71 條、Probing 攻擊602 條[16]。
理論上,隨著迭代次數(shù)增加到一定后,誤報率降低程度變得十分微小,學習訓練時間卻依舊增大。因此,迭代次數(shù)不宜取太大。設(shè)IFWAELM 的迭代次數(shù)為30,對實驗結(jié)果去掉一個最低和一個最高后取平均值(下同)。分析隱層節(jié)點數(shù)對原始ELM、FWAELM 和IFWAELM 的影響,結(jié)果如圖2。
圖2 隱層節(jié)點數(shù)的影響對比
由圖2 易知,在相同的迭代次數(shù)時,IFWAELM比原始ELM 和FWAELM 都先收斂到最小值,并且IFWAELM 在測試誤報率到最小值時的隱層節(jié)點數(shù)為8,而ELM 和FWAELM 的測試誤報率到最小值時隱層節(jié)點數(shù)分別為18 和10。易得在測試誤報率取最小值時,IFWAELM 比原始ELM 和FWAELM分別少用10 個和2 個隱層節(jié)點。更有IFWAELM 比原始ELM 和FWAELM 能達到的最小測試誤報率分別降低了72.22%和61.21%,在隱層節(jié)點數(shù)逐漸增長到60 的過程中,ELM 的測試誤報率先減小后趨于穩(wěn)定。IFWAELM 和FWAELM 分別在隱層節(jié)點數(shù)為8 和10 時,收斂到最小值后,直到60 的過程中基本保持穩(wěn)定狀態(tài)。
設(shè)IFWAELM 的隱層節(jié)點數(shù)為8,迭代次數(shù)為i=1,4,…,40。分析迭代次數(shù)對IFWAELM 的影響,結(jié)果如圖3。由圖易知,IFWAELM 的訓練誤報率和測試誤報率都隨著迭代次數(shù)的增加而減少,最后趨于平穩(wěn)狀態(tài)。此外,由于迭代次數(shù)的增加會使學習訓練時間增加,所以考慮測試誤報率降低程度十分微小的情況,設(shè)IFWAELM 的最佳迭代次數(shù)為21。綜上所述,IFWAELM 的隱層節(jié)點數(shù)取8,迭代次數(shù)取21。
在對隱層節(jié)點數(shù)和迭代次數(shù)分析的基礎(chǔ)上,我們還將IFWAELM 和FWAELM、ELM、BP 及SVM 的性能作了對比。設(shè)IFWAELM 的隱層節(jié)點數(shù)為8,迭代次數(shù)為21。設(shè)FWAELM 的隱層節(jié)點數(shù)為10,迭代次數(shù)為23。設(shè)ELM 的隱層節(jié)點數(shù)為100,重復運行100 次后,取平均值。激勵函數(shù)選用效果較好的Sigmoid 函數(shù)。BP 采用matlab 自帶的工具箱函數(shù)來學習訓練,SVM 的參數(shù)采用交叉驗證來完成[17-19],實驗結(jié)果如表2:
圖3 迭代次數(shù)對IFWAELM 誤報率的影響
表2 算法性能對比
從表2 可以看出,IFWAELM 算法的測試平均正確率相比BP 算法高出11.33%,比其他算法也都高出幾個百分點。訓練誤報率和測試誤報率也是5種算法中最低的,測試誤報率相比其他算法更是低一個數(shù)量級。在這5 種算法性能對比中,IFWAELM性能最好。IFWAELM 只用8 個隱層節(jié)點就超越了ELM 用100 個隱層節(jié)點的測試平均正確率,并且達到更低的訓練誤報率和測試誤報率。相對于FWAELM,IFWAELM 也在使用更少的隱層節(jié)點和迭代次數(shù)情況下,取得了更好的效果。與BP 和SVM相比,測試平均正確率和誤報率更是優(yōu)勢明顯。
本文在ELM 的基礎(chǔ)上提出了改進煙花算法優(yōu)化極限學習機的分類模型。該方法利用改進煙花算法優(yōu)化極限學習機的隱層輸入權(quán)值和偏置,綜合了改進煙花算法和極限學習機的優(yōu)點。通過實驗驗證表明:IFWAELM 達到最小測試誤報率比原始ELM和FWAELM 所用隱層節(jié)點數(shù)更少,并且IFWAELM比原始ELM 和FWAELM 能達到更小的測試誤報率。迭代次數(shù)和學習訓練時間成正比。最后5 種同類算法的性能對比,IFWAELM 在測試平均正確率和誤報率等方面都是最優(yōu)的。雖然IFWAELM 比FWAELM 的學習訓練時間有所減少,但是與原始ELM 相比,IFWAELM 的學習訓練時間還是很長,這是下一步需要研究的方向。