?

基于改進煙花算法的ELM 分類模型*

2020-04-02 03:23周創明王曉丹
火力與指揮控制 2020年2期
關鍵詞:學習機適應度火花

劉 唐,周創明,周 煒,王曉丹

(1.解放軍31436 部隊,沈陽 110000;2.空軍工程大學防空反導學院,西安 710051;3.西安財經大學行知學院,西安 710038)

0 引言

人工神經網絡因其具有很強的記憶力和魯棒性而被眾多領域廣泛應用。極限學習機[1]是一種快速學習的單隱層前饋神經網絡,隱層輸入權值和偏置根據輸入節點和隱層節點數隨機生成,根據隱層輸入權值和偏置求得隱層輸出矩陣。盡管極限學習機與標準的神經網絡相比有很多的優點,但是并不能滿足人們對精度更高和速度更快的需要,因此,很多優化的ELM 算法出現。例如小波核極限學習機、粒子群極限學習機、蟻群優化極限學習機、人工蜂群算法優化極限學習機等[2],優化了極限學習機的分類性能或極限學習機的隱層節點。

受煙花在空中爆炸產生火花,照亮臨近的天空并構造出美麗的圖案這一現象的啟發,譚營[3]等在首屆國際群體智能大會上提出了煙花算法。煙花算法是一種由爆炸產生火花的群體優化算法,它具有局部探索能力和全局搜索能力,是一種求解復雜問題最優解的高效方法。因此,煙花算法在許多領域都有應用[4-5]。

極限學習機的隱層輸入權值和偏置隨機生成可能使誤報率較大,并導致使用許多無效隱層節點。因此,為了得到更高的精度和更好的泛化性能,提出了基于改進的煙花算法的ELM 分類模型,并通過實驗驗證,結果表明:改進煙花算法極限學習機(IFWAELM)具有更高的精度、更好的泛化性能,同時所需的隱層節點數更少。

1 極限學習機

以上N 個方程的矩陣形式可寫為

式中:

H 為隱層輸出矩陣,H 的第i 行表示全部隱層節點與輸入xi相關的輸出。

ELM 算法對輸入權值wi和偏置bi的值采取隨機設置,在輸入樣本集(xj,y)j,j=1,2,…,N 給定的情況下,隱層輸出矩陣H 也被確定了,Y 從而求得符合以下條件的學習參數:

由上式得到的解為最小范數二乘解:

式中:H+為H 的Moore-Penrose 廣義逆。

2 煙花算法

煙花算法是一種模擬煙花爆炸過程的新型群體智能優化算法,與一般的群智能算法類似,對于一個優化問題,經過多次迭代搜索求得最優解,具體描述過程參考文獻[4]。煙花算法主要有爆炸算子、變異算子、映射規則和選擇策略4 部分組成,爆炸算子主要由爆炸半徑、爆炸火花數、爆炸強度等組成;變異算子一般選擇高斯變異[8-9],選擇策略有隨機選擇和基于距離選擇等。

煙花算法具有局部探索能力和全局搜索能力自動調節功能,其中單個煙花的爆炸火花數和爆炸半徑是不同的,適應度值低的煙花爆炸半徑小,在其周圍具有更大的挖掘能力;適應度值高的煙花爆炸半徑大,在全局范圍具有更大的搜索能力[10]。初始化每個煙花的爆炸半徑Ri和爆炸火花數Si的公式分別為:

為了避免適應度值高的煙花爆炸產生過少的火花,同時限制適應度值低的不會產生太多的火花[3],對每個煙花產生火花數進行如下限制:

式中:a、b 是兩個給定常數,round(·)是取整函數。

3 改進煙花算法的ELM 分類模型

針對極限學習機隨機生成的隱層輸入權值和偏置可能只有很少部分是較優的,更多的是較差的,更可能造成誤報率過大,導致使用更多無效隱層節點。本文提出了改進煙花算法極限學習機。改進煙花算法(IFWA)是一種新型群體智能優化算法,在提高精度的同時有很強收斂性、魯棒性和穩定性。IFWA 通過多次迭代搜索求解出最優的隱層輸入權值和偏置,然后訓練極限學習機得到分類模型。

3.1 算法改進

3.1.1 自適應動態爆炸半徑

在動態搜索煙花算法中煙花種群被分為核心煙花(core fireworks)和非核心煙花(non-core fireworks),核心煙花就是目前煙花種群中適應度值最低的煙花。非核心煙花的爆炸半徑用式(5)計算,核心煙花xc的爆炸半徑用Rc表示,計算如下:

式中:Ca、Cr是兩個調整變量,分別用來增加和減小爆炸半徑;t 為當前迭代次數為新的最優火花個體。

針對動態搜索煙花算法面對多峰問題時可能陷入局部最優,導致算法提前收斂的問題,提出在算法中增加一個產生火花的自調節算子。自調節算子利用搜索過程中的歷史成功信息和最優的煙花位置來學習總結。具體如下:

式中:xbest為目前最優煙花位置;z 是記憶因子,用于調節新生火花與目前最優煙花間距,其使煙花向種群中最好煙花個體學習并向歷史最優煙花位置逼近,其產生如下:

式中:randz(a,b)是位置、尺度參數分別為a、b 的柯西分布;rand 為服從均勻分布的隨機數[11]。p 是變量,計算如下:

式中:t1、t2分別為大參數、小參數時,柯西分布產生c 的次數;p 初始值取0.6,每迭代T 次更新一次,即對這次迭代過程進行學習總結。由于記憶因子是向歷史最優煙花學習生成的,為后面的求解提供了更優的候選解和更佳的尋優方向,增強了算法全局的魯棒性和穩定性。

3.1.2 變異算子生成策略

在FWA 中高斯變異算子采用隨機選取原則,這使得生成更優煙花的幾率降低。為提高生成更優煙花的幾率并且讓變異具有更好的方向性,選擇目前種群最優煙花作為變異對象,變異公式如下:式中:xk是變異煙花個體的第k 個分量;x(best,k)是目前種群最優煙花的第k 個分量;g~N(0,1),q 是高斯變異概率,反映種群中最優煙花對變異后火花產生的作用大小。作用越小,其值越大。作用越大,其值越?。?]。具體取值根據實驗具體情況而定。

3.1.3 映射規則

產生的一些火花可能超出邊界,為解決這一情況,提出如下映射規則來處理超出邊界的火花:

式中:xik為第i 個煙花的第k 維分量位置;x(lb,k)、x(ub,k)分別表示煙花第k 維分量位置的下界和上界。

3.1.4 精英選擇策略

在FWA 中采用的是基于距離的選擇策略,增加選擇多樣性的同時也增加了算法的迭代時間。為加快選擇速度,采用精英選擇策略,在候選集K(煙花種群、爆炸火花)中按下式概率選擇:

易知,適應度值越低的個體,被選中的概率越大,反之則概率越小。特別地,適應度值最低(即目前最優)的個體被選中的概率為1,如果按此方法選出的數不夠N 個,則在候選集中采用輪盤賭方法選取足夠個填補。

3.2 算法描述

利用原始ELM 求出隱層輸出權值(選用效果較好的Sigmoid 作為激勵函數),并以訓練樣本集求得的均方根誤差(RMSE)為IFWA 的適應度值函數。算法的維度大小取n=h(d+1),h 是輸入神經元個數,d 是隱層節點數[12]。算法中參數設為r=36,m=56,a=0.05,b=0.7。IFWAELM 算法流程如圖1:

圖1 IFWAELM 算法流程圖

IFWAELM 算法具體過程如下:

1)初始化隨機生成N 個煙花,設定初始迭代次數i=1;

2)根據適應度值函數計算每一個煙花的適應度值;

3)使用式(5)計算非核心煙花的爆炸半徑,使用式(8)~式(11)計算核心煙花的爆炸半徑;

4)使用式(6)和式(7)計算每個煙花產生的爆炸火花數Si;

5)選擇目前種群最優煙花使用式(12)進行高斯變異操作,并選出最優火花,使用式(13)把超出邊界的火花映射到可行域內;

6)計算所有火花的適應度值(包括爆炸火花和變異火花);

7)使用式(14)從候選集K 中最合適的N 個個體作為下一代煙花;

8)令i=i+1,判斷是否達到結束條件,如果沒達到則返回2)繼續進行。

根據上面算法求得最優的煙花個體,即最優的隱層輸入權值和偏置,代入得到輸出權值矩陣,根據ELM 的式(3)和式(4)求得符合條件的學習訓練參數。

4 實驗與結果分析

本實驗采取的數據為美國國防部高級研究規劃署(DARPA)在1999 年KDD 競賽所供給的入侵檢測系統評估的數據[13]。數據集含有一個標明入侵攻擊類型的標識屬性,一共有23 種類型,Normal 為正常的網絡活動,其他22 種(Smurf、Back、Neptune等)為入侵行為[14]。將其映射為5 大類型,即Normal、DoS、R2L、U2R 和Probing。實驗數據需要進行數據預處理和數據劃分。

所采用的學習訓練數據集(Kddcup10per)共有494 021 條記錄,其中標記為Normal 的有97 278 條記錄,占19.6%,而攻擊記錄396 743 條,占80.4%。測試數據集共有311 029 條記錄。

此數據集中有41 個特征屬性,其中34 個特征屬性為數值型變量、4 個為二元變量、3 個為標稱變量(屬性及其意義見文獻[13])。在實驗檢測過程中發現,并不是所有的特征屬性都對入侵檢測有幫助,有些特征屬性甚至會降低辨別率。根據文獻[15],屬性約簡后如表1:

表1 特征屬性約簡

此外,原始數據中有34 個數值屬性,但每個屬性的取值范圍卻大不相同,所以,對數據進行規范化處理,將其規范化到區間[-1,+1]。采用如下公式:

規范化后,upper 為上界,取+1;lower 為下界,取-1;max(fi),min(fi)分別表示屬性fi的最大值和最小值。

數據劃分即把原始數據分成學習訓練樣本集和測試樣本集。學習訓練樣本集是從原始學習訓練數據集隨機抽取出來的10 000 條數據;測試樣本集是從原始測試樣本集中隨機抽取出來的10 000 條數據,包括Normal 數據5 182 條、DoS 攻擊3 869條、R2L 攻擊276 條、U2R 攻擊71 條、Probing 攻擊602 條[16]。

4.1 隱層節點數分析

理論上,隨著迭代次數增加到一定后,誤報率降低程度變得十分微小,學習訓練時間卻依舊增大。因此,迭代次數不宜取太大。設IFWAELM 的迭代次數為30,對實驗結果去掉一個最低和一個最高后取平均值(下同)。分析隱層節點數對原始ELM、FWAELM 和IFWAELM 的影響,結果如圖2。

圖2 隱層節點數的影響對比

由圖2 易知,在相同的迭代次數時,IFWAELM比原始ELM 和FWAELM 都先收斂到最小值,并且IFWAELM 在測試誤報率到最小值時的隱層節點數為8,而ELM 和FWAELM 的測試誤報率到最小值時隱層節點數分別為18 和10。易得在測試誤報率取最小值時,IFWAELM 比原始ELM 和FWAELM分別少用10 個和2 個隱層節點。更有IFWAELM 比原始ELM 和FWAELM 能達到的最小測試誤報率分別降低了72.22%和61.21%,在隱層節點數逐漸增長到60 的過程中,ELM 的測試誤報率先減小后趨于穩定。IFWAELM 和FWAELM 分別在隱層節點數為8 和10 時,收斂到最小值后,直到60 的過程中基本保持穩定狀態。

4.2 迭代次數分析

設IFWAELM 的隱層節點數為8,迭代次數為i=1,4,…,40。分析迭代次數對IFWAELM 的影響,結果如圖3。由圖易知,IFWAELM 的訓練誤報率和測試誤報率都隨著迭代次數的增加而減少,最后趨于平穩狀態。此外,由于迭代次數的增加會使學習訓練時間增加,所以考慮測試誤報率降低程度十分微小的情況,設IFWAELM 的最佳迭代次數為21。綜上所述,IFWAELM 的隱層節點數取8,迭代次數取21。

4.3 算法性能分析

在對隱層節點數和迭代次數分析的基礎上,我們還將IFWAELM 和FWAELM、ELM、BP 及SVM 的性能作了對比。設IFWAELM 的隱層節點數為8,迭代次數為21。設FWAELM 的隱層節點數為10,迭代次數為23。設ELM 的隱層節點數為100,重復運行100 次后,取平均值。激勵函數選用效果較好的Sigmoid 函數。BP 采用matlab 自帶的工具箱函數來學習訓練,SVM 的參數采用交叉驗證來完成[17-19],實驗結果如表2:

圖3 迭代次數對IFWAELM 誤報率的影響

表2 算法性能對比

從表2 可以看出,IFWAELM 算法的測試平均正確率相比BP 算法高出11.33%,比其他算法也都高出幾個百分點。訓練誤報率和測試誤報率也是5種算法中最低的,測試誤報率相比其他算法更是低一個數量級。在這5 種算法性能對比中,IFWAELM性能最好。IFWAELM 只用8 個隱層節點就超越了ELM 用100 個隱層節點的測試平均正確率,并且達到更低的訓練誤報率和測試誤報率。相對于FWAELM,IFWAELM 也在使用更少的隱層節點和迭代次數情況下,取得了更好的效果。與BP 和SVM相比,測試平均正確率和誤報率更是優勢明顯。

5 結論

本文在ELM 的基礎上提出了改進煙花算法優化極限學習機的分類模型。該方法利用改進煙花算法優化極限學習機的隱層輸入權值和偏置,綜合了改進煙花算法和極限學習機的優點。通過實驗驗證表明:IFWAELM 達到最小測試誤報率比原始ELM和FWAELM 所用隱層節點數更少,并且IFWAELM比原始ELM 和FWAELM 能達到更小的測試誤報率。迭代次數和學習訓練時間成正比。最后5 種同類算法的性能對比,IFWAELM 在測試平均正確率和誤報率等方面都是最優的。雖然IFWAELM 比FWAELM 的學習訓練時間有所減少,但是與原始ELM 相比,IFWAELM 的學習訓練時間還是很長,這是下一步需要研究的方向。

猜你喜歡
學習機適應度火花
改進的自適應復制、交叉和突變遺傳算法
警惕平板學習機騙局
持久的火花
“機”關
事業火花事這樣被閑聊出未來的
啟發式搜索算法進行樂曲編輯的基本原理分析
基于人群搜索算法的上市公司的Z—Score模型財務預警研究
“互掐”中碰撞出火花
再見了,我的愛人
從學習機到上網本
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合