李子喬, 陳華亮
(安徽理工大學(xué)電氣與信息工程學(xué)院,安徽 淮南 232001)
移動通信技術(shù)得到了高速度和高質(zhì)量的發(fā)展,互聯(lián)網(wǎng)給我們的日常生活帶來了越來越多的便利,這也使得我們的生活和移動網(wǎng)絡(luò)緊密相連。對于一些人員密集的場所,急速增長的流量會給其網(wǎng)絡(luò)架構(gòu)帶來極大的壓力,導(dǎo)致上網(wǎng)速度大幅度降低,用戶無法進行正常通話以及上網(wǎng)。對人流量大的場景進行網(wǎng)絡(luò)流量預(yù)測,可以讓運營商提前知道網(wǎng)絡(luò)流量的需求,提前做好網(wǎng)絡(luò)保障工作以應(yīng)對有可能出現(xiàn)的網(wǎng)絡(luò)堵塞。
網(wǎng)絡(luò)流量受到多方面因素所影響,其自身具備不確定性、時變性、非線性等多個特點[1]。當前對于流量預(yù)測的方法有很多種,主要分為線性和非線性兩大類。但是由于網(wǎng)絡(luò)流量實際上是一種復(fù)雜的非線性系統(tǒng),傳統(tǒng)的一些線性預(yù)測模型對其的預(yù)測效果就難以得到保證。所以,非線性模型就得到了迅速發(fā)展。支持向量機(Support Vector Machine,SVM)就是一種典型的非線性模型[2,3],這一模型實現(xiàn)的基礎(chǔ)是統(tǒng)計學(xué)習(xí)理論,并具有良好的非線性擬合能力。該學(xué)習(xí)方法采用結(jié)構(gòu)風險最小化準則代替了以往的經(jīng)驗風險最小化的學(xué)習(xí)原理[4],對于模型在小樣本情況下的泛化能力有了很大的提高。與其他傳統(tǒng)預(yù)測模型相比,不存在收斂速度慢,陷入局部極值的缺陷。在相同條件下,一般在預(yù)測上會獲得比神經(jīng)網(wǎng)絡(luò)更優(yōu)的效果。
但是經(jīng)研究表明,若想保證SVM的預(yù)測性能達到更加優(yōu)越的效果,首先要解決的問題就是參數(shù)的選擇。一般來說,常被納入考慮的幾個參數(shù)如下:不敏感損失系數(shù)ε,懲罰系數(shù)C以及核函數(shù)中的參數(shù)g。目前,對于SVM參數(shù)的優(yōu)化選擇問題,最常被使用到的方法是交叉驗證法(Crossvalidation,K-CV),但這種方法需要耗費大量的時間。這一方法的具體步驟如下:先對C和g進行研究,讓這兩個參數(shù)在給定的合適范圍內(nèi)進行取值。在進行完第一步之后,對于取定的C和g,把訓(xùn)練集作為原始數(shù)據(jù)集并利用K-CV方法得到在此組C和g下訓(xùn)練集驗證回歸擬合的準確率,接著將多組取值結(jié)果進行比較,最終取使得訓(xùn)練集驗證回歸擬合準確率最高的那組C和g作為最佳的參數(shù)。近年來,在參數(shù)選擇問題上,智能算法被廣泛使用。與交叉驗證的方法相比,遺傳算法(Genetic Algorithms,GA)耗時更少,并且可以很好地獲得最優(yōu)解,但是遺傳算法的操作很困難,對于不同的最優(yōu)解問題需要分別進行選擇、交叉和變異三個步驟。為了提高模型預(yù)測的精度,和選擇更加合適的參數(shù),提出一種用粒子群算法(Particle Swarm Optimization,PSO)優(yōu)化支持向量機參數(shù)的網(wǎng)絡(luò)流量預(yù)測模型(PSO-SVM)。
支持向量機最初在分類問題這一研究領(lǐng)域上起到了很大作用[5],但隨著不斷的創(chuàng)新,它的原理也被擴展到了回歸和預(yù)測的任務(wù)。為了利用SVM解決回歸擬合方面的問題,Vapnik等人[6]在對SVM分類問題進行了一系列研究后,在這一問題的基礎(chǔ)上引入了ε不敏感損失函數(shù),從而得到了一種新的模型,即回歸型支持向量機(Support Vector Machine for Regression,SVR),且在各類問題上取得了很好的性能和預(yù)測效果[7]。
和支持向量機在分類上有所不同的是,在回歸擬合的問題上,最終實現(xiàn)的是對非線性問題進行線性化處理,以期達到所需要的目標。具體的處理方式可以簡述為通過非線性變換,將輸入數(shù)據(jù)映射到高維特征空間,在高維空間求解最優(yōu)決策函數(shù)時,用核函數(shù)相關(guān)理論代替空間中的點積運算[8],有效避免了一系列需要進行復(fù)雜計算的步驟。然后在特征空間中進行線性回歸,從而解決樣本空間中的非線性回歸問題。
設(shè)含有l(wèi)個訓(xùn)練樣本的訓(xùn)練集樣本對為{(x i,y i),i=1,2,...,l},其中,x i(x i∈R d) 是第i個訓(xùn)練樣本的輸入列向量x i=[xi1,xi2,...,xi d]T,y i∈R為對應(yīng)的輸出值。SVM算法通過以下函數(shù)估計預(yù)測值:
式(1)中:Φ(x)表示從輸入空間到高維特征空間的非線性映射函數(shù),w是輸入(僅支持向量)對輸出的權(quán)重,b是偏差向量。
定義ε為線性不敏感損失函數(shù),則有:
式(2)中:f(x)為回歸函數(shù)返回的預(yù)測值;y為對應(yīng)的真實值。
類似于SVM分類情況,并基于結(jié)構(gòu)風險最小化理論,為了使優(yōu)化問題有解,引入了松弛變量ξi,ξ*i。進一步,SVM回歸模型可以表示為:
式(3)中:C為懲罰因子,它決定了對一個錯誤情況將給予多少懲罰,C越大表示對訓(xùn)練誤差大于ε的樣本懲罰越大;ε是用于計算經(jīng)驗風險或損失的不敏感損失函數(shù),其不光可以決定支持向量的數(shù)目,除此之外還規(guī)定了回歸函數(shù)的誤差要求,ε越小表示回歸函數(shù)的誤差越小。
為了解決式(3)中的凸二次優(yōu)化問題,將引入拉格朗日乘子α,目的是為了將該非線性規(guī)劃問題轉(zhuǎn)換成對偶形式:
式(4)中:K(x i,y i)=Φ(x i)Φ(x j)為SVM的核函數(shù)。求解上式,可以得到非線性回歸函數(shù)為:
核函數(shù)可以使非線性樣本數(shù)據(jù)能夠被映射到高維空間中去,并使之成為線性可分的,而且在非線性計算的情況下更容易達到預(yù)測的效果,此外還可以有效地避免維數(shù)災(zāi)害[9]。因此,選擇合適、有效的核函數(shù)就變得十分重要。常用的核函數(shù)如下:
(1)線性核函數(shù):
(2)多項式核函數(shù):
(3)徑向基核函數(shù):
基于核函數(shù)的性能和計算的復(fù)雜程度,選取徑向基核函數(shù)為模型中的核函數(shù),其中γ(g)是核函數(shù)參數(shù)。
因此,在模型中,有兩個重要的參數(shù)會影響到SVM的學(xué)習(xí)性能,即核函數(shù)參數(shù)g和懲罰參數(shù)C,兩者很大程度上決定了SVM的預(yù)測性能和泛化能力。因此,為了避免因主觀經(jīng)驗選取參數(shù)的盲目性和不確定性,這里采用粒子群算法(PSO)對參數(shù)的選擇進行優(yōu)化。
作為一種群體智能的優(yōu)化算法,粒子群算法是由Kennedy和Eberhart在1995年提出的。這是一種受鳥類覓食過程啟發(fā)的進化算法,是用于解決全局優(yōu)化問題的一系列基于群體智能的方法中的一員,當然也具有進化算法的啟發(fā)式和隨機搜索的特點。粒子群算法從搜索空間中粒子群體的隨機初始化開始,這些粒子是初始模型的可行解,進而再對群體中粒子的社會行為進行研究。通過在搜索空間中的學(xué)習(xí)更新,調(diào)整每個個體的軌跡,不斷修改可行解,使其朝著自己的最佳位置和整個群體中的最佳位置移動,在經(jīng)過多次的迭代過程后,找到全局最佳解。毫無疑問,被選為最佳狀態(tài)的標準取決于目標函數(shù)的適合度,適合度是通過計算要解決的問題的目標函數(shù)來評估的。
假設(shè)有一個由n個粒子組成的群體,在一個D維的搜索空間以一定的速度飛行。在給定的時間t內(nèi),第i個粒子當前位置和速度表示為:
和
其位置和速度都被限制在一定的區(qū)間內(nèi)[-Xmax,Xmax],[-Vmax,Vmax]。每個粒子的最佳位置被稱為局部最佳,表示為:P i=[P i1,P i2,...,P iD]T,每一代所有粒子的最佳位 置被稱為全局最佳,表示為:P g=[P g1,P g2,...,P g D]T。
那么第i個粒子在迭代次數(shù)k+1時的位置和速度可以通過以下等式計算:
式(6),(7)中:ω為慣性權(quán)重,其值為非負,影響整體優(yōu)化能力;k為當前迭代次數(shù);c1和c2是非負的常數(shù),稱為加速度因子,r1和r2是正態(tài)分布下[0,1]區(qū)間上的隨機數(shù)。
因為采用的網(wǎng)絡(luò)流量數(shù)據(jù)在空間上是一組一維的時間序列數(shù)據(jù),且具有混沌性,因此還需要對原始數(shù)據(jù)進行相空間重構(gòu)以得到預(yù)測模型中所需要的嵌入維數(shù)m的值和延遲變量τ的值,從而達到使預(yù)測精度更高的目的。對于一組網(wǎng)絡(luò)流量時間序列d1,d2,...,d N,其中的N為這組序列的長度,根據(jù)選取的m和τ,可以構(gòu)造成一個新的m維的相空間。
式(8)中:i=1,2,...,N-(m-1)τ。
接著就可以得到SVM中的預(yù)測樣本集。輸入樣本集和輸出樣本集如下列矩陣所示:
確定m的方法有虛假鄰點法、關(guān)聯(lián)積分法等;確定τ的方法有自相關(guān)函數(shù)法、互信息法等方法[10]。上述方法各有其優(yōu)缺點,但都是對于這兩個系數(shù)分別進行求參,選擇C-C方法以確定m和τ的值。該方法承認了m和τ之間所具有的關(guān)聯(lián)性,通過兩者之間的關(guān)聯(lián)積分來得到時延序列的最優(yōu)延遲τd和數(shù)據(jù)依賴的最大時間τw。延遲時間τd起到的作用是確保d i之間可以相互依賴,但不會依賴于m。與之不同的是,時間窗口τw對m有很大的依賴作用,且本身的值會隨著m的值而發(fā)生變化。C-C方法主要是利用了統(tǒng)計結(jié)果,以獲取所需要的參數(shù)的值,因此不需要進行大量的計算,且實現(xiàn)方式較為簡單。這一方法的計算過程如下:
取m=1,2,...,k;r i=i×0.5σ;n=1,2,...,j,σ為時間序列標準差,參數(shù)計算所用的公式如下:
式(11)-(13)中,()和(t)可以反映時間延遲序列中的自相關(guān)特征。
對于(t)圖像中的第一個局部極小值或者()圖像第一次過零點所對應(yīng)的t可以用來做最優(yōu)延遲時間τ。將(t)和(t)綜合考慮,最佳嵌入窗τw可以通過S cor(t)圖像的全局極小值所對應(yīng)的t來得到。根據(jù)下式可以得到最佳的嵌入維數(shù)m。
1)初始化:隨機設(shè)定初始粒子和粒子群速度。
2)計算粒子適應(yīng)度的值,本模型選取訓(xùn)練樣本預(yù)測結(jié)果的均方根誤差(RMSE)作為粒子的適應(yīng)度函數(shù)。RMSE函數(shù)的表達式如下:
式(15)中:表示網(wǎng)絡(luò)流量數(shù)據(jù)的實際值,y i表示為模型的預(yù)測值。最終得到的預(yù)測結(jié)果中,如果RMSE越小,則粒子更優(yōu),即選取的參數(shù)更加合適,最后的預(yù)測模型精度就越高。
3)根據(jù)適應(yīng)度計算結(jié)果,設(shè)置個體最佳值和群體最佳值。
4)更新粒子的位置和速度,計算公式如式(6)和(7)。
5)更新適應(yīng)度的值。
6)更新個體最佳值和群體最佳值。
7)重復(fù)以上步驟4到6,直到滿足終止條件。
8)將得到的優(yōu)化參數(shù)用于SVM以完成預(yù)測的任務(wù)。具體流程圖如圖1所示。
圖1 PSO-SVM網(wǎng)絡(luò)流量預(yù)測流程
為了驗證模型預(yù)測效果的有效性,采用淮南移動公司采集到的2020年4月24日零點開始,每隔15min采集一次,共1595組萬達廣場的網(wǎng)絡(luò)流量數(shù)據(jù),如圖2所示。采用MATLAB2018a進行編程實現(xiàn)算法。
圖2 網(wǎng)絡(luò)流量原始數(shù)據(jù)
由于實際網(wǎng)絡(luò)流量數(shù)據(jù)變化波動較大,并無較強的規(guī)律性,如果數(shù)據(jù)之間差異較大,會降低模型的預(yù)測性能。為了減小輸入數(shù)據(jù)之間的差異,在進行訓(xùn)練之前應(yīng)對網(wǎng)絡(luò)流量初始數(shù)據(jù)進行歸一化處理,將其歸一化到[0,1]區(qū)間之內(nèi),具體如下:
式(16)中:x表示網(wǎng)絡(luò)流量數(shù)據(jù)的初始值,xmax和xmin分別表示數(shù)據(jù)組中的最大值和最小值。
在模型中,運用C-C方法得到的(t)和S cor(t)變化曲線如圖3所示。
圖3Δ(t)和S cor(t)變化曲線圖
由圖3(a)可以看出,當(t)取第一個局部極小值時,所對應(yīng)的橫坐標為12,即延遲變量τ的值取12。接著根據(jù)圖3(b),得到當S cor(t)取得全局極小值時,對應(yīng)的橫坐標為96,即τw的值為96。再代入式(14)進行計算,得到嵌入維數(shù)m的值為9。
在進行參數(shù)優(yōu)化之前,首先要對PSO算法中的參數(shù)值和參數(shù)范圍進行設(shè)置。具體的參數(shù)值如下:粒子群規(guī)模為20;最大的迭代次數(shù)為200;加速度因子c1=1.5,c2=1.7;c的取值范圍設(shè)置為[0.1,100],g的取值范圍設(shè)置為[0.01,1000]。
尋優(yōu)過程結(jié)束后,會分別得到三組所需要的參數(shù)的值。如表1所示,是三種方法分別進行優(yōu)化后所得到的參數(shù)的值。
表1 各算法優(yōu)化SVM的參數(shù)選擇結(jié)果
利用得到的τ和m進行相空間重構(gòu)后,原始數(shù)據(jù)構(gòu)成了1499組輸入和輸出所對應(yīng)的新數(shù)據(jù)集,將前面1200組數(shù)據(jù)作為訓(xùn)練樣本,后面299組數(shù)據(jù)作為測試樣本。然后將PSO優(yōu)化后的參數(shù)代入SVM預(yù)測模型繼續(xù)訓(xùn)練模型。
在預(yù)測算法的參數(shù)優(yōu)化過程中,尋優(yōu)算法的適應(yīng)度函數(shù)選取了RMSE,即在此過程中,模型的性能評估方法所采用的是比較RMSE的值。為了更加客觀且避免片面地對各種模型的預(yù)測性能進行比較,最后采取均方根誤差(RMSE)和相關(guān)系數(shù)(r2)作為預(yù)測模型的性能評價指標。RMSE的計算方法已在式(15)中提到過,r2的計算公式如下:
一個好的分類或回歸模型,不僅在訓(xùn)練集中的誤差小,而且在測試集中的誤差也要小。選取的流量預(yù)測模型中,更關(guān)注的是在測試集上的預(yù)測性能,即預(yù)測數(shù)據(jù)和真實值的擬合程度。如表2所示,是幾種預(yù)測模型在測試集和訓(xùn)練集上分別對應(yīng)的評價指標的值。
表2 模型預(yù)測結(jié)果對比
從表2中可以看出,PSO-SVM預(yù)測模型在測試集上的均方根誤差和相關(guān)系數(shù)分別為0.0027和99.966%,對比于另外兩種預(yù)測模型,有著較好的體現(xiàn)。因此,經(jīng)PSO優(yōu)化的SVM模型相較于其他兩種預(yù)測模型具有更好的預(yù)測能力,其最終的預(yù)測曲線如圖4所示。
圖4 PSO-SVM流量預(yù)測模型擬合結(jié)果
研究了一種基于相空間重構(gòu)后的PSO-SVM移動流量高效預(yù)測模型。以淮南萬達廣場網(wǎng)絡(luò)流量數(shù)據(jù)為案例,通過對樣本數(shù)據(jù)的相空間重構(gòu),進而詳細地對比、分析了采用不同參數(shù)優(yōu)化方法時SVM對蜂窩流量數(shù)據(jù)的預(yù)測性能。實驗中,SVM的最優(yōu)參數(shù)的搜索,采取了三種尋優(yōu)算法,分別是PSO,GA和CV。實驗結(jié)果表明,相空間重構(gòu)后的PSO-SVM預(yù)測模型相較于另外兩種預(yù)測模型,在預(yù)測精度上有著明顯提升。這意味著本次采用的流量預(yù)測方法,不僅能允許運營商提前做好準備以應(yīng)對即將到來的網(wǎng)絡(luò)擁堵,提高服務(wù)質(zhì)量,還可以指導(dǎo)網(wǎng)絡(luò)運營商合理地配置網(wǎng)絡(luò)資源,節(jié)約能源,有效地降低運營成本。