肖韻婷,張立臣
(廣東工業大學 計算機學院,廣東 廣州 510006)
信息物理融合系統(cyber physical system,CPS)以網絡作為信息核心承載,將信息與物理系統緊密聯系,有效提升自動化水平與運行效率。但一旦其安全性被破壞,對應的物理系統會受到嚴重影響。入侵檢測作為一種主動的防御技術,能通過收集分析相關網絡數據及時發現攻擊行為,降低網絡威脅,因此,研究CPS的入侵檢測顯得尤為重要[1]。傳統網絡中基于機器學習算法及神經網絡的單一和混合模型的入侵檢測方法已有許多研究。作為一種新型神經網絡,極限學習機(extreme learning machine,ELM)與傳統神經網絡相比學習速度更快,精度更高,參數設置更簡單,與支持向量機相比,可通過擴展類標簽矩陣的方法直接實現多分類,無需分解為多個二進制子問題,在許多領域包括入侵檢測領域應用中都取得成功。文獻[2-9]均使用基于ELM的入侵檢測模型,分別與聯合熵、K均值聚類、卷積神經網絡、自編碼器、深度信念網絡等相結合,并獲得較好的效果。但以上算法均未解決ELM性能受權重閾值隨機性與不平衡數據和離群點影響的問題。隨機權重閾值容易導致隱含層不具有稀疏性和調和能力,無法得到精確的解析解[10]。對此,文獻[11]對量子粒子群優化算法改進并用于ELM的參數優化,構建工控系統入侵檢測模型,取得了較好的效果。針對ELM在不平衡數據集的性能,文獻[12]中歸納的兩種樣本權重計算方法均未對樣本離散程度進行考慮。
本文對WRELM權重賦值方式進行改進,提出基于局部距離的加權正則化極限學習機(local distance-based weighted regularized extreme learning machine,LDWRELM)減輕數據不平衡及離群點對模型性能的影響。并提出一種自適應性和動態變異的改進頭腦風暴算法(modified brainstorm optimization,MBSO)用于LDWRELM初始輸入權重閾值優化,提高其穩定性及檢測能力,構建用于CPS系統的MBSO-LDWRELM入侵檢測模型,在NSL-KDD數據集對比實驗驗證模型的性能與改進的有效性。
ELM是一種新型單隱層前饋神經網絡,結構可分為輸入層、隱含層與輸出層3部分。對一個具有L個隱層節點的單隱層神經網絡,設輸入N個訓練樣本 (xi,yi),i=1,2,…,N。 其中xi=[xi1,xi2…,xin]T,yj=[yj1,yj2,…yjm]T。 則網絡的輸出可表示為
(1)
其中,g()為激活函數,對于第i個隱層節點,wi為與各輸入節點的權重,bi為偏置,βi為該隱層輸出權重。tj為實際輸出。網絡的實際輸出越接近Yi越好,為得到在訓練樣本上具有良好效果的參數,可使用訓練誤差作為目標函數,如下所示
(2)
即問題轉化為求解存在βi,wi與bi使
(3)
簡化為矩陣形式
Hβ=Y
(4)


其中,H為隱層輸出矩陣。與傳統BP神經網絡等通過梯度下降法反向傳播迭代調整權重閾值的學習方法不同,ELM固定輸入權重wi與偏置bi,把問題轉換為僅需要求解隱含層輸出權重矩陣β。可使用最小二乘法求解線性系統式(4)的解為β*=H+T, 其中H+為H的廣義逆矩陣。
ELM算法是一種基于經驗風險最小化原則的學習算法,但是真實的數據集往往包含噪音、離群點,僅考慮經驗風險容易帶來過擬合與魯棒性低等問題。經研究結果表明,通過結合正則化理論,使用權值系數權衡經驗風險與模型復雜度,能有效緩解此問題。使用加權與正則化可以使ELM的求解達到更小的訓練誤差,提高對離群點的抗干擾能力。則優化問題變為
(5)
(6)

由式(5)、式(6)建立拉格朗日方程得

(7)
其中,α=[α1,α2,…,αN] 為拉格朗日算子,解式(7)得
(8)
其中,I為單位矩陣。當數據集中離群點少時,可以令矩陣W為單位對角矩陣,即每個樣本的樣本權值相等。對于帶權的RELM,文獻[13]對兩種常用加權方式進行了闡述,其兩種權重賦值方法的核心都是根據各個類的數據量進行賦值,提高少數類的權重,從而達到平衡數據集的目的。但僅從數據量層面考慮而未考慮到類內數據間的稀疏程度和離群點的影響。文獻[14]提出一種基于數據離散度的加權極限學習機,把每類樣本均值作為樣本中心,以每個樣本到類中心與到其它類中心的最小值的比值作為權重。但其以類均值為中心點的方法在一定程度上已經受離群點的影響,可能會使離群點的權重偏大,從而影響模型性能。因此本文針對樣本的加權方式進行了改進,具體定義如下
(9)
(10)

(11)
其中, dist(xi,xp) 表示樣本xi與xp間的歐氏距離,Ni為樣本xi所屬類別的集合, |Ni| 為每個類別中的樣本數量,Dxi的含義為樣本xi所在類的內部平均距離,dxi為樣本xi與類內其它樣本的平均距離。二者之比可反映當前樣本與其它樣本間的局部距離關系,當Wii≥1時,說明當前樣本與其它樣本距離較近,xi處于樣本相對稠密的區域;反之,則說明xi處于稀疏區域,樣本離群程度高,分類器若受這類樣本干擾,會使分類邊界模糊,因此應降低其權重。
BSO算法是在2011年在國際智能團體會議中提出的一種新型的、有前途的群體智能優化算法[15],該方法通過模仿人類通過頭腦風暴會議集思廣益產生問題解決方案,其參數設置簡單、進化過程易于理解、求解時間相對短,適合解決高維多峰值問題,并成功應用于多個領域[16]。算法主要由初始化與評估、聚類、變異與更新4個模塊組成,通過實現在搜索空間遞歸解的發散與收斂,以得到“足夠好的”最優解。其中最核心的為變異與更新模塊,其具體步驟如下:
選取一個或兩個個體后通過下式產生新個體
Xnew=Xselected+ζ×N(μ,δ)d
(12)
ζ=logsig((T/2-t)/k)×rand(0,1)
(13)
其中,Xselected為選擇的一個個體或由兩個個體融合生成的個體,N(μ,σ)d為d維的服從期望為μ、方差為σ的高斯隨機函數,T為最大迭代次數,t為當前迭代次數,rand()為[0,1]間隨機實數,logsig()函數為對數S形傳遞函數,k為logsig函數的斜率。
若選取的是兩個個體,通過下式進行融合
Xselected=ω×Xselected_1+(1-ω)×Xselected_2
(14)
式中:Xselected為融合生成的個體,Xselected_1與Xselected_2為分別從兩個類中選取的個體,ω為[0,1]之間的隨機實數。
頭腦風暴優化算法與其它優化算法都有容易陷入局部極小而導致算法的優化性能達不到理想效果的問題,本文提出一種針對更新策略與變異方式進行優化的MBSO算法。
1.2.1 對更新策略的改進
個體更新策略是頭腦風暴優化算法的關鍵之一。基于同一類個體的候選個體生成方式可看作組內交流,基于不同類個體的候選個體生成方式可看作組間交流。組內交流經過擾動產生的新個體較大概率落在候選個體的周圍,更適合在后期進行局部細致的搜索以更好地接近極值點;組間交流進行隨機擾動后生成的新個體較大概率落在兩個類的中間,更適合用于前期的全局搜索,更快將搜索范圍縮小至更可能存在潛在解決方案的區域。
針對算法搜索過程的推進,考慮了控制調節組內交流與組間交流的概率大小對搜索性能的影響,我們期望算法在迭代早期具有較強的全局搜索能力,進行充分搜索,以跳出局部極小值,在迭代后期能以當前局部最優區域為中心進行局部搜索。因此可以令

(15)
(16)
其中,t為當前迭代次數,T為最大迭代次數,Pone(t)表示第t次迭代中概率Pone的取值,Pth為Pone的最小取值,u,v為調節系數。式(15)中上式為單調遞減函數,隨著迭代的進行Pone逐漸減小,減小到小于Pth時下一代概率等于Pth,這一設定保證了算法在后期不完全喪失全局搜索的能力。
1.2.2 對變異策略的改進
影響算法效果的另一個關鍵在于個體的更新方式。傳統BSO在選定個體加上高斯隨機擾動實現新個體的產生。式(13)中系數ζ通過對數S形傳遞函數logsig()與[0,1] 間的隨機向量相乘實現,logsig函數值域為(0,1),因此系數ζ的值域也為(0,1)。且根據高斯分布的“3σ”原則,高斯隨機函數產生的值落在橫軸區間(μ-2.58σ,μ+2.58σ)的概率約為99.73%。圖1為當μ=0,σ=1時,令式(13)中T=1000,隨機擾動的取值情況,可見迭代的前期隨機擾動的取值范圍固定,大部分位于區間[-2.5,2.5]之間,以0為中心向正負極分散,越靠近0處取值越密集。在迭代次數550后,擾動大小數量級基本小于1e-01。可見,傳統BSO隨機擾動范圍集中在以μ為中心的局部區域,最大步長固定,每次的隨機擾動大小與迭代所處的階段并不匹配,造成迭代前期算法尋優速度慢,后期在最優值附近反復震蕩,無法快速收斂,且容易出現早熟現象。

圖1 高斯變異下的隨機擾動
由此可見,傳統BSO采用的高斯變異的局部搜索能力較強,但是引導個體跳出局部最優的能力較弱,容易出現“超級個體”導致早熟,不利于全局收斂。且這種變異方式沒有充分利用當前種群的信息。本文對算法中的變異策略進行改進,引進自適應的差分變異思想,設計與搜索階段相匹配的新個體產生策略。具體如式(17)、式(18)所示
(17)
ζ=ζmax-(ζmax-ζmin)×t/T
(18)
其中,i∈[1,2,…,n],Xselected為選中個體,X1、X2為種群中隨機選擇的兩個個體,t為當前迭代次數,T為算法最大迭代次數,ζmax表示變異系數ζ的最大值,ζmin表示變異系數ζ的最小值。Pc為交叉概率。Li、Hi為第d維搜索范圍上下界。

1.2.3 算法流程
根據上述介紹,MBSO算法的算法具體執行流程如下所示:
步驟1 初始化種群Xi(i=1,2,…N), 問題維度d,最大迭代次數T,分類個數m,變異系數最大最小值ζmax、ζmin,概率Preplace,Pone,Pone_center,Ptwo_center,Pth,Pc,所優化問題的適應度函數f(x);
步驟2 將個體聚類為m類,計算各個體適應度值,并以每個類中的最優解為各類的中心。
步驟3 產生隨機數,若小于Preplace,隨機生成個體替代選中類的中心個體;
步驟4 使用式(15)更新Pone,產生隨機數r1;
(1)r1 1)若小于Pone_center,選類中心個體為Xselected; 2)若大于Pone_center,選類內個體為Xselected。 (2)r1>Pone,隨機選擇兩個類的個體通過式(14)融合作為Xselected,產生隨機數; 1)若小于Ptwo_center,選擇兩個類的中心個體; 2)分別選擇兩個類的非中心個體。 步驟5 根據式(17)對個體進行變異,計算生成個體適應度值,保留更優個體; 步驟6 完成N個個體更新,則執行步驟7;否則轉到步驟3; 步驟7 若達到最大迭代次數,則終止循環,輸出最優個體;否則轉到步驟2。 1.2.4 性能測試 為驗證本文提出的改進后的算法性能,將MBSO與傳統差分進化算法(differential evolution algorithm,DE)、傳統PSO算法、傳統BSO算法進行對比。采用4個具有代表性的經典標準測試函數對算法效果進行評估比較,包括單峰函數Sphere與Rosenbrok,多峰函數Rastrigin與Griewank。各函數表達式與尋優范圍見表1。 表1 標準測試函數 實驗中,4種算法的種群個體數量N均為100,問題維度d為30,最大迭代次數T為1000,種群均采用均勻初始化。DE算法中交叉概率CR為0.3,變異率F為0.5。傳統PSO算法學習因子c1=c2=1.49,慣性權重ω為0.8。為保證對比公平,BSO對應參數與MBSO一致,MBSO算法參數設置見表2。 為驗證改進的有效性,本文使用Matlab2014a對4種算法進行編程實現,并分別對各測試函數進行尋優,每種算法均獨立運行50次,記錄每次尋優的結果進行分析。圖2為各算法在優化不同測試函數時的收斂特性曲線圖。 表2 MBSO參數設置 圖2 各算法對標準測試函數進行優化的收斂特性 由圖2可以看出,進行優化后的MBSO在收斂速度與尋優所達到的精度均優于其它3種算法。Sphere函數與Rosenbrok函數均為單峰函數,主要目的在于考察算法跳出局部最優后的收斂效果與尋優前進方向的正確性。Sphere函數的三維圖是一個凹型碗狀平面,有唯一的一個全局最優值,PSO算法陷入了局部最優,DE算法收斂速度較慢且尋優結果不理想,BSO與MBSO多次跳出局部最優,且MBSO的收斂速度和尋優結果較BSO更優。Rosenbrok函數全局最小值位于拋物線型山谷中,越靠近山谷越平坦,因此即時找到山谷所在的位置也很難收斂的全局最小值。MBSO在迭代200次后也陷入了局部最優,但此時的適應度值已經優于其它算法迭代1000次后的適應度值。 Rastrigin函數與Griewank均為多峰函數,存在眾多的局部最小值,主要考察算法是否能克服早熟現象與全局尋優的效果。Rastrigin函數優化中,PSO、BSO與MBSO在前50次迭代中表現相近,MBSO在100次迭代后開始跳出局部最優,在250次迭代后無限接近于全局最優值。Griewank函數優化過程中,MBSO在前200次迭代尋優結果與PSO相近,在200后不斷跳出局部最優值,在第350次迭代達到了理論最優值,而PSO與BSO優化均出現了停滯現象。 由圖2還可發現,MBSO在對Rosenbrok、Rastrigin與Griewank的優化過程中,在迭代前200次適應度值優勢不大,甚至高于其它算法,但是經過一小段平臺期后,適應度值迅速下降,表明算法在達到局部最優點后能迅速調整尋優方向,搜索到新的最優點,在迭200次迭代后展現出優勢。 表3對各算法運行結果的最優值與平均值進行了統計,對于較簡單的Sphere函數尋優問題,各算法均能達到較好的精度,MBSO的尋優結果最優。對Rosenbrok函數PSO尋優結果波動較大,MBSO尋優結果的穩定性較好,每次運行均能達到相似的效果。對于多峰函數,MBSO的克服早熟現象的能力在尋優過程中展現出更大的優勢。在對Rastrigins的尋優中,各算法每次運行所求得的最小適應度與均值相近,但只有MBSO尋找到全局最優點;對Griewank函數,BSO與MBSO均成功命中全局最優點,但MBSO的尋優結果更穩定。表明了MBSO在每次優化中都能帶領種群找到正確的優化方向。 表3 實驗結果對比 實驗結果表明,MBSO采取的策略能有效抑制算法陷入局部最優,充分結合種群內個體的信息,更好地平衡算法的全局搜索與局部搜索能力,加快算法尋優速度,同時提高了算法的穩定性,驗證了算法改進的有效性與必要性。 適應度函數是衡量個體優劣的指標,指引著算法迭代進化的方向,因此適應度函數的選擇直接關系到算法尋優是否能找到最優解以及算法收斂的精度。本文采用均方誤差函數作為預測值與真實值之間偏差的度量,其計算公式如下 (19) 式中:N為輸入樣本數,xn為真實值,tn為預測值,mse值越小,表明預測效果越好。 如上文所述,ELM作為一種快速、泛化能力好、參數設置簡單的新型神經網絡,ELM采用隨機選擇輸入權重值及其隱含層偏置,其隨機性可能導致某些權重閾值賦值接近0等情況,使某些隱含層節點失效,令算法泛化能力與求解精度達不到理想效果。 而MBSO具有良好的尋優能力,可以對LDWRELM隨機確定的參數進行優化,尋找更優的初始權重閾值。 因此,考慮到CPS對入侵檢算法輕量、快速、簡單、穩定等要求及入侵檢測數據的海量和不平衡等特點,本文將MBSO算法與LDWRELM相結合,構建基于MBSO-LDWRELM的入侵檢測分類模型,將LDWRELM初始權重閾值設置問題映射為MBSO尋優問題,尋找更好的LDWRELM 初始權重閾值,進而得到最優輸出權重值。參照文獻[17]分析總結的典型CPS體系結構,檢測模塊將部署于CPS系統的應用層。 基于MBSO-LDWRELM入侵檢測模型流程如下: 步驟1 數據收集預處理。截取網絡數據包并進行解析,將所得數據劃分為訓練集與測試集,對數據進行預處理; 步驟2 使用MBSO算法優化LDWRELM; (1)初始化LDWRELM參數:輸入層節點數inputnum,隱含層節點數hiddennum及輸出層節點數outputnum進行賦值,對權重閾值進行初始化; (2)確定MBSO種群個體數N,所求問題維度計算公式為hiddennum*(inputnum+1),最大迭代次數T,及個體初始值; (3)根據適應度函數計算各個體的適應度值并排序,直到達到最大迭代次數或滿足終止迭代條件; (4)輸出最優個體的值,即為模型的最優參數,從而建立入侵檢測模型。 步驟3 測試模型。將測試數據集作為模型輸入,得到樣本分類結果。 MBSO-LDWRELM的入侵檢測模型構建流程如圖3所示。 圖3 MBSO-LDWRELM的CPS入侵檢測流程 本文實驗選取了NSL-KDD是對KDD99流量數據集進行去冗余及調整比例產生的。NSL-KDD數據集中每一數據包括41維連接特征與1維類型標簽。其中連接特征中有32維為連續型數據,3維為字符型數據,6維為二值型。類型標簽為字符型,包括攻擊類型標簽共40小類,可分為5大類:Normal,Dos,Probe,R2L與U2R。實驗訓練集使用“KDDTrain+”,測試集為“KDDTest+”,實驗數據集構成見表4。由于測試集中有17小類為訓練集中未知的攻擊類型,因此要求模型不僅檢測已知攻擊類型,還應具有檢測未知類型攻擊的泛化能力。 表4 數據集描述 由于連接特征中的字符型數據不能直接用于入侵檢測算法的輸入,因此將其進行標簽編碼。如“protocol_type”中包含tcp,udp與icmp這3種不同字符類型,將其分標注為1,2,3。同理,“service”與”flag”特征按其字符類型分別標注為1~67與1~11。將數據類型標簽按其攻擊類型分為Normal,Dos,Probe,R2L與U2R這5類,分別標注為1~5。 為消除各屬性間度量差異帶來的影響,對數據進行歸一化處理,將樣本各特征都映射到0~1之間的數值,歸一化公式如下 a=(a-min)/(max-min) (20) 數據集中冗余特征將增長訓練時間,且特征越具有代表性,模型越能達到較好的效果。因此歸一化處理后使用粗糙集工具箱Rosetta對特征屬性進行約簡,約簡后得到特征屬性共23項。 為驗證MSBO-LDWRELM算法在入侵檢測中的性能,本文基于NSL-KDD數據集進行了仿真測試實驗,所使用實驗環境為:Inter Core i5 2.9 GHz,8 GB內存,Windows 10操作系統,Matlab2014a。RELM與LDWRELM通過Matlab編程實現,并使用1.2.4中實現的PSO、BSO、MBSO進行初始參數尋優。 RELM與LDWRELM輸出層神經元數為5,因為本文需要進行五分類。隱含層數通過選擇不同的激活函數并逐漸增加層數的檢測準確率進行選擇。所得結果如圖4所示,可見Sigmoid性能優于Sine與Hardlim,且在迭代120次后趨于平穩,因此本文選取隱含層節點數為120,激活函數為Sigmoid。 圖4 不同激活函數與隱層數的準確率 PSO學習因子為1.3,慣性權重為0.8。MBSO參數設置見表5,BSO對應參數與MBSO相同。算法種群大小為50,最大優化迭代次數均為80。 表5 參數設置 實驗結果采用準確率(accuracy,AC)、檢測率(detection rate,DR)、召回率(recall,Rec)、誤報率(false positive rate,FPR)、訓練時間Ttr及檢測時間Tte為性能評價指標,并將本文模型與傳統RELM、LDWRELM、PSO-LDWRELM、BSO-LDWRELM進行對比。結果均獨立運行10次后取均值。 表6列舉出各算法的AC值的對比。文獻[1]與文獻[18,19]均使用KDDtest+數據集對算法性能進行比較。其中文獻[17]使用PSO算法對堆疊降噪自編碼器(stacked enoising autoencoder,SDA)進行隱層數及每層節點數結構尋優。文獻[19]對幾種常見機器學習在NSL-KDD數據集上的準確率進行了比較。由表可見,MBSO-LDWRELM的AC值最高為87.92%,優于其它對比算法,但由于NSL-KDD為不平衡數據集,僅使用準確率作為評價標準具有局限性,因此從各分類的DR、REC與FPR進行進一步比較分析。 表6 五分類下不同模型AC值/% 圖5、圖6對各算法分類的DR與Rec值進行了比較,由圖可見,LDWRELM相較于RELM對少數類R2L與U2R的性能有所提升,反映了LDWRELM的正則化與權重選擇策略對分類效果的提升。MBSO-LDWRELM在對Normal、Dos與Probe的檢測效果基本持平或略有提升。相比之下,R2L與U2R的DR值與Rec值在數值上相對偏低,是由于R2L與U2R在訓練集中的占比低,屬于少數類,且這兩類攻擊類型中有新型未知攻擊,尤其是R2L類型中的部分攻擊條目特征與Normal類型數據十分相似,導致許多攻擊條目容易被誤判其它樣本數量多的類。通過對U2R與R2L這兩種攻擊檢測結果分析比較可知,RELM的檢出率最低,MBSO-LDWRELM的AC值比PSO-SDA高2.2%與3.61%。并且其對這兩種攻擊的REC值最優,與RELM相比有很大幅度的提升,與PSO-SDA相比高14.87%與10.5%。說明MBSO對LDWRELM初始權重矩陣優化結果更好,所求的初始權重閾值能更好地提取訓練集中的數據規律,尤其是對于少數類攻擊。 圖5 各模型DR值對比 圖6 各模型Rec值對比 表7對算法誤報率進行了對比。對Normal類型,MBSO-LDWRELM誤報率分別比RELM、LDWRELM、PSO-LDWRELM、BSO-LDWRELM與PSO-SDA低1.92%、1.99%、0.85%、2.89%與6.21%,說明進行改進后,模型將其它攻擊類型錯判為Normal類型的概率更小,能更好地保證系統的安全性。同時,可觀察到LDWRELM相比RELM在對少數類的誤報率有所下降,但對多數類的誤報率上升了,是由于基于局部距離的策略將與Normal相似的樣本權重降低,造成誤判為Normal的樣本略有上升,但經過MBSO進行優化后,Normal誤報率有所下降。而對于攻擊類型Probe、Dos與R2L誤報率均有所下降,對于U2R類型差異不大,原因在于U2R樣本數量少,難以捕獲到其特征,因此將其它樣本錯分到該類的情況更少。 表7 各算法FPR值對比/% 入侵檢測算法的性能對檢測的實時性有較強的要求,因此本文對各方法的訓練時間與檢測時間進行對比,結果見表8。經過MBSO算法優化后的LDWRELM在訓練時間與檢測時間相較RELM算法有所上升,原因在于增加的權重矩陣計算與MBSO的迭代尋優增加了對時間的消耗,但使用BSO算法優化后檢測時間優于其它優化算法的時間消耗。 表8 各模型訓練時間與檢測時間對比 本文提出的LDWRELM通過優化樣本權重設置減輕了數據不平衡和離群點對算法性能的影響,提高了對少數類的識別準確率。并對MBSO進行改進提高了種群的多樣性,增強其跳出局部最優的能力,用于對LDWRELM的初始輸入權重閾值尋優,提升LDWRELM的穩定性與泛化能力。實驗結果表明,MBSO-LDWRELM相比傳統的RELM有更好的性能,在保證高準確率與低誤報率的同時對少數類樣本的準確率有所提升,并有較好的實時性,為CPS在入侵檢測方面提供新的可行方案,下一步考慮搭建實時入侵檢測環境,進一步探索和解決模型在實際應用中遇到的問題。



2 基于MBSO-LDWRELM入侵檢測模型
2.1 適應度函數
2.2 MBSO-LDWRELM模型描述

3 實驗結果與分析
3.1 數據集

3.2 預處理
3.3 參數設置


3.4 實驗結果





4 結束語