◆杜 濤
(山西晉中學(xué)院遠(yuǎn)程教育學(xué)院 山西 030600)
基于BP神經(jīng)網(wǎng)絡(luò)技術(shù)的網(wǎng)絡(luò)流量預(yù)測模型
◆杜 濤
(山西晉中學(xué)院遠(yuǎn)程教育學(xué)院 山西 030600)
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)在帶給人們便利性的同時(shí)也面臨著諸多安全威脅。計(jì)算機(jī)網(wǎng)絡(luò)流量作為一個(gè)重要的網(wǎng)絡(luò)安全參數(shù),受到越來越多的重視。建立網(wǎng)絡(luò)流量預(yù)測模型,不僅可以為網(wǎng)絡(luò)性能分析、流量管控等提供支持,還可以更好地解決網(wǎng)絡(luò)效率、安全等方面的問題?;诖?,本文提出了神經(jīng)網(wǎng)絡(luò)流量預(yù)測模型,并相應(yīng)地驗(yàn)證了模型的正確性。
網(wǎng)絡(luò)流量;BP神經(jīng)網(wǎng)絡(luò);預(yù)測模型
隨著網(wǎng)絡(luò)信息技術(shù)的飛速發(fā)展,越來越多的用戶和產(chǎn)品加入到網(wǎng)絡(luò)中來。據(jù)聯(lián)合國相關(guān)機(jī)構(gòu)發(fā)布的數(shù)據(jù),2016年全球互聯(lián)網(wǎng)用戶將達(dá)到34億人,占世界人口總數(shù)的45%。據(jù)思科公司預(yù)計(jì),到2016年,全球網(wǎng)絡(luò)一年的流量將達(dá)到 1.8 ZB。海量的用戶和流量,使得網(wǎng)絡(luò)結(jié)構(gòu)變得日趨復(fù)雜。在這種情況下,建立準(zhǔn)確的網(wǎng)絡(luò)流量預(yù)測模型就可以為網(wǎng)絡(luò)性能分析、流量控制、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)規(guī)劃等提供理論支持,更好地解決網(wǎng)絡(luò)效率、安全等問題,改善和保障網(wǎng)絡(luò)運(yùn)行。
網(wǎng)絡(luò)流量是指一定時(shí)間內(nèi)通過網(wǎng)絡(luò)或網(wǎng)絡(luò)端口的數(shù)據(jù)大小?,F(xiàn)實(shí)中的網(wǎng)絡(luò)流量模型呈現(xiàn)出復(fù)雜的非線性關(guān)系,受到多種外因的影響。常見的描述網(wǎng)絡(luò)流量的模型有FARIMA[1]、灰色模型、SVM、神經(jīng)網(wǎng)絡(luò)模型等。
1.1 FARIMA模型
FARIMA(p,d,q)模型是一種時(shí)間序列模型,是ARIMA(p,d,q)模型(Autoregressive Integrated Moving Average Model)的演變[1]。FARIMA模型可以同時(shí)對線性和非線性的相關(guān)建模,但是不能對突發(fā)性等網(wǎng)絡(luò)外界因素進(jìn)行捕捉,計(jì)算量大。
1.2 灰色模型
灰色模型的建立基于灰色系統(tǒng)理論,通過找出系統(tǒng)中典型的變化關(guān)系建立系統(tǒng)模型。這種模型所需的樣本數(shù)據(jù)少,精度高,但是容錯(cuò)性較差,當(dāng)系統(tǒng)發(fā)生任何變化時(shí),灰色模型都需要重新建立。
1.3 神經(jīng)網(wǎng)絡(luò)模型
神經(jīng)網(wǎng)絡(luò)模型是通過模擬自然界中生物復(fù)雜的神經(jīng)元而構(gòu)造出來的數(shù)學(xué)模型,是對人腦的一種簡單抽象模擬。神經(jīng)網(wǎng)絡(luò)模型具有較強(qiáng)的容錯(cuò)性和自主的學(xué)習(xí)能力,當(dāng)前廣泛地應(yīng)用于網(wǎng)絡(luò)流量預(yù)測、網(wǎng)絡(luò)安全預(yù)測等方面。
2.1 BP神經(jīng)網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層和輸出層三部分組成,是一種誤差反傳的前饋多層神經(jīng)網(wǎng)絡(luò)[2]。BP神經(jīng)網(wǎng)絡(luò)每層中各神經(jīng)元之間不能連通,上下層之間神經(jīng)元全連通。
BP神經(jīng)網(wǎng)絡(luò)是一種具有自主學(xué)習(xí)能力的算法,學(xué)習(xí)過程分為信號正向傳播和誤差逆向傳播兩部分[3]。第一階段信號通過網(wǎng)絡(luò)結(jié)構(gòu)和迭代的閥值和權(quán)值,從第一層開始正向傳輸,最終從輸出層得到結(jié)果。系統(tǒng)會(huì)判斷結(jié)果是否符合預(yù)期,如果不符合則啟動(dòng)第二階段,這是信號的方向發(fā)生逆轉(zhuǎn),從輸出層開始逐層調(diào)整閥值和權(quán)值,如此往復(fù),直到輸出值滿足我們要求為止[4]。
由于神經(jīng)元的同層不連接性,所以單個(gè)神經(jīng)元具有在任意節(jié)點(diǎn)都具有單一的輸出值。設(shè)神經(jīng)元接收其它神經(jīng)元的值為Xi,相互作用強(qiáng)度即權(quán)值為Wi,i=0,1,2,3……n-1,閥值為θ,則這個(gè)神經(jīng)元的輸入為:
相應(yīng)的輸出為:
式中f()為激發(fā)函數(shù),一般為(0,1)內(nèi)連續(xù)取值Sigmoid函數(shù)。
預(yù)測誤差為:
其中yn(i)為實(shí)際流量數(shù)據(jù),y(i)為預(yù)測輸出。
神經(jīng)網(wǎng)絡(luò)的權(quán)值和閥值根據(jù)預(yù)測誤差不斷修正,其公式為:
2.2 網(wǎng)絡(luò)流量預(yù)測模型系統(tǒng)實(shí)現(xiàn)
流量預(yù)測模型的實(shí)現(xiàn)步驟如下:
第一步截取網(wǎng)絡(luò)流量數(shù)據(jù),并初始化相關(guān)數(shù)據(jù);
第二步基于MATLAB 7.0構(gòu)建BP神經(jīng)網(wǎng)絡(luò),并初始化;
第三步對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;
第四步用訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行預(yù)測,對預(yù)測數(shù)據(jù)進(jìn)行比對。
具體實(shí)現(xiàn)過程如圖所示:
圖1 網(wǎng)絡(luò)流量預(yù)測模型流程圖
在確定模型結(jié)構(gòu)之后,通過華三公司的智能管理中心采集晉中學(xué)院校園網(wǎng)接口流量數(shù)據(jù)作為本論文實(shí)驗(yàn)數(shù)據(jù)。自2016年3月5日至7日兩天內(nèi)每10分鐘采集的流量數(shù)據(jù)信息,共獲得288個(gè)流量數(shù)據(jù),其中278個(gè)做為訓(xùn)練數(shù)據(jù),10個(gè)為驗(yàn)證數(shù)據(jù)。
圖2 晉中學(xué)院48小時(shí)流量圖
通過MATLAB 7.0計(jì)算機(jī)仿真軟件構(gòu)建網(wǎng)絡(luò)流量預(yù)測模型,取隱含層節(jié)點(diǎn)數(shù)為n=5,訓(xùn)練最大次數(shù)取500,學(xué)習(xí)算法采用梯度下降法函數(shù)traingd。
核心代碼如下: