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

?

基于Fisher-PCA 和深度學習的入侵檢測方法研究

2020-10-23 06:37張鑫杰任午令
數(shù)據(jù)采集與處理 2020年5期
關鍵詞:誤報率特征選擇降維

張鑫杰,任午令

(浙江工商大學計算機與信息工程學院,杭州,310018)

引 言

互聯(lián)網(wǎng)技術的發(fā)展正潛移默化地改變著人們的生活方式,拉近了人與人之間的距離,給人們的生活帶來了許多方便,但是任何事情都有兩面性,隨著網(wǎng)絡的普及,通過網(wǎng)絡進行攻擊犯罪的事件也越來越多,一些勒索攻擊在生活中已經(jīng)屢見不鮮。面對日益嚴峻的攻擊行為,人們需要研究并部署安全系統(tǒng)來保護自己的電腦和相關的服務器,而入侵檢測系統(tǒng)(Intrusion detection systems,IDS)[1-2]作為一種檢測是否存在外界入侵行為的預防手段,對維護計算機系統(tǒng)安全、確保網(wǎng)絡的正常運行有著十分重要的意義[3-4]。

隨著技術的發(fā)展,運用于入侵檢測的方法也越來越多,從以前的基于規(guī)則進行檢測[5]到傳統(tǒng)的機器學習[6],再到現(xiàn)在的深度學習,學者們已經(jīng)做了大量的研究。比如文獻[7]中提出通過遺傳算法來尋找最合適的反向傳播(Back propagation,BP)神經(jīng)網(wǎng)絡權值,對傳統(tǒng)的BP 神經(jīng)網(wǎng)絡進行了改進,提升了整個網(wǎng)絡的性能,但是在實際場景中數(shù)據(jù)的維數(shù)并不是固定不變的,如果數(shù)據(jù)的維數(shù)過高,冗余量大會導致整個網(wǎng)絡的計算復雜度大大增加從而使檢測的時間增加;文獻[8]提出將模糊C 均值聚類(Fuzzy C-means,F(xiàn)CM)應用于入侵檢測中,可以有效地檢測出部分未知的攻擊,并且適用于動態(tài)的網(wǎng)絡環(huán)境,但是當數(shù)據(jù)類別較多時需要很長的計算時間;文獻[9]提出通過信息增益(Information gain,IG)和主成分分析法(Principal component analysis, PCA)方法相結(jié)合進行特征提取,通過這種方法進行數(shù)據(jù)的降維有效地提高了分類模型的檢測率,但在降低誤檢率上效果并不是很理想;文獻[10]中提出使用Fisher-FCBF 算法來進行特征提取,雖然大大降低了模型的計算時間,但在準確率和誤報率方面并沒有提高;文獻[11]中先根據(jù)屬性比率數(shù)據(jù)特征提取方法進行數(shù)據(jù)處理,然后進行高斯混合聚類,最后使用隨機森林進行分類,提高了準確率,但是聚類時k 值難以確定,聚類的好壞對分類結(jié)果有較大的影響;文獻[12]提出通過獨立成分分析(Independent component analysis,ICA)算法來進行特征提取,消除特征的冗余性,使模型具有更好的特征學習能力和更精確的分類能力。

綜上所述,現(xiàn)有的入侵檢測方法對數(shù)據(jù)進行特征提取后往往只對分類模型的準確率、誤報率和檢測時間等的某一方面做了改善,同時一些具有學習功能的方法在運行性能上也存在著不足。為此,本文提出了一種基于Fisher-PCA 和深度學習的入侵檢測方法。通過改進的Fisher-PCA 特征提取方法,提高了入侵檢測分類模型的準確率、檢測率,降低了誤報率;通過搭建具有收斂速度快、學習能力強等特征的深度神經(jīng)網(wǎng)絡(Deep neural networks, DNN)對數(shù)據(jù)進行分類,進一步提高了模型的運行性能;最后使用公開的KDD99 數(shù)據(jù)集對該入侵檢測算法進行了測試,以驗證算法的有效性。

1 基于Fisher-PCA 和深度學習的入侵檢測模型

本文提出的一種基于Fisher-PCA 和深度學習的入侵檢測模型,能夠有效處理那些維度高、冗余量大的數(shù)據(jù),并且在準確率和誤報率上有較好的表現(xiàn),其基本流程圖如圖1 所示。

首先對測試集和訓練集中的數(shù)據(jù)進行預處理,將每條報文數(shù)據(jù)的符號特征數(shù)字化(包括類別),再對數(shù)據(jù)進行標準化處理,然后進行數(shù)據(jù)的Fisher 特征選擇和PCA 降維,將其輸入到設計好的DNN 神經(jīng)網(wǎng)絡中進行訓練,多次訓練后模型達到最優(yōu)化,最后輸入測試集得到結(jié)果并對結(jié)果進行規(guī)范化處理做出反應。

1.1 Fisher 特征選擇

Fisher 特征選擇算法的大體思路是借鑒了線性判別分析(Linear discriminant analysis,LDA)算法。LDA 是Fisher 于1936 年提出的一種有監(jiān)督學習的降維方法,其思想是將樣本點投影到一條直線上,使同類的樣本點盡可能地集中,而使不同類的樣本點盡量分離。下面給出如何找到這條直線的數(shù)學公式。

圖1 基本流程圖Fig.1 Basic flow chart

定義Sw、Sb和St分別表示類內(nèi)、類間和總體散度矩陣,滿足St=Sb+Sw,線性空間的某一條直線為向量W,則目標函數(shù)可定義為[13]

求解出J(W)的極大值W?,則向量W?就是所要求解的這條直線。

根據(jù)LDA 算法的思想可以得出如下結(jié)論:在同一特征下,當滿足類間相似度越大,而類內(nèi)相似度越小,說明該特征對于分類的有效性更高,該特征也就更加重要。Fisher 特征選擇算法的偽代碼如下。

輸入:訓練樣本數(shù)據(jù)集。

輸出:重新排列后的數(shù)據(jù)集。

(1)計算輸入數(shù)據(jù)集的特征數(shù)n,類別數(shù)m。

fori=1:n

計算出每個特征的所有數(shù)據(jù)的平均值

forj=1:m

計算該特征值的所有類別各自方差,并把他們相加,表示類內(nèi)方差temp1;

計算該特征值下每一類數(shù)據(jù)的平均值和樣本總平均值的方差,將這些方差相加為類間方差temp2;

(2)計算特征重要性=temp2/(temp1+0.01)(避免temp1 為0)。

(3)按特征重要性降序排列。

1.2 PCA 降維

PCA[14]是一種統(tǒng)計學方法,其目的是如何以最少的信息丟失將原有的變量濃縮成少數(shù)幾個因子(主成分),其具體的步驟如下。

(1)數(shù)據(jù)標準化,以消除量綱對數(shù)據(jù)的干擾。

式中:xij為矩陣中第i行第j列的值,μj和σj分別為第j維向量的均值和標準差,每個數(shù)據(jù)標準化后的結(jié)果為Zij。

(2)計算協(xié)方差矩陣S

(3)根據(jù)協(xié)方差矩陣S計算出對應的特征值(λ1,λ2,…,λp)和特征向量a1,a2,…,ap。

(4)根據(jù)得到的特征值計算貢獻率η和累計貢獻率∑η。

(5)確定累計貢獻率大于某一值時滿足要求,取出前k個特征值對應的特征向量a1,a2,…,ak組成p行k列的變換矩陣Q。

(6)得到降維后的k維數(shù)據(jù)矩陣T

1.3 DNN 深度神經(jīng)網(wǎng)絡模型設計

首先確定網(wǎng)絡結(jié)構,設計了包含4 個隱藏層的DNN 模型,其中每一個隱藏層分別含有64 個隱藏單元,每一層訓練的結(jié)果都作為下一層的輸入。

使用線性整流函數(shù)(Rectified linear unit,ReLU)作為模型中間層的激活函數(shù)。引入激活函數(shù)的目的是為了增加神經(jīng)網(wǎng)絡各層之間的非線性關系而不是簡單的矩陣相乘。與sigmoid 等其他一些激活函數(shù)相比,此激活函數(shù)不僅節(jié)省了計算時間,而且很好地解決了反向傳播時常常出現(xiàn)的不穩(wěn)定和梯度消失問題,其數(shù)學表達式為[15]

即當x≥0 時,f(x)=x;當x<0 時,f(x)= 0,如圖2 所示。

使用一種好的優(yōu)化算法是深度學習模型的關鍵,本模型使用Adam 優(yōu)化算法[16]來代替?zhèn)鹘y(tǒng)的梯度下降算法,與其他算法主要的區(qū)別在于為不同的參數(shù)設計獨立的自適應學習率,其有著收斂的速度更快,所需內(nèi)存更小,損失函數(shù)波動較小等優(yōu)勢,適合解決包含大規(guī)模數(shù)據(jù)和參數(shù)的優(yōu)化問題。Adam 算法的核心步驟如下:

(1)計算開始t時間步的梯度

圖2 ReLU 激活函數(shù)Fig.2 ReLU activation function

(2)計算梯度均值

(3)計算梯度平方均值

(4)對梯度均值mt偏差進行糾正,以降低對訓練初期的影響

(5)對梯度平方均值vt偏差糾正

(6)更新梯度值(α為學習率,ε為默認常數(shù))

最后一層采用Softmax 分類器,它是一種多類別分類器,將多個神經(jīng)元的輸出映射到[0,1]區(qū)間內(nèi),這些值的累加和為1(滿足概率性質(zhì)),最后選取出概率最大的結(jié)點作為分類結(jié)果。

2 實驗過程及結(jié)果分析

2.1 實驗環(huán)境

實驗環(huán)境的各項指標為,CPU:3.30 GHz;內(nèi)存:8 GB;顯卡:Intel(R) HD Graphics 4600 (2112 MB);OS:Windows7.0;開發(fā)環(huán)境:Pycharm 2019.1.2。

2.2 實驗數(shù)據(jù)集

實驗所使用的數(shù)據(jù)集是由KDD Cup99[17]提供的10% 訓練樣本和corrected 的測試樣本,訓練集數(shù)據(jù)共494 021 條,測試集數(shù)據(jù)共311 029 條。數(shù)據(jù)集中各個類型的數(shù)據(jù)分布如表1 所示。

2.3 數(shù)據(jù)預處理及結(jié)果分析

2.3.1 符號特征數(shù)字化

由于KDD99 數(shù)據(jù)樣本的42 維特征中,某些特征的值不是數(shù)值類型,所以要將其先轉(zhuǎn)為數(shù)字特征,通過如下方式處理:

表1 實驗數(shù)據(jù)類型的分布情況表Table 1 Distribution of experimental data types

(1)協(xié)議類型:共有3 種,將其從0 開始遞增順序?qū)ζ渚幋a,即

Protocol_type={“icmp”:0;“tcp”:1;“udp”:2}

(2)目標主機的網(wǎng)絡服務類型:共有70 種,從0 開始遞增順序?qū)ζ渚幋a,即

Service_type={“IRC”:0;“X11”:1;“Z39_50”:2;…}

(3)連接正?;蝈e誤的狀態(tài):共有11 種,從0 開始遞增順序?qū)ζ渚幋a,即

Connection_type={“OTH”:0;“REJ”:1;“RSTO”:2;…}

(4)攻擊類型:即第42 維的攻擊類型標簽,將其分為5 大類,從0 開始遞增序列對其編碼,即

Lable_type={“Normal”:0;“Dos”:1;“Probe”:2;“U2R”:3;“R2L”:4}

原數(shù)據(jù)樣例:

0,tcp,http,SF,181,5 450,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,8,8,0.00,0.00,0.00,0.00,1.00,0.00,0.00,9,9,1.00,0.00,0.11,0.00,0.00,0.00,0.00,0.00,normal

數(shù)字化后的數(shù)據(jù)樣例:

0,1,22,9,181,5 450,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,8,8,0.00,0.00,0.00,0.00,1.00,0.00,0.00,9,9,1.00,0.00,0.11,0.00,0.00,0.00,0.00,0.00,0

2.3.2 數(shù)據(jù)標準化

因為數(shù)據(jù)之間的量綱和數(shù)值的量級不一樣,所以如果不進行標準化會對模型訓練時間和檢測性能產(chǎn)生不小的影響。數(shù)據(jù)的標準化方法有很多種,本文所使用的標準化方法為min-max 方法,描述如下:定義序列x1,x2,…,xn公式為

yi的范圍在0 到1 之間,且沒有量綱。

標準化后的數(shù)據(jù)樣例:

0,5.000 000 00e-01,3.333 333 43e-01,8.999 999 76e-01,2.610 417 77e-07,1.057 130 05e-03, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.565 557 72e-02, 1.565 557 72e-02, 0, 0, 0, 0, 1, 0, 0,3.529 411 93e-02,3.529 411 93e-02,1,0,1.099 999 99e-01,0,0,0,0,0,0

2.3.3 Fisher 特征選擇

使用Fisher 特征選擇算法對訓練集進行特征選擇,得到每個特征索引號對應的評價函數(shù)值,然后根據(jù)所得的評價函數(shù)值由高到底對相對應的特征索引號進行排序如下: [20,21,23,12,24,2,36,32,3,29,39,25,26,38,4,31,37,34,35,1,33,6,22,19,8,10,30,17,18,14,16,15,11,41,27,28,13,7,9,40,5],本實驗選取前35 個特征,組成新的35 維的訓練數(shù)據(jù)集,對測試集也選取對應的特征集組成新的測試集。

2.3.4 PCA 降維處理

通過PCA 降維方法對Fisher 特征選擇后的訓練數(shù)據(jù)集進行降維,得到的累計貢獻率與維數(shù)的關系如圖3 所示。為了在降維的同時盡量保留原始記錄的信息,取累計貢獻率為99.9%,即取陣的前20 維作為新的訓練數(shù)據(jù)集,保留了幾乎全部原始數(shù)據(jù)集特征信息的同時達到降維目的,然后將訓練數(shù)據(jù)集降維得到的變換矩陣對特征選擇后的測試集降維。

2.3.5 實驗結(jié)果及分析

采用準確率AC、檢測率DR 和誤報率FA 來作為評價指標,其計算公式為

圖3 累計貢獻率與維數(shù)關系圖Fig.3 Relationship between cumulative contribution rate and the dimension

其中公式中各變量的含義如表2 所示。

這里將本文設計的DNN 模型命名為NDNN,將帶有Fisher-PCA 特征處理功能的模型命名為FP_NDNN,時間為檢測時間。這兩種模型的指標對比如表3 所示。

表2 評價指標中各變量的含義Table 2 Meaning of the variables in the evaluation index

表3 NDNN 和FP_NDNN 模型的指標比較Table 3 Index comparison between NDNN and FP_NDNN models

由表3 對比可知,經(jīng)過Fisher 和PCA 進行特征處理后的模型在準確率和檢測率上有較小的提升,但在入侵檢測中的重要指標誤報率上有較大的降低,相比于NDNN 模型的誤報率相對降低了77.2%。檢測時間下降了25%。

FP_NDNN 模型與其他模型的指標對比如表4 所示。

表4 FP_NDNN 模型與其他模型的指標比較Table 4 Index comparison between FP_NDNN and other models

由表4 對比可知,本文模型FP_NDNN 與傳統(tǒng)的機器學習算法支持向量機(Support vector machine, SVM)和傳統(tǒng)的人工神經(jīng)網(wǎng)絡(Artificial neural network, ANN)相比,在各個性能上都有大幅度的提高;與通過PCA 對數(shù)據(jù)進行處理并結(jié)合卷積神經(jīng)網(wǎng)絡的PCA-CNN 算法相比,在準確率和檢測率上不相上下,但是誤報率下降了36%;與DBN4 算法相比可能在準確率和檢測率上略有不足,但在誤報率上下降了63%。

本文所采用的模型結(jié)構為64—64—64—64,不同的模型結(jié)構對實驗結(jié)果可能會有不同的影響,一些不同的模型結(jié)構的指標比較如表5 所示。

表5 不同模型結(jié)構的指標比較Table 5 Index comparison of different model structures

由表5 對比可知:模型結(jié)構越復雜,其檢測所需的時間也越長;在準確率和檢測率上,第3 和第4 種模型要略好于第1 和第2 種;在誤報率方面,不同的模型結(jié)構差別還是比較大,并不是越復雜的模型結(jié)構誤報率越低,4 種模型結(jié)構中第3 種誤報率最低,也是本文所采用的。

上述所分析的是模型對正常數(shù)據(jù)和攻擊數(shù)據(jù)的檢測效果,使用FP_NDNN 模型對不同攻擊類型進行檢測并與其他模型進行比較的結(jié)果如表6 和7 所示,評價指標與前面不同,這里所使用的準確率和漏報率的計算公式分別為

準確率=預測的攻擊類型和實際的攻擊類型相同的數(shù)目/預測為該攻擊類型的數(shù)目

漏報率=把某類攻擊樣本預測為正常樣本的數(shù)量/該類攻擊樣本的數(shù)量。

表6 對不同攻擊類型檢測的準確率Table 6 Detection accuracy of different attack types %

表7 對不同攻擊類型檢測的漏報率Table 7 False negative rates of different attack types of detection %

由表6 和7 結(jié)果對比可知:對于Dos 攻擊類型的檢測,3 種模型的檢測效果都不錯,并且指標也不相上下;對于Probe 攻擊類型地檢測,本文方法與GBDT 模型不相上下,要優(yōu)于文獻[20]的方法;對于U2R攻擊類型的檢測,GBDT 模型的檢測效果最差,本文方法略優(yōu)于文獻[20];對于R2L 攻擊類型的檢測,文獻[20]在準確率方面要優(yōu)于GBDT 模型和本文方法,但是在漏報率方面,本文方法要略好于其他兩種模型。

3 結(jié)束語

由于現(xiàn)在網(wǎng)絡上的攻擊數(shù)據(jù)維度高、噪聲大,如果不進行特征的提取,當模型進行學習時,不僅效率和性能低下,而且分類的結(jié)果也不是特別理想。本文通過Fisher 方法進行特征的選擇,再用PCA 進行特征降維。在不改變數(shù)據(jù)特征信息的同時,能夠有效地減少模型的檢測時間。實驗表明,通過Fisher和PCA 進行特征提取能夠使NDNN 深度神經(jīng)網(wǎng)絡模型在提高準確率和檢測率的同時,大大地降低誤報率。與其他一些模型相比,本文模型在誤報率上有明顯的優(yōu)勢。但是,此方法可能不是最好的提取特征的方法,NDNN 神經(jīng)網(wǎng)絡模型的性能也存在著進一步提升的空間,而要更加充分學習數(shù)據(jù)特征之間的關系。在后續(xù)工作中,可進一步研究更好的特征提取方法,與分類模型有效地融合,并改進模型的優(yōu)化算法,將此入侵檢測算法應用于實際的網(wǎng)絡中進行實驗并不斷改進。

猜你喜歡
誤報率特征選擇降維
混動成為降維打擊的實力 東風風神皓極
原始數(shù)據(jù)動態(tài)觀察窗法在火災特征信號融合提取中的應用研究
家用燃氣報警器誤報原因及降低誤報率的方法
Helicobacter pylori-induced inflammation masks the underlying presence of low-grade dysplasia on gastric lesions
鉆桿管體超聲波探傷誤報分析及措施
降維打擊
Kmeans 應用與特征選擇
一種改進的稀疏保持投影算法在高光譜數(shù)據(jù)降維中的應用
聯(lián)合互信息水下目標特征選擇算法
基于特征選擇聚類方法的稀疏TSK模糊系統(tǒng)
塔城市| 满城县| 桦南县| 南华县| 长子县| 定西市| 德庆县| 潢川县| 民丰县| 松滋市| 泸定县| 望奎县| 墨脱县| 收藏| 海伦市| 肇源县| 金寨县| 洞口县| 阜新| 扎囊县| 蒲城县| 监利县| 丰镇市| 宁武县| 中江县| 正阳县| 海宁市| 西贡区| 化州市| 家居| 大足县| 明水县| 济南市| 兰州市| 扎赉特旗| 饶平县| 瑞丽市| 禄丰县| 筠连县| 淮南市| 固镇县|