蔡鑫祥,撖奧洋,周生奇,魏振,張智晟
(1.青島大學(xué) 電氣工程學(xué)院,山東 青島 266071;2. 國網(wǎng)山東省電力公司青島供電公司,山東 青島 266002)
短期負(fù)荷預(yù)測主要是指對未來一個小時至幾天的負(fù)荷預(yù)測,對于經(jīng)濟(jì)調(diào)度、最優(yōu)潮流以及調(diào)度部門機(jī)組的最優(yōu)組合有著重要的作用,而對于當(dāng)前和未來的電力市場更是有其不可替代性。精確度高的短期負(fù)荷預(yù)測在提升經(jīng)濟(jì)效益和提高供電質(zhì)量等方面有著非常巨大的影響[1]。
影響短期負(fù)荷預(yù)測的因素[2]主要有氣象條件、日期類型等。隨著近年來空調(diào)等調(diào)溫設(shè)備應(yīng)用越來越廣泛,受溫度影響較大的調(diào)溫設(shè)備用電占社會總用電的比例增大,考慮氣象條件能有效提高短期電力負(fù)荷的預(yù)測精度。氣象條件包括:每日平均溫度、每日最高溫度、每日最低溫度、降水概率、風(fēng)速;而對于日期類型,除了節(jié)假日、工作日與周末的區(qū)分,還要考慮其周期性變化規(guī)律。
為了提高預(yù)測精度,尋找更優(yōu)秀的模型與算法是必要的[3]。過去人們在短期負(fù)荷預(yù)測方面做了很多研究,有些比較成功,例如目前較為廣泛使用的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)[4],但是Bengio等人發(fā)現(xiàn)在實際應(yīng)用中訓(xùn)練RNN會出現(xiàn)梯度問題,即梯度消失和梯度爆炸[5-6]。長短期記憶(long short-term memory,LSTM)模型就是為解決RNN遇到的梯度問題而提出的[7]。LSTM模型能夠有效解決RNN中的梯度問題,但同時也存在訓(xùn)練時間過長、參數(shù)過多、模型訓(xùn)練較難、輸入數(shù)據(jù)較少時無法得到足夠優(yōu)秀訓(xùn)練模型的問題。LSTM模型提出之后學(xué)者們又提出了很多變體。有學(xué)者提出了在輸入端加入上一時刻記憶細(xì)胞狀態(tài)值的特殊LSTM模型,即加入窺視孔的LSTM模型。在此基礎(chǔ)上,本文采用最小窺視孔長短期記憶(min peephole long short-term memory,MP-LSTM)模型,這種模型在保留經(jīng)典LSTM模型優(yōu)點的同時,又具有魯棒性;其另一個特點是有著最少的門控單元(唯一門),將本來需要分開決定的操作,如遺忘、輸入、輸出進(jìn)行統(tǒng)一決定,從而優(yōu)化了結(jié)構(gòu),減少了參數(shù),且這種模型與經(jīng)典LSTM模型相比,在輸入較少時依然能得到足夠優(yōu)秀的訓(xùn)練模型[8-9]。在優(yōu)化算法方面,早期研究大多采用模型簡單、預(yù)測速度快的反向傳播(back propagation,BP)算法,但是這種學(xué)習(xí)算法存在著易于陷入局部最優(yōu)、無法充分考慮輸入數(shù)據(jù)的時間相關(guān)性等問題。本文采用改進(jìn)粒子群優(yōu)化(particle swarm optimization,PSO)算法作為優(yōu)化算法,其相對于BP算法具有很好的全局尋優(yōu)能力,改善了BP算法易于陷入局部最優(yōu)的狀態(tài),進(jìn)而提高了預(yù)測的準(zhǔn)確率[10]。
本文首先介紹RNN模型、經(jīng)典LSTM模型與MP-LSTM模型;然后簡要討論PSO算法及其改進(jìn)方法,并詳細(xì)說明改進(jìn)PSO算法優(yōu)化MP-LSTM模型流程;最后,對各個模型的仿真結(jié)果進(jìn)行對比分析。
RNN與普通前向神經(jīng)網(wǎng)絡(luò)不同,因為RNN擁有1個可以循環(huán)信息的神經(jīng)元,使得神經(jīng)元細(xì)胞上一個時間步的細(xì)胞狀態(tài)可以影響當(dāng)前時間步的輸出,從而有了記憶的可能。經(jīng)典RNN模型如圖1所示,其中:下標(biāo)t表示當(dāng)前時刻,t-1表示上一時刻,下同;St為隱藏層狀態(tài)值;xt為輸入;ot為輸出;W為連接上一時刻隱藏層與當(dāng)前隱藏層之間的權(quán)重矩陣;U為連接輸入層與隱藏層之間的權(quán)重矩陣;V為連接隱藏層和輸出層之間的權(quán)重矩陣。
圖1 經(jīng)典RNN模型Fig.1 Classic RNN model
由圖1可以看出RNN可以對上一時刻隱含層狀態(tài)值進(jìn)行記憶,并令其影響當(dāng)前時刻隱含層狀態(tài)值。
RNN網(wǎng)絡(luò)前向計算公式為:
St=tanh(WSt-1+Uxt+b),
(1)
ot=σ(VSt).
(2)
式中:b為偏置矩陣;σ為sigmoid函數(shù)。激活函數(shù)公式如下:
(3)
(4)
其中對于sigmoid函數(shù)(σ)會出現(xiàn)輸入較大得不到有效輸入的情況,本文通過加入系數(shù)2對其進(jìn)行了修正。
RNN的本質(zhì)就是通過不停學(xué)習(xí)得到最優(yōu)權(quán)重矩陣W、U、V和偏移系數(shù)b,最終用所得參數(shù)進(jìn)行預(yù)測。
LSTM模型通過特殊的門控單元(遺忘門、輸入門、輸出門)代替RNN的記憶細(xì)胞結(jié)構(gòu),利用遺忘門判斷上一時刻記憶細(xì)胞信息是否對當(dāng)前時刻記憶細(xì)胞有影響,并對上一時刻記憶細(xì)胞保留的信息進(jìn)行刪減;利用輸入門判斷更新信號是否傳遞到當(dāng)前時刻記憶細(xì)胞,并通過激活函數(shù)對記憶細(xì)胞狀態(tài)值進(jìn)行更新;最后通過輸出門輸出記憶細(xì)胞的輸出狀態(tài)值。LSTM模型不僅可以有效解決RNN模型無法解決的梯度消失和梯度爆炸問題[11-13],還能提高模型預(yù)測精度。經(jīng)典LSTM模型如圖2所示,其中ft、it、ot、gt、Ct、ht分別表示遺忘門、輸入門、輸出門、輸入細(xì)胞單元狀態(tài)、細(xì)胞單元狀態(tài)、輸出值;“*”用于矩陣時代表矩陣對應(yīng)位置元素相乘。
圖2 經(jīng)典LSTM模型Fig.2 Classic LSTM model
LSTM模型前向計算公式如下:
it=σ(Wi[ht-1,xt]+bi),
(5)
ft=σ(Wf[ht-1,xt]+bf),
(6)
ot=σ(Wo[ht-1,xt]+bo),
(7)
gt=tanh(Wg[ht-1,xt]+bg),
(8)
Ct=ft*Ct-1+it*gt,
(9)
ht=ot*tanh(Ct).
(10)
式(5)—(10)中下標(biāo)“i、f、o、g”分別對應(yīng)輸入門、遺忘門、輸出門和輸入細(xì)胞單元狀態(tài)。
由式(5)—(8)可知:輸入門it主要作用是通過sigmoid函數(shù)判斷當(dāng)前時刻更新的輸入數(shù)據(jù)有哪些傳送至記憶細(xì)胞;遺忘門ft通過sigmoid函數(shù)判斷之前記憶細(xì)胞中哪些信息需要刪除;輸入細(xì)胞狀態(tài)gt通過tanh函數(shù)構(gòu)建一個當(dāng)前時刻記憶細(xì)胞的候選值,然后與輸入門、遺忘門、上一時刻記憶細(xì)胞狀態(tài)值通過式(9)更新當(dāng)前時刻記憶細(xì)胞Ct的值;輸出門ot控制記憶細(xì)胞的輸出狀態(tài)值;最終輸出量ht由輸出門和當(dāng)前時刻記憶細(xì)胞狀態(tài)通過式(10)決定。
對于LSTM模型,學(xué)界提出了很多變體,其中比較流行的變體是由Gers和Schmidhuber于2000年提出的加入窺視孔(peephole)的LSTM模型[14],這一結(jié)構(gòu)讓記憶細(xì)胞狀態(tài)值直接參與到遺忘門、輸入門、輸出門的計算過程中。加入窺視孔的LSTM模型的遺忘門、輸入門、輸出門公式分別為:
it=σ(Wi[ht-1,Ct-1,xt]+bi),
(11)
ft=σ(Wf[ht-1,Ct-1,xt]+bf),
(12)
ot=σ(Wo[ht-1,Ct-1,xt]+bo).
(13)
本文采用的MP-LSTM模型是經(jīng)典LSTM模型的一種變體。MP-LSTM模型只有2個網(wǎng)絡(luò)層(1個sigmoid層、1個tanh層),以及1個門控單元即唯一門。MP-LSTM模型是在窺視孔連接的LSTM模型上變化而來的,因此在輸入中加入了記憶細(xì)胞狀態(tài)值。MP-LSTM模型將原來分開決定的對上一時刻信息的遺忘、對輸入信息的更新等,變?yōu)橥瑫r決定,并用遺忘門來代替輸入門和輸出門[15]。該模型具體輸入門、輸出門替換公式分別為:
it=1-ft,
(14)
ot=ft.
(15)
以上公式對任意t時刻均成立。
圖3為MP-LSTM結(jié)構(gòu)圖,其中ut為唯一門。
圖3 MP-LSTM模型Fig.3 MP-LSTM model
MP-LSTM前向計算公式如下:
ut=σ(Wu[ht-1,Ct-1,xt]+bu),
(16)
gt=tanh(Wg[ht-1,xt]+bg),
(17)
Ct=ut*Ct-1+(1-ut)*gt,
(18)
ht=ut*tanh(Ct).
(19)
式(16)—(19)中Wu、bu為唯一門的權(quán)重矩陣、偏置矩陣。
與經(jīng)典LSTM模型不同,MP-LSTM的唯一門ut輸入端增加了上一時刻的記憶細(xì)胞狀態(tài)值Ct-1。首先利用sigmoid函數(shù)更新唯一門狀態(tài)值ut,通過式(18)得到t時刻記憶細(xì)胞狀態(tài)值Ct;最終將得到的Ct與唯一門狀態(tài)值ut通過式(19)決定輸出值。
PSO算法是一種在鳥群覓食行為中學(xué)習(xí)得到的具有較好全局尋優(yōu)能力的算法[16-21]。
PSO算法的基本迭代公式如下:
vi,d=wvi,d+c1r1(pi,d-yi,d)+
c2r2(pg,d-yi,d),
(20)
yi,d+1=yi,d+αvi,d.
(21)
式中:yi,d為第d次迭代的第i個粒子的位置;vi,d為第d次迭代的第i個粒子的速度;pi,d為第d次迭代的第i個粒子經(jīng)過的最優(yōu)位置;pg,d為第d次迭代所有粒子中經(jīng)歷過的最優(yōu)位置;w為慣性因子,是非負(fù)數(shù);c1、c2為加速常數(shù),是非負(fù)常數(shù);r1、r2為[0,1]區(qū)間之內(nèi)變化的均勻隨機(jī)數(shù);α為約束因子,目的是控制速度的權(quán)重。
PSO算法就是利用搜索空間內(nèi)隨機(jī)分布的粒子來搜索最優(yōu)的算法。將第1次隨機(jī)分布的粒子中效果最好的粒子保持位置不變,而其他粒子按照一定的速度向其移動,這就是第1次搜索。之后的每次迭代,都是保持最優(yōu)的粒子位置不變,而其他粒子向其移動,最終就會形成類似自然界中鳥群聚集在有食物分布地區(qū)的現(xiàn)象,也就是說最終所有粒子位置接近;而最優(yōu)的選擇可以由設(shè)定最大迭代次數(shù)和最小誤差大小來實現(xiàn),當(dāng)?shù)螖?shù)達(dá)到最大值或者最小誤差小于設(shè)定值,停止優(yōu)化。但是如果所有粒子接近最優(yōu)值和所有粒子一開始分布各處時粒子移動速度一樣的話,會使得算法預(yù)測精度降低,且容易跳過最優(yōu)值點。本文采用慣性權(quán)重法對PSO算法進(jìn)行改進(jìn),慣性因子
(22)
式中:dmax為最大迭代次數(shù);wmax、wmin分別為慣性因子的最大、最小設(shè)定值。這種慣性權(quán)重法的優(yōu)點在于:在迭代初期粒子位置分布較散,這時慣性因子較大,全局搜索能力較強(qiáng),利于全局搜索;而到了迭代后期,粒子位置相對接近,這時慣性因子減小,局部搜索能力得到加強(qiáng),更利于局部搜索。慣性權(quán)重法能在迭代次數(shù)變化時改變慣性因子,使得PSO算法在全局與局部搜索之間找到平衡,從而提升搜索性能,提高預(yù)測精度。
由上述對神經(jīng)網(wǎng)絡(luò)的描述可知,MP-LSTM模型需要訓(xùn)練的權(quán)值包括更新門權(quán)值Wu、輸入細(xì)胞權(quán)值Wg、偏移系數(shù)bu和bg。本文采用改進(jìn)PSO算法進(jìn)行優(yōu)化,將MP-LSTM模型各權(quán)值看作空間中搜索粒子的屬性,以最終輸出預(yù)測值與實際值的誤差作為目標(biāo)函數(shù),通過迭代得到目標(biāo)函數(shù)最小值時得到最優(yōu)權(quán)值。
改進(jìn)PSO算法優(yōu)化MP-LSTM模型流程為:首先對歷史數(shù)據(jù)進(jìn)行歸一化處理,并對各粒子的速度、位置進(jìn)行初始化處理;接著利用PSO算法計算各個粒子的初始適應(yīng)度,通過迭代更新粒子的個體最優(yōu)以及全局最優(yōu)位置;當(dāng)誤差小于設(shè)定值0.01或者到達(dá)最大迭代次數(shù)之后結(jié)束訓(xùn)練,并將此時所得到的粒子位置賦予MP-LSTM模型神經(jīng)網(wǎng)絡(luò)的更新門權(quán)值Wu、輸入細(xì)胞權(quán)值Wg、偏移系數(shù)bu和bg;然后將訓(xùn)練得到的權(quán)值作為預(yù)測模型的權(quán)值,并利用MP-LSTM模型進(jìn)行預(yù)測;最后,將預(yù)測出的所有數(shù)據(jù)進(jìn)行反歸一化處理,即可得到最終預(yù)測結(jié)果。
負(fù)荷數(shù)據(jù)取自某地區(qū)電網(wǎng),每日采集96個負(fù)荷數(shù)據(jù),采樣間隔為15 min。為提高預(yù)測精度,需綜合考慮負(fù)荷的多種影響因素。本文考慮的天氣數(shù)據(jù)包括:日最低溫度、日最高溫度、日平均溫度、日氣象因素、日降水概率、日期類型(工作日為1,非工作日為0)。
在將電負(fù)荷數(shù)據(jù)與天氣數(shù)據(jù)一同作為MP-LSTM模型輸入之前,因各種數(shù)據(jù)單位不統(tǒng)一,需要先對數(shù)據(jù)進(jìn)行歸一化處理。歸一化公式為
(23)
式中:z為輸入的真實負(fù)荷數(shù)據(jù);zmax和zmin分別代表同類型輸入數(shù)據(jù)(負(fù)荷數(shù)據(jù)、天氣數(shù)據(jù)共7類)的最大值、最小值;Z為歸一化之后的負(fù)荷數(shù)據(jù)。
將預(yù)測日t時刻前3天對應(yīng)的t-1時刻、t時刻、t+1時刻的9維負(fù)荷數(shù)據(jù),以及預(yù)測日當(dāng)天的天氣數(shù)據(jù)共15維數(shù)據(jù)作為MP-LSTM模型的輸入,預(yù)測日t時刻1維數(shù)據(jù)作為模型的輸出。在對預(yù)測日前13天的負(fù)荷數(shù)據(jù)構(gòu)成的訓(xùn)練樣本進(jìn)行訓(xùn)練后,對預(yù)測日進(jìn)行預(yù)測。
為了驗證MP-LSTM模型的預(yù)測性能,將本文所提出的模型與其他模型進(jìn)行對比研究。建立4種模型:模型1為使用改進(jìn)PSO算法優(yōu)化的RNN模型;模型2為使用改進(jìn)PSO算法優(yōu)化的經(jīng)典LSTM模型;模型3為使用改進(jìn)PSO算法優(yōu)化的MP-LSTM模型;模型4為使用常規(guī)PSO算法優(yōu)化的MP-LSTM模型。4種模型全部采用1層LSTM結(jié)構(gòu),每層10個神經(jīng)元。激活函數(shù)一般有sigmoid、tanh、ReLU等,但是實驗表明在神經(jīng)網(wǎng)絡(luò)層數(shù)較少時tanh函數(shù)的效果明顯更好,故本文采用tanh作為激活函數(shù)。PSO算法優(yōu)化參數(shù)設(shè)置為:粒子數(shù)50,最大迭代次數(shù)1 000,學(xué)習(xí)因子c1、c2取1.496 2,粒子移動速度最大值vmax、最小值vmin分別取0.4、-0.4,慣性權(quán)重的最大值wmax、最小值wmin分別設(shè)為0.95、0.4。為測試新模型的預(yù)測性能,本文采用了平均誤差、最大誤差、均方根誤差來表征預(yù)測誤差。
工作日的預(yù)測結(jié)果如圖4所示,預(yù)測誤差見表1。
圖4 工作日電力負(fù)荷預(yù)測結(jié)果Fig.4 Power load forecast results in working days
表1 工作日電力負(fù)荷預(yù)測誤差Tab.1 Power load forecast errors in working days
由圖4和表1可以看出,在工作日:模型3的平均誤差、最大誤差相對于模型1分別降低了1.80%、2.48%,相對于模型2分別降低了0.53%、0.97%,相對于模型4分別降低了0.47%、2.41%;模型3的均方根誤差相對于模型1、模型2、模型4分別降低了46.67%、16.37%、21.36%;模型3的預(yù)測值在負(fù)荷的波峰和波谷處都能較好地擬合實際負(fù)荷值,得到較為理想的預(yù)測結(jié)果。
非工作日的預(yù)測結(jié)果如圖5所示,預(yù)測誤差見表2。
由圖5和表2可以看出,在非工作日:模型3的平均誤差、最大誤差相對于模型1分別降低了2.52%、5.50%,相對于模型2分別降低了0.57%、1.47%,相對于模型4分別降低了0.88%、1.28%;模型3的均方根誤差相對于模型1、模型2、模型4分別降低了60.45%、35.02%、28.45%。但由于本文訓(xùn)練時間為預(yù)測日之前3天的負(fù)荷數(shù)據(jù),而非工作日之前3天一般都為工作日,所以非工作日的模型精度相對工作日有一定的下降,在高峰期也有一定的偏差;但MP-LSTM模型的最大誤差相對于經(jīng)典LSTM模型和RNN模型有較大降低,體現(xiàn)了MP-LSTM模型的魯棒性,同時也證明了在輸入數(shù)據(jù)較少時MP-LSTM模型能夠比經(jīng)典LSTM模型得到更優(yōu)秀的訓(xùn)練模型。
圖5 非工作日電力負(fù)荷預(yù)測結(jié)果Fig.5 Power load forecast results in non-work days
表2 非工作日電力負(fù)荷預(yù)測誤差Tab.2 Power load forecast errors in non-working days
表3為MP-LSTM模型與經(jīng)典LSTM模型的訓(xùn)練時間及相關(guān)參數(shù)個數(shù)的比較。
表3 模型訓(xùn)練時間及參數(shù)個數(shù)對比Tab.3 Comparisons of model training time and parameter numbers
由表3可以看出,模型3相較于模型2訓(xùn)練時間減少了33.65%,訓(xùn)練參數(shù)減少了40%。MP-LSTM模型相對經(jīng)典LSTM模型不僅能小幅提升預(yù)測精度,還能大幅優(yōu)化預(yù)測模型的訓(xùn)練過程,減少參數(shù)。
本文針對經(jīng)典LSTM模型存在的訓(xùn)練參數(shù)多、訓(xùn)練困難等問題,采取了一種全新的MP-LSTM模型。這種模型不僅保留了經(jīng)典LSTM模型可以避免梯度消失和梯度爆炸的優(yōu)點,極大減少了訓(xùn)練參數(shù),同時還擁有較少的門控單元(唯一門),模型具有魯棒性。仿真實驗結(jié)果表明,MP-LSTM模型在一定程度上相比經(jīng)典LSTM模型能小幅度提升預(yù)測精度,同時能極大減少訓(xùn)練時間與訓(xùn)練參數(shù)。