吳亞奇,付保川,陳珍萍
(蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州215009)
隨著云計(jì)算技術(shù)的快速發(fā)展,現(xiàn)已逐漸步入了大數(shù)據(jù)時(shí)代。作為海量數(shù)據(jù)的載體,隨著數(shù)據(jù)服務(wù)需求的爆炸性增長(zhǎng)和IT技術(shù)的快速發(fā)展,數(shù)據(jù)中心進(jìn)入了迅猛發(fā)展時(shí)期[1]。數(shù)據(jù)中心機(jī)房存放有大量的用于數(shù)據(jù)計(jì)算和存儲(chǔ)的IT設(shè)備,由于電子元器件的高密度產(chǎn)生的熱耦合,會(huì)導(dǎo)致高溫環(huán)境的出現(xiàn)。失效物理學(xué)表明,環(huán)境溫度每高于器件工作溫度10℃,元器件壽命就會(huì)縮減30%~50%,可靠性下降25%左右。因此,數(shù)據(jù)中心通過(guò)布置機(jī)房精密空調(diào),采取高強(qiáng)度的空調(diào)冷卻,以保證穩(wěn)定可靠的工作環(huán)境。為了達(dá)到室內(nèi)溫度需求,數(shù)據(jù)中心通常采取全天供冷的方法對(duì)機(jī)房進(jìn)行降溫,這種方式不僅降低制冷效率,而且容易造成大量的能耗浪費(fèi)[2]。數(shù)據(jù)中心只能通過(guò)采集溫度數(shù)據(jù),考慮工作量和運(yùn)行需求對(duì)未來(lái)的溫度變化進(jìn)行估計(jì)。這種溫度預(yù)測(cè)過(guò)于經(jīng)驗(yàn)化,可靠性較低。
目前,于洋,孫成偉等人[3]提出了一種云模型和RBF神經(jīng)網(wǎng)絡(luò)結(jié)合的預(yù)測(cè)模型,通過(guò)高維云變換對(duì)影響溫度因子進(jìn)行確定選擇,優(yōu)化RBF神經(jīng)網(wǎng)絡(luò),提高了訓(xùn)練速度,但存在收斂速度較慢的缺點(diǎn);鄒燕[4]將進(jìn)風(fēng)溫度和CPU利用率作為輸入,排風(fēng)溫度作為輸出,利用BP神經(jīng)網(wǎng)絡(luò)對(duì)機(jī)房熱區(qū)溫度進(jìn)行預(yù)測(cè),該方法考慮的影響因子較為簡(jiǎn)單;安冊(cè)冊(cè)[5]通過(guò)TRANSYS軟件搭建機(jī)房模型獲得模擬參數(shù),利用最小二乘支持向量機(jī)對(duì)溫度進(jìn)行預(yù)測(cè),求解速度增快的同時(shí)精度相應(yīng)下降。而針對(duì)現(xiàn)實(shí)數(shù)據(jù)中心的情況,考慮整體制冷環(huán)境和布局,多臺(tái)精密空調(diào)共同制冷,處于不同位置機(jī)架制冷情況各不相同。在這種需要考慮整體環(huán)境及個(gè)體存在差異的情況下,常規(guī)的溫度預(yù)測(cè)算法則無(wú)法滿足變量之間的相關(guān)性。并且,溫度是一種難以通過(guò)機(jī)理建模的非線性過(guò)程,通過(guò)傳感器所獲得的樣本數(shù)據(jù)也相對(duì)較少。
在機(jī)器學(xué)習(xí)中,支持向量機(jī)(Support Vector Machine,SVM)可以在小樣本數(shù)據(jù)的基礎(chǔ)上統(tǒng)籌學(xué)習(xí)效率和模型復(fù)雜度之間的關(guān)系,能夠?qū)で笞罴训慕M合,具有很好的泛化能力。與此同時(shí),支持向量機(jī)在解決非線性問(wèn)題上表現(xiàn)出特有的優(yōu)勢(shì)。而決定支持向量機(jī)性能的優(yōu)劣程度,在于選取的懲罰因子和核函數(shù)參數(shù)值。傳統(tǒng)的參數(shù)選取是通過(guò)人為經(jīng)驗(yàn)或者通過(guò)交叉驗(yàn)證的方法。這種方法帶有一定的主觀性和隨意性,無(wú)法滿足實(shí)際問(wèn)題的需求。粒子群算法(Particle Swarm Optimization,PSO)是進(jìn)化算法中的一種,從隨機(jī)解出發(fā),通過(guò)迭代并追隨當(dāng)前最優(yōu)解來(lái)搜尋全局最優(yōu),迭代周期短,但易陷入局部最優(yōu);蟻群算法(Ant Colony Optimization,ACO)具有良好的信息正反饋、魯棒性強(qiáng)、感知局部信息能力較強(qiáng),迭代時(shí)間較長(zhǎng),易產(chǎn)生停滯現(xiàn)象。
基于兩者的優(yōu)缺點(diǎn),該文將粒子群算法與蟻群算法混合,用于支持向量機(jī)模型的參數(shù)優(yōu)化,結(jié)合蘇州某數(shù)據(jù)中心實(shí)際情況,對(duì)機(jī)房?jī)?nèi)位于不同位置處的機(jī)架溫度進(jìn)行模擬預(yù)測(cè),與真實(shí)數(shù)據(jù)進(jìn)行對(duì)比,驗(yàn)證模型在整體環(huán)境中各個(gè)機(jī)架溫度預(yù)測(cè)的準(zhǔn)確性。
蟻群算法是意大利學(xué)者Dorigo和Colorny[6]提出,通過(guò)模擬蟻群覓食模式,達(dá)到相同于蟻群間信息正反饋的目的而形成的一種并行啟發(fā)算法。其基本思想如下:初始時(shí)刻,設(shè)置m只螞蟻,螞蟻k根據(jù)偽隨機(jī)比例規(guī)則從位置i選擇下一個(gè)位置j,路徑規(guī)則如下
其中,τij為邊上(i,j)的信息素;ηij=1/dij為位置i轉(zhuǎn)移到位置j的啟發(fā)因子;allowedk為螞蟻k下一步被允許訪問(wèn)的位置集合;q是均勻分布在[0,1]中的一個(gè)隨機(jī)變量,q0是在[0,1]中的一個(gè)參數(shù);J是根據(jù)第二式給出的概率分布產(chǎn)生出來(lái)的一個(gè)隨機(jī)變量。
經(jīng)過(guò)n時(shí)刻,所有螞蟻完成一次循環(huán)。在遍歷過(guò)程中,螞蟻在每條所走過(guò)的路中釋放信息素,其公式如下
式中,ρ為信息素?fù)]發(fā)系數(shù);Q為信息素濃度,用來(lái)控制信息素的調(diào)節(jié)速度;Vτijk是第k只螞蟻在循環(huán)中路徑ij釋放的信息素。螞蟻構(gòu)建的路徑長(zhǎng)度越小,則路徑上各條邊會(huì)獲得更多的信息素,在以后的迭代中更可能的被其他螞蟻選擇,在完成一次循環(huán)后,重新初始化,準(zhǔn)備下一次循環(huán)。
粒子群優(yōu)化算法最早是由Kennedy J和Eberhart R[7]提出,通過(guò)觀察研究鳥類捕食行為而受到的啟發(fā),并用于解決優(yōu)化問(wèn)題[8]。PSO算法首先初始化可解空間中的一群粒子,并用位置、速度和適應(yīng)度值三個(gè)指標(biāo)來(lái)表示粒子的特征,適應(yīng)度值由適應(yīng)度函數(shù)計(jì)算得到,結(jié)果的好壞表示粒子的優(yōu)劣程度。每個(gè)粒子經(jīng)歷過(guò)的最佳的位置(最佳適應(yīng)值)稱為個(gè)體極值Pbest;群體所有粒子所經(jīng)歷的最佳位置稱為群體極值Gbest。粒子在解空間中運(yùn)動(dòng),通過(guò)跟蹤個(gè)體和群體極值更新個(gè)體位置。粒子每更新一次位置,就計(jì)算一次適應(yīng)度,并且通過(guò)比較新粒子與舊時(shí)適應(yīng)度值更新個(gè)體和群體極值的位置。
假設(shè)在一個(gè)D維的搜索空間中,n個(gè)粒子X(jué)=(X1,X2,…,Xn)組成種群,其中第i個(gè)粒子表示一個(gè)D維的向量Xi=(xi1,xi2,…,xiD)T,代表在D維搜索空間中第i個(gè)粒子的位置,亦代表問(wèn)題的一個(gè)潛在解。根據(jù)目標(biāo)函數(shù)即可計(jì)算出每個(gè)粒子位置Xi對(duì)應(yīng)的適應(yīng)度值。第i個(gè)粒子的速度為Vi=(Vi1,Vi2,…,ViD)T,其個(gè)體極值為Pi=(Pi1,Pi2,…,PiD)T,種群的全局極值為Pg=(Pg1,Pg2,…,PgD)T。
在每一次迭代過(guò)程中,粒子通過(guò)個(gè)體和全局極值更新速度和位置:
式中,ω 為慣性權(quán)重;d=1,2,…,D;i=1,2,…,n;k為當(dāng)前迭代次數(shù);Vid為粒子的速度;c1和c2為非負(fù)的常數(shù),稱為加速度因子;r1和r2為分布于[0,1]之間的隨機(jī)數(shù)。
支持向量機(jī)首先由Vapnik[9]提出,其主要思想就是找到一個(gè)回歸平面,讓一個(gè)集合的所有數(shù)據(jù)到該平面的距離最近。目標(biāo)函數(shù)是一個(gè)正則平方誤差函數(shù):
在SVR中,目標(biāo)是訓(xùn)練出超平面y=ωT+b,并使yn=ωTxn+b作為預(yù)測(cè)值。為了獲得稀疏值,即計(jì)算超平面參數(shù)ω、b,通過(guò)部分?jǐn)?shù)據(jù),并采用?-insensitive誤差函數(shù)。誤差函數(shù)定義為
當(dāng)預(yù)測(cè)值yn與真值的差值小于閾值?時(shí),此樣本點(diǎn)將不會(huì)受到懲罰;若超出閾值,懲罰量為。采用E?替代平方誤差項(xiàng),所以最小化誤差函數(shù)可以被定義為優(yōu)化目標(biāo):
采用軟邊界的方法[10],將其轉(zhuǎn)化成一個(gè)約束優(yōu)化問(wèn)題,并為每個(gè)樣本數(shù)據(jù)定義上下邊界的松弛變量ξn和,將誤差函數(shù)轉(zhuǎn)化為一個(gè)凸優(yōu)化問(wèn)題:
其中,C是懲罰因子,表示對(duì)于錯(cuò)分樣本懲罰的程度,若因子數(shù)值越大則表明錯(cuò)誤越大。Lagrangin的引入將最優(yōu)化問(wèn)題轉(zhuǎn)化對(duì)偶問(wèn)題。然后分別對(duì)四個(gè)算子求偏導(dǎo),并帶回到拉格朗日函數(shù)中。最后,將ω表達(dá)式代入到y(tǒng)n=ωTxn+b中,可以得到支持向量機(jī)回歸函數(shù):
根據(jù)泛函數(shù)的相關(guān)理論,核函數(shù)滿足Mercer條件,它就對(duì)應(yīng)某一變換空間中的內(nèi)積[11]。根據(jù)研究經(jīng)驗(yàn),本文選擇徑向基函數(shù)作為核函數(shù),即
其中,x為待預(yù)報(bào)因子向量;xi為作為支持向量的樣本因子向量;g為核函數(shù)參數(shù)。
采用蟻群粒子群混合算法優(yōu)化支持向量機(jī)流程圖如圖1所示,應(yīng)用至溫度預(yù)測(cè)流程如下:
第1步初始化蟻群算法初始位置向量、蟻群數(shù)目NACO、迭代時(shí)間TACO、迭代次數(shù)、最大迭代次數(shù)NACOmax、信息揮發(fā)系數(shù)ρ以及信息素濃度Q。
第二步將溫度影響參數(shù)的訓(xùn)練集對(duì)SVM進(jìn)行訓(xùn)練,并用式(8)計(jì)算每個(gè)螞蟻在當(dāng)前位置的適應(yīng)度:
圖1 算法流程
式中:yi是訓(xùn)練樣本的真實(shí)值;yi'是訓(xùn)練樣本的預(yù)測(cè)值。用下式計(jì)算當(dāng)前所處位置的信息素濃度:
影響數(shù)據(jù)中心機(jī)房溫度的因素主要是空調(diào)出風(fēng)口溫度、氣體流速、回風(fēng)口溫度、室內(nèi)濕度等。文中模型的建立根據(jù)實(shí)際中數(shù)據(jù)中心的機(jī)房布局、位置以及設(shè)備參數(shù)設(shè)定,選取各空調(diào)出風(fēng)口溫度、回風(fēng)口口溫度、風(fēng)速和機(jī)架處溫濕度作為自變量,將下一時(shí)刻機(jī)架處溫度作為因變量。機(jī)房布局如圖2所示。
文中數(shù)據(jù)取自蘇州某大型數(shù)據(jù)中心機(jī)房,房間級(jí)空調(diào)夏季實(shí)測(cè)數(shù)據(jù)。通過(guò)安裝的溫濕度傳感器,獲取空調(diào)出風(fēng)、回風(fēng)口和12個(gè)機(jī)架溫濕度每小時(shí)的實(shí)時(shí)數(shù)據(jù)。選取七月1至七月10日這段時(shí)日,每隔一小時(shí)收集一次數(shù)據(jù),總計(jì)240組數(shù)據(jù)作為訓(xùn)練學(xué)習(xí)數(shù)據(jù)。并以七月11日一天內(nèi)實(shí)測(cè)的24組數(shù)據(jù)作為測(cè)試數(shù)據(jù)。
圖2 機(jī)房布局
由于數(shù)據(jù)中包含不同的評(píng)價(jià)指標(biāo),其量綱單位不同,為了防止某些指標(biāo)數(shù)據(jù)過(guò)分放大或者被忽視影響到數(shù)據(jù)分析的結(jié)果,解決數(shù)據(jù)指標(biāo)之間的可比性問(wèn)題,對(duì)訓(xùn)練集和測(cè)試集進(jìn)行歸一化預(yù)處理。
歸一化后的數(shù)據(jù),可以加快梯度下降求最優(yōu)解的速度。同時(shí),最優(yōu)解的尋優(yōu)過(guò)程會(huì)變得更加平緩,能夠提高一定的預(yù)測(cè)精度。采用下式進(jìn)行歸一化處理:
粒子群學(xué)習(xí)因子的選取是參考Trelea等人[12]對(duì)粒子軌跡的收斂域分析推薦的參數(shù)。粒子群算法學(xué)習(xí)因子c1=c2=2,慣性權(quán)重ω=0.5,種群規(guī)模為30,最大迭代次數(shù)為300;蟻群種群數(shù)目為100,最大迭代次數(shù)為30,信息素ρ=0.7,信息素濃度Q=20。
通過(guò)MATLAB仿真軟件和數(shù)據(jù)中心實(shí)測(cè)數(shù)據(jù)對(duì)溫度預(yù)測(cè)模型進(jìn)行仿真實(shí)驗(yàn),得到溫度實(shí)際值和預(yù)測(cè)值的對(duì)比圖,并同時(shí)與SVM模型預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,見(jiàn)圖3。
為了檢視對(duì)比PSO-SVM的預(yù)測(cè)效果,圖3中同時(shí)給出了支持向量機(jī)的模擬效果。由圖3可見(jiàn),蟻群粒子群優(yōu)化支持向量機(jī)相較于支持向量機(jī)預(yù)測(cè)的擬合精度更高,更為接近真實(shí)值。同時(shí),其預(yù)測(cè)的溫度趨勢(shì)與真實(shí)趨勢(shì)大致相符,最大誤差溫度只有0.1℃。
由表1中給出的均方誤差和決定系數(shù)能更清晰的看出模型之間的差異。但也因優(yōu)化過(guò)程,增加了一定程度上的計(jì)算負(fù)荷和時(shí)間。
表1 預(yù)測(cè)誤差對(duì)比
圖3 溫度預(yù)測(cè)結(jié)果
綜上可知,蟻群粒子群混合優(yōu)化支持向量機(jī)機(jī)架溫度預(yù)測(cè)模型具有更好的泛化能力和預(yù)測(cè)精度,可以準(zhǔn)確的預(yù)測(cè)下一時(shí)刻溫度,從而達(dá)到理想效果。
本文研究了數(shù)據(jù)中心下送風(fēng)、房間級(jí)空調(diào)模式下各機(jī)架溫度的ACOPSO-SVM預(yù)測(cè)模型。結(jié)合了蟻群粒子群混合算法和支持向量機(jī),對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練建模研究。主要結(jié)論如下:
(1)利用蟻群算法的優(yōu)化結(jié)果作為粒子群算法初始化設(shè)置,不僅可以獲得蟻群算法的全局尋優(yōu)能力和粒子群算法的局部尋優(yōu)能力,還避免了蟻群算法迭代周期長(zhǎng)和粒子群算法易收斂的缺點(diǎn)。
(2)針對(duì)數(shù)據(jù)中心實(shí)際情況,考慮到多因素間的相關(guān)性和非線性關(guān)系,提出蟻群粒子群混合算法和SVM預(yù)測(cè)模型,顯示出了很高的非線性學(xué)習(xí)能力。
(3)通過(guò)對(duì)比分析SVM算法的預(yù)測(cè)結(jié)果、均方誤差和相關(guān)系數(shù),驗(yàn)證了ACOPSO+SVM對(duì)整體機(jī)架溫度的高預(yù)測(cè)性能。