楊哲興, 謝曉蘭,b, 李水旺,b
(桂林理工大學(xué)a.信息科學(xué)與工程學(xué)院;b.廣西嵌入式技術(shù)與智能系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004)
容器作為一種新型虛擬化技術(shù),憑借其啟動(dòng)速度快、資源利用率高、可伸縮強(qiáng)等優(yōu)點(diǎn),極大地緩解了云計(jì)算中數(shù)據(jù)處理和運(yùn)算壓力,已經(jīng)成為云計(jì)算應(yīng)用和服務(wù)軟件開(kāi)發(fā)的輕量級(jí)解決方案。隨著云計(jì)算平臺(tái)的不斷擴(kuò)展,大量的請(qǐng)求被同步提交給云平臺(tái),資源需求量的增加會(huì)導(dǎo)致容器容易面臨突發(fā)負(fù)載的壓力[2],使得云平臺(tái)變得不穩(wěn)定。通過(guò)容器云資源負(fù)載的有效預(yù)測(cè)可促進(jìn)應(yīng)用的主動(dòng)調(diào)度或容器負(fù)載平衡決策,對(duì)確保服務(wù)質(zhì)量(QoS)與用戶的服務(wù)水平協(xié)議(sla)至關(guān)重要。
短期云資源負(fù)載數(shù)據(jù)具有明顯的非線性、隨機(jī)性和不穩(wěn)定性[2],有效地捕捉云資源負(fù)載的線性和非線性相關(guān)性,并準(zhǔn)確預(yù)測(cè)未來(lái)的云資源負(fù)載變化,是一個(gè)極具挑戰(zhàn)性的研究難題。
目前,關(guān)于云資源負(fù)載預(yù)測(cè)的研究還較少,在以往傳統(tǒng)研究中常采用時(shí)間序列預(yù)測(cè)模型,如自回歸、移動(dòng)平均、自回歸移動(dòng)平均。考慮到短期云資源負(fù)載數(shù)據(jù)明顯的非線性和非平穩(wěn)特性,時(shí)間序列模型相對(duì)不具有較好的適用性。文獻(xiàn)[3]中指出,機(jī)器學(xué)習(xí)模型比時(shí)間序列預(yù)測(cè)模型具有更好的泛化能力和映射能力,能更高效地處理非線性負(fù)載數(shù)據(jù)。文獻(xiàn)[4]中針對(duì)傳統(tǒng)時(shí)間序列預(yù)測(cè)模型在面對(duì)小樣本、非線性云資源負(fù)載數(shù)據(jù)時(shí)預(yù)測(cè)精度不高,建立支持向量機(jī)(Support Vector Machine,SVM)的負(fù)載預(yù)測(cè)模型,驗(yàn)證SVM 預(yù)測(cè)模型在負(fù)載預(yù)測(cè)中的精度比傳統(tǒng)時(shí)間序列方法高、均方誤差更小等優(yōu)點(diǎn)。但SVM 求解復(fù)雜且計(jì)算較為耗時(shí)。針對(duì)SVM的弱點(diǎn),文獻(xiàn)[5]中提出一種基于最小二乘支持向量機(jī)(Least Squares Support Vector Machine,LSSVM)的預(yù)測(cè)模型,通過(guò)二次規(guī)劃法實(shí)現(xiàn)不等式約束與等式約束的轉(zhuǎn)化,降低模型計(jì)算難度,有效提高預(yù)測(cè)的準(zhǔn)確率。LSSVM 因其優(yōu)越性,近年來(lái)已被廣泛應(yīng)于多個(gè)預(yù)測(cè)領(lǐng)域[6]。
機(jī)器學(xué)習(xí)模型參數(shù)對(duì)云資源負(fù)載的預(yù)測(cè)效果有很大影響。如何選擇最優(yōu)參數(shù)是機(jī)器學(xué)習(xí)模型的核心。文獻(xiàn)[9]中采用灰狼優(yōu)化算法(Grey Wolf Optimizer,GWO)對(duì)SVM參數(shù)進(jìn)行尋優(yōu),針對(duì)標(biāo)準(zhǔn)GWO 算法易陷入局部最優(yōu)解,引入種群動(dòng)態(tài)進(jìn)化算子增強(qiáng)其獲得全局最優(yōu)解的概率,提高了云資源短期負(fù)載預(yù)測(cè)的精確性。文獻(xiàn)[10]中采用鯨魚(yú)算法(Whale Optimization Algorithm,WOA)來(lái)優(yōu)化LSSVM 參數(shù),提出一種WOA-LSSVM負(fù)荷預(yù)測(cè)模型,提升模型收斂速度和預(yù)測(cè)精度。
上述學(xué)者的研究雖然都在提高預(yù)測(cè)精度取得了成果,但都沒(méi)考慮原始云資源負(fù)載數(shù)據(jù)非線性、非平穩(wěn)性等特點(diǎn)。就此,文獻(xiàn)[11]中采用經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)將負(fù)載數(shù)據(jù)分解為互不耦合的IMF分量,降低負(fù)載數(shù)據(jù)的非線性程度。文獻(xiàn)[12]中采用小波變換把時(shí)間序列分解為不同時(shí)間頻率的子序列,來(lái)降低原始云負(fù)載數(shù)據(jù)的復(fù)雜性。但EMD容易出現(xiàn)模態(tài)分量混疊[13]和小波變換存在分解層數(shù)難以確定等缺點(diǎn),這些都會(huì)導(dǎo)致預(yù)測(cè)精度的下降。針對(duì)上述問(wèn)題,文獻(xiàn)[14]中采用變分模態(tài)分解(Variational Mode Decomposition,VDM),來(lái)替代EMD或小波變換等方法來(lái)處理原始數(shù)據(jù),它克服了EMD方法中模態(tài)分量混疊,分解效果更優(yōu)。
標(biāo)準(zhǔn)麻雀搜索算法(Sparrow Search Algorithm,SSA)新穎,性能較好,但存在迭代后期種群多樣性降低、容易陷入局部最優(yōu)等[15]。在上述背景基礎(chǔ)上,本文提出一種基于VMD 算法與改進(jìn)麻雀搜索算法(Improved Sparrow Search Algorithm,ISSA)優(yōu)化的LSSVM云資源短期負(fù)載預(yù)測(cè)模型。該模型使用VMD算法將原始云資源負(fù)載數(shù)據(jù)分解成多個(gè)不同的模態(tài)分量,增強(qiáng)數(shù)據(jù)序列的平穩(wěn)性;采用ISSA對(duì)LSSVM進(jìn)行參數(shù)尋優(yōu);建立VMD-ISSA-LSSVM模型分別預(yù)測(cè)各模態(tài)分量,疊加得到最終的預(yù)測(cè)值并和其他5 個(gè)模型比較,驗(yàn)證該模型對(duì)云資源短期負(fù)載預(yù)測(cè)的準(zhǔn)確性。
VMD為一種自適應(yīng)非遞歸時(shí)頻信號(hào)分解算法,主要由變分問(wèn)題的構(gòu)造和求解兩步組成。
設(shè)原始云資源負(fù)載序列為f(t),經(jīng)過(guò)分解后得到K個(gè)模態(tài)分量
式中:φk(t)為非遞減的相位函數(shù);Ak(t)為包絡(luò)函數(shù),k=1,2,…,n。
步驟1采用希爾伯特變換獲得各模態(tài)分量的單邊頻譜,同時(shí)設(shè)模態(tài)中心頻率為ωk,加入指數(shù)項(xiàng)e-jωkt,將各模態(tài)的頻譜轉(zhuǎn)換到基帶,得到移頻后的頻譜
步驟2利用高斯平滑度對(duì)寬度進(jìn)行估算,并引入約束條件,求解各模態(tài)估計(jì)寬度之和的最小值,約束變分模型
步驟1引入增廣拉格朗日函數(shù),將式(3)重構(gòu)為非約束性變分問(wèn)題,即:
式中:α為二次懲罰因子,可使信號(hào)重構(gòu)時(shí)有較高精確度;λ為拉格朗日乘法算子。
步驟2用交替方向乘子方法,交替更新uk、ωk和λ,對(duì)式(4)中的鞍點(diǎn)進(jìn)行求解,得模態(tài)分量uk和中心頻率ωk的迭代求解公式:
LSSVM模型的求解原理
式中:η為權(quán)重向量;φ(x)為非線性變換的映射函數(shù);b為偏移量。
(2)利用結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理求解η、b。把函數(shù)擬合問(wèn)題轉(zhuǎn)化為優(yōu)化
式中:ξi為誤差變量;c為懲罰因子。
(3)建立拉格朗日方程對(duì)該優(yōu)化問(wèn)題進(jìn)行求解
式中,αi為L(zhǎng)agrange乘子。
(4)根據(jù)KKT 條件和Mercer 條件,消去ω 和ξi后,可得LSSVM最終預(yù)測(cè)模型
式中,k(x,xi)為核函數(shù),本文采用徑向基函數(shù)作為核函數(shù)
式中,σ為核參數(shù)。
SSA算法是通過(guò)麻雀覓食行為提出的一種新的啟發(fā)式種群優(yōu)化算法,有較好的尋優(yōu)性能。在尋優(yōu)過(guò)程中,作為發(fā)現(xiàn)者的麻雀為種群提供搜索方向和區(qū)域,加入者麻雀根據(jù)發(fā)現(xiàn)者的指引進(jìn)行搜索,偵查者麻雀則依靠反捕食策略避免種群陷入局部最優(yōu)。
發(fā)現(xiàn)者的位置更新
式中:t、itermax分別為當(dāng)前和最大迭代數(shù);α∈Random(0,1];Q為在[0,1]正態(tài)分布的隨機(jī)數(shù);L為維度1 ×d的矩陣;R2為警戒值;ST為安全閾值。
加入者的位置更新
式中:Xp、XworstX分別為當(dāng)前最優(yōu)解和最差解;A為維度1 ×d的矩陣,且滿足A+=AT(AAT)-1。
偵察者的位置更新
3.2.1 Iterative映射初始化
傳統(tǒng)SSA 算法,種群多樣性較差。引入Iterative混沌映射初始化種群,降低隨機(jī)化的初始種群對(duì)算法收斂的影響
式中:υ為控制參數(shù),υ∈(0,1),本文設(shè)定υ =0.7;xn為第n次迭代后x的值。
取n=200 對(duì)Iterative 映射進(jìn)行仿真,由圖1 可知,經(jīng)Iterative映射得到的種群分布相對(duì)均勻。

圖1 Iterative分布
3.2.2 自適應(yīng)權(quán)重因子
在標(biāo)準(zhǔn)SSA算法中,發(fā)現(xiàn)者會(huì)逐漸向全局最優(yōu)解移動(dòng),易陷入局部最優(yōu)解。權(quán)重因子對(duì)保持算法搜索能力的穩(wěn)定起到重要作用。引入自適應(yīng)權(quán)重因子
改進(jìn)后的發(fā)現(xiàn)者位置更新
3.2.3 加入者位置改進(jìn)策略
在迭代過(guò)程中,由式(14)可知,加入者和探索者會(huì)逐漸同化靠近最優(yōu)解,使得種群的多樣性快速下降,算法容易陷入局部最優(yōu)。采用柯西分布對(duì)種群個(gè)體進(jìn)行擾動(dòng),使算法能更好地脫離局部最優(yōu)解。柯西分布概率密度
改進(jìn)后加入者位置更新
3.2.4 偵查者非線性遞減策略
偵查者的存在能夠增強(qiáng)算法的尋優(yōu)能力,其比例因子SD值會(huì)影響算法的尋優(yōu)策略。SD 值越大越有利于算法前期的全局搜索,不利于算法后期的局部搜索。受文獻(xiàn)[16]的啟發(fā),引入非線性遞減策略來(lái)動(dòng)態(tài)調(diào)整比例因子SD,使得SD 隨著迭代次數(shù)動(dòng)態(tài)下降。同時(shí)為保證算法的有效性,應(yīng)避免出現(xiàn)SD為0。具體調(diào)整
式中:SDmax為最大比例因子;SDmin為最小比例因子。
本文選取6 個(gè)基準(zhǔn)測(cè)試函數(shù)來(lái)檢驗(yàn)ISSA 算法的性能,測(cè)試函數(shù)的具體介紹見(jiàn)表1。

表1 基準(zhǔn)測(cè)試函數(shù)具體介紹
在對(duì)比測(cè)試時(shí),將本文所提ISSA 算法與SSA、WOA、GWO 3 種算法進(jìn)行對(duì)比,為使測(cè)試結(jié)果更加客觀,統(tǒng)一使用測(cè)試軟件Matlab 2020b,4 種算法共有參數(shù)統(tǒng)一設(shè)置,種群數(shù)量設(shè)為30,最大迭代次數(shù)設(shè)為200。每個(gè)算法獨(dú)立運(yùn)行30 次,統(tǒng)計(jì)其最優(yōu)值、平均值以及方差作為算法評(píng)價(jià)指標(biāo)。各優(yōu)化算法性能對(duì)比見(jiàn)表2。
分析表2 可知,對(duì)于高維單峰函數(shù)F1~F3,本文所提ISSA在尋優(yōu)結(jié)果上明顯優(yōu)于其他3 種算法,雖然SSA在面對(duì)函數(shù)F1~F2也找到了最優(yōu)值,但其平均值和方差均遠(yuǎn)低于ISSA。對(duì)于高維多峰函數(shù)F4~F6,SSA和ISSA都能穩(wěn)定地尋找到最優(yōu)值,并且性能都比GWO和WOA要出色。
為更直觀對(duì)比算法的收斂精度和速度,圖2(a)~(f)為各優(yōu)化算法的收斂曲線對(duì)比。觀察函數(shù)收斂曲線可知,ISSA 在收斂速度上均優(yōu)于SSA、GWO 以及WOA。對(duì)于高維多峰函數(shù)F4~F6,ISSA 和SSA 均找到了全局最優(yōu)解,但I(xiàn)SSA 的迭代速度遠(yuǎn)少于SSA 且曲線更光滑,說(shuō)明ISSA 跳出局部最優(yōu)解的能力更強(qiáng),收斂速度更快。

圖2 各優(yōu)化算法收斂曲線
使用VMD 算法對(duì)云資源負(fù)載數(shù)據(jù)進(jìn)行分解處理。采用ISSA算法對(duì)LSSVM的核函數(shù)寬度σ和懲罰因子c進(jìn)行優(yōu)化,提高預(yù)測(cè)精度。疊加各模態(tài)分量的預(yù)測(cè)值,獲得云資源負(fù)載預(yù)測(cè)結(jié)果。建模流程如圖3所示,具體步驟

圖3 VMD-ISSA-LSSVM建模流程圖
步驟1對(duì)原始云資源負(fù)載數(shù)據(jù)線性化歸算至[0,1]之間,歸一化
步驟2利用VMD分解原始云資源負(fù)載數(shù)據(jù)。
步驟3對(duì)原始數(shù)據(jù)分解得到的每個(gè)分量,分別輸入ISSA-LSSVM模型,采用改進(jìn)麻雀搜索算法優(yōu)化σ和c這兩個(gè)重要參數(shù),然后進(jìn)行預(yù)測(cè)。
步驟4疊加各模態(tài)分量的預(yù)測(cè)結(jié)果,形成最終云資源負(fù)載預(yù)測(cè)結(jié)果。
ISSA算法優(yōu)化LSSVM步驟如下:
步驟1對(duì)ISSA和LSSVM的參數(shù)進(jìn)行初始化。
步驟2引入Iterative 混沌映射,利用式17 初始化種群,提高初始位置分布的均勻性。
步驟3計(jì)算麻雀適應(yīng)度值,找出最優(yōu)和最差適應(yīng)度值,同時(shí)根據(jù)式(17)更新發(fā)現(xiàn)者位置。
步驟4根據(jù)式(19)對(duì)加入者的位置進(jìn)行更新。
步驟5根據(jù)式(20)自適應(yīng)更新偵察者比例因子SD,利用式(14)對(duì)偵察者位置進(jìn)行更新。
步驟6重新計(jì)算各麻雀的適應(yīng)度,判斷新位置是否優(yōu)于當(dāng)前更新位置。
步驟7若新位置更優(yōu),則更新位置,反之重復(fù)步驟2。
步驟8判斷迭代終止條件是否滿足,若是,則確定最佳參數(shù),將獲得的最優(yōu)參數(shù)輸入到LSSVM中構(gòu)建最優(yōu)模型進(jìn)行負(fù)載預(yù)測(cè),反之重復(fù)步驟2。
本文選取的數(shù)據(jù)集來(lái)自某網(wǎng)站2015-6-1 ~2015-6-30 每日24 h云計(jì)算資源負(fù)載數(shù)據(jù)[18],數(shù)據(jù)采樣時(shí)間間隔為1 h,共720 個(gè)數(shù)據(jù),云資源原始負(fù)載數(shù)據(jù)如圖4 所示,選取前29 d 的數(shù)據(jù)為訓(xùn)練集,預(yù)測(cè)第30 d 的云資源負(fù)載數(shù)據(jù)。

圖4 云資源原始負(fù)載數(shù)據(jù)圖
本文設(shè)置均方根誤差(Root Mean Squared Error,RMSE)、平均絕對(duì)誤差(Mean Absolute Error,MAE)以及平均絕對(duì)百分比誤差(Mean Absolute Percentage Error,MAPE)作為客觀評(píng)價(jià)預(yù)測(cè)精度的標(biāo)準(zhǔn),三者的值越小,模型預(yù)測(cè)精度則越高
式中:n為預(yù)測(cè)樣本容量;yi為云資源負(fù)載的實(shí)際值;y'i為云資源負(fù)載的預(yù)測(cè)值。
由圖4 可知,云資源負(fù)載數(shù)據(jù)有較強(qiáng)的非線性和非平穩(wěn)性。首先對(duì)原始數(shù)據(jù)進(jìn)行VMD分解,模態(tài)數(shù)K值的選取會(huì)對(duì)VMD 分解產(chǎn)生重要影響,當(dāng)模態(tài)數(shù)K值過(guò)小或過(guò)大時(shí),原始信號(hào)會(huì)出現(xiàn)模態(tài)異構(gòu)或由于相鄰模態(tài)分量的中心頻率過(guò)于接近,導(dǎo)致模態(tài)重復(fù),影響預(yù)測(cè)效果,需通過(guò)分析不同模態(tài)數(shù)下中心頻率來(lái)選擇合適的K值。各K值對(duì)應(yīng)的中心頻率見(jiàn)表3。

表3 K值對(duì)應(yīng)的中心頻率
分析表3 數(shù)據(jù)可得,隨著分解模態(tài)個(gè)數(shù)的增加各模態(tài)分量的中心頻率差值逐漸變小,當(dāng)K>7 時(shí)相鄰模態(tài)分量間的差值過(guò)于偏小,開(kāi)始出現(xiàn)模態(tài)重疊現(xiàn)象,本文將K設(shè)為7;懲罰參數(shù)α =2000;噪聲容忍t=0;初始中心頻率init =1;收斂容差tol =10-7。VMD分解效果如圖5 所示。

圖5 VMD分解結(jié)果
將VMD 分解后獲得的7 個(gè)模態(tài)分量分別輸入ISSA-LSSVM預(yù)測(cè)模型,設(shè)定LSSVM 核函數(shù)寬度σ 和懲罰因子c的尋優(yōu)范圍為[0.1,1000],ISSA參數(shù)設(shè)置為:種群數(shù)量P=30,最大迭代次數(shù)M=50,預(yù)警值R2=0.8,發(fā)現(xiàn)者比例因子PD =0.2,跟隨者比例因子SD為[0.2,0.1]非線性遞減。采用ISSA算法優(yōu)化LSSVM的核函數(shù)寬度σ 和懲罰因子c,優(yōu)化后的參數(shù)為σ =2.2921,c=1.1604。
為進(jìn)一步分析本文所提模型,選取2 種獨(dú)立模型SVM、LSSVM 和3 種組合模型EMD-LSSVM、VMDLSSVM、ISSA-LSSVM進(jìn)行對(duì)比實(shí)驗(yàn)。各模型可視化預(yù)測(cè)結(jié)果如圖6 所示,各模型評(píng)價(jià)結(jié)果標(biāo)準(zhǔn)見(jiàn)表4。

表4 6 月各模型的評(píng)價(jià)結(jié)果

圖6 6月各模型的可視化預(yù)測(cè)結(jié)果圖
分析表4 數(shù)據(jù)可知,在單一模型中,SVM 和LSSVM均能大致預(yù)測(cè)云資源負(fù)載數(shù)據(jù)的變化趨勢(shì),且LSSVM的表現(xiàn)略優(yōu)于SVM。與單一模型比,各組合模型的預(yù)測(cè)精度都得到了不同程度的提高。相較于EMD-LSSVM型、VMD-LSSVM模型的MAE、RMSE值和MAPE 值分別降低了57.64%、51.55%、59.89%,說(shuō)明用VMD分解得到的云資源負(fù)載子序列更為平穩(wěn)能更好地提高預(yù)測(cè)精度。對(duì)比LSSVM和ISSA-LSSVM模型,發(fā)現(xiàn)經(jīng)過(guò)對(duì)模型關(guān)鍵參數(shù)進(jìn)行尋優(yōu)后,模型的MAE、RMSE 和MAPE 的值分別降低了43.97%、32.464%和48.51%,預(yù)測(cè)精度更高。在此基礎(chǔ)上對(duì)原始數(shù)據(jù)進(jìn)行VMD 分解后再分別輸入ISSA-LSSVM模型進(jìn)行預(yù)測(cè),使預(yù)測(cè)精度得到了進(jìn)一步的提升,其MAE、RMSE和MAPE的值均優(yōu)于以上各個(gè)模型,預(yù)測(cè)效果表現(xiàn)最好。由以上分析可得,本文所提VMDISSA-LSSVM預(yù)測(cè)模型精度更高。
為檢驗(yàn)本文所提模型的泛化性和穩(wěn)定性,本文還選取了同年7 月云資源負(fù)載數(shù)據(jù)進(jìn)行預(yù)測(cè)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖7、表5 所示。

表5 7 月各模型的評(píng)價(jià)結(jié)果

圖7 7月各模型的可視化預(yù)測(cè)結(jié)果
分析表5 可知,VMD-ISSA-LSSVM 模型在MAE、RMSE以及MAPE 的值上均優(yōu)于其他模型,預(yù)測(cè)精度最高。說(shuō)明VMD-ISSA-LSSVM 模型針對(duì)非線性的云資源負(fù)載數(shù)據(jù)預(yù)測(cè)精度和穩(wěn)定性較強(qiáng)。
(1)針對(duì)云資源負(fù)載數(shù)據(jù)的非線性和非平穩(wěn)性特點(diǎn),提出VMD分解方法,將原始數(shù)據(jù)分解為平穩(wěn)的模態(tài)分類,有效提高了預(yù)測(cè)精度。
(2)針對(duì)SSA種群多樣性不足,容易陷入局部最優(yōu)等缺陷,引入Iterative 映射初始化和自適應(yīng)權(quán)重因子,并對(duì)加入者和偵查者的更新策略進(jìn)行改進(jìn),進(jìn)一步提高算法的收斂能力。通過(guò)仿真得出,ISSA能夠減少迭代次數(shù),加快算法收斂速度。采用ISSA 對(duì)LSSVM的關(guān)鍵參數(shù)進(jìn)行優(yōu)化后,模型的預(yù)測(cè)精度優(yōu)于原始LSSVM模型。
(3)相對(duì)于參比模型,本文所提VMD-ISSALSSVM云資源負(fù)載預(yù)測(cè)模型在面對(duì)非線性和非平穩(wěn)性云資源負(fù)載數(shù)據(jù)預(yù)測(cè)中精確度更高,對(duì)于提高云資源的優(yōu)化效率,保障云服務(wù)質(zhì)量有著積極意義。