肖琦敏, 陳銳, 陳爽
(國網福建省電力有限公司 信息通信分公司, 福建 福州 350001)
隨著電力市場的日益發展,電力負荷的低估或高估都會給電力系統帶來巨大挑戰,影響電力系統運行的穩定性和可靠性,所以精準負荷預測能夠有利于電網的決策調度,具有重要的現實意義。
隨著現代智能用電技術的不斷進步,負荷預測理論和技術得到快速發展,研究方法及手段也越來越多樣。如果以預測時區作為分類依據,可以將負荷預測分為超短期、短期、中期、長期四類[1],研究中多側重于短期負荷預測[2]。但目前已有的算法仍存在局限性。神經網絡算法存在著網絡構建問題、過度擬合問題和訓練樣本數據量大問題,這些問題使得神經網絡算法難以實現短期負荷的精準預測?;貧w分析方法是在統計平均意義下定量描述所觀察變量間的關系,往往對數據量有所限制。
在以上文獻的研究基礎上,從研究96點日負荷序列出發,提出一種結合前饋神經網絡和裝袋混合算法的日負荷預測模型。利用前饋神經網絡計算成本函數及誤差,并基于梯度下降法更新權重及偏差,最后將日負荷序列預測結果疊加得出最終預測值。
前饋神經網絡(Feedforward neural networks)是一種從信息處理的角度將神經元進行相互聯接的人工智能運算模型,是人工神經網絡的一類。神經網絡由輸入層、隱藏層和輸出層三部分組成,隱藏層選擇考慮權重和偏差的Sigmoid激活函數,如式(1)。
(1)
定義特征向量輸入層為x,第l層(總計L層)第i個神經元的輸出函數,如式(2)。
(2)

wlj,k為權重矩陣Wl的矩陣元素,權重矩陣,如式(3)。

(3)
第L層第j個神經元的輸出函數,如式(4)。
(4)
式中,f′(x)為關于x的線性函數。
輸出函數plj構成的行向量,如式(5)。
(5)
偏差函數qlj構成的行向量,如式(6)。
(6)
神經網絡由三層組成,其中輸入層神經元選擇Sigmoid函數,輸出層神經元節點選擇線性函數,這樣就能夠解決訓練那些有限數量但不連續的樣本函數。
利用最小化樣本函數來確定偏差和權重,如式(7)。
(7)
式中,yt為t時刻所需要求得的負荷向量,pLt為L層t時刻輸出函數向量。
采用隨機梯度下降算法對代價函數進行最小化,權重矩陣更新函數,如式(8)。
(8)

偏差矩陣更新函數,如式(9)。
(9)

裝袋算法是一種將多個弱學習器集成為一種強集合學習器的提高機器性能的學習算法[3],可以提高弱學習算法的準確率。裝袋算法的思想是通過多輪訓練數據樣本,每輪訓練過程中通過自助(Boot strap)方式提取N個訓練樣本,得到新的預測函數序列,每次完成D次訓練得到D個預測函數,通過得到的預測函數序列對預測樣本進行預測[4]。文獻[5]采用等權重平均值法來獲取預測結果,并表明該算法類似于求解預測樣本的平均值,可以有效地減少過度擬合。若當訓練樣本之間存在差異時,裝袋算法就顯得更有效,因為如果每個樣本的輸出極度相似,那么對平均值的影響就非常小[6]。其具體算法流程,如圖1所示。
設定初始樣本數據集,如式(10)。
(10)

確定訓練樣本的神經網絡模型數量D,同時確定每個神

圖1 裝袋算法流程圖
經網絡的子訓練樣本集合數n。
針對每個神經網絡通過bootstrap自助方式重新抽取n個子訓練樣本集,如式(11)。
(11)
設定樣本測試數據集,如式(12)。
(12)
最小化代價函數,如式(13)。
(13)
預測估計值,如式(14)。
(14)

那么,式(13)可變形,如式(15)。

(15)
通過裝袋算法進行訓練初始負荷樣本,則需要大量的自助引導時間。僅通過前饋神經網絡算法進行預測也存在著參數選擇困難、變量選擇不明顯和過擬合問題[7]。其具體過程如下:
(1) 定義迭代總次數=不同神經網絡總模型數量=引導帶的樣本數量H。
(2) 在迭代n次時,構造一個自助樣本
根據訓練樣本的經驗分布,隨機抽樣并替換為
(3) 通過計算求出引導預測估計值
(4) 定義神經網絡的總層數L,第一層的輸入函數定義為
對于接下來的第l=2,3,…,L層,按下式計算
zxl=Wlpx(l-1)+ql
式中,px(l-1)為f(zx(l-1))。
(5) 計算成本函數
?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層利用權重更新公式進行計算
偏差更新式
(8) 若訓練停止,則神經網絡的預測輸出值為
(9) 經過上述步驟1~8,所提混合算法最終的預測日負荷值為
對于自助引導迭代次數n∈1,2,…,D。D選擇通常在50范圍上下浮動,具體數值與所預測的樣本大小和計算成本具有直接關系[5-7],預測值定義,如式(16)。
(16)
實驗數據來自中國東部某地區2015年8月份共31天的負荷信息。為衡量預測模型的準確程度,引入平均絕對百分比誤差指標進行分析。
相對誤差百分比,如式(17)。
(17)
平均絕對百分比誤差,如式(18)。
(18)

實驗一:樣本數量與迭代次數的關系
以該地區歷史負荷數據為基礎,其不同算法的MAPE對比結果,如圖2所示。

圖2 樣本數量與迭代次數性能對比圖
由圖可知,隨著迭代次數的增大,系統的MAPE值有逐漸減少的趨勢,系統的性能通常會提高。從整體可以看出,若保證系統更高的性能,樣本容量越小,就需要更多的迭代次數,然而迭代值和樣本值的具體關系還是不明確的,存在著種種特殊性。但是當迭代次數在50次以上時,MAPE的結果隨著樣本數量的增加呈遞減趨勢。
實驗二:不同算法間的預測精度
以該月份15日的日負荷數據為例進行不同算法間的預測,各算法的日負荷預測分布圖,如圖3所示。

圖3 日負荷預測分布圖
為明確研究各算法的精確程度,下面通過誤差指標式(17)的e來衡量。不同算法的相對百分比誤差分布關系圖及誤差棒,如圖4所示。

圖4 相對誤差百分比對照圖
從圖4中可知,所提出的FNN-Bagging算法的e最低,誤差線最短,整體預測數據準確性更高、變異程度更低。從當日96點負荷的最低e出現的次數來看,FNN-Bagging算法占總數的61.45%。就整體日負荷分布情況來看,負荷曲線呈現中間低,兩頭更低的趨勢,用電峰值集中在上午44點、傍晚68點、晚上80點負荷附近,初步可以判斷該負荷為居民用電負荷,判斷依據是用電峰值多集中在居民用餐時間前夕,家用電器設備的大量使用是負荷增加的主要原因。在48點到52點之間出現短暫的負荷下降,有可能是一部分居民在午間休息。在88點到96點及0點到6點日負荷值均相對較低,該時間段為大部分居民的睡眠時間。
實驗三:不同時間段的預測精度
日負荷在不同時間段的特性能夠反映該地區的用電特征,現以表格的方式進行分類,如表1所示。

表1 時間段的日負荷分類表
各算法的MAPE對照圖,如圖5所示。
由圖5可知,上午的綜合MAPE值最高,預測效果最不理想,下午和傍晚的綜合MAPE值較低,預測效果較好。FNN-Bagging算法每個時間段的MAPE值均低于0.8%,而SVM算法的MAPE平均值為1.73%,其他算法的值就更高了,明顯看出,FNN-Bagging算法具有更好的預測效果。

圖5 不同算法間MAPE對照圖
為分析算法間MAPE的準確性,各算法MAPE的誤差棒分布,如圖6所示。

圖6 算法間的MAPE誤差棒對照圖
由圖6可以看出,FNN算法在下午的MAPE值最低,下午和傍晚的誤差線較短。PSO算法在晚上的MAPE值和誤差線均最小。SVM在凌晨和早上具有更好的預測精度。FNN-Bagging在晚上的MAPE值和誤差線最低,整體的均值標準差為0.221 7%,且均低于同一時間段的其他算法。
本研究利用裝袋算法可以將弱預測模型通過自助方式訓練成強預測模型序列,FNN-Bagging算法可以在訓練樣本過程中并行計算,能夠有效地減少訓練樣本和運行過程所需的時間。迭代次數在50次以上時,樣本數量越高,系統預測性能越好。其中FNN-Bagging模型算法的MAPE誤差指標值在不同時間段均較小,具有更好的預測精度。