王 歡,李 鵬*,曹 敏,孫煜皓
(1. 云南大學(xué)信息學(xué)院,云南 昆明 650500;2. 云南電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,云南 昆明 650217;3. 中科智能(深圳)科技有限公司,廣東 深圳 518000)
隨著配電網(wǎng)的不斷發(fā)展,電力用戶負(fù)荷數(shù)據(jù)量劇增,數(shù)據(jù)具有較強(qiáng)的隨機(jī)性。此外,在配電網(wǎng)穩(wěn)定運(yùn)行的過程中,用戶負(fù)荷數(shù)據(jù)受到多種因素的影響。因此,用戶負(fù)荷數(shù)據(jù)具有隨機(jī)性和非平穩(wěn)態(tài)特性。配電網(wǎng)的調(diào)度優(yōu)化,能夠提高用戶負(fù)荷預(yù)測的準(zhǔn)確率,用戶側(cè)與發(fā)電側(cè)的有效互動,能夠使柔性配電網(wǎng)更加安全穩(wěn)定的運(yùn)行。電力系統(tǒng)安全有效的運(yùn)行,則必須制定合理的運(yùn)行計劃和適當(dāng)?shù)恼{(diào)度方案,首要條件就是能夠做出準(zhǔn)確的電力負(fù)荷預(yù)測[1-6]。由于電力負(fù)荷受到多種外部因素的影響,增加了電力負(fù)荷預(yù)測的難度[7-8]。
自20世紀(jì)40年代以來,各種時間序列預(yù)測方法逐漸被人們提出來。文獻(xiàn)[9]提出了一種組合預(yù)測模型,組合模型中應(yīng)用了灰色理論模型,BP神經(jīng)網(wǎng)絡(luò)模型。對預(yù)測日的特征量是否突變進(jìn)行判定,最后判定應(yīng)用的預(yù)測模型,結(jié)合兩種模型的預(yù)測優(yōu)勢進(jìn)行預(yù)測。文獻(xiàn)[10]介紹了一種實用的電力負(fù)荷預(yù)測模型構(gòu)建方法,這種方法主要是基于負(fù)載時間序列的分解和分割,通過對負(fù)荷特征的統(tǒng)計分析,研究負(fù)荷噪聲的移動平均和概率圖等預(yù)測精度。文獻(xiàn)[11]提出一種基于時間序列編碼的相似日選擇和極限學(xué)習(xí)機(jī)(ELM)相結(jié)合的電力負(fù)荷預(yù)測方法。采用ELM進(jìn)行預(yù)測,在算法執(zhí)行過程中不需要調(diào)整網(wǎng)絡(luò)的輸入權(quán)值以及隱元的偏置,并且產(chǎn)生唯一的最優(yōu)解。文獻(xiàn)[12]設(shè)計了一種基于氣象因素和日期類型的短期負(fù)荷預(yù)測方法,建立基于反向傳播神經(jīng)網(wǎng)絡(luò)(BP ANN)的負(fù)荷預(yù)測模型。文獻(xiàn)[13]提出了一種基于模糊時間序列和卷積神經(jīng)網(wǎng)絡(luò)的短時負(fù)荷預(yù)測方法,利用深度學(xué)習(xí)CNN模型提取相關(guān)的重要參數(shù),利用模糊邏輯將時間序列的一維用模糊空間、頻譜和陰影表示。
本文基于電網(wǎng)負(fù)荷數(shù)據(jù)集,未來電力負(fù)荷受歷史負(fù)荷的影響和其它不同類型因素的影響。首先,針對不同類型的影響因素,本文將幾項影響因素時間序列耦合成一個新的時間序列作為網(wǎng)絡(luò)輸入[7]。其次,考慮到卷積神經(jīng)網(wǎng)絡(luò)(CNN)挖掘信息的能力較強(qiáng),雙向長短期記憶(BiLSTM)網(wǎng)絡(luò)可以提高模型在處理序列問題上的性能,本文建立了CNN_BiLSTM負(fù)荷預(yù)測模型。最后,基于數(shù)據(jù)驅(qū)動的思想,建立了模型進(jìn)行預(yù)測。由于在實際應(yīng)用中對實時性要求較高,離線模型不能滿足工業(yè)現(xiàn)場的要求。因此,本文對離線模型進(jìn)行改進(jìn),實現(xiàn)了在線多長預(yù)測。為了驗證模型的有效性,本文以歐洲互聯(lián)電網(wǎng)公開數(shù)據(jù)集提供的2014年12月31日至2017年5月16日的電力負(fù)荷數(shù)據(jù)為應(yīng)用背景,并將其與支持向量回歸、K均值等方法進(jìn)行比較。所得實驗結(jié)果表明,本文所提方法能有效地應(yīng)用于實際的電力系統(tǒng)負(fù)荷預(yù)測。
上世紀(jì)60年代,Hubel等人通過對貓視覺皮層細(xì)胞的研究,提出了感受野這個概念[14]。到80年代,F(xiàn)ukushima在感受野概念的基礎(chǔ)之上提出了神經(jīng)認(rèn)知機(jī)的概念,可以看作是卷積神經(jīng)網(wǎng)絡(luò)的第一個實現(xiàn)網(wǎng)絡(luò),神經(jīng)認(rèn)知機(jī)將一個視覺模式分解成許多子模式(特征),然后進(jìn)入分層遞階式相連的特征平面進(jìn)行處理[15-17]。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)存在梯度消失或者梯度爆炸問題,長短期記憶(LSTM)網(wǎng)絡(luò)把循環(huán)神經(jīng)網(wǎng)絡(luò)中隱含層的模塊替換成長短期記憶的模塊,解決了上述問題。LSTM基本單元如圖1所示[18]。
圖1 長短期記憶模塊
LSTM網(wǎng)絡(luò)結(jié)構(gòu)的基本單元中包含遺忘門、輸入門和輸出門。遺忘門確定前一個步長中哪些信息要保存;輸入門確定當(dāng)前輸入中哪些信息需要被添加;輸出門確定下一個隱藏狀態(tài)是什么。計算公式如式(1)-(6)所示
Γf=σ(Wf[a
(1)
Γu=σ(Wu[a
(2)
(3)
Γo=σ(Wo[a
(4)
(5)
a
(6)
雙向長短期記憶網(wǎng)絡(luò)(BiLSTM)是長短期記憶網(wǎng)絡(luò)(LSTM)的一種擴(kuò)展,可以提高模型處理序列問題的性能[18]。BiLSTM網(wǎng)絡(luò)優(yōu)化過程如圖2所示。
圖2 BiLSTM優(yōu)化過程
圖中,Wf為前向計算的權(quán)重,Wb為反向計算的權(quán)重。
本文提出的CNN_BiLSTM混合深度學(xué)習(xí)網(wǎng)絡(luò)基于電網(wǎng)負(fù)荷數(shù)據(jù)集建模。將CNN的挖掘能力和BiLSTM的時間序列預(yù)測能力相結(jié)合。通過對負(fù)荷數(shù)據(jù)進(jìn)行分析可知,電力總負(fù)荷受到除歷史電力負(fù)荷外還受其它不同類型因素的影響[19]。因此,本文以歷史負(fù)荷、天氣因素、日期因素幾項時間序列作為網(wǎng)絡(luò)的輸入。電力負(fù)荷可以表達(dá)為式(7)所示的函數(shù)[20]。
Qt=[Wt,Tt,Qt-1]
(7)
式中:Qt為t時刻電力負(fù)荷;Wt為t時刻氣象因素引起的波動,在這里主要是溫度引起的波動;Tt為t時刻一些特殊事件帶來的波動,如節(jié)假日;Qt-1為t-1時刻的電力負(fù)荷。
圖3 CNN_BiLSTM混合深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)圖
CNN_BiLSTM混合深度學(xué)習(xí)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。氣象因素、日期因素為外部因素,用S表示;t時刻實際電力負(fù)荷用Y表示;t-1時刻的實際電力負(fù)荷用X表示,式(7)可以簡化為
Y=[S,X]
(8)
以下為對模型中對每一層的定義。
層1:BiLSTM網(wǎng)絡(luò)的輸入。假設(shè)輸入數(shù)據(jù)為N個歷史電力負(fù)荷數(shù)據(jù)X=[x1,x2,…,xN],每個樣本Xtrain∈RN×1,即輸入為N×1階的矩陣。
層2和層3:BiLSTM層。設(shè)層2的輸入矩陣為Xtrain,t時刻層2和層3的輸出為H1和H2
H1=BiLSTM(ht-1,Xtrain,t)
(9)
H2=BiLSTM(ht-1,H1,t)
(10)
層3輸出可記為H,H∈RN×1。
層4:組合層。這一層包括BiLSTM的輸出矩陣H,還包括氣象因素,日期因素等特征。各項影響因素組成的特征用矩陣Strain表示,Strain∈RN×D,D為各項影響因素特征的維度。Strain與H共同作為第4層的輸入,通過concat函數(shù)將二者組合成一個新的矩陣X′,X′可表示為
X′=concat(ht,Strain)=[htStrain]
(11)
層5~層8:CNN層。層5的輸入矩陣為X′,層5~層8的輸出分別為H′3~H′6,H′3~H′6分別為N×H3、N×H4、N×H5、N×H6的矩陣,其中H3~H6分別為四個隱藏層的神經(jīng)元數(shù)。層5~層8的輸出可表示為
H′3=CNN(X′)
(12)
H′4=CNN(H′3)
(13)
H′5=CNN(H′4)
(14)
H′6=CNN(H′5)
(15)
歷史負(fù)荷矩陣X為BiLSTM網(wǎng)絡(luò)的輸入矩陣;矩陣H為BiLSTM網(wǎng)絡(luò)的輸出矩陣;各項影響因素組成的矩陣S與輸出矩陣H連接為新的矩陣,作為CNN的輸入,通過全連接層得到預(yù)測輸出Y,矩陣Y代表未來幾個節(jié)點的負(fù)荷數(shù)據(jù)。
本文為CNN選取的激活函數(shù)為線性激活函數(shù)。
層6:全連接層。最后的預(yù)測輸出Y為M×1階矩陣,M為預(yù)測步長,預(yù)測輸出矩陣Y只有一列,即為電力負(fù)荷預(yù)測值,預(yù)測公式表示為
Y=DNN(H′6)
(16)
在訓(xùn)練階段,每一輪訓(xùn)練都根據(jù)評價指標(biāo)來更新權(quán)重,通過反向傳播和權(quán)重更新不斷對模型進(jìn)行優(yōu)化。
以下給出了CNN_BiLSTM預(yù)測的偽代碼。
算法:CNN_BiLSTM預(yù)測算法
輸入:測試樣本集:X={(Xq,Xs)}
Xq=[q1,q2,…,qN]T
Xs=[[s11,…,s1D],[s21,…,s2D],…[sN1,…,sND]]
輸出:Y=[q1,q2,…,qM]T
Y為電力負(fù)荷預(yù)測值
Xq為電力負(fù)荷數(shù)據(jù),Xs為影響因素數(shù)據(jù)
參數(shù)說明:
N-輸入數(shù)據(jù)長度,及矩陣函數(shù)
D-輸入影響因素維度,及矩陣列數(shù)
batch-批處理數(shù)據(jù)的大小
itr-迭代次數(shù)
M-預(yù)測輸出數(shù)據(jù)長度,及矩陣列數(shù)
01: 讀取樣本數(shù)據(jù)集data_x=X,datay_y=Y,初始化列表xq={},xs={},y={};
02: 劃分訓(xùn)練集和測試集,根據(jù)batch填充xq={},xs={},y={}
03:Fori=1,2,…,itrdo:
04: 數(shù)據(jù)經(jīng)過兩層BiLSTM處理
h1=BiLSTM(batch,xq)
h2=BiLSTM(batch,h1);
05:h2與xs組合為x′
x′=concat(h,xs);
06: 經(jīng)過4層CNN處理
h′3=CNN(x′)
h′4=CNN(h′3)
h′5=CNN(h′4)
h′6=CNN(h′5);
07: 全連接層處理
y=DNN(h′6);
08: 反向傳播;
09: End For
10: 結(jié)束程序
隨著國家經(jīng)濟(jì)的不斷發(fā)展,對電力系統(tǒng)的可靠性要求越來越高。單步長預(yù)測并不能滿足工業(yè)現(xiàn)場的需要,對多步長預(yù)測的需求更為迫切。
本文對單步長預(yù)測進(jìn)行改進(jìn),實現(xiàn)了多步長預(yù)測,最后基于數(shù)據(jù)驅(qū)動思想,本文建立了離線模型和在線模型進(jìn)行預(yù)測?;贑NN_BiLSTM網(wǎng)絡(luò)的在線多步預(yù)測模型如圖4所示,設(shè)預(yù)測步長為K。多步長預(yù)測是在單步長預(yù)測的基礎(chǔ)上,利用預(yù)測出來的數(shù)據(jù)預(yù)測未來的負(fù)荷值,考慮到預(yù)測精度,本文在單步長預(yù)測的基礎(chǔ)上預(yù)測未來五步負(fù)荷數(shù)據(jù)。
圖4 基于CNN_BiLSTM網(wǎng)絡(luò)的在線多步預(yù)測模型
在本文中,首先通過歷史數(shù)據(jù)訓(xùn)練模型,然后加入實時數(shù)據(jù),利用訓(xùn)練好的模型進(jìn)行預(yù)測,每次預(yù)測后通過加入實時數(shù)據(jù)微調(diào)更新模型,實現(xiàn)了在線預(yù)測。
圖5 在線多步長預(yù)測模型
歐洲互聯(lián)電網(wǎng)公開數(shù)據(jù)集提供了2014年12月31日至2017年5月16日的電力負(fù)荷數(shù)據(jù)與對應(yīng)的溫度數(shù)據(jù),一天采集24點,時間間隔為1小時。本文使用該數(shù)據(jù)集對模型進(jìn)行實驗,并選擇SVR、、K-MEANS等方法進(jìn)行實驗對比。本文從以下4個實驗對本文所提模型進(jìn)行評價:
(a) 單因素單步長;
(b) 單因素多步長&多因素多步長;
(c) 離線學(xué)習(xí)與在線學(xué)習(xí)對比實驗;
(d) CNN_BiLSTM與CNN_LSTM對比實驗;
1)輸入特征選取
通過分析數(shù)據(jù)集的負(fù)荷特性,確定負(fù)荷預(yù)測輸入特征包括歷史負(fù)荷、預(yù)測時刻溫度、節(jié)假日、星期、時刻、月份。將負(fù)荷數(shù)據(jù)和溫度數(shù)據(jù)歸一化到[0,1],并對節(jié)假日、星期、時刻、月份進(jìn)行Onehot編碼處理。
2)數(shù)據(jù)標(biāo)準(zhǔn)化
本文采用Min-max進(jìn)行標(biāo)準(zhǔn)化,Min-max也稱離差標(biāo)準(zhǔn)化(Min-Max Normalization)的方法對樣本集歸一化
(17)
式中:yg為歸一化后的數(shù)據(jù),y為樣本集中的原始數(shù)據(jù),ymin和ymax分別為y的最小值和最大值。
為評估預(yù)測性能,設(shè)置平均絕對百分比誤差MAPE,均方根誤差(Root Mean Squared Error,RMSE)兩項為指標(biāo)。如式(18)-(19)所示
(18)
(19)
單因素實驗中,輸入特征僅包含歷史負(fù)荷數(shù)據(jù)。以下繪制了圖6,展示了不同方法在單因素單步長預(yù)測下的負(fù)荷對比曲線。由于實驗過程中數(shù)據(jù)較多,把全部預(yù)測結(jié)果繪制出來圖片有些雜亂,因此本文截取了片段進(jìn)行說明分析。不同方法的精度對比如表1所示。
圖6 單因素單步長預(yù)測對比曲線片段截取
表1 單因素單步長預(yù)測精度對比(%)
多因素實驗中輸入特征包括歷史負(fù)荷和影響因素信息。本次實驗CNN_BiLSTM 模型的輸入節(jié)點為前24個歷史負(fù)荷的信息以及未來5個時刻的影響因子信息,輸出節(jié)點為5個。每五步通過原始數(shù)據(jù)進(jìn)行一次數(shù)據(jù)更新,以保證模型的穩(wěn)定性。使用不同模型進(jìn)行預(yù)測,當(dāng)預(yù)測步長由1步到5步時的RMSE和MAPE如表2及表3所示。
表2 多因素變步長預(yù)測精度MAPE對比 (%)
表3 多因素變步長預(yù)測精度RMSE對比 (%)
不同模型在不同預(yù)測步長時的MAPE和RMSE變化如圖7所示。從表2及表3的精度對比可以看出,基于LSTM的Seq2Seq模型在單步長預(yù)測時效果較好,僅次于本文所提方法。通過與其它方法對比分析可知,本文所提方法預(yù)測精度較高。通過以上分析可以發(fā)現(xiàn),本文所提方法將CNN的數(shù)據(jù)挖掘能力和BiLSTM的時間序列預(yù)測能力相結(jié)合是可行的。
圖7 多因素變步長預(yù)測MAPE與RMSE值
本文通過每一步預(yù)測結(jié)束后,對模型進(jìn)行微調(diào),實現(xiàn)了在線預(yù)測,提高了預(yù)測精度。在線學(xué)習(xí)與離線學(xué)習(xí)實驗時,本文選取的是多因素多步長的情況。對比曲線如圖8所示,精度對比如表4所示。
圖8 離線學(xué)習(xí)與在校學(xué)習(xí)對比曲線片段截取
表4 在線學(xué)習(xí)與離線學(xué)習(xí)精度對比(%)
本次實驗為CNN_BiLSTM與CNN_LSTM的對比實驗。CNN_BiLSTM與CNN_LSTM的預(yù)測精度對比如表5所示,對比曲線如圖9所示。
圖9 CNN_BiLSTM與CNN_LSTM的對比曲線片段截取
LSTM由于其設(shè)計的特點,非常適合用于對時序數(shù)據(jù)的建模。利用LSTM進(jìn)行建模存在一個問題,無法編碼從后到前的信息,在預(yù)測過程中,預(yù)測結(jié)果需要由前面若干輸入和后面若干輸入共同決定,這樣會更加準(zhǔn)確。因此,本文選擇了雙向長短期記憶網(wǎng)絡(luò),即BiLSTM,BiLSTM在輸入序列上訓(xùn)練兩個而不是一個LSTM,可以為網(wǎng)絡(luò)提供更多的信息,從而產(chǎn)生更快甚至更全面的學(xué)習(xí)。
表5 CNN_BiLSTM與CNN_LSTM對比精度對比(%)
針對電力系統(tǒng)負(fù)荷預(yù)測日益提高的準(zhǔn)確性要求,本文提出了一種基于CNN_BiLSTM混合模型的長短期電力負(fù)荷在線預(yù)測方法。首先根據(jù)卷積神經(jīng)網(wǎng)絡(luò)和雙向長短期記憶網(wǎng)絡(luò)的特點,建立了CNN_BiLSTM負(fù)荷預(yù)測模型;其次,由于機(jī)器學(xué)習(xí)模型依賴于樣本的完備性,多種影響因素的存在會使原有模型與現(xiàn)有數(shù)據(jù)失配,本文建立了在線模型,使負(fù)荷預(yù)測中存在的非平穩(wěn)態(tài)問題得到解決;最后,在實際電力負(fù)荷預(yù)測中,單步長并不能滿足工業(yè)現(xiàn)場的需要,對多步長預(yù)測的需求更為迫切。同時,在電力負(fù)荷預(yù)測過程中考慮到多種外部因素的影響,可以提高預(yù)測精度。通過與其它方法的比較實驗結(jié)果表明,本文所提方法在電力負(fù)荷預(yù)測方便具有可行性和預(yù)測準(zhǔn)確性。