魏星, 佟明澤, 李錚*, 王悅
(1.天津市第四中心醫(yī)院 網(wǎng)絡(luò)信息科, 天津 300140;2.華北理工大學(xué) 信息工程系, 河北 唐山 063210)
隨著網(wǎng)絡(luò)技術(shù)和計算機技術(shù)的快速發(fā)展,極大地推動了各行各業(yè)的網(wǎng)絡(luò)化和信息化,給眾多行業(yè)和單位帶來了便利和提高了效率,如企業(yè)、政府、學(xué)校以及醫(yī)院等。由于醫(yī)院工作的特殊性,一旦醫(yī)院網(wǎng)絡(luò)遭受攻擊或破壞會直接影響醫(yī)院的工作,嚴重時將帶來巨大經(jīng)濟損失和社會影響,因此研究醫(yī)院網(wǎng)絡(luò)入侵特征選擇和檢測具有重要的實際意義和理論價值[1]。由于網(wǎng)絡(luò)入侵的特征選擇直接影響網(wǎng)絡(luò)入侵檢測的結(jié)果,因此對醫(yī)院網(wǎng)絡(luò)入侵特征進行優(yōu)化選擇對提高醫(yī)院網(wǎng)絡(luò)入侵檢測效果和檢測效率具有重大意義。目前,網(wǎng)絡(luò)入侵特征選擇方法主要有窮舉法和仿生智能搜索算法[2-4]等。為提高醫(yī)院網(wǎng)絡(luò)入侵檢測的準(zhǔn)確率,將樽海鞘算法(Salp Swarm Algorithm,SSA)和極限學(xué)習(xí)機(Extreme Learning Machine,ELM)結(jié)合起來,提出一種基于SSA和ELM的醫(yī)院網(wǎng)絡(luò)入侵特征選擇和檢測算法。
瑞典學(xué)者Seyedali提出SSA算法,該算法起源于樽海鞘的群體獵食行為,屬于群智能搜索的經(jīng)典算法[5]。假設(shè)樽海鞘在N×D維的空間進行捕食搜索,該空間中的N為種群的規(guī)模,D代表搜索優(yōu)化維度。采用F=[F1,F2,…,FD]T代表搜索空間中的食物,使用X=[Xn1,Xn2,…,XnD]T,n=1,2,…N代表樽海鞘群體中的每個個體的位置。并設(shè)定樽海鞘搜索的空間所對應(yīng)的上下限分別為ub=[ub1,ub2,…,ubD]T和lb=[lb1,lb2,…,lbD]T,對種群完成隨機初始化工作[5],如式(1)。
XN×D=rand(N,D)×(ub-lb)+lb
(1)
在樽海鞘搜索群體中搜索食物工作由領(lǐng)隊負責(zé),其可以引領(lǐng)整個群體的移動,對于領(lǐng)隊而言,要求具有較高的位置更新和尋優(yōu)能力,計算領(lǐng)隊的位置更新如式(2)。
(2)
式中,使用c1、c2、c3代表位置控制參數(shù)。其中,c2和c3屬于分布在0到1間的隨機變量,該變量主要用于調(diào)整種群領(lǐng)隊的位置更新,同時提升搜索的多樣性以及整個群里的搜索能力;c1表示收斂因子,如式(3)。
c1=2e-(4t/T)2
(3)
式中,t代表群體循環(huán)搜索參數(shù);T代表群體尋優(yōu)過程的最大迭代次數(shù)。
通過參考文獻[6-7]確認群里的追隨者的位置僅受自身的初始位置、尋優(yōu)速度以及尋優(yōu)的加速度限制,其位置的更新算法如式(4)、式(5)。
(4)
(5)
對比經(jīng)典的神經(jīng)網(wǎng)絡(luò)模型,極限學(xué)習(xí)機ELM屬于單層的前饋隱含神經(jīng)網(wǎng)絡(luò),極限學(xué)習(xí)機的訓(xùn)練速度以及計算效率相對簡單,具體的機構(gòu)模型如圖1所示。
圖1 ELM架構(gòu)示意圖
設(shè)置樽海鞘群體包含N個訓(xùn)練樣本(Xi,Ti),其中,Xi=[xi1,xi2,…,xin]T∈Rn代表算法的輸入向量;Ti=[ti1,ti2,…,tin]T∈Rm代表算法的目標(biāo)向量;X、T依次為n×Q與m×Q的矩陣;Q代表群體的訓(xùn)練樣本總數(shù)?;诖耍瑯O限學(xué)習(xí)機中單隱含層的神經(jīng)元數(shù)量L所對應(yīng)的輸出向量[8],如式(6)。
(6)
式中,Wi=[wi1,wi2,…,win]T代表輸入權(quán)值;βi代表模型的輸出權(quán)值;bi代表第i個隱含層的全部節(jié)點計算過程中的偏置向量;g(x)代表神經(jīng)網(wǎng)絡(luò)算法的隨機函數(shù);Wi·Xj為Wi和Xj的內(nèi)積。對于極限學(xué)習(xí)模型中計算模型的最小誤差,如式(7)。
(7)
由式(6)和式(7)可知,即存在一組參數(shù)βi、Wi和bi使得下式成立[9],如式(8)。
(8)
式(8)的矩陣形式為式(9)。
Hβ=T
(9)
式中,H和β代表單一隱藏含層的每個神經(jīng)元節(jié)點的輸出向量矩陣和權(quán)重向量矩陣。其中,使用下式可獲取輸出權(quán)重的矩陣β所對應(yīng)的小二乘解,如式(10)、式(11)。
(10)
(11)
適應(yīng)度函數(shù)是本文提出的入侵檢測模型的關(guān)鍵所在。本文選擇正確率作為適應(yīng)度函數(shù),用于評價每一個樽海鞘個體的優(yōu)劣。對于每個樽海鞘個體i(i=1,2,…,N),計算每個樽海鞘個體的適應(yīng)度[10],如式(12)。
(12)
式中,accuracy為網(wǎng)絡(luò)入侵檢測的準(zhǔn)確率;features為最終選擇的網(wǎng)絡(luò)入侵特征;All features為網(wǎng)絡(luò)入侵的所有特征屬性。最佳網(wǎng)絡(luò)入侵特征組合是特征選擇最少的情況下,使得網(wǎng)絡(luò)入侵檢測正確率最高。
群體特征選擇的核心在于從M個特種中識別i個特征的尋優(yōu)特征子集合,因此把對應(yīng)的每個特征定義為樽海鞘個體的一維離散二進制變量。假設(shè)每個樽海鞘的位置向量X=(x1,x2,…,xi,xn)T為一個特征集,其中,xi表示一個特征且xi是二進制,其特征編碼規(guī)則如圖2所示。
圖2 特征編碼
圖2中,若第j個網(wǎng)絡(luò)入侵特征被選中,則xi=1;反之,網(wǎng)絡(luò)入侵特征未被選中,則xi=0。
基于SSA-ELM的醫(yī)院網(wǎng)絡(luò)入侵特征選擇與檢測的算法流程圖,如圖3所示。
圖3 基于SSA-ELM的醫(yī)院網(wǎng)絡(luò)入侵特征選擇與檢測算法流程圖
基于SSA-ELM的醫(yī)院網(wǎng)絡(luò)入侵特征選擇與檢測算法步驟如下。
步驟1:讀取醫(yī)院網(wǎng)絡(luò)入侵檢測數(shù)據(jù),劃分數(shù)據(jù)集為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集并歸一化處理;
步驟2:確定ELM網(wǎng)絡(luò)結(jié)構(gòu)。根據(jù)數(shù)據(jù)樣本確定ELM模型的層數(shù)、傳遞函數(shù)和各層節(jié)點數(shù);
步驟3:特征編碼。對醫(yī)院網(wǎng)絡(luò)入侵特征進行二進制編碼;
步驟4:初始化SSA種群。設(shè)定樽海鞘種群規(guī)模N、最大迭代次數(shù)T,根據(jù)式(1)隨機產(chǎn)生樽海鞘種群;
步驟5:訓(xùn)練數(shù)據(jù)集的不同特征屬性代入ELM模型,使用式(12)獲得樽海鞘群體N中每個個體初始適應(yīng)度;
步驟6:初始化群體領(lǐng)隊、追隨者以及對應(yīng)的食物。首先排序樽海鞘全部成員的初始適應(yīng)度,選擇其中適應(yīng)度最優(yōu)的樽海鞘的位置定義目前食物所對應(yīng)的位置,并使用ffood標(biāo)識食物的適應(yīng)度。對于其他的N-1個樽海鞘選擇適應(yīng)度排序在(N-1)/2個樽海鞘,并定義其為領(lǐng)導(dǎo)者,最后其余的(N-1)/2個樽海鞘定義為追隨者;
步驟7:使用式(4)以及式(7)更新對應(yīng)的領(lǐng)導(dǎo)者及其追隨者的最新位置;
步驟8:獲得最新樽海鞘群體的適應(yīng)度fs,當(dāng)出現(xiàn)fs>ffood的情況,使用最佳適應(yīng)度的樽海鞘位置并更新當(dāng)前食物的位置,并使其作為最新的食物位置;
步驟9:依據(jù)循環(huán)迭代次數(shù),循環(huán)執(zhí)行步驟5到步驟8,當(dāng)達到最大迭代次數(shù)后,輸出最優(yōu)食物位置,獲得醫(yī)院網(wǎng)絡(luò)入侵的檢測最優(yōu)特征子集,將測試數(shù)據(jù)集的最優(yōu)特征子集輸入ELM模型進行網(wǎng)絡(luò)入侵檢測并輸出檢測結(jié)果。
為證明SSA-ELM的醫(yī)院網(wǎng)絡(luò)入侵特征選擇和檢測的有效性,選擇KDD CUP99網(wǎng)絡(luò)入侵數(shù)據(jù)為研究對象[11-12],數(shù)據(jù)中網(wǎng)絡(luò)入侵類型為Dos、U2R、R2L和Probe,每個數(shù)據(jù)樣本包含41個屬性特征。數(shù)據(jù)劃分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,實驗樣本分布如表1所示。
表1 實驗樣本分類表
文中網(wǎng)絡(luò)入侵檢測算法采用ELM模型,由于網(wǎng)絡(luò)入侵數(shù)據(jù)特征屬性為41個,因此ELM模型的輸入層神經(jīng)元數(shù)量N1=41。根據(jù)Kolmogorov定理,ELM模型的隱含層神經(jīng)元數(shù)量N2=2N1+1=83,ELM模型的激勵函數(shù)采用高斯核函數(shù)。PC機配置為2.4 GHz CPU、內(nèi)存4 GB、Intel Core i5,計算機操作系統(tǒng)為Windows 7,采用Matlab2015(a)軟件實現(xiàn)仿真實驗。
為了衡量網(wǎng)絡(luò)入侵檢測的效果,選擇檢測時間、檢測率(detection rate,DR)和誤報率(false alarm rate,F(xiàn)AR)作為醫(yī)院網(wǎng)絡(luò)入侵檢測效果的評價指標(biāo),其中,DR和FAR[13-14]分別為式(13)、式(14)。
(13)
(14)
式(13)和式(14)中,TP和FN分別為正常樣本被正確分類和被錯誤分類的個數(shù);FP和TN分別為攻擊樣本被錯誤分類和被正確分類的個數(shù)。
為了說明SSA-ELM進行特征選擇的網(wǎng)絡(luò)入侵檢測結(jié)果,將其與未進行特征選擇的ELM模型的網(wǎng)絡(luò)入侵檢測結(jié)果進行比較,結(jié)果如表2、表3所示。
表2 ELM模型網(wǎng)絡(luò)入侵檢測實驗結(jié)果
表3 SSA-ELM模型網(wǎng)絡(luò)入侵檢測結(jié)果
SSA算法參數(shù):最大迭代次數(shù)T=100、種群規(guī)模N=10,SSA特征選擇收斂圖如圖4所示。
圖4 SSA特征選擇收斂圖
由表2、表3可知,經(jīng)過SSA醫(yī)院網(wǎng)絡(luò)入侵特征選擇之后,ELM模型的入侵檢測時間在不同攻擊類型上均有減少,其中,Dos攻擊檢測時間減少最多,減少4.34 s。此外,網(wǎng)絡(luò)入侵檢測率均有較大幅度的提高且保持較低的誤報率。特征方面,特征屬性數(shù)目在Dos、Probe、R2L和U2R攻擊類型上分別減少31個、34個、35個和36個,有效降低屬性復(fù)雜度和冗余度,從而說明了SSA-ELM進行特征選擇與網(wǎng)絡(luò)入侵檢測的有效性和可靠性。
為了提高醫(yī)院網(wǎng)絡(luò)入侵檢測率和檢測速度以及降低誤報率,針對醫(yī)院網(wǎng)絡(luò)入侵提出一種基于樽海鞘算法和極限學(xué)習(xí)機的入侵檢測模型算法。采用樽海鞘算法優(yōu)化選擇醫(yī)院網(wǎng)絡(luò)入侵特征屬性,減少ELM模型的輸入特征數(shù),降低計算復(fù)雜度和特征冗余度。研究結(jié)果表明,SSA-ELM可以有效降低網(wǎng)絡(luò)入侵檢測的檢測時間和誤報率,提高網(wǎng)絡(luò)入侵檢測的檢測率,很好地滿足網(wǎng)絡(luò)入侵檢測的實時在線要求,具有廣泛的應(yīng)用前景。然而,SSA算法本身存在局部最優(yōu)和“早熟”的問題,后續(xù)將對SSA算法進行改進提高其收斂速度并將其應(yīng)用于網(wǎng)絡(luò)入侵檢測。