袁華兵
(西安醫(yī)學院信息技術(shù)處 西安 710021)
對等網(wǎng)絡(luò)(Peer to Peer Networks,P2P)是計算機網(wǎng)絡(luò)和分布式系統(tǒng)結(jié)合的產(chǎn)物,其被廣泛地應(yīng)用于即時通信、流媒體、文件存儲和文件共享等領(lǐng)域[1]。目前,P2P 流量占到國內(nèi)網(wǎng)絡(luò)流量的70%以上,由此可見P2P 網(wǎng)絡(luò)流量嚴重影響整個互聯(lián)網(wǎng)的服務(wù)質(zhì)量,因此進行P2P 流量識別對給用戶提供可管可控的高質(zhì)量網(wǎng)絡(luò)服務(wù)具有重要意義。
為提高P2P 網(wǎng)絡(luò)流量識別的準確率,針對Elman 神經(jīng)網(wǎng)絡(luò)預測精度受其權(quán)值和閾值選擇的影響,本文運用蜻蜓算法[2](Dragonfly Algorithm,DA)對Elman 神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進行優(yōu)化選擇,提出一種基于DA-Elman的機器學習的P2P網(wǎng)絡(luò)流量識別模型。研究結(jié)果表明,DA-Elman 可以有效提高P2P 網(wǎng)絡(luò)流量識別的準確率,其準確率高達98.4252%,為P2P網(wǎng)絡(luò)流量的識別提供新的方法和途徑。
DA 算法中,蜻蜓個體通過避撞行為、結(jié)對行為、聚集行為、覓食行為和避敵行為等5種行為方式進行覓食和尋優(yōu),這些個體行為詳細描述如下[2]:
避撞行為的位置向量更新策略:
式中,X 為當前蜻蜓個體的位置;Xj為第j 個鄰近蜻蜓個體位置;N為相鄰蜻蜓個體的數(shù)量。
結(jié)對行為的位置向量更新策略:
式中,Vj為第j個鄰近蜻蜓個體速度。
聚集行為的位置向量更新策略:
覓食行為的位置向量更新策略:
式中,X+為食物源位置(當前最優(yōu)解)。
避敵行為的位置向量更新策略:
式中,天敵位置X-(當前最差解)。綜合5 種蜻蜓群體行為,蜻蜓個體的步長向量更新策略為
式中,s、a、c、f、e 分別為5 種蜻蜓群體行為的權(quán)重;w 表示慣性權(quán)重;t 為當前迭代次數(shù)。
蜻蜓位置更新策略為
Elman 神 經(jīng) 網(wǎng) 絡(luò)[3~5](Elman Neural Network,ENN)是一種具有局部反饋連接的前向神經(jīng)網(wǎng)絡(luò),其由輸入層(Input Layer)、隱含層(Hidden Layer)、關(guān)聯(lián)層(Association Layer)和輸出層(Output Layer)組成,其結(jié)果示意圖如圖1所示。
與傳統(tǒng)的靜態(tài)前向神經(jīng)網(wǎng)絡(luò)相比,ENN網(wǎng)絡(luò)增加了一個關(guān)聯(lián)層,也叫連接層,該層從隱含層接受反饋信號,隱含層節(jié)點數(shù)與關(guān)聯(lián)層節(jié)點數(shù)相等,兩者一一對應(yīng)進行連接。圖1中,W1、W2、W3分別為輸入層到隱含層的權(quán)值矩陣、關(guān)聯(lián)層到隱含層的權(quán)值矩陣和隱含層到輸出層的權(quán)值矩陣;U(k-1)、X(k)、Y(k)和Xc(k)分別為ENN 的輸入向量、隱含層輸出向量、ENN 的輸出向量和關(guān)聯(lián)層的輸出向量,其數(shù)學模型為[6~7]
其中,f(x)、g(x)分別為隱含層和輸出層的傳遞函數(shù);b1、b2分別為隱含層和輸出層的閾值。
圖1 Elman神經(jīng)結(jié)構(gòu)示意圖
針對ENN 預測精度受其權(quán)值和閾值選擇的影響,本文運用DA 對ENN 網(wǎng)絡(luò)的權(quán)值和閾值進行優(yōu)化選擇,DA-Elman模型的適應(yīng)度函數(shù)為
基于DA-Elman的P2P網(wǎng)絡(luò)流量識別算法流程具體描述如下。
Step1:輸入P2P 網(wǎng)絡(luò)數(shù)據(jù),產(chǎn)生Elman 訓練集和測試集,并進行數(shù)據(jù)歸一化,歸一化公式為
其中,x'為歸一化之后的數(shù)據(jù);x,xmax,xmin分別原始數(shù)據(jù)、原始數(shù)據(jù)中的最大值和最小值;a、b為歸一化之后的最小值和最大值。本文取a=-1,b=1。
Step2:DA 算法參數(shù)初始化:種群規(guī)模N,最大迭代次數(shù)T,若Elman 神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個數(shù)為N1,隱含層神經(jīng)元個數(shù)為N2,關(guān)聯(lián)層神經(jīng)元個數(shù)為N2,輸出層神經(jīng)元個數(shù)為N3,則DA 優(yōu)化變量的個數(shù)為Num=N2×(N1+N2+N3)+(N2+N3);
Step3:隨機初始化步長向量DX 和隨機產(chǎn)生蜻蜓個體的初始位置X ;
Step4:令當前迭代次數(shù)t=1,將訓練集輸入Elman,根據(jù)適應(yīng)度函數(shù)式(9)計算所有蜻蜓個體的適應(yīng)度,并進行排序記錄當前最優(yōu)解;
Step5:更新食物源位置X+(當前最優(yōu)解)和天敵位置X-(當前最差解),更新5 種行為權(quán)重s、a、c、f、e和慣性權(quán)重w;
Step6:根據(jù)式(1)~式(5)更新S、A、C、E和F;
Step7:根據(jù)式(6)~式(7)更新步長向量和位置向量;
Step8:若迭代次數(shù)t>T,保存ENN 的最佳參數(shù)W*1,W*2,W*3,b*1,b*2;否則,t=t+1,返回Step4;
Step9:將最ENN 的最佳參數(shù)W*1,W*2,W*3,b*2代入Elman進行P2P網(wǎng)絡(luò)流量識別。
選擇Wireshark 軟件抓取網(wǎng)絡(luò)流量數(shù)據(jù),包括PPStream、eMule、BitTorrent 和PPLive 4 個網(wǎng)絡(luò)流量數(shù)據(jù)類型[8~9],每個類型的樣本各159 個,一共636個數(shù)據(jù)樣本。數(shù)據(jù)特征包括TCP 流量比例、連接數(shù)與不同IP 數(shù)目的比值、平均數(shù)據(jù)包長度、上行流量比例、數(shù)據(jù)包總數(shù)5個特征屬性[10~11]。
為了評價不同方法進行P2P 網(wǎng)絡(luò)流量識別的優(yōu)劣,選擇準確率作為流量識別的評價指標[12]:
式中,AC 為準確率;N 為樣本總數(shù);TN 為正確分類的樣本數(shù)量。
為驗證本文DA-Elman 算法的優(yōu)劣,將DA-Elman 與PSO-Elman、GA-Elman 和Elman 進行對比,Elman 網(wǎng)絡(luò)參數(shù)[13]為N1=5,N2=11,N3=1,最大迭代次數(shù)Tmax=1000,訓練誤差goal=0.001。通用參數(shù)設(shè)置:種群規(guī)模N=10,最大迭代次數(shù)T=100,PSO 算法[14]學習因子c1=c2=2;GA 算法[15]交叉概率pc=0.7,變異概率pm=0.1,訓練集占比ratio=0.8,每個算法獨立運行10次,識別結(jié)果取平均值,識別結(jié)果如圖2~圖5所示和表1所示。
圖2 DA-Elman識別結(jié)果
圖3 PSO-Elman識別結(jié)果
圖4 GA-Elman識別結(jié)果
“○”為實際網(wǎng)絡(luò)流量類型,“*”為預測識別的網(wǎng)絡(luò)流量類型。由圖2~圖5 和表1 可知,與PSO-Elman、GA-Elman 和Elman 相比,DA-Elman可以有效提高P2P網(wǎng)絡(luò)流量識別的準確率,其準確率高達98.4252%,分別比PSO-Elman、GA-Elman和Elman 提高4.7244%、6.2992%和9.5118%。智能算法優(yōu)化Elman 的網(wǎng)絡(luò)流量識別準確率均得到了較大提高,主要是因為智能算法對Elman 的權(quán)值和閾值進行了參數(shù)選擇,提高了識別準確率。
圖5 Elman識別結(jié)果
表1 不同算法識別準確率
圖6 不同訓練集占比識別正確率
由圖6 可知,隨著訓練集占比的提高,DA-Elman的P2P網(wǎng)絡(luò)流量識別的正確率不斷提高,當ratio=0.1 時,識別準確率AC=80.7692%;當ratio=0.9時,識別準確率AC=96.3351%。綜合分析可知,與PSO-Elman、GA-Elman 和Elman 相比,DA-Elman可以有效提高P2P 網(wǎng)絡(luò)流量識別的準確率,其準確率高達98.4252%,為P2P網(wǎng)絡(luò)流量的識別提供新的方法和途徑。
針對Elman 神經(jīng)網(wǎng)絡(luò)預測精度受其權(quán)值和閾值選擇的影響,運用蜻蜓算法對Elman 神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進行優(yōu)化選擇,提出一種基于DA-Elman 的機器學習的P2P 網(wǎng)絡(luò)流量識別模型。研究結(jié)果表明,DA-Elman 可以有效提高P2P 網(wǎng)絡(luò)流量識別的準確率,其準確率高達98.4252%,為P2P 網(wǎng)絡(luò)流量的識別提供新的方法和途徑。