孫瑜玲++林勤花
摘 要: 考慮到傳統BP神經網絡在進行P2P流量識別時,具有系統識別速度慢、精度低,神經網絡自身容易陷入局部最小值等問題,使用遺傳算法對BP神經網絡進行優化。遺傳算法具有較強的自適應性和魯棒性,因此使用遺傳算法對BP神經網絡的權值和閾值進行優化處理,能夠有效提高神經網絡的性能。建立基于遺傳神經網絡的識別系統,采集處理大量樣本數據,對識別系統進行訓練和測試。研究結果表明,基于遺傳神經網絡的P2P流量識別系統具有識別精度高、識別速度快等優點,相比傳統BP神經網絡,其識別性能有明顯提高。
關鍵詞: 遺傳算法; P2P; 流量識別; BP神經網絡
中圖分類號: TN711?34; TP393 文獻標識碼: A 文章編號: 1004?373X(2015)17?0117?04
P2P traffic recognition system based on genetic neural network
SUN Yuling, LIN Qinhua
(Sichuan Information Technology College, Guangyuan 628017, China)
Abstract: Since the traditional BP neural network has slow recognition speed and low accuracy while proceeding P2P traffic recognition, and the neural network itself is easy to fall into local minimum value, the genetic algorithm is used to optimize BP neural network. Genetic algorithm has better adaptability and robustness, so it is used to optimize the weight and threshold of BP neural network, which can improve the performance of the neural network effectively. To study the performance of the established recognition system based on genetic neural network, the recognition system was trained and tested by collecting and processing a large number of sample data. The research results show that P2P traffic identification system based on genetic neural network has high recognition accuracy and rapid recognition speed. Compared with the traditional BP neural network, the recognition performance of P2P traffic identification system has been improved obviously.
Keywords: genetic algorithm; P2P; traffic recognition; BP neural network
隨著計算機科學技術的不斷發展與進步,P2P技術已經廣泛應用于網絡視頻音頻多媒體播放、網絡文件共享以及數據傳輸等領域,P2P技術不斷吸引了越來越多的網絡用戶、網絡應用服務開發者以及提供商的目光,各種各樣的基于P2P技術的網絡應用和服務不斷涌現,為人們在網絡中提供了便利。然而,隨著人們享受著P2P技術帶來的各種便利的同時,P2P技術的各種負面效應也隨之而來。目前P2P應用存在對網絡流量消耗巨大,監管難度大,以及易于網絡病毒傳播,為網絡帶來安全隱患等問題。因此,對P2P流量的精確識別和監測成為了對P2P技術研究的重中之重[1?5]。
1 P2P流量識別技術
1.1 典型P2P流量識別技術
典型的P2P流量識別技術主要有:基于端口的識別技術、基于深層數據包的識別技術以及基于流量變化特征的識別技術。
基于端口的識別技術是一種應用最早的識別技術,其主要根據早期P2P應用的固定端口進行識別,具有算法簡便,易于實現等優點,但是對于現如今復雜的網絡環境,此種技術已經不再適用[6?7]。
基于深層數據包的識別技術往往因為存在識別滯后、隱私保護以及算法復雜等缺點而得不到廣泛普及應用。
基于流量變化特征的識別技術通過對P2P流量數據進行采集,通過處理數據得到數據流的統計特征,使用統計特征作為機器學習的訓練樣本,得到經過訓練的識別系統。此識別技術具有算法簡便、效率高等優點[8?9]。
1.2 基于神經網絡的P2P流量識別技術
BP神經網絡是一種有督導的智能機器學習算法,已經在機械、計算機、通信等領域得到了廣泛應用,其技術發展已經相對成熟。將BP神經網絡用于對P2P流量的識別是一種可行有效的識別技術和手段。
然而將BP神經網絡算法用于P2P流量識別雖然克服了傳統識別方法存在的諸多問題,但是由于算法自身特性也隨之帶來了新的問題。
BP神經網絡實際上是梯度下降算法的一種迭代學習方法。由于梯度下降算法要求具有較小的學習速度時才能進行穩定的學習,因此其收斂速度較慢。并且,由于BP神經網絡在進行訓練時,會在某點沿著誤差斜面而漸進誤差極值,不同的起點會得到不同的誤差極值和不同的解。因此傳統BP神經網絡具有學習速度慢、抗干擾能力弱以及容易陷入局部最小值等缺點[10?11]。
2 BP神經網絡和遺傳神經網絡
2.1 BP神經網絡
BP神經網絡結構如圖1所示。通常由輸入層、輸出層和隱含層組成。
圖1中[P]為網絡輸出,[R]為網絡維數,[S1]為隱層神經元數目,[W1]為隱層神經元權值,[a1]為隱層神經元輸出,[b1]為隱層神經元閾值,[n1]為隱層節點的輸入,[S2]為輸出層神經元數目,[W2]為輸出層神經元權值,[a2]為輸出層神經元輸出,[b2]為輸出層神經元閾值,[n2]為輸出層節點的輸入,[f1,][f2]為傳遞函數,通常,[f2]為purelin型,[f1]為:
[fx=11+e-x] (1)
則有BP神經網絡的輸出誤差為:
[E=p12jdpj-opj2] (2)
BP神經網絡算法的權值修正方法為:
[ωjit+1=ωjit+ηδpjopj] (3)
式中[η]為網絡的學習速度。
輸出層的神經元為:
[δpj=opjdpj-opj1-opj] (4)
隱層的神經元為:
[δpj=opjdpj-opjkδpkωkj] (5)
BP神經網絡傳播算法為反向傳播,需要多次試算才能確定神經網絡系統的連接權值和閾值。初始權值和閾值的選取對最終的連接權值和閾值有很大影響,同時對神經網絡的收斂速度和精度影響很大。因此本文使用遺傳算法對BP神經網絡的權值和閾值進行優化處理[12]。
2.2 遺傳神經網絡
2.2.1 遺傳算法
遺傳算法是一種由Datwin進化論和Mendel遺傳學思想提出的具有強魯棒性能,強并行處理能力的全局優化搜索算法。遺傳算法已經在計算機科學、機械科學、交通運輸、物流分配、組合優化等領域得到了廣泛的應用。
遺傳算法可以表述為:
[GA=O0, N, L, s, g, p, f, t] (6)
式中:[O0]是初始種群,[O0=a10,a20,…,] [aN0∈IN;][I]為[L]的全體二進制串,[I=B1=0,1];[N]為在一個種群中,染色體的個數;[L]為二進制串的長度;[s]為選擇策略,[IN→IN];[g]為遺傳算子,[g]包括繁殖算子[Qr:][I→I,]雜交算子[Qc:][I×I→I×I]以及變異算子[Qm:][I→I;][p]為遺傳算子概率,[p]包括繁殖概率[pr、]雜交概率[pc]以及變異概率[pm;][f]為適應函數,[f:][I→R+;][t]為終止準則[13],[t]:[IN→0,1]。
2.2.2 神經網絡拓撲結構
通過數據樣本對神經網絡進行訓練學習后,網絡對測試數據樣本能夠做出準確識別的能力稱為神經網絡的泛化能力。神經網絡拓撲結構、訓練數據樣本的初始處理以及網絡中單元連接點的連接權值是影響神經網絡泛化能力的重要因素。單隱含層的前饋式神經網絡結構的隱含層神經元個數由VC維確定。神經網絡泛化能力受到網絡結構復雜程度的影響可以由VC維測試。VC維的維度表示為:
[d=MN+NP] (7)
式中:[M]為神經網絡輸入層神經元個數;[N]為神經網絡隱含層神經元個數;[P]為神經網絡輸出層神經元個數。
神經網絡輸入層神經元個數[M]和輸出層神經元個數[P]為已知量,可以在允許范圍內,調整訓練樣本數量[m]和隱含層神經元個數[N]的值,隱含層神經元個數[N]的取值為:
[N=M+P+a] (8)
式中[a]為一常數,在1~20范圍內。
神經網絡經過[m]個訓練數據樣本訓練后,網絡的泛化誤差不大于[e,]其中[e≤Odm?lnmd]。對訓練數據樣本個數[m]和隱含層神經元個數[N]進行合理選取可以使[e]趨于最低值。因此可以得到最優的神經網絡拓撲結構以及最優的訓練數據樣本個數[m。]
遺傳算法的適應度函數表示為:
[f=NSSE] (9)
式中:[SSE]為神經網絡輸出與實際值的誤差平方和[14]。
2.2.3 遺傳神經網絡算法
通過上述對BP神經網絡和遺傳算法的分析可以得到啟示,由于初始權值和閾值的選取對最終的連接權值和閾值有很大影響,同時對神經網絡的收斂速度和精度影響很大。因此使用遺傳算法通過遺傳和變異手段對BP神經網絡的初始權值和閾值進行不斷更新換代的優化處理,從而確保BP神經網絡系統總誤差[SSE]趨于最低值。使用遺傳算法對BP神經網絡的優化過程如圖2所示。
優化過程可以表述為:
(1)生產一個隨機的初始解群體[Xt=]。。。[x1t,x2t,…,xNt。]
(2) 對群中個體神經網絡使用訓練數據樣本進行網絡訓練,然后計算得到個體各自的學習誤差,對初始解群體[Xt]中的每個個體[xit]的適應度使用適應函數求解。
(3) 使用雜交概率[pc]以及變異概率[pm]完成交叉、變異操作,從而得到新的解群體[Xt]。
(4) 對新的解群體[Xt]中每個個體進行計算得到各自適應度,由最優保留策略計算出下一代種群[Xt+1]。
(5) 當滿足下面這兩個條件之一時,所得個體即為所求個體:迭代次數大于限制代數[T];使用解群體里某一個最優解使得個體建立的神經網絡的學習輸出誤差滿足要求。若不滿足任何條件,跳到步驟(4),繼續循環進化過程[15]。
3 P2P流量識別實驗分析
3.1 實驗數據采集
在實際復雜網絡環境下,使用嗅探軟件SRSniffer對P2P數據流量進行采集。用于輸入向量的流量特征選取為:數據包總數;TCP流量比例;上行流量比例;平均數據包長度;連接數量與IP數量之比。數據包統計時間長度選取為30 s。
選取其中數據量較大,使用頻率較高的Bitcomet流量14 320 MB,thunder流量12 650 MB,QQLIVE流量9 380 MB,以及PPStream流量8 640 MB,總計44 990 MB流量。通過數據處理和統計分析,將Bitcomet,thunder,QQLIVE和PPStream這四種應用的流量數據中各提取出300個樣本。其中150個樣本用于神經網絡訓練樣本,另外150個樣本用于對訓練后的神經網絡進行識別測試,這樣共有600個樣本用于訓練,600個樣本用于測試[16]。
3.2 神經網絡訓練過程
根據P2P流量識別系統的要求,在Matlab數值計算軟件中建立BP神經網絡模型和遺傳神經網絡模型。其中神經網絡的輸入層數由流量特征數量決定,由前文可將輸入層數設定為5。輸出層數由需要識別的P2P應用類型決定,由前文可將輸出層數設定為4,神經元傳遞函數設定為purelin型。隱含層數根據輸入、輸出層神經元個數確定,根據經驗公式可以確定隱含層神經元個數為18,并且使用tansig()型傳遞函數。設定神經網絡的學習速率為10?2,最大訓練次數為2 000次,訓練精度為10?5。設定初始群體的大小為18,變異概率為0.25,交叉概率為0.75,終止代數[17]設定為600。
使用訓練樣本分別對BP神經網絡和遺傳神經網絡進行訓練,得到兩個系統收斂曲線如圖3,圖4所示。
通過對比BP神經網絡和遺傳神經網絡訓練收斂曲線可以看出,BP神經網絡訓練達到設定精度需要進行1 700多次訓練,而遺傳神經網絡僅需要1 000次訓練,因此遺傳神經網絡具有較快的收斂速度和收斂精度。
3.3 P2P流量識別結果分析
使用采集處理好的600個測試數據對使用BP神經網絡和遺傳神經網絡的識別模型進行性能測試,其測試結果見表1。
由測試數據可以看出,基于遺傳神經網絡的識別率平均值為94.9%,比基于BP神經網絡的平均識別率高出6.5%,其識別性能明顯優于基于BP神經網絡的識別系統。
在實驗過程中發現,Bitcomet和thunder這兩個P2P應用的流量識別準確率比較高。而QQLIVE和PPStream兩個P2P應用的流量識別準確率相對較低,而且經常被互相識別,這主要是因為QQLIVE和PPStream兩個P2P應用都屬于P2P網絡流媒體,由于兩者協議比較相似,流量特性亦相似,因此經常被互相誤識別[18]。
4 結 論
本文對P2P流量識別技術進行了深入研究。P2P技術在網絡中已經得到了廣泛應用,其流量在網絡總流量中占有重要地位,因此對其流量進行實時監測識別具有重要意義。本文對P2P流量識別技術進行了分析,對使用比較廣泛的BP神經網絡模型進行了深入研究,并針對其缺點,使用遺傳算法進行優化,建立基于遺傳神經網絡的P2P流量識別模型。通過實驗采集大量網絡訓練樣本和測試樣本,對建立的識別系統進行測試。測試結果表明,基于遺傳算法的神經網絡的識別速度和識別精度要高于BP神經網絡,具有較高的工程應用價值。
參考文獻
[1] 譚紅春,楊松濤,闞紅星.校園網P2P流量綜合檢測技術研究[J].長沙大學學報,2015(2):70?72.
[2] 劉興光.一種混合式BT流量實時檢測方法[J].網絡安全技術與應用,2014(3):53?55.
[3] 湯偉.基于數據流特征向量識別的P2P僵尸網絡檢測方法研究[D].青島:中國海洋大學,2014.
[4] 席鵬.基于距離判決算法的P2P流量識別模型研究[D].昆明:云南大學,2013.
[5] 鄧力為.基于遺傳神經網絡的P2P流量檢測研究[D].成都:電子科技大學,2013.
[6] 張龍璨.基于粒子群優化半監督學習的網絡流量分類方法研究[D].武漢:華中科技大學,2013.
[7] 張瀚.基于DPI技術的P2P流量檢測系統設計[D].北京:北京郵電大學,2013.
[8] 馬容生.基于自適應神經網絡的P2P流量檢測研究[J].通信技術,2012(6):113?116.
[9] 張瀚,朱洪亮,辛陽.基于DPI技術的P2P流量檢測系統設計[J].信息網絡安全,2012(10):36?40.
[10] 張小敏.基于DPI的P2P流量識別方法研究[D].南京:南京郵電大學,2012.
[11] 周雪蓮.P2P流量應用層實時檢測技術研究[D].長春:吉林大學,2012.
[12] 賀毅朝,宋建民,張敬敏,等.利用遺傳算法求解靜態與動態背包問題的研究[J].計算機應用研究,2015(4):1011?1015.
[13] 王曉瑜,原思聰,李曼.基于自適應蟻群遺傳混合算法的PID參數優化[J].計算機應用研究,2015(5):1376?1378.
[14] 劉奕君,趙強,郝文利.基于遺傳算法優化BP神經網絡的瓦斯濃度預測研究[J].礦業安全與環保,2015,42(2):56?60.
[15] 吳連平,楊曉翔.基于神經網絡與遺傳算法的關節軸承擠壓模具優化[J].中國機械工程,2015,26(10):1351?1355.
[16] 李麟青,楊哲,朱艷琴.一種混合式BitTorrent流量檢測方法[J].計算機應用,2011,31(12):3210?3214.
[17] 劉文超,陳琳,向華.P2P流量檢測技術與分析[J].現代電子技術,2011,34(22):39?41.
[18] 高富.基于行為統計特性的P2P流量檢測技術的研究[D].北京:北京郵電大學,2011.