黃 煒 陳 田
(上海電機(jī)學(xué)院機(jī)械學(xué)院 上海 200120)
近年來,隨著我國科技工業(yè)的高速發(fā)展,電能的需求量不斷增大,對于電力負(fù)荷預(yù)測準(zhǔn)確度的要求也在不斷地提高。按照時間跨度的不同,負(fù)荷預(yù)測主要分為超短期、短期、中期和長期,其中短期負(fù)荷預(yù)測主要對未來24小時或者數(shù)天時間內(nèi)的用電負(fù)荷進(jìn)行預(yù)測[1],它對于發(fā)電機(jī)的投切、機(jī)組的檢修安排、電力營銷等有著重要意義,精準(zhǔn)的負(fù)荷預(yù)測有利于發(fā)電設(shè)備的充分利用,能有效降低電網(wǎng)的運(yùn)營成本[2]。
國內(nèi)外對于負(fù)荷預(yù)測算法的研究工作有許多,其中具有代表性的算法主要包括:支持向量[3]、隨機(jī)森林[4]、卡爾曼濾波法[5]與人工神經(jīng)網(wǎng)絡(luò)[6]等。文獻(xiàn)[7]使用粒子群算法對反向神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化,并且引入了遺傳算法,優(yōu)化網(wǎng)絡(luò)初始權(quán)值,從而提高了模型的性能。文獻(xiàn)[8]將深度信念網(wǎng)絡(luò)模型(DBN)與支持向量機(jī)(SVR)相結(jié)合,使得模型具有更高的準(zhǔn)確性。文獻(xiàn)[9-10]探討了BP神經(jīng)網(wǎng)絡(luò)在負(fù)荷預(yù)測中的應(yīng)用,文獻(xiàn)[11]使用了模糊神經(jīng)網(wǎng)絡(luò)進(jìn)行負(fù)荷預(yù)測。文獻(xiàn)[12]采用了EMD算法對負(fù)荷數(shù)據(jù)進(jìn)行分解,然后對于分解得到的各個平穩(wěn)分量建立預(yù)測模型,最終在更加平穩(wěn)的分量中取得了更高的精度。文獻(xiàn)[13]和文獻(xiàn)[14]分別通過改進(jìn)的果蠅算法和粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值,從而提高預(yù)測精度。但是傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)沒有考慮到負(fù)荷在時間序列上的關(guān)系,所以在一定程度上不能很好地擬合時間序列上的負(fù)荷曲線。
長短期記憶網(wǎng)絡(luò)((Long Short-term Memory,LSTM)同時兼顧非線性與時序性,被廣泛應(yīng)用于語音識別、機(jī)器翻譯等領(lǐng)域[15]?;陔娏ω?fù)荷在時間序列上的特性,文獻(xiàn)[16]提出用LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行負(fù)荷預(yù)測,最后經(jīng)實(shí)驗(yàn)表明LSTM的預(yù)測精度比其他模型的精度高。文獻(xiàn)[17]使用CNN對負(fù)荷數(shù)據(jù)進(jìn)行降維,然后將降維后的數(shù)據(jù)作為LSTM的輸入,這在一定程度上提高了LSTM的預(yù)測精度。
鑒于上述模型都無法對預(yù)測結(jié)果進(jìn)行誤差修正,本文提出SAE與CEEMDAN-BiLSTM組合的短期電力負(fù)荷預(yù)測模型,算法首先使用SAE模型學(xué)習(xí)負(fù)荷序列的主要特征,誤差特征主要體現(xiàn)在SAE模型預(yù)測過程中所產(chǎn)生的誤差序列中;然后使用CEEMDAN算法將誤差序列分解為數(shù)個IMF分量與殘余分量,建立BiLSTM模型學(xué)習(xí)每個誤差分量的時序特征,將各個分量的BiLSTM模型的預(yù)測值相加得到誤差的預(yù)測值;最后使兩部分的預(yù)測值相加從而達(dá)到修正誤差的效果。實(shí)驗(yàn)結(jié)果表明:SAE與CEEMDAN-BiLSTM的組合模型具有更好的預(yù)測精度,能夠?yàn)殡娏ο到y(tǒng)的調(diào)度和生產(chǎn)計劃提供更加有效的科學(xué)依據(jù)。
自編碼器(autoencoder,AE)作為棧式自動編碼器(Stacked AutoEncoder,SAE)的基本組成部分,其結(jié)構(gòu)類似于三層神經(jīng)網(wǎng)絡(luò),是一種無監(jiān)督學(xué)習(xí),主要由輸入的編碼器與輸出的解碼器構(gòu)成,一般用于數(shù)據(jù)的降維與去噪,功能類似于主成分分析PCA。如果使用適當(dāng)?shù)木S度和稀疏性約束,會得到比PCA更好的數(shù)據(jù)投影效果。自編碼器的輸入節(jié)點(diǎn)等于輸出節(jié)點(diǎn),通過一個恒等的函數(shù),可以對數(shù)據(jù)進(jìn)行重構(gòu)。
對于輸入的編碼器,其計算公式如下:
y=f(Wx+b1)
(1)
式中:y表示編碼器的輸出;x表示解碼器的輸入;f表示激活函數(shù),一般為Sigmoid函數(shù);W和b1分別表示輸入層到隱藏層的權(quán)重與偏置。
對于輸出的解碼器,其計算公式如下:
z=f(WTy+b2)
(2)
式中:z表示解碼器的輸出;WT和b2表示輸入層到隱藏層的權(quán)重與偏置。這樣通過調(diào)整網(wǎng)絡(luò)的參數(shù),可以使最終輸出的z盡可能地接近于自編碼器輸入的x,從而達(dá)到重構(gòu)輸入數(shù)據(jù)的目的。
自編碼器通過反向傳播的方式使重構(gòu)的誤差最小,與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)一樣,自編碼器也是通過最小化損失函數(shù)來調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)中的參數(shù),損失函數(shù)的公式如下:
(3)
棧式自動編碼器由多個自編碼器堆疊而成,其訓(xùn)練過程一般分為無監(jiān)督預(yù)訓(xùn)練階段和有監(jiān)督訓(xùn)練階段。在無監(jiān)督預(yù)訓(xùn)練階段,它可以逐層提取數(shù)據(jù)的高階特征,逐步降低數(shù)據(jù)的維度,將復(fù)雜的數(shù)據(jù)轉(zhuǎn)化為簡單的特征序列。在有監(jiān)督訓(xùn)練階段,棧式自動編碼器將無監(jiān)督訓(xùn)練過程中得到的特征序列輸入到一個分離器中進(jìn)行分類。SAE的訓(xùn)練過程主要分為以下三步,如圖1所示。
圖1 SAE的訓(xùn)練過程
(1) 首先使用自編碼器訓(xùn)練從輸入層X到隱藏層H之間的參數(shù),訓(xùn)練結(jié)束后,去除自編碼器的輸出層x,接著將AE1的隱藏層H的輸出作為AE2的輸入,采用相同的辦法訓(xùn)練自編碼器AE2。
(2) 重復(fù)步驟(1),直到初始化所有的自編碼器參數(shù)。
(3) 將最后一個自編碼器隱藏層的輸出連接到分離器中,以有監(jiān)督的方式進(jìn)行訓(xùn)練。
CEEMDAN在EEMD分解的過程中添加自適應(yīng)的白噪聲并且計算唯一的余量信號以獲取IMF分量,可以在較少的實(shí)驗(yàn)次數(shù)中對信號進(jìn)行序列重構(gòu),消除了EEMD分解過程產(chǎn)生的殘余信號中由于添加自適應(yīng)白噪聲所產(chǎn)生的誤差。
定義計算符Ei()表示使用EMD分解產(chǎn)生的第i個IMF分量,CEEMDAN算法的計算步驟如下。
(1) 在k次實(shí)驗(yàn)中,對原始信號xt+δ0ωj進(jìn)行分解,其中:δ0表示高斯白噪聲的標(biāo)準(zhǔn)差;ωj表示高斯白噪聲。通過EMD分解得到第一個IMF分量并獲取唯一的余量信號r1(t)。
(4)
r1(t)=x(t)-IMF1(t)
(5)
(2) 繼續(xù)獲取第二個IMF分量:
(6)
(3) 重復(fù)以上步驟,計算第n個余量信號:
rn(t)=rn-1(t)-IMFk(t)
(7)
則第n+1個IMF分量為:
(8)
(4) 重復(fù)步驟(3),直到余量信號呈單調(diào)趨勢,分解停止原始信號x(t)被分解為:
(9)
式中:N為最終模態(tài)分量的個數(shù);r(t)為最終單調(diào)的余量信號。
圖2 LSTM結(jié)構(gòu)
LSTM在每個隱藏層內(nèi)都接收上一時刻的輸出和當(dāng)前時刻的輸入及當(dāng)前的隱藏層狀態(tài),并且通過輸入門、遺忘門、輸出門來控制和更新當(dāng)前隱藏層的狀態(tài),最后將更新結(jié)果輸出。計算公式如式(10)-式(15)所示。
ft=σ(Wf·[ht-1,xt]+bf)
(10)
it=σ(Wi·[ht-1,xt]+bi)
(11)
(12)
(13)
ot=σ(Wo·[ht-1,xt]+bo)
(14)
ht=ot*tanh(ct)
(15)
式中:Wf、Wi、Wc和Wo分別表示遺忘門、輸出門、記憶狀態(tài)和輸出門的權(quán)重矩陣;bf、bi、bc和bo分別表示對應(yīng)的偏置向量;σ為激活函數(shù)Sigmoid;*表示點(diǎn)乘。
首先使用EMD算法將負(fù)荷數(shù)據(jù)分解為數(shù)個本征模態(tài)函數(shù)(IMF)與殘余分量r(t),然后對于每個分量建立BiLSTM模型。BiLSTM是由前向LSTM網(wǎng)絡(luò)與后向LSTM網(wǎng)絡(luò)構(gòu)成,其結(jié)構(gòu)如圖3所示。
圖3 BiLSTM結(jié)構(gòu)
BiLSTM神經(jīng)網(wǎng)絡(luò)會基于整個時間序列作出預(yù)測,它將隱藏層劃分為前向與后向兩個對立的部分,分別讀取過去與未來時刻的信息。第一層前向LSTM計算當(dāng)前時刻序列的順序信息,第二層后向LSTM計算相同時刻序列的逆序信息,最后BiLSTM在t時刻的隱藏層狀態(tài)由前向隱藏層狀態(tài)和后向隱藏層狀態(tài)加權(quán)得到。其計算公式如下:
(16)
(17)
(18)
現(xiàn)有美國某電力市場2015年的樣本數(shù)據(jù)集,數(shù)據(jù)集的采樣周期為30 min。實(shí)驗(yàn)所用特征包括:負(fù)荷值、氣象因素、節(jié)假日類型和氣溫。實(shí)驗(yàn)數(shù)據(jù)如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)
部分?jǐn)?shù)據(jù)用虛擬編碼模式表示,以{0,1,2}表示{工作日,休息日,節(jié)假日}。降雨{有,無}表示為{0,1}。
實(shí)驗(yàn)采用全年數(shù)據(jù)集6月至8月共計92天的數(shù)據(jù)作為訓(xùn)練集,以9月1日至9月11日的數(shù)據(jù)共計11天的數(shù)據(jù)作為測試集,以歷史48個時刻點(diǎn)的數(shù)據(jù)預(yù)測未來48個時刻點(diǎn)的負(fù)荷數(shù)據(jù)。
將93天的訓(xùn)練集轉(zhuǎn)化為的三維矩陣,三維矩陣的維度信息為:
{D1D2…D92}×{L1L2…L48}×{X1X2…X8}
(19)
式中:{D1D2…D92}表示數(shù)據(jù)集長度為92天;{L1L2…L48}表示每天所包含的48個時刻的數(shù)據(jù);{X1X2…X8}表示數(shù)據(jù)集的8維特征。
同理,測試集的維度信息為:
{D1D2…D11}×{L1L2…L48}×{X1X2…X8}
(20)
同時BiLSTM與其他機(jī)器學(xué)習(xí)預(yù)測方法一樣,對數(shù)據(jù)的尺度比較敏感,所以這里采用MaxMin的方法對數(shù)據(jù)進(jìn)行歸一化處理,將所有數(shù)據(jù)的值域歸一化到[0,1]范圍內(nèi),然后將歸一化的數(shù)據(jù)傳入到模型中,最后將模型的輸出結(jié)果進(jìn)行反歸一化,計算的公式如下:
(21)
(1) 負(fù)荷預(yù)測。使用包含氣象因素、工作日類型的訓(xùn)練集對SAE模型進(jìn)行有監(jiān)督訓(xùn)練,待模型收斂后對訓(xùn)練集與測試集進(jìn)行預(yù)測,得到測試集的預(yù)測值Pb,并且根據(jù)下式得到SAE訓(xùn)練過程中產(chǎn)生的誤差序列Pe:
Pe=Pbtrain-Ttrain
(22)
式中:Pbtrain為訓(xùn)練集的預(yù)測值;Ttrain為訓(xùn)練集的真實(shí)值。
(3) 計算組合模型的預(yù)測值。SAE-CEEMDAN-BiLSTM模型的預(yù)測結(jié)果P為測試集的預(yù)測值與誤差的預(yù)測值之和,即:
(23)
SAE與CEEMDAN-BiLSTM組合模型的預(yù)測流程如圖4所示。
圖4 預(yù)測流程
模型的訓(xùn)練過程采用Adam優(yōu)化算法。Adam結(jié)合了RMSprop善于處理非平穩(wěn)目標(biāo)與Adagrad善于處理稀疏梯度的優(yōu)點(diǎn),其計算公式如下:
mt=μ*mt-1+(1-μ)*gt
(24)
(25)
(26)
(27)
(28)
式中:gt表示梯度;為平滑指數(shù),主要用于防止分母為零;μ與v表示動量因子;mt與nt是對梯度的一階矩陣估計,可以看作是對期望E|gt|和的估計;與是對mt與nt的修正,這樣就可以對期望進(jìn)行近似的無偏估計。
模型的評價指標(biāo)通常采用平均絕對百分誤差(Mean Absolute Percentage Error,MAPE),其計算的公式如下:
(29)
實(shí)驗(yàn)在Ubuntu 18.04系統(tǒng)下利用Pytorch1.10完成,實(shí)驗(yàn)PC的處理器為Inter Core i5- 8300H,內(nèi)存為16 GB,顯卡為NVIDIA GeForce GTX 1050TI。
在無監(jiān)督訓(xùn)練階段,將SAE中的自編碼器基本單元個數(shù)設(shè)置為3,每個自編碼器輸入節(jié)點(diǎn)個數(shù)為48,隱藏節(jié)點(diǎn)為16,激活函數(shù)設(shè)置為ReLU,設(shè)定學(xué)習(xí)率η=0.1,最大迭代次數(shù)n=40 000。在有監(jiān)督訓(xùn)練階段,將分離器的輸出節(jié)點(diǎn)設(shè)置為48,以梯度下降的方法對網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化。
SAE模型收斂后,將訓(xùn)練集中的數(shù)據(jù)按照時間先后順序依次輸入至訓(xùn)練完畢的模型中,得到訓(xùn)練集的預(yù)測結(jié)果Pbtrain,如圖5所示。同時根據(jù)式(22)可以求得SAE模型在預(yù)測過程中產(chǎn)生的誤差序列Pe,如圖6所示。
圖5 SAE模型的預(yù)測結(jié)果
設(shè)定CEEMDAN算法的總體集成次數(shù)為400,加入白噪聲標(biāo)準(zhǔn)差為0.2,利用CEEMDAN算法將Pe分為9個IMF分量與1個殘余分量,實(shí)驗(yàn)仿真結(jié)果如圖7所示。
圖7 CEEMDAN分解結(jié)果
可以看出,IMF1-IMF4分量的頻率較高且周期性不明顯,可以看作負(fù)荷序列的高頻分量。IMF5-IMF7分量的周期性明顯,可以看作負(fù)荷序列的周期分量。IMF8、IMF9分量的頻率較低且周期性不明顯,可以看作負(fù)荷序列的低頻分量。Residual為序列的殘余分量。
將CEEMDAN算法分解得到的9個IMF分量與1個殘余分量分別建立BiLSTM模型,將前向LSTM與后向LSTM輸入節(jié)點(diǎn)設(shè)置為1,表示每次讀取一個時刻點(diǎn)的負(fù)荷數(shù)據(jù),將隱藏層節(jié)點(diǎn)設(shè)置為12,分別為當(dāng)前時間點(diǎn)前后12個時刻的誤差信息。將輸出節(jié)點(diǎn)設(shè)置為1,為第13個時間點(diǎn)的誤差預(yù)測值。設(shè)置學(xué)習(xí)率為0.001,同時為BiLSTM網(wǎng)絡(luò)的輸出層再加上一層線性全連接層,激活函數(shù)設(shè)置為tanh。
設(shè)定BiLSTM模型的訓(xùn)練方式為:通過歷史48個時刻點(diǎn)的誤差序列預(yù)測未來48個時刻點(diǎn)的誤差序列,因此以6月1日至8月30日的誤差序列作為網(wǎng)絡(luò)的輸入,以6月2日至8月31日的誤差序列作為網(wǎng)絡(luò)的輸出,以Adam算法訓(xùn)練網(wǎng)絡(luò)。BiLSTM網(wǎng)絡(luò)參數(shù)如圖8所示,以BiLSTM層的輸入層為例,{91,48,1}={輸入數(shù)據(jù)集長度為91天,每日包含的48個時刻點(diǎn),當(dāng)前時刻的誤差值}。
圖8 BiLSTM網(wǎng)絡(luò)結(jié)構(gòu)
將各個IMF分量ci(t)以及殘差分量rn(t)的預(yù)測值進(jìn)行累加得到誤差的預(yù)測值,如式(30)所示。
(30)
式中:p(t)為重構(gòu)后的誤差數(shù)據(jù)。
實(shí)驗(yàn)首先通過9月2日的48個時刻點(diǎn)的數(shù)據(jù)預(yù)測9月3日48個時刻點(diǎn)的負(fù)荷數(shù)據(jù)。
圖9 9月3日預(yù)測曲線
為了進(jìn)一步驗(yàn)證本文組合模型的有效性,以同樣的方法對測試集中其余日期的數(shù)據(jù)進(jìn)行預(yù)測,日均誤差曲線如圖10所示。
圖10 三種模型日誤差對比
圖10中9月4日至5日為雙休日,9月7日為美國勞動節(jié)。由圖9與圖10可以看出,SAE-CEEMDAN-BILSTM模型對負(fù)荷序列的擬合程度最高,具有很好的預(yù)測精度,即使在雙休日、勞動節(jié)期間該模型的誤差率也是最低;SAE-BiLSTM模型以BiLSTM作為誤差修正模型也取得了不錯的預(yù)測精度,但整體上還是比SAE-CEEMDAN-BILSTM模型的預(yù)測精度低;而SAE模型由于沒有進(jìn)行誤差修正,所以在3種模型中表現(xiàn)最差。取平均絕對百分誤差(MAPE)、最大絕對百分誤差(Max)和最小絕對百分誤差(Min)三種指標(biāo)進(jìn)行比較,結(jié)果如表2所示。
表2 性能對比(%)
綜合上述實(shí)驗(yàn)結(jié)果,可以得出以下結(jié)論:
(1) 由圖9、圖10可知SAE模型由于沒有進(jìn)行誤差修正,所預(yù)測精度相對較低,在測試集中平均準(zhǔn)確率為93.92%。SAE-BiLSTM模型使用BiLSTM作為誤差修正模型,所以預(yù)測精度高于SAE模型,測試集中平均準(zhǔn)確率為96.52%。而SAE-CEEMDAN-BILSTM模型所使用的誤差修正模型可以在不同時間尺度上計算誤差序列,提高了預(yù)測精度,所以日均準(zhǔn)確率在3種模型中最優(yōu),測試集中平均準(zhǔn)確率達(dá)到了97.91%。
(2) 由表2可知,SAE-CEEMDAN-BILSTM模型的三種評價指標(biāo)均優(yōu)于其余兩種模型,說明該組合模型的預(yù)測效果最好;兩種組合模型的三種評價指標(biāo)均優(yōu)于傳統(tǒng)的SAE模型,說明引入誤差修正模型能提高模型的預(yù)測精度。
(3) 由圖10可知,SAE-CEEMDAN-BILSTM模型并不是在每一日的預(yù)測精度都達(dá)到最優(yōu),比如在9月10日其預(yù)測精度低于SAE-BiLSTM模型,但從總體上看,SAE-CEEMDAN-BILSTM模型相比其他兩種模型具有更好的準(zhǔn)確性與穩(wěn)定性。
本文分析了SAE模型以及CEEMDAN-BILSTM模型的原理,將兩種模型進(jìn)行組合,提出了SAE與CEEMDAN-BILSTM的組合模型,并且將這種組合模型應(yīng)用到電力系統(tǒng)負(fù)荷預(yù)測中。經(jīng)過多次實(shí)驗(yàn)以及反復(fù)驗(yàn)證,通過對比SAE-BiLSTM模型以及單一的SAE模型可以得出結(jié)論:SAE與CEEMDAN-BiLSTM的組合模型應(yīng)用在電力系統(tǒng)負(fù)荷預(yù)測具有更好的準(zhǔn)確性與穩(wěn)定性。但隨著預(yù)測步長的增加,模型的預(yù)測精度可能會隨之降低,下一步將考慮更多影響負(fù)荷序列的因素以增加數(shù)據(jù)集的特征維度。