張功勛, 姚方, 曹赟
(山西大學(xué) 電力工程系,山西 太原 030013)
城市短期負(fù)荷預(yù)測受氣溫、季節(jié)、風(fēng)速和經(jīng)濟(jì)等多方面因素的影響。城市日負(fù)荷預(yù)測是一個復(fù)雜的非線性問題,數(shù)據(jù)繁雜而冗長,需要以優(yōu)秀的計算方法做支撐才能得到更好的預(yù)測表現(xiàn)。相關(guān)學(xué)者提出了不少思路解決日負(fù)荷預(yù)測問題。不乏學(xué)者使用自回歸綜合移動平均(autoregressive integrated moving average, ARIMA)模型來預(yù)測。最近的研究集中在現(xiàn)代計算技術(shù)上,例如遺傳算法[1]和模糊邏輯[2]。機器學(xué)習(xí)技術(shù)也提供了處理復(fù)雜問題的有效方法,通過允許建立高性能模型來定義影響電力需求的各種因素的非線性相互依賴性。日負(fù)荷預(yù)測問題本質(zhì)上是一個時序問題?;谶f歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)及其變體、長短期記憶(long short-term memory, LSTM)和門控遞歸單元(gated recursive unit, GRU)網(wǎng)絡(luò)的模型很好地捕捉了每周負(fù)載周期,但在吸收可能影響消費的外部因素方面存在問題。不考慮這些因素會導(dǎo)致預(yù)測不佳。載荷數(shù)據(jù)的相鄰值的模式可以通過卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)有效地提取。研究發(fā)現(xiàn)CNN在負(fù)荷預(yù)測精度方面表現(xiàn)優(yōu)異。
支持向量機(support vector machines, SVM)在回歸預(yù)測方面有廣泛應(yīng)用。文獻(xiàn)[3]提出序列極限的支持向量回歸做短期負(fù)荷預(yù)測的思路,提出信息熵改進(jìn)的變精度粗糙集的SVM對降溫負(fù)荷進(jìn)行預(yù)測。文獻(xiàn)[4]以最小二乘法來改進(jìn)SVM的風(fēng)機出力預(yù)測。文獻(xiàn)[5]使用一種支持向量分位數(shù)回歸算法對短期電力負(fù)荷概率密度預(yù)測。因此,在對輸入數(shù)據(jù)處理較好的情況下SVM在時序數(shù)據(jù)預(yù)測方面表現(xiàn)優(yōu)異,搭配其他模型或者改進(jìn)SVM是常規(guī)的處理思路?;谶@些特點,本文提出了基于CNN-SVR的神經(jīng)網(wǎng)絡(luò)框架。
CNN以卷積運算理論為基礎(chǔ),具有參數(shù)共享機制和深度結(jié)構(gòu)[6],由池化層、卷積層和全連接層三個部分組成[7]。卷積層用于提取圖像中的特征,使用卷積核對其中輸入的矩陣數(shù)據(jù)進(jìn)行掃描式局部特征的提取,再次利用非線性函數(shù)作為激活函數(shù)對其中特征信號進(jìn)行映射。池化層發(fā)揮了保持特征和減小特征維度的功能。全連接層一般存在于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)底部,用來合并提取特征信息。合并的特征送到輸出層,經(jīng)指數(shù)函數(shù)或邏輯函數(shù)輸出最終分類標(biāo)簽。
SVR定義了1個常量ε> 0,對于某個點(xi,yi),如果|yi-f(xi)|≤ε,損失忽略;如果|yi-f(xi)|>ε,則相應(yīng)損失為|yi-f(x)|-ε。SVR分為線性回歸和非線性回歸,線性回歸給定1個數(shù)據(jù)集為:
P:{(x1,y1),(x2,y2),…,(xm,ym)}
(1)
式中:x∈Rn,y∈R。對于任意的(x1,y1)屬于上述數(shù)據(jù)集P,都存在f(x)=wx+b,使|yi-f(xi)|≤ε(ε>0),則說明f(x)=wx+b是上述數(shù)據(jù)集P的ε線性回歸。對于非線性回歸問題使用核函數(shù)解決。
CNN提取的特征作為支持向量回歸機的輸入,將SVR的預(yù)測值與真實值對比,對比得到預(yù)測損失函數(shù)后反向求導(dǎo),并在反向求導(dǎo)中不斷訓(xùn)練優(yōu)化參數(shù),重復(fù)該過程以得到最優(yōu)參數(shù)。SVR表示為:
(2)
(3)
將上式構(gòu)造轉(zhuǎn)化偶函數(shù),參數(shù)求極值后化簡得到只含有α的SVR對偶式。
(4)
結(jié)合KKT條件和核函數(shù)為:
(5)
最后SVR可以表示為:
(6)
出于對試驗適用性、線性不可分以及受影響的參數(shù)少和便于使用的特點考量,本文使用RBF徑向基核函數(shù)。
CNN-SVR的模型架構(gòu)設(shè)計如圖1所示。
圖1 CNN-SVR結(jié)構(gòu)圖
輸入設(shè)置為8×8的數(shù)據(jù),Conv1使用10個3×3的卷積核,步長為1,卷積后的數(shù)據(jù)為6×6。Conv2使用5個1×1的卷積核,步長為1,把上一層卷積結(jié)果的數(shù)量從10降到5,以此達(dá)到降低下一層卷積計算量的目的。第二層卷積后得到5個6×6的數(shù)據(jù)。Conv3使用20個2×2的卷積核,步長同樣設(shè)置為1,得到20個5×5的數(shù)據(jù)。在全連接層中卷積層3的數(shù)據(jù)轉(zhuǎn)化為二維數(shù)據(jù)后再作為輸入傳遞給支持向量回歸機。
負(fù)荷數(shù)據(jù)本質(zhì)上是一個時間序列。時間序列是按時間順序進(jìn)行觀察的。在現(xiàn)實生活中,人們的日常用電負(fù)荷量主要受到溫度、風(fēng)速、空氣濕度、降雨量、寒冷度、光照強度和云層覆蓋度等諸多因數(shù)影響。本文考慮這些因素作為輸入變量,所有的影響因素指標(biāo)均使用當(dāng)日數(shù)據(jù)的平均值。不同原始數(shù)據(jù)的特征范圍往往差別巨大,導(dǎo)致訓(xùn)練時出現(xiàn)梯度下降慢、收斂速度慢和精度差的問題。對數(shù)據(jù)進(jìn)行歸一化之后這類問題就能順利解決。歸一化公式如式(7)所示。
(7)
設(shè)計CNN-SVR模型預(yù)測流程如圖2所示。出于對特征梯度和模型收斂的考慮,首先對數(shù)據(jù)進(jìn)行歸一化處理。再通過Python編碼將數(shù)據(jù)矩陣化,使用訓(xùn)練集對模型進(jìn)行訓(xùn)練。通過卷積層1實現(xiàn)特征的初步提取,卷積層2實現(xiàn)降維功能并降低模型的運算量,卷積層3實現(xiàn)進(jìn)一步提取特征。全連接層將卷積特征傳遞給支持向量機,由于50次訓(xùn)練后誤差基本上穩(wěn)定在較低的狀態(tài)。最后測試集對模型反復(fù)訓(xùn)練50次以確定權(quán)重(w)和偏置(b)等參數(shù)。輸出反歸一化后的回歸結(jié)果。
圖2 CNN-SVR模型預(yù)測流程圖
本文使用的數(shù)據(jù)源于東南亞某邦區(qū)域負(fù)荷調(diào)度中心,訓(xùn)練集采用2017年1月到2019年1月9日的負(fù)荷數(shù)據(jù),測試集使用數(shù)據(jù)集最后21天的數(shù)據(jù)。該模型基于jupyter notebook在pytorch框架下進(jìn)行編程。該模型對包括周日和假日在內(nèi)的做出了相當(dāng)好的預(yù)測。三個性能指標(biāo)用于評估模型在測試數(shù)據(jù)上的性能:均方根誤差(RMSE)、決定系數(shù)(R2)和平均絕對百分比誤差(MAPE),分別在式(8)~式(10)中描述。
(8)
(9)
(10)
為了驗證CNN-SVR組合模型在日負(fù)荷預(yù)測方面的優(yōu)越性,本文單獨設(shè)計了SVR模型和CNN模型,并使用同樣的數(shù)據(jù)進(jìn)行訓(xùn)練和預(yù)測,測試主要參考MAPE和RMSE 2個指標(biāo)。平均絕對誤差主要考察測試數(shù)據(jù)的離散程度,均方根誤差主要考察測試結(jié)果的準(zhǔn)確性。由表1可以看出,CNN-SVR組合模型相比獨立的CNN模型和SVR模型在離散度和準(zhǔn)確度兩方面的表現(xiàn)均更勝一籌。證明了該組合模型更適合城市日負(fù)荷的預(yù)測。
表1 RMSE和MAPE對比
訓(xùn)練集和測試集均取得了不錯的預(yù)測效果,為了更直觀地感受訓(xùn)練和測試的效果,本文插入了連續(xù)兩年日負(fù)荷訓(xùn)練數(shù)據(jù)的訓(xùn)練成效和21天日負(fù)荷的測試成效,如圖3、圖4所示。
圖3 由訓(xùn)練好的模型對訓(xùn)練集做出的預(yù)測
圖4 由訓(xùn)練好的模型對測試集做出的預(yù)測
本文對于城市電力負(fù)荷預(yù)測使用CNN和SVR結(jié)合的方法在測試中取得了比較理想的試驗數(shù)據(jù)和試驗圖像。該方法對于工程和理論研究均具有重要的參考意義。