肖琦敏, 陳銳, 陳爽
(國網(wǎng)福建省電力有限公司 信息通信分公司, 福建 福州 350001)
隨著電力市場的日益發(fā)展,電力負荷的低估或高估都會給電力系統(tǒng)帶來巨大挑戰(zhàn),影響電力系統(tǒng)運行的穩(wěn)定性和可靠性,所以精準負荷預(yù)測能夠有利于電網(wǎng)的決策調(diào)度,具有重要的現(xiàn)實意義。
隨著現(xiàn)代智能用電技術(shù)的不斷進步,負荷預(yù)測理論和技術(shù)得到快速發(fā)展,研究方法及手段也越來越多樣。如果以預(yù)測時區(qū)作為分類依據(jù),可以將負荷預(yù)測分為超短期、短期、中期、長期四類[1],研究中多側(cè)重于短期負荷預(yù)測[2]。但目前已有的算法仍存在局限性。神經(jīng)網(wǎng)絡(luò)算法存在著網(wǎng)絡(luò)構(gòu)建問題、過度擬合問題和訓(xùn)練樣本數(shù)據(jù)量大問題,這些問題使得神經(jīng)網(wǎng)絡(luò)算法難以實現(xiàn)短期負荷的精準預(yù)測?;貧w分析方法是在統(tǒng)計平均意義下定量描述所觀察變量間的關(guān)系,往往對數(shù)據(jù)量有所限制。
在以上文獻的研究基礎(chǔ)上,從研究96點日負荷序列出發(fā),提出一種結(jié)合前饋神經(jīng)網(wǎng)絡(luò)和裝袋混合算法的日負荷預(yù)測模型。利用前饋神經(jīng)網(wǎng)絡(luò)計算成本函數(shù)及誤差,并基于梯度下降法更新權(quán)重及偏差,最后將日負荷序列預(yù)測結(jié)果疊加得出最終預(yù)測值。
前饋神經(jīng)網(wǎng)絡(luò)(Feedforward neural networks)是一種從信息處理的角度將神經(jīng)元進行相互聯(lián)接的人工智能運算模型,是人工神經(jīng)網(wǎng)絡(luò)的一類。神經(jīng)網(wǎng)絡(luò)由輸入層、隱藏層和輸出層三部分組成,隱藏層選擇考慮權(quán)重和偏差的Sigmoid激活函數(shù),如式(1)。
(1)
定義特征向量輸入層為x,第l層(總計L層)第i個神經(jīng)元的輸出函數(shù),如式(2)。
(2)
wlj,k為權(quán)重矩陣Wl的矩陣元素,權(quán)重矩陣,如式(3)。
(3)
第L層第j個神經(jīng)元的輸出函數(shù),如式(4)。
(4)
式中,f′(x)為關(guān)于x的線性函數(shù)。
輸出函數(shù)plj構(gòu)成的行向量,如式(5)。
(5)
偏差函數(shù)qlj構(gòu)成的行向量,如式(6)。
(6)
神經(jīng)網(wǎng)絡(luò)由三層組成,其中輸入層神經(jīng)元選擇Sigmoid函數(shù),輸出層神經(jīng)元節(jié)點選擇線性函數(shù),這樣就能夠解決訓(xùn)練那些有限數(shù)量但不連續(xù)的樣本函數(shù)。
利用最小化樣本函數(shù)來確定偏差和權(quán)重,如式(7)。
(7)
式中,yt為t時刻所需要求得的負荷向量,pLt為L層t時刻輸出函數(shù)向量。
采用隨機梯度下降算法對代價函數(shù)進行最小化,權(quán)重矩陣更新函數(shù),如式(8)。
(8)
偏差矩陣更新函數(shù),如式(9)。
(9)
裝袋算法是一種將多個弱學習器集成為一種強集合學習器的提高機器性能的學習算法[3],可以提高弱學習算法的準確率。裝袋算法的思想是通過多輪訓(xùn)練數(shù)據(jù)樣本,每輪訓(xùn)練過程中通過自助(Boot strap)方式提取N個訓(xùn)練樣本,得到新的預(yù)測函數(shù)序列,每次完成D次訓(xùn)練得到D個預(yù)測函數(shù),通過得到的預(yù)測函數(shù)序列對預(yù)測樣本進行預(yù)測[4]。文獻[5]采用等權(quán)重平均值法來獲取預(yù)測結(jié)果,并表明該算法類似于求解預(yù)測樣本的平均值,可以有效地減少過度擬合。若當訓(xùn)練樣本之間存在差異時,裝袋算法就顯得更有效,因為如果每個樣本的輸出極度相似,那么對平均值的影響就非常小[6]。其具體算法流程,如圖1所示。
設(shè)定初始樣本數(shù)據(jù)集,如式(10)。
(10)
確定訓(xùn)練樣本的神經(jīng)網(wǎng)絡(luò)模型數(shù)量D,同時確定每個神
圖1 裝袋算法流程圖
經(jīng)網(wǎng)絡(luò)的子訓(xùn)練樣本集合數(shù)n。
針對每個神經(jīng)網(wǎng)絡(luò)通過bootstrap自助方式重新抽取n個子訓(xùn)練樣本集,如式(11)。
(11)
設(shè)定樣本測試數(shù)據(jù)集,如式(12)。
(12)
最小化代價函數(shù),如式(13)。
(13)
預(yù)測估計值,如式(14)。
(14)
那么,式(13)可變形,如式(15)。
(15)
通過裝袋算法進行訓(xùn)練初始負荷樣本,則需要大量的自助引導(dǎo)時間。僅通過前饋神經(jīng)網(wǎng)絡(luò)算法進行預(yù)測也存在著參數(shù)選擇困難、變量選擇不明顯和過擬合問題[7]。其具體過程如下:
(1) 定義迭代總次數(shù)=不同神經(jīng)網(wǎng)絡(luò)總模型數(shù)量=引導(dǎo)帶的樣本數(shù)量H。
(2) 在迭代n次時,構(gòu)造一個自助樣本
根據(jù)訓(xùn)練樣本的經(jīng)驗分布,隨機抽樣并替換為
(3) 通過計算求出引導(dǎo)預(yù)測估計值
(4) 定義神經(jīng)網(wǎng)絡(luò)的總層數(shù)L,第一層的輸入函數(shù)定義為
對于接下來的第l=2,3,…,L層,按下式計算
zxl=Wlpx(l-1)+ql
式中,px(l-1)為f(zx(l-1))。
(5) 計算成本函數(shù)
?pCx=pl-y
(6) 計算輸出誤差向量
δxL=?pCx⊙f′(zxL)
(7) 從L層開始逐層反向傳輸計算誤差
δxL=((Wl+1)δx(l+1))⊙f′(zxl)
式中,l=L-1,L-2,…,2。
采用梯度下降法,對(6)中的l層利用權(quán)重更新公式進行計算
偏差更新式
(8) 若訓(xùn)練停止,則神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出值為
(9) 經(jīng)過上述步驟1~8,所提混合算法最終的預(yù)測日負荷值為
對于自助引導(dǎo)迭代次數(shù)n∈1,2,…,D。D選擇通常在50范圍上下浮動,具體數(shù)值與所預(yù)測的樣本大小和計算成本具有直接關(guān)系[5-7],預(yù)測值定義,如式(16)。
(16)
實驗數(shù)據(jù)來自中國東部某地區(qū)2015年8月份共31天的負荷信息。為衡量預(yù)測模型的準確程度,引入平均絕對百分比誤差指標進行分析。
相對誤差百分比,如式(17)。
(17)
平均絕對百分比誤差,如式(18)。
(18)
實驗一:樣本數(shù)量與迭代次數(shù)的關(guān)系
以該地區(qū)歷史負荷數(shù)據(jù)為基礎(chǔ),其不同算法的MAPE對比結(jié)果,如圖2所示。
圖2 樣本數(shù)量與迭代次數(shù)性能對比圖
由圖可知,隨著迭代次數(shù)的增大,系統(tǒng)的MAPE值有逐漸減少的趨勢,系統(tǒng)的性能通常會提高。從整體可以看出,若保證系統(tǒng)更高的性能,樣本容量越小,就需要更多的迭代次數(shù),然而迭代值和樣本值的具體關(guān)系還是不明確的,存在著種種特殊性。但是當?shù)螖?shù)在50次以上時,MAPE的結(jié)果隨著樣本數(shù)量的增加呈遞減趨勢。
實驗二:不同算法間的預(yù)測精度
以該月份15日的日負荷數(shù)據(jù)為例進行不同算法間的預(yù)測,各算法的日負荷預(yù)測分布圖,如圖3所示。
圖3 日負荷預(yù)測分布圖
為明確研究各算法的精確程度,下面通過誤差指標式(17)的e來衡量。不同算法的相對百分比誤差分布關(guān)系圖及誤差棒,如圖4所示。
圖4 相對誤差百分比對照圖
從圖4中可知,所提出的FNN-Bagging算法的e最低,誤差線最短,整體預(yù)測數(shù)據(jù)準確性更高、變異程度更低。從當日96點負荷的最低e出現(xiàn)的次數(shù)來看,F(xiàn)NN-Bagging算法占總數(shù)的61.45%。就整體日負荷分布情況來看,負荷曲線呈現(xiàn)中間低,兩頭更低的趨勢,用電峰值集中在上午44點、傍晚68點、晚上80點負荷附近,初步可以判斷該負荷為居民用電負荷,判斷依據(jù)是用電峰值多集中在居民用餐時間前夕,家用電器設(shè)備的大量使用是負荷增加的主要原因。在48點到52點之間出現(xiàn)短暫的負荷下降,有可能是一部分居民在午間休息。在88點到96點及0點到6點日負荷值均相對較低,該時間段為大部分居民的睡眠時間。
實驗三:不同時間段的預(yù)測精度
日負荷在不同時間段的特性能夠反映該地區(qū)的用電特征,現(xiàn)以表格的方式進行分類,如表1所示。
表1 時間段的日負荷分類表
各算法的MAPE對照圖,如圖5所示。
由圖5可知,上午的綜合MAPE值最高,預(yù)測效果最不理想,下午和傍晚的綜合MAPE值較低,預(yù)測效果較好。FNN-Bagging算法每個時間段的MAPE值均低于0.8%,而SVM算法的MAPE平均值為1.73%,其他算法的值就更高了,明顯看出,F(xiàn)NN-Bagging算法具有更好的預(yù)測效果。
圖5 不同算法間MAPE對照圖
為分析算法間MAPE的準確性,各算法MAPE的誤差棒分布,如圖6所示。
圖6 算法間的MAPE誤差棒對照圖
由圖6可以看出,F(xiàn)NN算法在下午的MAPE值最低,下午和傍晚的誤差線較短。PSO算法在晚上的MAPE值和誤差線均最小。SVM在凌晨和早上具有更好的預(yù)測精度。FNN-Bagging在晚上的MAPE值和誤差線最低,整體的均值標準差為0.221 7%,且均低于同一時間段的其他算法。
本研究利用裝袋算法可以將弱預(yù)測模型通過自助方式訓(xùn)練成強預(yù)測模型序列,F(xiàn)NN-Bagging算法可以在訓(xùn)練樣本過程中并行計算,能夠有效地減少訓(xùn)練樣本和運行過程所需的時間。迭代次數(shù)在50次以上時,樣本數(shù)量越高,系統(tǒng)預(yù)測性能越好。其中FNN-Bagging模型算法的MAPE誤差指標值在不同時間段均較小,具有更好的預(yù)測精度。