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

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

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

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

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

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

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

圖5 VMD分解結(jié)果
將VMD 分解后獲得的7 個模態(tài)分量分別輸入ISSA-LSSVM預測模型,設定LSSVM 核函數(shù)寬度σ 和懲罰因子c的尋優(yōu)范圍為[0.1,1000],ISSA參數(shù)設置為:種群數(shù)量P=30,最大迭代次數(shù)M=50,預警值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。
為進一步分析本文所提模型,選取2 種獨立模型SVM、LSSVM 和3 種組合模型EMD-LSSVM、VMDLSSVM、ISSA-LSSVM進行對比實驗。各模型可視化預測結(jié)果如圖6 所示,各模型評價結(jié)果標準見表4。

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

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

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

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