蘇州大學(xué)機電工程學(xué)院 朱富云 國網(wǎng)江蘇省電力有限公司南通市通州區(qū)供電分公司 葛 曄 周 蕾
南通大學(xué)信息科學(xué)技術(shù)學(xué)院 胡祖輝
隨著我國電力行業(yè)的快速發(fā)展,我國越來越重視電量預(yù)測管理,以便能夠更好地優(yōu)化電力資源配置,提高發(fā)電和供電效益。早在2010年,我國就開始提出要通過加強采集和分析電力用戶的用電信息來為電力需求側(cè)管理提供技術(shù)支撐[1]。準確電量預(yù)測管理對于確保電力系統(tǒng)經(jīng)濟、高效和穩(wěn)定運行都具有重要意義。從電力市場運營的角度來說,準確的電量預(yù)測是電力公司降低供電成本和提高運營利潤的客觀需要;從生態(tài)環(huán)保的角度來說,準確的電量預(yù)測是落實節(jié)能減排和貫徹綠色低碳新發(fā)展理念的必然要求;從電力系統(tǒng)運維的角度來說,準確的電量預(yù)測可以為電力公司合理安排電網(wǎng)運行檢修計劃和提高供電可靠性提供重要依據(jù)[2]。因此,在新的時代背景下,開展電量預(yù)測方法研究,準確預(yù)測區(qū)域內(nèi)的中長期和短期電量,實現(xiàn)電力生產(chǎn)和運營的精細化管理,是電力公司的迫切需要。
電量預(yù)測問題本質(zhì)上是時間序列預(yù)測問題。電量預(yù)測的核心問題是利用已有的歷史電量數(shù)據(jù)構(gòu)造適當(dāng)?shù)臄?shù)學(xué)模型,挖掘其中蘊含的電量數(shù)據(jù)規(guī)律,預(yù)測未來某時間段內(nèi)的電量數(shù)據(jù)值。國內(nèi)外專家學(xué)者已經(jīng)在該領(lǐng)域開展了很多研究,提出了很多電量預(yù)測模型和方法。就單一模型來說,電量預(yù)測常用模型和方法大體可以分為兩類:一類是以統(tǒng)計學(xué)理論、灰色預(yù)測理論等為代表的統(tǒng)計分析模型;另一類是以線性回歸、支持向量機、隨機森林、神經(jīng)網(wǎng)絡(luò)等為代表的機器學(xué)習(xí)模型。除了使用單一模型進行電量預(yù)測,還有將多種預(yù)測模型結(jié)合起來形成的各類組合模型,如灰色預(yù)測和支持向量機組合模型、灰色預(yù)測和隨機森林組合模型、LSTM 與XGBoost組合模型等。根據(jù)模型組合方式的不同,組合模型又可以分為等權(quán)組合模型、殘差組合模型和變權(quán)組合模型。
近年來,大數(shù)據(jù)與人工智能技術(shù)得到了迅猛發(fā)展,在計算機視覺、語音識別、自然語言處理等許多領(lǐng)域都取得了重大突破。在時間序列預(yù)測領(lǐng)域,基于深度學(xué)習(xí)的長短期記憶神經(jīng)網(wǎng)絡(luò)(Long Short-Term Memory,LSTM),取得了比其他方法更好的應(yīng)用效果。因此,本研究采用LSTM 結(jié)合殘差修正模型來對電量數(shù)據(jù)進行建模和預(yù)測。
LSTM 是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),由Hochreiter和Schmidhuber在1997年提出,主要是為了解決RNN 在長時間序列訓(xùn)練過程中出現(xiàn)的缺陷[3]。LSTM 對長時間序列有著很好的支持。LSTM 的網(wǎng)絡(luò)基本單元結(jié)構(gòu)如圖1所示。
圖1 LSTM 網(wǎng)絡(luò)基本單元結(jié)構(gòu)
從圖1可以看出,LSTM 網(wǎng)絡(luò)基本單元結(jié)構(gòu)有三種“門”結(jié)構(gòu),分別是遺忘門、輸入門和輸出門?!伴T”結(jié)構(gòu)是一種信息篩選結(jié)構(gòu),能夠控制信息的保留和丟棄。LSTM 通過“門”結(jié)構(gòu)來控制丟棄或者保留信息。和傳統(tǒng)的RNN 一樣,LSTM 將上一單元的輸出作為當(dāng)前單元的輸入。LSTM 網(wǎng)絡(luò)使用LSTM 網(wǎng)絡(luò)基本單元替換了傳統(tǒng)RNN 網(wǎng)絡(luò)基本單元,實現(xiàn)了信息的有效篩選和長期記憶,因而在處理非線性時序數(shù)據(jù)方面具有更好的性能和更好的泛化能力[4]。相關(guān)計算公式如下:
遺忘門:
輸入門:
輸出門:
更新細胞狀態(tài):
最終輸出:
式中,xt為t 時刻的輸入,ht為t 時刻的輸出,ft為t 時刻的遺忘門,it為t 時刻的輸入門,ot為t時刻的輸出門,Ct為t 時刻的細胞狀態(tài),~Ct為t時刻的細胞狀態(tài)候選值,W 為權(quán)重矩陣,b 為偏置項,σ 為sigmoid 函數(shù),tanh 為tanh 函數(shù),⊙表示兩個矩陣中對應(yīng)元素的乘積,即Hadamard 乘積,也稱為element-wise 乘積。
根據(jù)時間序列分解理論,時間序列可以分解為三個分量,分別為:周期分量(Seasonal Component)、趨勢分量(Trend Component)和殘差分量(Remainder Component)[5]。周期分量表征的是時間序列的季節(jié)性特征,趨勢分量表征時間序列的長期趨勢特征,殘差分量表征的是分離出周期分量和趨勢分量后剩余的隨機殘差特征。按照分解方式的不同,可以分為加性分解(Additive Decomposition) 和乘性分解(Multiplicative Decomposition)。
對于一個時間序列yt,如果進行加性分解,則可以寫成:
式中St、Tt、Rt分別是周期分量、趨勢分量和殘差分量。
類似地,如果進行乘性分解,則可以寫成:
同樣,式中St、Tt、Rt分別是周期分量、趨勢分量和殘差分量。
statsmodels 提供的seasonal_decompose()函數(shù)支持兩種分解模型,即加法模型和乘法模型,只需將model 參數(shù)設(shè)置為“additive”和“multiplicative”即可。以加性分解為例,相關(guān)代碼如下:
本研究使用LSTM 模型分別對電量時序數(shù)據(jù)分解得到的周期分量、趨勢分量和殘差分量進行建模,將每個分量作為一個維度,可以得到電量時序數(shù)據(jù)的三維模型?;谌S模型的電量預(yù)測流程如圖2所示。
圖2 基于三維模型的電量預(yù)測流程
在模型訓(xùn)練階段,首先對電量時序數(shù)據(jù)進行分解,然后劃分訓(xùn)練集和驗證集。在訓(xùn)練集上使用LSTM 方法分別對周期分量、趨勢分量和殘差分量進行建模訓(xùn)練,生成3個LSTM 模型。3個LSTM模型的網(wǎng)絡(luò)結(jié)構(gòu)可以相同,也可以不同。之后在驗證集上進行預(yù)測,按照公式(7)或公式(8)合并預(yù)測結(jié)果,并將合并后的預(yù)測結(jié)果與真實值進行比較分析,評估模型的預(yù)測精度。
在模型預(yù)測階段,數(shù)據(jù)預(yù)處理方法與模型訓(xùn)練階段相同,即先將預(yù)測數(shù)據(jù)分解為周期分量、趨勢分量和殘差分量,然后使用模型訓(xùn)練階段得到的3個LSTM 模型分別進行預(yù)測,得到周期分量、趨勢分量和殘差分量預(yù)測結(jié)果。最后合并三個維度的預(yù)測結(jié)果,得到最終的電量預(yù)測結(jié)果。
本研究以南通某地區(qū)2013年3月1日至2021年7月31日的每日電量數(shù)據(jù)作為研究對象,電量數(shù)據(jù)單位為萬千瓦時。使用statsmodels 提供的seasonal_decompose()函數(shù)對電量時間序列數(shù)據(jù)進行加性分解和乘性分解,結(jié)果如圖3和圖4所示。
圖3 電量數(shù)據(jù)加性分解結(jié)果
圖4 電量數(shù)據(jù)乘性分解結(jié)果
以2020年8月1日至2021年7月31日的每日電量數(shù)據(jù)為測試數(shù)據(jù),其他每日電量數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)。
實驗平臺為Windows 10 64位操作系統(tǒng),CPU 為Intel 酷睿i7-8550U,內(nèi)存為16GB。使用Python 語言,開發(fā)工具為PyCharm。LSTM 模型采用基于TensorFlow 2.0的Keras 框架實現(xiàn),相關(guān)訓(xùn)練參數(shù)設(shè)置如下:損失函數(shù)為mae,優(yōu)化器為adam,epochs 為300,batch_size 為10,shuffle為False,其他參數(shù)使用默認設(shè)置。
使用均方根誤差(Root Mean Square Error,RMSE)、平均絕對誤差(Mean Absolute Error,MAE)、平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)作為電量預(yù)測精度評價指標。
式中t 的時序單位為天,n 為預(yù)測電量數(shù)據(jù)的天數(shù)。每日電量預(yù)測值與真實值yi的差值稱為殘差,RMSE 是預(yù)測值和真實值的殘差平方和均值的平方根,MAE 是預(yù)測值和真實值的殘差絕對值的平均值,MAPE 是預(yù)測值和真實值的殘差絕對值與真實值的百分比的平均值。
如果進行中長期電量預(yù)測,如月度電量預(yù)測或年度電量預(yù)測,可以對MAPE 進行相應(yīng)變換,記為總體絕對百分比誤差MAPEtotal,計算公式如下:
需要注意的是,由于LSTM 神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練過程具有一定的隨機性,使用相同參數(shù)對相同訓(xùn)練數(shù)據(jù)進行訓(xùn)練的結(jié)果會略有不同,因此可以取多次訓(xùn)練的最佳模型用于最終的電量預(yù)測精度評估。
以加性分解為例,使用LSTM 預(yù)測模型對電量時序數(shù)據(jù)分解得到的周期分量、趨勢分量和殘差分量分別進行建模訓(xùn)練,得到各個分量的預(yù)測結(jié)果曲線分別如圖5、圖6和圖7所示。
從圖5、圖6和圖7可以看出,三種分量的預(yù)測值與實際值均較為吻合,說明LSTM 模型對時序數(shù)據(jù)的擬合效果較好。按照式(7)加性分解公式,將三種分量直接相加,得到合并的預(yù)測結(jié)果曲線如圖8所示。
圖5 周期分量預(yù)測結(jié)果曲線
圖6 趨勢分量預(yù)測結(jié)果曲線
圖7 殘差分量預(yù)測結(jié)果曲線
圖8 加性分解合并預(yù)測結(jié)果曲線
從圖8合并后的加性分解預(yù)測結(jié)果曲線可以看出,最終的電量預(yù)測值與實際值吻合度也較高,表明預(yù)測結(jié)果較好。加性分解月度預(yù)測結(jié)果如表1所示。
表1 加性分解月度預(yù)測結(jié)果
從表1可以看出,除了2021年1月和2月外,電量預(yù)測的月度總體絕對百分比誤差MAPEtotal 都在1%以內(nèi),表明基于LSTM 與三維模型的電量預(yù)測方法能夠顯著提高電量預(yù)測的總體預(yù)測精度。
進一步實驗表明,采用乘性分解也可以得到類似的結(jié)果,電量預(yù)測的總體絕對百分比誤差也能夠顯著降低,只是在預(yù)測精度上與加性分解略有不同。加性分解與乘性分解預(yù)測結(jié)果精度比較如表2所示。
表2 加性分解與乘性分解預(yù)測結(jié)果精度比較
從表2可以看出,雖然加性分解各個分量的預(yù)測精度比乘性分解的低,但是最終合并預(yù)測結(jié)果的精度比乘性分解的高。這是因為乘性分解最后使用乘法合并,誤差累積效應(yīng)比加性分解更為明顯,導(dǎo)致最終合并后的預(yù)測精度下降。
本研究以每日電量數(shù)據(jù)作為研究對象,使用LSTM 模型對電量時序數(shù)據(jù)分解得到的周期分量、趨勢分量和殘差分量分別進行建模,將每個分量作為一個維度,得到電量時序數(shù)據(jù)的三維模型。通過對基于LSTM 與三維模型的電量預(yù)測進行研究,可以發(fā)現(xiàn)無論采用加性分解還是乘性分解,通過對電量時序數(shù)據(jù)進行分解后再分別建模,最后合并預(yù)測結(jié)果,可以顯著提高電量預(yù)測的總體預(yù)測精度,同時提升模型的泛化能力。該方法不僅可以應(yīng)用于電量時間序列數(shù)據(jù)預(yù)測,還可以應(yīng)用于其他時間序列預(yù)測領(lǐng)域。
受到電量歷史數(shù)據(jù)集較小的限制,本研究中LSTM 模型構(gòu)建得較為簡單,在一定程度上限制了精度的提升,特別是對每日電量的預(yù)測精度仍有待進一步提高。下一步可以考慮結(jié)合電量大數(shù)據(jù)平臺,以若干分鐘或小時為時間間隔采集電量數(shù)據(jù),增大電量時序數(shù)據(jù)分辨率,擴充訓(xùn)練數(shù)據(jù)集,適當(dāng)增加LSTM網(wǎng)絡(luò)模型復(fù)雜度,進一步提高電量預(yù)測的準確性。