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