趙國新,陳志煉,2,魏戰紅+,劉 昱,宋非凡,郭家偉
(1.北京石油化工學院 信息工程學院,北京 102617;2.北京化工大學 信息科學與技術學院, 北京 100029;3.航天光華電子技術有限公司,北京 100070;4.福瑞博達(北京) 自動化設備有限公司,北京 100176)
近年來,工業控制系統(industry control system,ICS)[1]的信息安全問題越來越嚴峻,而入侵檢測對網絡入侵能進行主動防御,是一種有效的防護手段,因此,用于ICS的入侵檢測成為了信息安全研究的一個方向[2]。在文獻[3]中,把入侵檢測看作為一個分類過程,就是將異常數據和正常數據進行分類[3],常用的分類算法有決策樹、神經網絡、貝葉斯、支持向量機(support vector machine,SVM)等。極限學習機(extreme learning machine,ELM)[4]是黃廣斌教授根據廣義逆矩陣理論提出的新型的單隱層前饋神經網絡算法,該算法只需一步就可計算出網絡的輸出權值,與傳統的神經網絡(如BP)和SVM相比,極限學習機的學習速度更快、精度更高。然而,極限學習機因為隨機給定輸入層權值和隱含層閾值,導致分類模型容易產生泛化能力和精度不理想等問題。文獻[5-7]中分別采用差分進化和粒子群優化的混合智能算法、蝙蝠算法、生物地理學優化算法對輸入層權值和隱含層閾值進行參數尋優,都取得了較好的效果。
本文對量子粒子群優化(quantum particle swarm optimization,QPSO)算法進行改進提出一種混合自適應量子粒子群優化算法(hybrid adaptive quantum particle swarm optimization,HAQPSO)用于對極限學習機進行優化,用優化后的極限學習機構建工業控制系統入侵檢測模型。使用密西西比州立大學采集的天然氣管道ICS網絡層的工業控制系統標準數據集[8]進行實驗研究,將本文算法與其它算法進行對比分析,驗證了改進的有效性。
QPSO算法具有量子的行為,由孫俊等[9]提出。算法將每個個體用量子空間的一個粒子來表示,在一個量子空間中,采用波函數ψ來描述粒子的狀態,粒子的速度和位置同時確定不了,使用薛定諤方程確定粒子的位置概率分布。粒子的運動軌跡由蒙特卡洛隨機模擬的方式可以得到,公式如下
(1)
式中:xid(t+1) 是粒子i在t+1次迭代時第d維的位置;當u>0.5時,±變為加號,小于或等于為減號;粒子隨機位置用pi(t) 表示,計算公式如下
pi(t)=φd(t)pid(t)+[1-φd(t)]pgd(t)
(2)
式中:pgd表示種群的最優位置,pid是個體的最優位置,而φd是隨機數,且在(0,1)之間均勻分布。
在QPSO算法中,勢阱長度決定了粒子搜索的能力,用Lid(t) 表示,計算公式如下
Lid(t)=2α(t)|Cd(t)-xid(t)|
(3)
在Lid(t) 中引入平均最優位置,記為C(t), 即
(4)
將式(3)代入式(1)就可以得到新的粒子進化方程
xid(t+1)=pi(t)±α(t)|Cd(t)-xid(t)|×ln[1/uid(t)]
(5)
在QPSO算法中,除去群體規模和迭代次數,式(3)和式(5)中的α是唯一的一個控制參數,被稱為收縮—擴張系數。
1.2.1 改進參數α的控制方法
粒子的行為會隨著收縮—擴張系數α的變化而變化。文獻[10]中使用權重自適應改變的方法來改進PSO算法,取得較好的效果,受到啟發,本文對于收縮—擴張系數α的控制,使用參數α自適應的方法,公式如下
(6)
根據文獻[5],式(6)中的αmax和αmin代表α的最大值和最小值,分別選取為1和0.5。f、favg和fmin分別為粒子當前的最佳個體適應度值、粒子的平均適應度值和最小適應度值。
當粒子的適應度值發生變化時,參數α會隨著自適應變化。當各粒子的適應度值趨于一致時,參數α會自適應變大;反之,分散時參數α會自適應變小。
1.2.2 改進粒子隨機位置的更新
差分策略是DE算法[11]的主要特性,本文結合DE/rand/1/bin差分策略對粒子隨機位置的更新進行改進,改進公式如下
Pi(t+1)=P(r0)gd(t)+F(P(r1)gd(t)-P(r2)gd(t))
(7)
式中:F為縮放因子,根據文獻[6],F的較優取值范圍為[0.4,0.9]。
本文同樣采用參數自適應改變的方法來對F進行控制,公式如下
(8)
1.2.3 改進粒子位置的更新
Levy飛行策略是模擬鳥類搜尋食物過程的一種理想策略[12],它是一種頻繁的短距離蹦蹦跳跳和偶爾的長距離跳躍相結合的非高斯隨機過程。短距離的蹦蹦跳跳保障了粒子在當前最好解周圍內進行仔細的搜索以達到提高局部搜索的能力,長距離的跳躍則有利于保證粒子能跳出一個范圍到另一個范圍進行搜索,擴大了搜索空間,也就是增加了跳出局部最優的能力。許多學者利用Levy飛行策略的特性,在仿生學智能算法的進化方程中加入Levy飛行策略[13,14],提高了算法的性能,優化效果也有一定的提高。本文對于粒子位置更新的改進是在方程中加入Levy飛行策略。
Levy飛行的步長與時間t服從Levy分布,冪指數形式的概率密度函數通過簡化和傅里葉變換后就可以得到
Levy~μ=t-λ;1<λ<3
(9)
式中:λ為冪指數。因為用編程語言實現式(9)較為困難,所以經常使用的Levy飛行路徑表達式如下
Levy(λ)=μ/|v|1/β
(10)

(11)
最終的Levy飛行路徑Levy(λ) 將式(11)代入式(10)就能獲得。加入Levy飛行策略后的QPSO算法粒子進化方程最終更新為
(12)
以下是HAQPSO算法的執行步驟:
步驟1 初始化粒子的位置,并將粒子個體最優位置初始化為當前位置;
步驟2 使用式(4)計算粒子群的平均最優位置;
步驟3 本文采取適應度最小原則計算出粒子當前的適應度值;
步驟4 同樣采取適應度最小原則計算出種群當前的全局最優位置;
步驟5 使用式(7)計算出隨機點的位置;
步驟6 使用式(12)計算出粒子新的位置;
步驟7 重復執行步驟2~步驟6,當滿足設定的結束條件或達到最大迭代次數時停止。
為了驗證改進算法的性能,本文使用兩個典型函數作為算法的測試函數,使用MATLAB編寫了相關程序,分析比較了HAQPSO算法與QPSO算法、PSO算法和遺傳(genetic algorithms,GA)算法的仿真實驗結果。設定上述幾種算法的群體規模為20,最大迭代次數為2000,HAQPSO算法與QPSO算法的收縮—擴張系數α為[0.5,1],縮放因子F的取值范圍為[0.4,0.9],根據各個測試函數的搜索邊界確定粒子群體的初始位置,本文所用到的測試函數見表1,仿真實驗結果如圖1和圖2所示(原圖局部放大顯示)。可以看出,HAQPSO算法的尋優性能要優于QPSO算法、PSO算法和GA算法。

表1 典型的測試函數

圖1 Sphere函數迭代曲線

圖2 Ackey函數迭代曲線
極限學習機是新型的單隱層前饋神經網絡。設定n、L和m分別為網絡輸入層、隱含層和輸出層的結點數,有N個不同的訓練樣本 (xi,yi),1≤i≤N, 其中xi=[xi1,xi2,…,xin]T∈Rn,yi=[yi1,yi2,…,yim]T∈Rm, ELM的數學表達式可以表示為
(13)
式中:g(x) 為激活函數,ωi=[ωi1,ωi2,…,ωin]T為連接輸入層到隱含層的輸入權值向量,βi=[βi1,βi2,…,βim]T為連接隱含層到輸出層的輸出權值向量,bi為隱含層結點的閾值,Oj為網絡輸出值。
如果前饋神經網絡能以零誤差逼近這個N個樣本,則有
(14)
此時存在βi、ωi和bi使得
(15)
用矩陣形式表示為
Hβ=Y
(16)

(17)
式中:H+為隱層輸出矩陣的Moore-penrose的廣義逆。
由于ELM隱含層輸出矩陣是由隱含層結點的閾值和隨機給定的輸入權值計算得出的,一些非最好的輸入權值和隱含層結點的閾值的存在會導致極限學習機的分類容易產生泛化能力和精度不理想等問題。針對這個問題,本文采用混合自適應量子粒子群優化算法優化極限學習機的入侵檢測模型,即通過混合自適應量子粒子群優化算法尋找到最好的輸入權值和隱含層結點的閾值,進而計算出輸出權值。HAQPSO-ELM入侵檢測模型構建具體步驟如下:
步驟1 將數據集分為訓練集和測試集,并進行歸一化處理;
步驟2 初始化粒子群中的每個粒子的位置,并將粒子個體最優位置初始化為當前位置;
步驟3 使用式(4)計算粒子群的平均最優位置;
步驟4 將ELM的輸入權值和隱含層結點的閾值作為優化的對象,適應度為分類準確率的相反數;
步驟5 根據適應度最小準則,使用HAQPSO算法進行迭代尋優,搜索出個體最好解和全局最好解;
步驟6 計算出隨機點的位置;
步驟7 計算出粒子新的位置;
步驟8 重復執行步驟2~步驟7,當滿足設定的結束條件或達到最大迭代次數時停止;
步驟9 選取搜尋到的最好的輸入權值和隱含層結點的閾值構建ELM分類器模型,最終得到基于HAQPSO-ELM的工控入侵檢測模型。
HAQPSO-ELM入侵檢測模型構建流程如圖3所示。

圖3 HAQPSO-ELM的工控入侵檢測流程
本文使用到的工控入侵檢測標準數據集是密西西比州立大學關鍵基礎設施保護中心于2014年提出的數據集,該數據集是對天然氣管道仿真環境進行攻擊而提取的網絡層數據,且經過了數值化處理。該數據集中的每條數據都包含26個特征屬性和一個攻擊類別標簽(包括正常數據標簽)。
歸一化處理:為了消除指標之間量綱的限制,將數據映射到[0,1]范圍之間,轉化為無量綱的純數值之后就能進行比較。歸一化公式如下
(18)
屬性約簡:使用Rosetta軟件集成的粗糙集對數據集進行約簡,約簡后得到的屬性共10項 {1,2,3,7,9,11,19,20,25,26}。
為了驗證HAQPSO-ELM在工控網絡入侵檢測中的性能,進行了仿真測試實驗,所采用的實驗平臺:Inter Core i5 2.9 GHz,8 GB 內存,Windows 7,MATLAB R2016a。從原始數據集均勻且隨機的抽取6000組數據,并將6000組數據分為訓練集和測試集,數目分別為:4000和2000。HAQPSO算法需要設置的參數有:收縮—擴張系數α為[0.5,1],縮放因子F的取值范圍為[0.4,0.9],Levy飛行的參數β為1.5。本文中HAQPSO算法和其它算法共同設置的參數有:最大迭代次數為50,群體規模為20,隱含層結點數為200,搜索范圍為[-1,1]搜索維數d由隱含層結點數和輸入層結點數決定,計算公式如下
d=NumberofHiddenNeurons* (NumberofInputNeurons+1)
(19)
3.4.1 訓練結果分析
為了驗證算法的優化效果,本文將HAQPSO與QPSO、PSO、GA算法對ELM輸入權值和隱含層結點的閾值進行尋優的結果進行比較。各個優化算法對ELM優化的運行時間和最終的優化精度見表2,在迭代尋優過程中,各代的訓練分類準確率的迭代曲線如圖4所示。

表2 訓練時間和訓練精度

圖4 不同算法優化ELM訓練準確率曲線
從表2和圖4可以得到,HAQPSO算法對ELM的尋優精度最高,達到了98.34%,而GA算法的精度最低,只有96.67%。QPSO在第15代左右就能夠收斂到最好,收斂速度最快,HAQPSO在第18代左右能收斂到最好,僅次于QPSO。
從表2可以看出,HAQPSO訓練時間比QPSO只增加了1.47%(3.2 s),也就是說在QPSO算法的基礎上加入Levy飛行策略、對粒子最優位置的更新采用差分策略和采用自適應改變的收縮—擴張系數控制方法對算法的整體運行時間增加的不多,只有3.2 s,也就是說對算法產生的影響并不大,并不會影響到算法的正常應用。
3.4.2 測試結果分析
(1)總體的檢測效果分析。本文使用2000組測試集數據來測試訓練所得到的ELM模型,因為實驗數據集為不平衡數據集,對于不平衡數據的評價,使用準確率、精確率和召回率指標能更準確地評價算法的分類性能。實驗的總體結果見表3。

表3 總體檢測結果
HAQPSO-ELM的準確率為98.60%,在所有的算法中準確率最高,而GA-ELM的準確率只有96.32%。同時,HAQPSO-ELM的精確率為98.92%,召回率為97.86%,在4種算法里都是最高的。綜合各個指標可以發現,基于HAQPSO-ELM在構建的入侵檢測系統具有良好的檢測效果,具有較好的泛化能力,而GA-ELM的泛化能力最差。且外,本文也對標準ELM算法、SVM算法和BP神經網絡算法在該數據集的分類結果進行了比較,結果見表4。

表4 其它算法檢測結果
(2)各攻擊類型數據檢測效果分析。MSU工控入侵檢測標準數據集包括4大攻擊類,細分為8種攻擊形式(包括正常數據),各算法對8種攻擊形式進行分類識別,分類準確率如圖5所示。

圖5 各攻擊形式分類準確率曲線
從圖5可以看出,HAQPSO-ELM對每種攻擊形式的都具有較高的分類準確率,尤其是在分類識別NMRI、MPCI、Dos上。HAQPSO與其它幾種優化算法相比,HAQPSO-ELM入侵檢測模型的分類準確率提升較高。且外,ELM入侵檢測模型整體對Normal、CMRI、MSCI、RECO類別的數據分類準確率都較高,都在90%以上,特別是在對RECO攻擊的分類識別上,各算法的分類準確率都接近100%,但是在對NMRI的識別上,識別準確率最好的都在80%以下。
本文對于QPSO算法的3點改進增加了種群多樣性,較好解決了該算法易陷入局部最優的問題。通過HAQPSO算法對ELM的輸入權值和隱含層結點的閾值進行尋優,構建基于HAQPSO-ELM的入侵檢測模型。仿真實驗使用的數據集為密西西比州立大學的工控入侵標準數據集,實驗結果表明:HAQPSO-ELM的各項性能指標基本優于其它算法優化的ELM模型,驗證了HAQPSO算法實際工程應用場景中的有效性。