李 寧
(山西警察學(xué)院,山西 太原 030401)
隨著信息技術(shù)和計算機技術(shù)的快速發(fā)展和深度應(yīng)用,尤其是管理信息系統(tǒng)、數(shù)據(jù)庫系統(tǒng)的使用,數(shù)據(jù)的收集和存儲呈現(xiàn)爆炸式的增長[1]。然而,人們處理數(shù)據(jù)和分析數(shù)據(jù)的能力非常有限,無法滿足數(shù)據(jù)快速增長的需求。面對海量數(shù)據(jù),云計算[2-3](Cloud Computing,CC)為海量數(shù)據(jù)的存儲、分析和處理提供了實際可行性。基于云計算平臺的虛擬化、穩(wěn)定性高、安全性高和易于擴展等優(yōu)點,因此基于云計算的數(shù)據(jù)挖掘算法是分析和處理海量數(shù)據(jù)一個符合最優(yōu)選擇的工具[4]。為提高海量網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)檢測的效率和精度,將云計算和核極限學(xué)習(xí)機結(jié)合,提出一種基于云計算的核極限學(xué)習(xí)機的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘算法。通過Map函數(shù)和Reduce函數(shù)的并行設(shè)計和計算,實現(xiàn)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的分布式分析和處理。研究結(jié)果表明,通過CC-KELM、KELM和ELM進行對比發(fā)現(xiàn),CC-KELM算法能夠有效提高網(wǎng)絡(luò)入侵檢測的準(zhǔn)確率,具有速度快和精度高的優(yōu)點,為海量網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)檢測和挖掘提供新的方法。
Hadoop云計算平臺由MapReduce框架和分布式文件系統(tǒng)構(gòu)成,其是Apache 基金會開發(fā)的開源軟件。MapReduce是由Map和Reduce兩個函數(shù)組成的程序模型,特別適合海量數(shù)據(jù)的分布式處理和挖掘,MapReduce運行機制如圖1所示。
圖1 MapReduce運行機制
1) Input階段。讀取數(shù)據(jù),將數(shù)據(jù)切片并分配給Map函數(shù)。
2) Map階段。Map函數(shù)按照邏輯關(guān)系處理每一個數(shù)據(jù)片。
3) Shuffle階段。通過Shuffle階段將中間鍵值由Map節(jié)點運送到Reduce節(jié)點,并且對中間鍵值進行合并和排序。
4) Reduce階段。Reduce 函數(shù)處理Shuffle階段傳遞過來的數(shù)據(jù)。
5) Output階段。輸出MapReduce最終結(jié)果并進行保存。
極限學(xué)習(xí)機[5-6](Extreme Learning Machine,ELM)是一種單層神經(jīng)網(wǎng)絡(luò)算法,其是在Moore-Penrose矩陣?yán)碚摶A(chǔ)上提出的,具有學(xué)習(xí)速度快的優(yōu)點。若ELM隱含層神經(jīng)元數(shù)量為L個,訓(xùn)練樣本N個,其矩陣形式為(xj,tj)∈R″×R?,其中xj=[xj1,xj2,…,xjn]T和tj=[xj1,xj2,…,xjm]T分別表示ELM的輸入矩陣和輸出矩陣,則ELM的輸出為[7-9]:
(1)
(2)
其中:
則公式(2)的矩陣形式為:
HB=T
(3)
其中,H表示極限學(xué)習(xí)機ELM的隱含層神經(jīng)元的輸出矩陣;xj:h(xj)表示輸入xj的特征映射,其中h(xj)=[ψ(xj;μ1,v1),…,ψ(xj;μL,vL)]。
當(dāng)訓(xùn)練樣本數(shù)量N>L時,ELM的訓(xùn)練誤差接近于0。此時,求解ELM近似等價于求解B的線性方程組的最小二乘解:
(4)
等式(4)中,結(jié)合嶺回歸,運用正則化系數(shù)C改善極限學(xué)習(xí)機網(wǎng)絡(luò)的穩(wěn)定性和泛化能力,則B的最小二乘解可表示為:
(5)
那么,ELM的輸出可表示為:
(6)
為了避免初始權(quán)值和偏置對ELM預(yù)測效果的影響,將核函數(shù)引入ELM形成新的ELM即基于核的ELM算法。
在KELM 中,其核矩陣QELM=HHT,核矩陣的元素可表示為:
QELM(i,j)=h(xi)·h(xj)=K(xi,xj)
(7)
將公式(7)帶入公式(6),KELM的輸出可表示為:
(8)
其中,核函數(shù)K(xi,xj)本文選擇RBF核函數(shù)。
隨著Internet網(wǎng)絡(luò)復(fù)雜程度日益加劇和規(guī)模的擴大,網(wǎng)絡(luò)安全問題成為目前研究的熱點問題和重點問題。由于網(wǎng)絡(luò)入侵類型和行為的多樣性、復(fù)雜性等特點,因此,高精度的網(wǎng)絡(luò)入侵檢測對網(wǎng)絡(luò)安全的控制和防范具有重要意義。將云計算和核極限學(xué)習(xí)機KELM結(jié)合,對網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)進行切片處理,通過Map函數(shù)和Reduce函數(shù)并行化設(shè)計和計算,實現(xiàn)云計算的核極限學(xué)習(xí)機(CC-KELM)的網(wǎng)絡(luò)入侵類型檢測?;谠朴嬎愕暮藰O限學(xué)習(xí)機的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘算法流程如下。
圖2 基于云計算的KELM數(shù)據(jù)挖掘流程圖
1)讀取網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)訓(xùn)練集,訓(xùn)練集數(shù)據(jù)處于云計算Hadoop平臺分布式文件系統(tǒng)中,運用MapReduce框架分割網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的訓(xùn)練集樣本,得到k個不同的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)訓(xùn)練集子集樣本,其中k為并行Map的數(shù)量。
2)根據(jù)Map函數(shù)的程序邏輯運行網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的訓(xùn)練集子集樣本,也就是核極限學(xué)習(xí)機KELM的訓(xùn)練算法邏輯,并行訓(xùn)練網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的訓(xùn)練集樣本,即訓(xùn)練k個不同的核極限學(xué)習(xí)機KELM。
3)通過MapReduce框架的Shuffle階段將k個不同的核極限學(xué)習(xí)機KELM的網(wǎng)絡(luò)入侵預(yù)測結(jié)果傳輸?shù)絉educe階段,之后計算k個不同的核極限學(xué)習(xí)機KELM預(yù)測結(jié)果的權(quán)重確定各Map操作輸出的網(wǎng)絡(luò)入侵類型預(yù)測的權(quán)重,最后綜合確定網(wǎng)絡(luò)入侵類型預(yù)測結(jié)果。
為驗證CC-KELM算法的有效性,以Hadoop平臺為基礎(chǔ),該平臺由32個節(jié)點組成,每個節(jié)點PC機配置如下:Intel(R)Core(TM)、CPU的主頻為2.60 GHz、處理器I5-2400 、4核,內(nèi)存8GB,云計算平臺如圖3所示。
圖3 云計算平臺
為了驗證CC-KELM算法進行網(wǎng)絡(luò)入侵檢測的效果,以Windows10為操作系統(tǒng),仿真軟件平臺選擇MATLAB2015(a),PC機的處理器為Intel core I5 2.4GHZ 、內(nèi)存8GB。選擇KDD CUP99數(shù)據(jù)作為網(wǎng)絡(luò)入侵檢測和數(shù)據(jù)挖掘的研究對象[11],將檢測率和誤判率作為網(wǎng)絡(luò)入侵檢測效果的評價指標(biāo),二者的評價公式如下[12]。
1)準(zhǔn)確率T:若實際網(wǎng)絡(luò)入侵類型數(shù)目為b,正確檢測的網(wǎng)絡(luò)入侵類型數(shù)目為a,那么網(wǎng)絡(luò)入侵檢測的準(zhǔn)確率如公式(9)所示。
(9)
2)誤判率F:若第i類網(wǎng)絡(luò)入侵類型的實際數(shù)目為a,將第i類網(wǎng)絡(luò)入侵類型誤判為第j類網(wǎng)絡(luò)入侵類型的數(shù)目為c,那么網(wǎng)絡(luò)入侵檢測的誤判率如公式(10)所示。
(10)
為了進一步說明CC-KELM算法的有效性,將CC-KELM、KELM和ELM進行對比,對比結(jié)果如表1和表2所示。
表1 檢測率對比結(jié)果表
表2 誤判率對比結(jié)果表
由表1和表2可知,CC-KELM的4種網(wǎng)絡(luò)攻擊類型的檢測率分別為100%、99.45%、96.02%和99.46%,高于KELM算法的98.44%、90.75%、88.23%、86.64%和ELM的97.67%、96.22%、98.42%、90.33%。通過對比發(fā)現(xiàn),CC-KELM算法能夠有效提高網(wǎng)絡(luò)入侵檢測的準(zhǔn)確率。
圖4 CC-KLEM檢測結(jié)果
圖5 KELM檢測結(jié)果
圖6 ELM檢測結(jié)果
為提高海量網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)檢測的效率和精度,將云計算和核極限學(xué)習(xí)機結(jié)合,提出一種基于云計算的核極限學(xué)習(xí)機的網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)挖掘算法。通過Map函數(shù)和Reduce函數(shù)的并行設(shè)計和計算,實現(xiàn)網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)的分布式分析和處理。研究結(jié)果表明,通過CC-KELM、KELM和ELM進行對比發(fā)現(xiàn),CC-KELM算法能夠有效提高網(wǎng)絡(luò)入侵檢測的準(zhǔn)確率。