国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于人工神經(jīng)網(wǎng)絡(luò)和遺傳算法的網(wǎng)絡(luò)攻擊檢測

2021-09-16 01:51:44羅予東
計算機工程與設(shè)計 2021年9期
關(guān)鍵詞:特征選擇種群準確率

羅予東,陸 璐

(1.嘉應(yīng)學院 計算機學院,廣東 梅州 514015;2.華南理工大學 計算機科學與工程學院,廣東 廣州 510641)

0 引 言

入侵檢測是網(wǎng)絡(luò)安全領(lǐng)域的一個重要問題[1],傳統(tǒng)的入侵檢測系統(tǒng)[2]基于正常的流量數(shù)據(jù)建立模型,把與正常流量存在明顯差異的行為識別成異常行為,無需網(wǎng)絡(luò)異常行為的先驗知識,即可實現(xiàn)較好的檢測準確率,但由于噪聲數(shù)據(jù)和冗余數(shù)據(jù)的影響,此類傳統(tǒng)方法存在誤報率過高的問題。

目前主流的方法是將特征選擇算法和機器學習技術(shù)結(jié)合,能夠有效降低入侵檢測的誤報率,同時提高系統(tǒng)的處理效率[3]。宋勇等[4]提出了一種基于信息論模型的入侵檢測特征提取方法,該特征選擇算法提高了入侵檢測的準確率。文獻[5]首先應(yīng)用K-近鄰模型檢測并刪除離群數(shù)據(jù),有效提高了網(wǎng)絡(luò)攻擊的檢測效果。文獻[6]提出一種結(jié)合極限學習機與改進K-means算法的入侵檢測方法。文獻[4-6]分別采用搜索算法、隨機森林和極限學習機3種機器學習技術(shù),在NSL-KDD和KDD-99等數(shù)據(jù)集上完成了驗證實驗,這兩個數(shù)據(jù)集的分類數(shù)量較少,且數(shù)據(jù)分布不平衡的程度較低。

因此本文采用MLRM[7]作為機器學習技術(shù),將MLRM與多目標遺傳算法NSGA-II結(jié)合成封裝特征選擇算法。再把降維后的特征子集送入感知機訓練,利用重引力搜索算法搜索神經(jīng)網(wǎng)絡(luò)的參數(shù)。本算法利用NSGA-II較強的多目標優(yōu)化能力,并利用了多項式邏輯回歸模型較強的不平衡數(shù)據(jù)分類能力,選擇的特征子集對不平衡數(shù)據(jù)具有較強的判別能力,最終實現(xiàn)了較好的分類性能,另外通過GSA訓練技術(shù)加快了感知機的訓練速度。

1 封裝特征選擇算法

圖1是封裝特征選擇算法的流程,將多目標遺傳算法NSGA-II[8]和邏輯回歸分類器[9]組合成封裝式特征選擇算法。

圖1 基于遺傳算法和邏輯回歸的封裝特征選擇算法

1.1 多目標遺傳算法NSGA-II

NSGA-II算法通過irank和idist兩個指標評價解i的質(zhì)量:irank表示解i的前沿排名,idist表示解i的密度。采用快速非支配排序方法[8]計算irank,采用擁擠度計算解的idist。擁擠度表示最近兩個點在前沿上的平均距離,通過擁擠度指數(shù)可維持解在前沿中均勻分布。解i擁擠度的計算式為

(1)

圖2 擁擠度計算

NSGA-II的選擇算子基于參數(shù)irank和idist實現(xiàn),選擇算子的規(guī)則為:選擇前沿排名更高的解,如果兩個解屬于同一個前沿,則優(yōu)先選擇處于低擁擠度的解。圖3是NSGA-II算法在第t次迭代的處理過程,遺傳算子處理種群Pt,產(chǎn)生后代種群Qt,將Pt和Qt合并成大小為2N的種群Rt。使用非支配排序方法識別種群Rt中不同的前沿,采用精英機制將最優(yōu)前沿的解保留到下一次迭代。

圖3 NSGA-II算法在第t次迭代的處理過程

1.2 邏輯回歸分類器

封裝式特征選擇采用邏輯回歸分類器MLR評價NSGA-II選擇的特征子集。使用MLR和訓練集評價該模型,然后將模型在測試集上進行測試。MLR模型中模態(tài)yj的邏輯定義為

(2)

通過下式降低J-1項的概率

(3)

通過差分運算估計概率πJ。通過計算最大似然,估計出(J-1)×(N+1)個項的系數(shù)

(4)

采用牛頓迭代法[10]計算式(4)的最大似然,首先建立牛頓法的梯度向量和Hessian矩陣,將梯度向量G表示為

(5)

式中:向量Gj與模態(tài)yj相關(guān)聯(lián),Gj的維度為(N+1)×1,Gj第i個元素的計算式為

(6)

設(shè)H為Hessian矩陣,H的維度為[(J-1)×(N+1)]×[(J-1)×(N+1)],H定義為

(7)

式中:Hi,j的維度為(N+1)×(N+1),Hi,j的計算式為

(8)

式中:X=(1,X1,…,XN)是觀察樣本ω的表示向量。如果i=j,那么σi,j=1,否則σi,j=0。

1.3 封裝式特征選擇設(shè)計

針對不平衡數(shù)據(jù)分類問題,將NSGA-II和MLR結(jié)合成封裝特征選擇算法。特征選擇的目標是以最少的特征獲得最高的分類準確率,屬于多目標優(yōu)化問題,算法1所示是特征選擇算法的步驟,通過NSGA-II搜索多目標優(yōu)化問題的帕累托前沿,通過MLR評價特征的質(zhì)量。

算法1隨機初始化N個染色體的種群Pt,每個染色體表示一個潛在的特征子集,假設(shè)總特征數(shù)量為n,特征子集為X={x1,x2,…,xn},其中xi∈{0,1},1≤i≤n。xi=1表示特征i被選擇,否則被取消。首先通過MLR評估初始化種群的染色體,將準確率和特征數(shù)量作為兩個目標函數(shù)。將MLR評估過的每個子集保存于列表L,避免重復評估相同的特征子集,由此加快處理速度。采用非支配排序方法將初始化種群排序,經(jīng)過遺傳算子(選擇算子、交叉算子及變異算子)處理產(chǎn)生后代種群Qt。根據(jù)非支配排列程序的排序結(jié)果直接生成第1個后代種群,選擇算子選擇擁擠度低的染色體,交叉算子采用概率為pc的單點交叉,變異算子采用概率為pm的隨機變異。將父種群Pt和后代種群Qt合并獲得Rt,對種群Rt進行非支配排序處理和擁擠度排序處理,選出排名前一半的染色體建立下一代種群。特征選擇算法的結(jié)束條件為:①當前種群與下一代種群相同;②達到預設(shè)的迭代次數(shù)G。

算法1:封裝特征選擇算法

輸入:訓練數(shù)據(jù)集,測試數(shù)據(jù)集

輸出:帕累托次優(yōu)解集

(1)i=0;

(2)Pt=NULL;

(3)Pt+1=NULL;

(4)Evaluate(L);

(5)InitPop(Pt);

(6)Evaluate(Pt,L);//評價種群

(7)NonDomSort(Pt); //非支配排序

(8)While()do

(9) if(i>0)then

(10)NonDomSort(Pt+1); //非支配排序

(11)CrowdDistanceSort(Pt+1);//擁擠度排序

(12)Pt=Pt+1;

(13) endif

(14)GenOff(Pt,Qt); //生成后代種群

(15)Evaluate(Qt,L); //評價種群

(16)Rt=Merge(Pt,Qt); //合并種群

(17)NonDomSort(Rt); //非支配排序

(18)CrowdDistanceSort(Rt);//擁擠度排序

(19)Gen(Rt,Pt+1); //產(chǎn)生下一代種群

(20)i++;

(21)endwhile

2 攻擊檢測算法

2.1 基于多層感知機的攻擊檢測

多層感知機MLP具有結(jié)構(gòu)簡單、訓練難度小的優(yōu)點,因此采用MLP檢測網(wǎng)絡(luò)的攻擊類型,MLP包含一個輸入層I、一個隱藏層H和一個輸出層O。根據(jù)數(shù)據(jù)集的分類數(shù)量決定輸出層的節(jié)點數(shù)量,例如:NSL-KDD數(shù)據(jù)集共有5個分類,輸出節(jié)點數(shù)量為3,輸出“000”表示正常樣本,“001”表示DoS攻擊,“010”表示U2R攻擊,“011”表示R2L攻擊,“100”表示Probe攻擊。圖4是MLP的網(wǎng)絡(luò)結(jié)構(gòu),在MLP輸入層和隱藏層之間的權(quán)重記為Vih,隱藏層和輸出層之間的權(quán)重記為Who,偏置節(jié)點和輸出節(jié)點間連接的權(quán)重B1,B2,B3稱為偏置權(quán)重。因此MLP共有((I×H)+(H×3)+3)個權(quán)重參數(shù)。

圖4 多層感知機的網(wǎng)絡(luò)結(jié)構(gòu)

2.2 人工神經(jīng)網(wǎng)絡(luò)的訓練方法

目前大多采用反向傳播算法直接訓練MLP分類器[11],但該訓練過程容易陷入局部最優(yōu)。為解決該問題,本文將重引力搜索(gravitational search algorithm,GSA)和粒子群優(yōu)化(particle swarm optimization,PSO)混合來提高MLP的訓練效果,簡記為HPSO(hybrid particle swarm optimization),提高算法的全局搜索能力,并避免陷入局部最優(yōu)。圖5是基于HPSO訓練ANN的流程。

圖5 基于HPSO的訓練流程

(1)Agent表示

GSA的每個Agent對應(yīng)一個可能解,將Agent表示為向量形式:{V11,V12,…,VIH,W11,W12,…,WH3,B1,B2,B3},每個元素對應(yīng)ANN的一個權(quán)重參數(shù)。Agent的長度等于[(I×H)+(H+3)+3]。

Agent解的每個元素初始化為[-1,1]的隨機數(shù),然后隨機初始化每個Agent的參數(shù),包括:速度、質(zhì)量、G0、慣性權(quán)重、學習因子。圖6是隨機初始化Agent的一個實例。

圖6 隨機初始化Agent的實例

(2)Agent的適應(yīng)度評價

ANN采用以下的sigmoid激活函數(shù)

(9)

將網(wǎng)絡(luò)攻擊的識別準確率Det作為適應(yīng)度函數(shù),識別準確率的計算式為

(10)

式中:T表示被正確分類的樣本數(shù)量,F(xiàn)為錯誤分類的樣本數(shù)量。

(3)Agent更新

根據(jù)文獻[12]的研究,采用對數(shù)曲線更新Agent的引力,可降低GSA陷入局部最優(yōu)的概率,Agent的對數(shù)更新公式為

(11)

式中:Gmin和Gmax分別為初始化引力常量的最小值和最大值,a為加速度,t為當前的迭代次數(shù),T為預設(shè)的最大迭代次數(shù)。

為了加快GSA的搜索速度,設(shè)計如下的速度更新公式

(12)

式中:c′1和c′2為加速度系數(shù),Agentbest為目前為止的最佳Agent,x為個體最佳位置,a為Agent的加速度,r1和r2為[0,1]范圍的隨機數(shù)。

Agent的速度更新公式為

vt=(ω×vt-1)+Z1+Z2

(13)

式中:ω為慣性權(quán)重,vt為Agent在第t次迭代的速度。

圖7是攻擊檢測算法的總體流程。

圖7 攻擊檢測算法的流程

3 實驗與結(jié)果分析

3.1 數(shù)據(jù)集簡介

基于NSL-KDD和CIC-IDS 2017兩個公開數(shù)據(jù)集完成算法的驗證實驗。KDD99數(shù)據(jù)集與其擴展數(shù)據(jù)集NSL-KDD是應(yīng)用最為廣泛的網(wǎng)絡(luò)入侵數(shù)據(jù)集,但這兩個數(shù)據(jù)集的版本較為老舊,所包含的攻擊類型較少。因此本文也在近期的CIC-IDS2017數(shù)據(jù)集上完成了驗證實驗,該數(shù)據(jù)集采集了真實的網(wǎng)絡(luò)攻擊流量,且包含更多的攻擊類型。

NSL-KDD數(shù)據(jù)集是經(jīng)典KDD-99數(shù)據(jù)集的擴展數(shù)據(jù)集,其訓練集共有125 973個樣本,測試集共有22 543個樣本。數(shù)據(jù)集共有41個特征和5個分類,表1是NSL-KDD數(shù)據(jù)集每個類別的分布情況,表中每個分類的所占比例顯示,該數(shù)據(jù)集是一個不平衡的數(shù)據(jù)集,正常樣本大約占了半數(shù),DoS數(shù)據(jù)大約占了三分之一。

表1 NSL-KDD數(shù)據(jù)集的基本信息

CIC-IDS2017數(shù)據(jù)集包含5天時間內(nèi)所采集的50 GB原始網(wǎng)絡(luò)流量數(shù)據(jù),該數(shù)據(jù)集利用CICFlowMeter軟件[13]共提取了80余個特征,數(shù)據(jù)集的攻擊流量細分成14種攻擊類型:DoS黃金眼、Heartbleed、DoS Hulk、DoS Slowhttp、DoS Slowloris、SSH-Patator、FTP-Patator、Brute Force攻擊、SQL注入攻擊、XSS攻擊、滲透攻擊、Bot攻擊、端口掃描攻擊和DDoS。表2是CIC-IDS2017數(shù)據(jù)集每個分類的分布情況,表中每個分類的所占比例顯示,該數(shù)據(jù)集是一個極為不平衡的數(shù)據(jù)集[14]。

表2 CIC-IDS2017數(shù)據(jù)集的基本信息

3.2 實驗方法設(shè)計

實驗環(huán)境為PC機:配置Intel Core i7 4790S處理器,3.2 GHz主頻,16 GB內(nèi)存,Windows 10操作系統(tǒng)。基于C++編程語言實現(xiàn)攻擊檢測算法。

(1)性能評價指標

首先通過分類準確率評價攻擊檢測的準確性,另外采用精度、召回率、F-measure、MCC(Matthews correlation coefficient)及AUC(area under curve)評價攻擊檢測算法的綜合性能。

精度的計算式為

(14)

式中:TPi為正陽性樣本,F(xiàn)Pi為假陽性樣本。

召回率的計算式為

(15)

式中:FNi為假陰性樣本。

F-measure的計算式為

(16)

MCC的計算式為

------------------

(17)

------------------

式中:TNi為真陰性樣本。

AUC的計算式為

式中:TPR為真正率,F(xiàn)PR為假正率。

(2)對比方法介紹

共采用了6個攻擊檢測或識別算法與本文算法比較,將本文算法簡記為MGA-LR。GA-SVM[15]采用遺傳算法對流量數(shù)據(jù)集進行降維處理,通過過濾式特征選擇算法刪除一部分冗余特征,再利用支持向量機將流量數(shù)據(jù)樣本分類。GA-ANN[16]采用遺傳算法對流量數(shù)據(jù)集進行過濾式特征選擇,通過降維處理刪除一部分冗余特征,再利用人工神經(jīng)網(wǎng)絡(luò)和支持向量機的混合模型將流量數(shù)據(jù)樣本分類。PSO-ANN[17]采用粒子群優(yōu)化算法對流量數(shù)據(jù)集進行降維處理,將基尼指數(shù)和決策樹融合完成封裝式特征選擇,再對流量數(shù)據(jù)樣本進行分類。GS-ANN[18]將重引力搜索算法和模糊分類器結(jié)合成封裝式特征選擇算法,再利用人工神經(jīng)網(wǎng)絡(luò)對流量數(shù)據(jù)進行分類。GSPSO-ANN[19]將重引力搜索算法和粒子群優(yōu)化算法結(jié)合對流量數(shù)據(jù)進行降維處理,再利用多層感知機對流量數(shù)據(jù)進行分類。本文MGA-LR算法將多目標遺傳算法和多項式邏輯回歸分類器組合成封裝式特征選擇算法,再用特征集訓練多層感知機,實現(xiàn)對網(wǎng)絡(luò)攻擊的檢測與識別。

(3)實驗方法與參數(shù)設(shè)置

將每個數(shù)據(jù)集隨機均勻分成兩個子數(shù)據(jù)集Dataset1和Dataset2。數(shù)據(jù)集Dataset1用于特征選擇處理,Dataset1的50%作為訓練集,另外50%作為測試集。數(shù)據(jù)集Dataset2用于分類處理,Dataset2的60%作為訓練集,10%作為驗證集,30%作為測試集。實驗首先對網(wǎng)絡(luò)流量數(shù)據(jù)集進行預處理,使用Weka軟件[20]將數(shù)據(jù)樣本和特征轉(zhuǎn)換成整型數(shù)值,再將整型數(shù)值歸一化至[0,1]范圍。然后采用封裝式特征選擇算法對數(shù)據(jù)進行降維處理,并刪除冗余的特征。將特征子集和訓練數(shù)據(jù)送入多層感知機進行訓練,利用訓練的神經(jīng)網(wǎng)絡(luò)識別測試數(shù)據(jù)的類型。

通過試錯實驗搜索GSA算法和GA算法的最佳參數(shù),最終相關(guān)參數(shù)的取值見表3。NSL-KDD和CIC-IDS2017數(shù)據(jù)集的GSA種群大小分別為50和80,交叉率分別為0.6和0.7。NSL-KDD和CIC-IDS2017數(shù)據(jù)集的GA種群大小分別為50和100。

表3 優(yōu)化算法的基本信息

3.3 實驗結(jié)果與分析

(1)特征選擇結(jié)果

表4是不同算法選擇的特征數(shù)量,GSPSO-ANN處理NSL-KDD數(shù)據(jù)集之后,僅保留了4個顯著特征,是降維效果最好的算法。GA-ANN和MGA-LR均屬于基于遺傳算法的特征選擇算法,兩者的區(qū)別在于GA-ANN是過濾式的特征選擇算法,而MGA-LR是封裝式的特征選擇算法,兩個算法刪除的維數(shù)十分接近。GA-SVM將特征判別能力作為主要目標,通過單目標遺傳算法完成尋優(yōu)處理,因此刪除的特征數(shù)量較少。

表4 數(shù)據(jù)集的特征選擇結(jié)果(特征數(shù)量)

(2)流量檢測準確率

網(wǎng)絡(luò)安全算法的首要目標是將每個網(wǎng)絡(luò)數(shù)據(jù)實例分類,圖8(a)、圖8(b)分別為NSL-KDD數(shù)據(jù)集和CIC-IDS2017數(shù)據(jù)集的平均分類準確率。觀察NSL-KDD數(shù)據(jù)集的結(jié)果,GA-ANN通過7個特征獲得了約87.7%的分類準確率。MGA-LR通過6個特征獲得了更好的分類準確率。GSPSO-ANN僅通過4個特征即獲得了接近95%的分類準確率,在降維效果和準確率兩個方面較為平衡??傮w而言,本文MGA-LR算法在準確率性能上表現(xiàn)出明顯的優(yōu)勢。觀察CIC-IDS2017數(shù)據(jù)集的結(jié)果,GA-ANN通過15個特征獲得了約81.5%的分類準確率。GSPSO-ANN僅通過11個特征即獲得了接近84%的分類準確率,在降維效果和準確率兩個方面較為平衡。總體而言,本文MGA-LR算法在不同程度的不平衡數(shù)據(jù)集上均表現(xiàn)出明顯的優(yōu)勢,其原因在于NSGA-II具有較強的多目標優(yōu)化能力,多項式邏輯回歸模型也具有較強的不平衡數(shù)據(jù)分類能力,因此所選擇的特征子集對不平衡數(shù)據(jù)具有較強的判別能力。

圖8 檢測準確率的結(jié)果

(3)攻擊檢測性能

上文測試了算法框架每個階段的性能,該小節(jié)對攻擊檢測算法的總體性能進行實驗測試。圖9(a)、圖9(b)分別為NSL-KDD數(shù)據(jù)集的統(tǒng)計性能指標,圖10(a)、圖10(b)分別為CIC-IDS2017數(shù)據(jù)集的統(tǒng)計性能指標。觀察NSL-KDD數(shù)據(jù)集的結(jié)果,MGA-LR通過6個特征獲得了較好的統(tǒng)計分析結(jié)果,但在MMC和AUC兩個綜合性能指標上,本文算法仍然具有一定的優(yōu)勢。比較NSL-KDD和CIC-IDS2017兩個數(shù)據(jù)集的統(tǒng)計分析結(jié)果,數(shù)據(jù)集的不平衡程度越高,總體檢測性能越低。本文利用NSGA-II較強的多目標優(yōu)化能力,利用多項式邏輯回歸模型較強的不平衡數(shù)據(jù)分類能力,選擇的特征子集對不平衡數(shù)據(jù)具有較強的判別能力,最終實現(xiàn)了較好的分類性能。

圖9 NSL-KDD數(shù)據(jù)集的統(tǒng)計性能指標

圖10 CIC-IDS2017數(shù)據(jù)集的統(tǒng)計性能指標

(4)算法時間性能

時間效率是網(wǎng)絡(luò)攻擊檢測算法的另一個關(guān)鍵性能指標,表5、表6統(tǒng)計了不同檢測算法處理NSL-KDD和CIC-IDS2017數(shù)據(jù)集的平均時間及標準偏差,其中訓練時間為全部訓練過程的總時間,測試過程則是檢測每個數(shù)據(jù)實例的時間。本文算法采用了結(jié)構(gòu)簡單的感知機神經(jīng)網(wǎng)絡(luò),且利用HPSO對神經(jīng)網(wǎng)絡(luò)進行訓練,加快了訓練速度。由于本文采用的感知機具有結(jié)構(gòu)簡單的特點,因此算法的檢測速度也較快。

表5 NSL-KDD數(shù)據(jù)集的時間性能/s

表6 CIC-IDS2017數(shù)據(jù)集的時間性能/min

4 結(jié)束語

為了提高網(wǎng)絡(luò)攻擊檢測的準確率,設(shè)計了基于人工神經(jīng)網(wǎng)絡(luò)和遺傳算法的混合網(wǎng)絡(luò)攻擊檢測算法。該算法利用NSGA-II較強的多目標優(yōu)化能力,利用多項式邏輯回歸模型較強的不平衡數(shù)據(jù)分類能力,所選擇的特征子集對不平衡數(shù)據(jù)實現(xiàn)了較強的判別能力。此外,采用結(jié)構(gòu)簡單的感知機神經(jīng)網(wǎng)絡(luò),且利用HPSO對神經(jīng)網(wǎng)絡(luò)進行訓練,加快了訓練速度。實驗結(jié)果顯示,本文算法對于不同程度的不平衡數(shù)據(jù)集均表現(xiàn)出較好的識別性能,優(yōu)于其它同類型的方法。

猜你喜歡
特征選擇種群準確率
邢氏水蕨成功繁衍并建立種群 等
山西省發(fā)現(xiàn)刺五加種群分布
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
健康之家(2021年19期)2021-05-23 11:17:39
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產(chǎn)品質(zhì)量檢驗分析
高速公路車牌識別標識站準確率驗證法
Kmeans 應(yīng)用與特征選擇
電子制作(2017年23期)2017-02-02 07:17:06
聯(lián)合互信息水下目標特征選擇算法
基于特征選擇和RRVPMCD的滾動軸承故障診斷方法
基于二元搭配詞的微博情感特征選擇
計算機工程(2014年6期)2014-02-28 01:26:36
滁州市| 通州市| 崇左市| 灌阳县| 宝兴县| 乐至县| 桦甸市| 吴堡县| 理塘县| 尤溪县| 玛多县| 独山县| 济宁市| 汉阴县| 昭平县| 大兴区| 塔河县| 天津市| 昔阳县| 五莲县| 奉节县| 滦南县| 格尔木市| 安泽县| 栖霞市| 五常市| 墨江| 西宁市| 永年县| 盈江县| 施秉县| 万宁市| 高邑县| 琼海市| 肇州县| 九龙县| 常州市| 乡城县| 阳山县| 咸阳市| 武平县|