王靖程 王金明 敖 海 李國(guó)慶 姚玲玲 陳 倉(cāng)
(1.西安熱工院研究有限公司 西安 710054)(2.華能金昌光伏發(fā)電有限公司 金昌 737199)(3.華能新能源股份有限公司 北京 100036)
光伏信息設(shè)備的狀態(tài)預(yù)測(cè)對(duì)光伏系統(tǒng)的正常運(yùn)轉(zhuǎn)和實(shí)時(shí)準(zhǔn)確監(jiān)控及管理起到了重要作用。它是指根據(jù)信息設(shè)備的CPU 使用率、內(nèi)存使用率、磁盤(pán)使用率和溫度的歷史數(shù)據(jù),來(lái)推測(cè)一段時(shí)間后設(shè)備的負(fù)載狀態(tài)信息。
目前,對(duì)信息設(shè)備負(fù)載狀態(tài)的預(yù)測(cè)方法主要有兩大類。一類是基于統(tǒng)計(jì)學(xué)知識(shí)的方法,如時(shí)間序列方法[1~3]、回歸分析法[4]和灰色模型預(yù)測(cè)法[5]。但隨著許多系統(tǒng)規(guī)模的變大,設(shè)備狀態(tài)數(shù)據(jù)也隨之海量增長(zhǎng)并且復(fù)雜多變,這類方法已經(jīng)不能保證這種多維非線性不平穩(wěn)時(shí)間序列的預(yù)測(cè)精度。另一類方法則適用于高維度、非線性時(shí)間序列的建模分析,如支持向量機(jī)(support vector machine,SVM)[6]、人工神經(jīng)網(wǎng)絡(luò)[7]等。SVM 能夠找到全局最優(yōu)解,但操作比較復(fù)雜,其參數(shù)選取需要一定的先驗(yàn)知識(shí),參數(shù)的合適與否決定著預(yù)測(cè)結(jié)果的優(yōu)劣,致使模型的泛化能力較弱。人工神經(jīng)網(wǎng)絡(luò)自適應(yīng)、自學(xué)習(xí)能力較強(qiáng),不需要先驗(yàn)知識(shí),而且由于其實(shí)現(xiàn)簡(jiǎn)單,目前在設(shè)備狀態(tài)預(yù)測(cè)領(lǐng)域中已得到了廣泛的應(yīng)用。循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)是一種引入了定向循環(huán)的人工神經(jīng)網(wǎng)絡(luò),能夠處理那些輸入輸出之間前后具有關(guān)聯(lián)的問(wèn)題[8]。
但循環(huán)神經(jīng)網(wǎng)絡(luò)在處理長(zhǎng)時(shí)間的時(shí)間序列時(shí)存在梯度消散的現(xiàn)象[9],文獻(xiàn)[10]提出了長(zhǎng)短期記憶(long-term and short-term memory,LSTM)神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)是RNN 的一個(gè)變種,能夠處理循環(huán)神經(jīng)網(wǎng)絡(luò)梯度消散的問(wèn)題,在時(shí)間序列預(yù)測(cè)領(lǐng)域取得了很好的成績(jī)[11~14]。但傳統(tǒng)的LSTM 是利用隨時(shí)間反向傳播算法(backpropagation through time,BPTT)[15]來(lái)確定網(wǎng)絡(luò)參數(shù)的,該算法時(shí)間復(fù)雜度高且易陷于局部最優(yōu)。
基于上述分析,本文提出一種用小生境灰狼優(yōu)化(niche grey wolf optimization,NGWO)算法改進(jìn)的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)光伏信息設(shè)備狀態(tài)的方法。實(shí)驗(yàn)結(jié)果表明,該方法提高了對(duì)信息設(shè)備狀態(tài)預(yù)測(cè)的精度。
LSTM作為RNN的一個(gè)變種,在RNN模塊的基礎(chǔ)上引入了記憶單元狀態(tài),解決了RNN 存在的問(wèn)題。LSTM 有三個(gè)特殊的門(mén):遺忘門(mén)、輸入門(mén)、以及輸出門(mén)。LSTM神經(jīng)網(wǎng)絡(luò)通過(guò)對(duì)于這三個(gè)門(mén)的參數(shù)及權(quán)重調(diào)整,來(lái)解決循環(huán)神經(jīng)網(wǎng)絡(luò)難以處理長(zhǎng)時(shí)依賴序列的問(wèn)題。其重復(fù)模塊的內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 LSTM結(jié)構(gòu)示意圖
遺忘門(mén)負(fù)責(zé)選取從單元狀態(tài)中移除的信息,計(jì)算公式為
輸入門(mén)負(fù)責(zé)新信息的輸入,計(jì)算公式為
式(1)~(7)中,t∈{1 ,2,3…l} ,激活函數(shù)選取sig?mod函數(shù)。
根據(jù)上述公式計(jì)算可求得系統(tǒng)的輸出,接著采用隨時(shí)間反向傳播算法,修正網(wǎng)絡(luò)中的參數(shù)并最終確定。LSTM在時(shí)間序列預(yù)測(cè)領(lǐng)域取得了很好的成績(jī)。但其在確定參數(shù)的時(shí)候采用的是BPTT 算法,該算法時(shí)間復(fù)雜度較高且容易收斂于局部最優(yōu)解。
灰狼優(yōu)化(grey wolf optimization,GWO)算法[16]是一種根據(jù)狼群群體智能,基于狼群的社會(huì)等級(jí)制度和捕食行為而提出的群體智能優(yōu)化算法。狼群中存在嚴(yán)格的社會(huì)等級(jí)制度,社會(huì)等級(jí)層次從上到下依次是α,β,δ和ω共4層,狼群算法建立了一個(gè)狼群中的狼和潛在解對(duì)應(yīng)的模型[17]。α狼代表當(dāng)前位置最好的狼(當(dāng)前最優(yōu)解),是捕獵過(guò)程中的領(lǐng)導(dǎo)者;其次是β和δ,捕獵過(guò)程中他們會(huì)協(xié)助α狼對(duì)狼群進(jìn)行管理和決策;其他的狼被定義為ω,根據(jù)α,β,δ三只狼的位置更新自己的位置。圍捕結(jié)束后位置最好的狼將對(duì)應(yīng)于我們所尋找的最優(yōu)解。
相比于粒子群優(yōu)化算法[18]、蟻群優(yōu)化算法[19]、遺傳算法[20],灰狼優(yōu)化算法在函數(shù)優(yōu)化方面有著結(jié)構(gòu)簡(jiǎn)單、易于操作等優(yōu)點(diǎn),但在搜索最優(yōu)的過(guò)程中,因?yàn)槿后w多樣性較差,所以會(huì)較易進(jìn)入局部最優(yōu)的狀態(tài)。基于上述分析,在灰狼優(yōu)化算法的基礎(chǔ)上,引入小生境技術(shù),提出利用小生境灰狼優(yōu)化(NG?WO)算法來(lái)優(yōu)化LSTM的設(shè)備狀態(tài)預(yù)測(cè)方法。
小生境(Niche)是指特定環(huán)境下的一種生存環(huán)境,在進(jìn)化過(guò)程中,生物總是傾向與自己習(xí)性相像的個(gè)體一起生活,進(jìn)而產(chǎn)生后代[21]。在每一代進(jìn)化前,小生境技術(shù)依據(jù)個(gè)體間的距離將群體分成多個(gè)小生境群體,再在不同小群體之間配對(duì)產(chǎn)生下一代。利用小生境技術(shù)對(duì)灰狼優(yōu)化算法進(jìn)行優(yōu)化,首先通過(guò)傳統(tǒng)GWO 算法算出每個(gè)個(gè)體的適應(yīng)度值,給定一個(gè)小生境半徑,當(dāng)個(gè)體間的距離小于該值時(shí),比較這些個(gè)體的適應(yīng)度值,接著對(duì)適應(yīng)度值較低的個(gè)體施加懲罰,以提高搜索全局最優(yōu)的能力。
小生境灰狼群優(yōu)化算法具有計(jì)算較為簡(jiǎn)單、能夠收斂到全局最優(yōu)的優(yōu)點(diǎn)。所以本文利用基于小生境灰狼優(yōu)化算法的LSTM 模型(NGWO-LSTM)來(lái)對(duì)光伏系統(tǒng)信息設(shè)備的狀態(tài)參數(shù)進(jìn)行預(yù)測(cè),通過(guò)NGWO 算法來(lái)優(yōu)化LSTM 的網(wǎng)絡(luò)參數(shù),將LSTM 對(duì)時(shí)序數(shù)據(jù)的強(qiáng)大處理能力與NGWO 算法的高效優(yōu)化能力相結(jié)合,使得能夠高效、精確地對(duì)設(shè)備的狀態(tài)進(jìn)行預(yù)測(cè)。
NGWO-LSTM 模型的網(wǎng)絡(luò)結(jié)構(gòu)和傳統(tǒng)LSTM的網(wǎng)絡(luò)結(jié)構(gòu)相同,如圖2。從LSTM 的相關(guān)計(jì)算公式可以得到我們需要確定的參數(shù)(矩陣)有13 個(gè),分 別 是wfx∈Rhidden×lookback,wfh∈Rhidden×hidden,bf∈Rhidden×1,wix∈Rhidden×lookback,wih∈Rhidden×hidden,bi∈Rhidden×1,wcx∈Rhidden×lookback,wch∈Rhidden×hidden,bc∈Rhidden×1,wox∈Rhidden×lookback,woh∈Rhidden×hidden,bo∈Rhidden×1,wyh∈Rpredstep×hidden。
圖2 CPU使用率預(yù)測(cè)的實(shí)驗(yàn)結(jié)果對(duì)比圖
其中,hidden為隱藏層單元的個(gè)數(shù);lookback為時(shí)間步,表示當(dāng)前的輸入與前陸續(xù)多少步的輸入有直接聯(lián)系;predstep表示預(yù)測(cè)未來(lái)多少步的輸出。
因?yàn)镹GWO 算法中的每只狼都是一個(gè)潛在解,所以每只狼的位置要能表示出這13 個(gè)參數(shù)(矩陣),故狼的位置的長(zhǎng)度為
假設(shè)搜索空間是M維的,也即狼的位置的長(zhǎng)度為M,那么灰狼i的位置可以用一個(gè)矢量來(lái)表示Xi=(Xi1,Xi2,…,XiM)T。假設(shè)狼群中有N只狼,則整個(gè)狼群可表示為X=(X1,X2,…,XN)。
個(gè)體間的距離選用歐式距離來(lái)衡量,對(duì)于M維搜索空間,灰狼i的位置為Xi=(Xi1,Xi2,…XiM)T,灰狼j的位置為Xj=(Xj1,Xj2,…XjM)T,于是灰狼i和灰狼j的距離為
若該距離小于給出的指定參數(shù)小生境半徑σshare,即dij<σshare,則將它們納入到小生境群體。
適應(yīng)度函數(shù)值是評(píng)價(jià)種群中灰狼個(gè)體好壞程度的一個(gè)標(biāo)準(zhǔn),它是基于目標(biāo)函數(shù)構(gòu)造的,灰狼的適應(yīng)度值越大,則更有機(jī)會(huì)作為α狼。
我們的目標(biāo)是使模型給出的預(yù)測(cè)值與實(shí)際值相比偏差盡可能地小,所以可選取最小化為目標(biāo)函數(shù)。其中為實(shí)際值,yt為模型的輸出值,T為所預(yù)測(cè)的時(shí)間序列的長(zhǎng)度。故NGWO算法的適應(yīng)度函數(shù)可設(shè)置為
NGWO 算法改進(jìn)的LSTM 時(shí)間序列預(yù)測(cè)模型步驟如下:
步驟一:確定LSTM 神經(jīng)網(wǎng)絡(luò)中hidden、look?back 和predstep 的值,并將輸入(X)重構(gòu)為L(zhǎng)STM 預(yù)期的3D格式,即[Samples,Timesteps,F(xiàn)eatures]。
步驟二:確定小生境灰狼優(yōu)化算法的維度M,群體中的灰狼個(gè)體數(shù)N、最大迭代次數(shù)tmax、小生境半徑σshare和懲罰函數(shù)penalty。
步驟三:初始化灰狼群體,通過(guò)隨機(jī)方法產(chǎn)生每只灰狼的位置Xi,j~U(lj,uj)(1 ≤i≤N,1 ≤j≤M),其中U是隨機(jī)分布函數(shù),lj、uj表示搜索區(qū)間的搜索上界和下界。
步驟四:對(duì)每個(gè)灰狼個(gè)體進(jìn)行下列操作:
1)將每個(gè)灰狼個(gè)體Xi分解成LSTM的參數(shù);
2)代入樣本數(shù)據(jù),根據(jù)上述參數(shù)計(jì)算LSTM 神經(jīng)網(wǎng)絡(luò)的輸出值y;
3)根據(jù)式(10)計(jì)算灰狼Xi的適應(yīng)度值fi。
步驟五:比較每個(gè)灰狼的適應(yīng)度值,將適應(yīng)度值前三的灰狼個(gè)體的位置分別記為Xα、Xβ、Xδ,并將適應(yīng)度值最好的Xα作為L(zhǎng)STM 網(wǎng)絡(luò)參數(shù)的最優(yōu)解。
步驟六:更新剩余個(gè)體ω的位置。在更新灰狼i的位置時(shí),先分別計(jì)算出灰狼i和狼α,β,δ之間的距離,距離計(jì)算公式如下:
式中,Dα、Dβ、Dδ分別代表灰狼i距狼α,β,δ的距離;Xα、Xβ、Xδ分別表示狼α,β,δ的位置;Xi(t)表示狼i在第t 代的位置;r1為0~1 之間的隨機(jī)數(shù)。
在得到灰狼i距位置最好的三只狼的距離后,狼i就需要向這三只狼移動(dòng),以更新自己位置,計(jì)算公式如下:
式中,分別是狼i朝α,β,δ狼移動(dòng)的矢量;Xi(t+1)是更新后的最終位置;r2是[0,1]間的隨機(jī)數(shù);α是收斂因子,其計(jì)算公式為α=2-,t是當(dāng)前迭代次數(shù),tmax是最大的迭代次數(shù)??梢园l(fā)現(xiàn),迭代因子α隨著迭代次數(shù)的增加從2 線性遞減到0,所以Ak的絕對(duì)值有兩種可能:1 < |Ak|≤2 或 |Ak|≤1。若1 < |Ak|≤2,則該狼會(huì)遠(yuǎn)離當(dāng)前位置較好的狼;若≤1,則會(huì)向位置較好的狼靠攏。
步驟七:按照式(9)計(jì)算灰狼個(gè)體間的距離,當(dāng)dij<σshare時(shí),比較灰狼i和灰狼j適應(yīng)度值的大小,對(duì)適應(yīng)度度值較小的灰狼施加懲罰函數(shù)。即若dij<σshare,min(fi,fj)=penalty(penalty函數(shù)的懲罰力度根據(jù)所求函數(shù)解的大小來(lái)決定)。
步驟八:若t大于tmax,則終止算法并輸出最優(yōu)解Xα;否則返回步驟四。
最后獲得的Xα即為L(zhǎng)STM 網(wǎng)絡(luò)參數(shù)對(duì)應(yīng)的最優(yōu)解,之后,便可以將訓(xùn)練好的模型運(yùn)用于測(cè)試。
為了驗(yàn)證基于小生境灰狼優(yōu)化(NGWO)算法的長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)在光伏信息設(shè)備狀態(tài)預(yù)測(cè)中的精度和泛化能力,本文使用LS-SVM、BP神經(jīng)網(wǎng)絡(luò)和原始LSTM 作為參比方法,與本文的NGWO-LSTM預(yù)測(cè)模型進(jìn)行比較。
實(shí)驗(yàn)采用的數(shù)據(jù)來(lái)自甘肅某光伏電站的信息設(shè)備的歷史狀態(tài)數(shù)據(jù),其數(shù)據(jù)記錄間隔為5min。在使用各個(gè)預(yù)測(cè)方法進(jìn)行預(yù)測(cè)之前,需對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,剔除掉明顯的異常點(diǎn),然后對(duì)數(shù)據(jù)進(jìn)行歸一化處理,并將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集。本文選取2017 年10 月1 日至2 日的一共560 組有效采樣數(shù)據(jù),將前400組數(shù)據(jù)劃分為訓(xùn)練集,將后160組數(shù)據(jù)劃分為測(cè)試集。在數(shù)據(jù)集中,每組數(shù)據(jù)包括CPU使用率、內(nèi)存使用率、磁盤(pán)使用率和主板溫度4個(gè)值。
NGWO-LSTM 的種群規(guī)模N=30,最大迭代次數(shù)tmax=400,小生境半徑σshare=0.5,LSTM 神經(jīng)網(wǎng)絡(luò)的隱藏層層數(shù)為1,隱藏層節(jié)點(diǎn)數(shù)為8,激活函數(shù)均使用sigmood 函數(shù)。傳統(tǒng)LSTM 的網(wǎng)絡(luò)結(jié)構(gòu)和改進(jìn)的LSTM 的相同,迭代50次。最小二乘支持向量機(jī)LS-SVM 的正則參數(shù)γ=3000,平方帶寬δ2=1000。BP神經(jīng)網(wǎng)絡(luò)的隱藏層數(shù)為1,隱藏層節(jié)點(diǎn)數(shù)為8,最大迭代次數(shù)為500,學(xué)習(xí)率為0.02。采用Matlab 對(duì)本文提出的預(yù)測(cè)方法及對(duì)比方法進(jìn)行仿真實(shí)驗(yàn),衡量預(yù)測(cè)精度的指標(biāo)采用絕對(duì)平均百分比誤差(MAPE)、絕對(duì)平均誤差(MAE)和均方根誤差(RMSE),計(jì)算公式如式(14)~(16)所示。
其中,y(t)表示預(yù)測(cè)的序列值,y?(t)表示實(shí)際序列值。
利用Matlab實(shí)現(xiàn)各種預(yù)測(cè)方法,實(shí)驗(yàn)結(jié)果如表1~4和圖3(以CPU使用率為例)所示。
表1 CPU使用率預(yù)測(cè)實(shí)驗(yàn)結(jié)果對(duì)比
表2 內(nèi)存使用率預(yù)測(cè)實(shí)驗(yàn)結(jié)果對(duì)比
表3 磁盤(pán)使用率預(yù)測(cè)實(shí)驗(yàn)結(jié)果對(duì)比
表4 主板溫度實(shí)驗(yàn)結(jié)果對(duì)比
從表1~4 和圖3 可以看到,NGWO-LSTM 的預(yù)測(cè)效果要明顯優(yōu)于其他幾種預(yù)測(cè)方法,其預(yù)測(cè)值更接近實(shí)際值,設(shè)備狀態(tài)的各個(gè)屬性值預(yù)測(cè)結(jié)果如圖4 所示。體現(xiàn)了小生境灰狼算法和長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)結(jié)合的優(yōu)勢(shì),長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)因其自身結(jié)構(gòu)本身十分適合對(duì)前后有關(guān)聯(lián)的時(shí)序數(shù)據(jù)進(jìn)行處理,小生境灰狼算法則對(duì)其網(wǎng)絡(luò)參數(shù)的確定過(guò)程進(jìn)行優(yōu)化,使其能夠快速收斂和尋找全局最優(yōu)。以CPU 為例進(jìn)行具體說(shuō)明,NGWO-LSTM 預(yù)測(cè)的結(jié)果的MAE 相比于傳統(tǒng)LSTM、LS-SVM 和BP 神經(jīng)網(wǎng)絡(luò)分別降低了0.8885、1.7799 和5.4442,體現(xiàn)出NG?WO 算法在優(yōu)化參數(shù)上的優(yōu)勢(shì),減小了算法陷入局部最優(yōu)的概率,能更好地自適應(yīng)調(diào)整優(yōu)化LSTM 神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值。此外,NGWO-LSTM 預(yù)測(cè)結(jié)果的RMSE 也都比其他預(yù)測(cè)方法的要低,說(shuō)明該方法泛化能力較強(qiáng),具有很好的穩(wěn)定性,波動(dòng)較小。
圖3 NGWO-LSTM 設(shè)備狀態(tài)預(yù)測(cè)圖
本文利用小生境灰狼優(yōu)化(NGWO)算法優(yōu)化長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)光伏信息設(shè)備狀態(tài)進(jìn)行預(yù)測(cè)。該方法利用小生境灰狼優(yōu)化算法對(duì)LSTM 的網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,將NGWO 算法的快速收斂、全局搜索尋優(yōu)能力和LSTM 對(duì)時(shí)間序列數(shù)據(jù)強(qiáng)大的處理能力相結(jié)合,提高了LSTM 對(duì)時(shí)間序列數(shù)據(jù)的預(yù)測(cè)精度。 實(shí)驗(yàn)結(jié)果表明,該方法能夠很好地把握光伏信息設(shè)備狀態(tài)的變化規(guī)律,具有較好的預(yù)測(cè)精度和泛化能力,對(duì)設(shè)備的狀態(tài)監(jiān)控、評(píng)估及異常告警具有重要作用。