周任軍,王文晶
(山西大學(xué)商務(wù)學(xué)院,山西 太原 030031)
網(wǎng)絡(luò)流量[1]是判定網(wǎng)絡(luò)性能和運行狀態(tài)的重要指標,對網(wǎng)絡(luò)流量進行預(yù)測,進而對流量進行適當(dāng)調(diào)整以及控制,對網(wǎng)絡(luò)管理具有重要意義。為建立精準、穩(wěn)定的網(wǎng)絡(luò)流量預(yù)測模型,近年來神經(jīng)網(wǎng)絡(luò)成為該研究領(lǐng)域關(guān)注的焦點,相關(guān)研究人員提出了較多研究成果。
胡竟偉[2]提出基于小波變換和極限學(xué)習(xí)機的流量預(yù)測模型。該方法小波變換處理網(wǎng)絡(luò)流量的時間序列,對得到的不同頻率特征分量進行空間重構(gòu)。選用極限學(xué)習(xí)機對網(wǎng)絡(luò)流量各分量建模預(yù)測,并對各分量的預(yù)測值進行小波重構(gòu),得到初始網(wǎng)絡(luò)流量預(yù)測數(shù)值。該方法具有穩(wěn)定性,但是存在預(yù)測精度較低的缺陷。劉科[3]等人提出基于生物地理學(xué)優(yōu)化算法的BBO-ELM預(yù)測模型。首先在ELM預(yù)測模型的基礎(chǔ)上,將BBO優(yōu)化算法用于ELM的網(wǎng)絡(luò)輸入變量、隱含層節(jié)點的配置及參數(shù)。在此基礎(chǔ)上進行Tikhonov正則化參數(shù)的優(yōu)化選取。該模型的網(wǎng)絡(luò)流量預(yù)測準確度較高,但是抗干擾能力較差。強延飛[4]等人針對網(wǎng)絡(luò)性能優(yōu)化中短期流量預(yù)測模型選擇問題,采用支持向量回歸、神經(jīng)網(wǎng)絡(luò)和線性時間序列等模型,對MAWILab數(shù)據(jù)集中骨干網(wǎng)流量進行短期預(yù)測。利用一步預(yù)測方法,得到不同流量序列樣本的預(yù)測結(jié)果,通過量化預(yù)測誤差比較不同模型的預(yù)測性能。該方法有較好的預(yù)測準確度,但是記憶能力較差。
針對以上傳統(tǒng)方法存在的不足,提出新的基于深度神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測模型。仿真結(jié)果表明,深度神經(jīng)網(wǎng)絡(luò)具有多隱層結(jié)構(gòu)特征,相比其它流量預(yù)測模型,該模型預(yù)測精度更高,抗干擾能力更強,可被廣泛應(yīng)用。
深度神經(jīng)網(wǎng)絡(luò)[4]由微軟公司推出的軟件,可以模仿人類的思考方式,具有快速識別網(wǎng)絡(luò)流量動態(tài)性特征能力,準確率較高。深度神經(jīng)網(wǎng)絡(luò)具備的多隱層結(jié)構(gòu),主要用于對網(wǎng)絡(luò)中的輸入向量進行多次訓(xùn)練。其主要結(jié)構(gòu)如圖1所示。
圖1 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
深度神經(jīng)網(wǎng)絡(luò)由輸入層、多隱層以及輸入層三部分構(gòu)成。與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,深度神經(jīng)網(wǎng)絡(luò)(DNN)具有多隱含結(jié)構(gòu)特點。X代表網(wǎng)絡(luò)輸入量,輸入量包括m維的列向量值,(W,B)代表各隱含層間的權(quán)重和閾值構(gòu)成的矩陣[5]。深度神經(jīng)網(wǎng)絡(luò)利用每個隱含層自上個層次得到的向量值,進行函數(shù)激活的非線性轉(zhuǎn)變。再將得到的數(shù)值傳遞至下一神經(jīng)元,依次反復(fù)迭代,最終傳遞至網(wǎng)絡(luò)輸出y處。相比傳統(tǒng)神經(jīng)網(wǎng)絡(luò),DNN所具備的多隱含層深度明顯提高,可彌補傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的不足。
神經(jīng)元[6]是深度神經(jīng)網(wǎng)絡(luò)的基本構(gòu)成元素。圖2為單輸入神經(jīng)元,x代表輸入數(shù)值,w表示神經(jīng)元的權(quán)值,b表示神經(jīng)元閾值,f則是激勵函數(shù),y為神經(jīng)元的輸出向量。經(jīng)過計算,得到輸入數(shù)值、權(quán)值和閾值的結(jié)果,作為激勵函數(shù)的輸入數(shù)值,此時輸出值為y=f(wx+b)。得到的激勵函數(shù)f通常具有連續(xù)性的S型函數(shù)值,可完成神經(jīng)網(wǎng)絡(luò)中輸入到輸出的任意非線性預(yù)測。
圖2 單輸入神經(jīng)元
假設(shè)輸出層包含的神經(jīng)元為m,深度神經(jīng)網(wǎng)絡(luò)的輸出數(shù)值為y′,期望結(jié)果為y,將誤差平方和設(shè)為E,則可得出
(1)
得到的權(quán)值修正方程為
(2)
其中,wij表示在深度神經(jīng)網(wǎng)絡(luò)中神經(jīng)元i至j的連接權(quán)值,η為速率,Ij代表第j個隱含層中的激勵函數(shù)值。
基于深度神經(jīng)網(wǎng)絡(luò)構(gòu)建的網(wǎng)絡(luò)流量預(yù)測模型中,初始數(shù)據(jù)及閾值的選擇對預(yù)測性能和精確度起著重要作用。若數(shù)據(jù)選擇不當(dāng),則將造成預(yù)測模型收斂速度慢、結(jié)果不準確等問題。
神經(jīng)元作為深度神經(jīng)網(wǎng)絡(luò)構(gòu)成的基本要素,為全面刻畫流量動態(tài)序列規(guī)律,需構(gòu)造具有反饋體系的深度神經(jīng)網(wǎng)絡(luò)預(yù)測模型。傳統(tǒng)流量預(yù)測模型未考慮網(wǎng)絡(luò)流量的動態(tài)性特征,因此得到的預(yù)測結(jié)果存在一定缺陷。深度神經(jīng)網(wǎng)絡(luò)預(yù)測模型中的單隱層的前饋網(wǎng)絡(luò),屬于局部逼近網(wǎng)絡(luò)。其中,隱含層基函數(shù)可采用高斯函數(shù)表示為
(3)
隱含層中節(jié)點輸出加權(quán)后進入輸出層,即輸出層為預(yù)測模型中隱含層的線型組合,可得知
(4)
在上述式(3)—(4)中,x∈Rn代表輸入向量值,φ(·)為高斯函數(shù),‖·‖為歐幾里德范數(shù),ci∈Rn表示深度神經(jīng)網(wǎng)絡(luò)中第i個隱含節(jié)點的場中心,φi∈R表示第i個隱含節(jié)點中的場域?qū)挾葦?shù)值,nc表示隱含層中節(jié)點數(shù)值,wi表示第i個隱含節(jié)點中的基函數(shù)值與輸出節(jié)點的連接權(quán)值,w0表示輸出偏移量的調(diào)整值。
不同的網(wǎng)絡(luò)輸入向量影響預(yù)測結(jié)果[7-8]。通常深度神經(jīng)網(wǎng)絡(luò)的輸入類型有:連續(xù)時刻的輸入、若干周期數(shù)據(jù)、某周期內(nèi)的平均數(shù)值、相鄰時間點數(shù)據(jù)差值等,圖3為數(shù)據(jù)處理過程。
圖3 數(shù)據(jù)處理過程
若以某個交換機中一個月內(nèi)的網(wǎng)絡(luò)流量數(shù)據(jù)作為參考,可發(fā)現(xiàn)流量存在顯著“工作日”特性。例如周一至周五網(wǎng)絡(luò)活動頻繁,同時初始數(shù)據(jù)變化幅動較大(數(shù)據(jù)間有3個數(shù)量級的差距),說明網(wǎng)絡(luò)流量的動態(tài)性較強。
基于深度神經(jīng)網(wǎng)絡(luò)構(gòu)建的網(wǎng)絡(luò)流量預(yù)測模型中,若數(shù)據(jù)選擇不當(dāng),可能會造成預(yù)測模型收斂速度慢、結(jié)果不準確等問題。因此構(gòu)建預(yù)測模型前,對初始數(shù)據(jù)需進行規(guī)則化處理,如下所示:
(5)
深度神經(jīng)網(wǎng)絡(luò)預(yù)測模型主要是模仿生物處理模型,通過獲取到智能信息處理論,運用連接大量的復(fù)雜神經(jīng)元,并通過學(xué)習(xí)、自組織以及非線性動力學(xué)等方式,選擇并行分布方式處理信息,如圖4所示。
圖4 深度神經(jīng)網(wǎng)絡(luò)工作流程
模型的輸入向量[10]設(shè)為X=[x1,x2,…xn],在n個隱含層中,每層節(jié)點數(shù)量分別用l1,l2,…,ln代表,同時設(shè)置輸出層節(jié)點為1。深度神經(jīng)網(wǎng)絡(luò)的第1層隱含層次在時刻t的輸出向量可被描述為
R1(t)=f{W1[X(t),z(t)+B1]}
(6)
在上述式(6)中,R1(t)代表第1層隱含層輸出向量數(shù)值;W1、B1表示輸入層與第1層隱含層間的矩陣方程;B1代表在時刻t中,關(guān)聯(lián)層至第1層隱含層間的反饋輸入數(shù)值[11];f代表流量預(yù)測模型中隱含層的非線性激活函數(shù)值。
網(wǎng)絡(luò)流量動態(tài)預(yù)測模型為
J(k)=R1(t)[(y(k-1),y(k-2),…,y(k-m))]
(7)
其中,m代表預(yù)測模型階數(shù),y(k-1),y(k-2),…,y(k-m)分別表示第k,k-1,k-2,…,k-m時間點上的網(wǎng)絡(luò)流量數(shù)值。f(·)代表復(fù)雜的非線性函數(shù)值,選用深度神經(jīng)網(wǎng)絡(luò)進行建模,將網(wǎng)絡(luò)動態(tài)流量設(shè)置為5階和6階,分別用m=5和m=6表示,與之對應(yīng)的網(wǎng)絡(luò)流量動態(tài)預(yù)測模型如圖5所示。
圖5 網(wǎng)絡(luò)流量預(yù)測模型結(jié)構(gòu)圖
由于深度神經(jīng)網(wǎng)絡(luò)是建立在多層前饋型的神經(jīng)網(wǎng)絡(luò)之上的,層次結(jié)構(gòu)較多,每層結(jié)構(gòu)都由眾多神經(jīng)元構(gòu)成。不同層間神經(jīng)元均采用全互聯(lián)方式連接;而同一層間的神經(jīng)元無連接。因此,每層可選用不同的激勵函數(shù)進行計算預(yù)測模型。
基于深度神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測模型計算由兩部分構(gòu)成:輸入流量的正向傳播、預(yù)測誤差的方向傳播。在模型預(yù)測的過程中,首先在深度神經(jīng)網(wǎng)絡(luò)中,隨機選取一組神經(jīng)元之間的連接權(quán)值和閾值,預(yù)測樣本從輸入層開始逐層計算,直至輸出層則計算結(jié)束。將得到的輸出與期望結(jié)果進行對比,若誤差值未達到極限誤差數(shù)值,則進行輸出層誤差變化值的計算,當(dāng)誤差值已經(jīng)達到誤差上線,則誤差信號順沿原本的通路反傳回來,此時調(diào)整各層神經(jīng)元間的權(quán)值和閾值,兩個方向反復(fù)交替計算,使得網(wǎng)絡(luò)流量預(yù)測結(jié)果與期望誤差平方相加接近設(shè)定值,或達到迭代次數(shù)位置,使基于深度神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測模型預(yù)測結(jié)果接近實際數(shù)值,以此選取合適權(quán)值和閾值,實現(xiàn)網(wǎng)絡(luò)流量的動態(tài)預(yù)測。
將深度神經(jīng)網(wǎng)絡(luò)中各層次結(jié)構(gòu)之間的權(quán)值及閾值進行優(yōu)化,得出適應(yīng)度函數(shù)為
(8)
在利用深度神經(jīng)網(wǎng)絡(luò)進行預(yù)測的研究中,目前還沒有一種通用的可適應(yīng)各種網(wǎng)絡(luò)環(huán)境的計算方法,反之,在一個環(huán)境下性能較高的算法可能在其它環(huán)境下預(yù)測結(jié)果出現(xiàn)偏差較大。因此,需結(jié)合所預(yù)測的網(wǎng)絡(luò)流量情況選擇適當(dāng)?shù)纳窠?jīng)網(wǎng)絡(luò)結(jié)構(gòu)和計算方法,如是否需要反饋數(shù)據(jù)、保留歷史記錄等。
現(xiàn)階段,網(wǎng)絡(luò)流量預(yù)測模型計算方式通常使用遺傳算法,但使用遺傳算法計算由深度神經(jīng)網(wǎng)絡(luò)構(gòu)建的預(yù)測模型,由于數(shù)據(jù)的選取、算子設(shè)定等因素,初始數(shù)據(jù)選擇較大則會造成計算速度慢,選擇數(shù)據(jù)較小則會降低深度神經(jīng)網(wǎng)絡(luò)多隱含特性,引起誤差。
(9)
因此,可設(shè)性能指標的求解方程為
(10)
通過上述求解得出使J處于最小值的權(quán)值矩陣W。
(11)
為驗證研究網(wǎng)絡(luò)流量預(yù)測結(jié)果的有效性,設(shè)計如下實驗。實驗的軟件環(huán)境為Windows10操作系統(tǒng)、Matlab R2012b、Libsvm,硬件環(huán)境為Intel Core i54670-3.4GHz,8.OGB內(nèi)存,500GB硬盤,實驗選取不同模型網(wǎng)絡(luò)流量預(yù)測誤差和模型穩(wěn)定性兩個指標作為模型有效性評價的標準。圖6為實驗硬件示意圖。
圖6 實驗環(huán)境
本次實驗選取流量的一部分數(shù)據(jù)作為訓(xùn)練網(wǎng)絡(luò),剩余部分數(shù)據(jù)作為預(yù)測模型的源數(shù)據(jù)。通過分析過去時間段內(nèi)的流量數(shù)據(jù),進行預(yù)測未來時間段內(nèi)的數(shù)據(jù)。兩種預(yù)測模型進行預(yù)測誤差對比,如圖7和表2所示。
圖7 預(yù)測誤差對比
分析圖7給出的預(yù)測誤差對比信息,可知隨網(wǎng)絡(luò)節(jié)點數(shù)量的增加,模型1與模型2的預(yù)測誤差值高,且預(yù)測誤差率變化幅度較大,預(yù)測準確度低。所提方法在測試過程中的預(yù)測誤差值小,且誤差率變化幅度小。
分析表2數(shù)據(jù)可知所提方法在不同測試階段的平均絕對百分誤差(MAPE)值均小于模型1及模型2的平均絕對百分誤差值;且預(yù)測誤差最大值同樣小于模型1及模型2的預(yù)測誤差最大值。綜上所述,所提方法可以預(yù)測準確率高。
為進一步驗證所提方法的抗干擾性,在不同方法預(yù)測網(wǎng)絡(luò)流量之前,對網(wǎng)絡(luò)施加干擾,干擾信號的幅值在0~1.2Hz之間,干擾信號如圖8所示。將文獻[2]方法作為實驗對照組,在網(wǎng)絡(luò)干擾下,將傳統(tǒng)方法的應(yīng)用穩(wěn)定性與所提方法作比較,可對比出不同方法的抗干擾性能。
圖8 干擾信號示意圖
由圖9、圖10、圖11實驗結(jié)果可以看出,當(dāng)網(wǎng)絡(luò)存在一定干擾時,文獻[2]方法在流量預(yù)測時長150~300s之間出現(xiàn)了明顯不穩(wěn)定現(xiàn)象,其波動幅值達最高到了0.15Hz;文獻[3]方法在流量預(yù)測時長48~60s及150~280s之間分別出現(xiàn)了不穩(wěn)定現(xiàn)象,其波動幅值最高達到了0.1Hz;而相比之下所提方法受網(wǎng)絡(luò)干擾的影響較小,僅在流量預(yù)測時長150s~300s之間出現(xiàn)了輕微波動。說明所提方法在預(yù)測過程中受網(wǎng)絡(luò)干擾影響小,可以較穩(wěn)定地對網(wǎng)絡(luò)流量進行預(yù)測。
圖9 文獻[2]傳統(tǒng)方法應(yīng)用穩(wěn)定性
圖10 文獻[3]傳統(tǒng)方法應(yīng)用穩(wěn)定性
圖11 所提方法應(yīng)用穩(wěn)定性
由仿真結(jié)果可知,基于深度神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測模型,相比其它傳統(tǒng)方法,預(yù)測效果更佳,且具有更優(yōu)抗干擾性能。該方法具有更好的應(yīng)用前景。
針對傳統(tǒng)方法存在網(wǎng)絡(luò)流量預(yù)測結(jié)果精確度低、穩(wěn)定性差等問題,本文提出基于深度神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測模型。利用隱含層與關(guān)聯(lián)層幫助提高神經(jīng)網(wǎng)絡(luò)動態(tài)記憶力,劃分深度神經(jīng)網(wǎng)絡(luò)為多個神經(jīng)元。引入輸出向量構(gòu)建流量動態(tài)預(yù)測模型,優(yōu)化模型權(quán)值與閾值,完成網(wǎng)絡(luò)流量的預(yù)測。在仿真對比實驗中,將所提方法模型與其它預(yù)測模型對比,該模型輸入信號的平穩(wěn)程度有所增強,保障預(yù)測精度較高的同時,又保障了流量的基本統(tǒng)計特性。仿真結(jié)果驗證了所提方法的有效性。因此,所提方法可被應(yīng)用于流量預(yù)測的研究中。
因本人學(xué)識有限,論文仍存在不足,在今后的研究中將以網(wǎng)絡(luò)流量的預(yù)測效率為方向,進一步完善網(wǎng)絡(luò)流量預(yù)測模型。