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