王永志,劉 博,李 鈺
(吉林大學儀器科學與電氣工程學院,長春130061)
電力負荷是用戶在某一時刻向電力系統(tǒng)取用電功率的總和[1],是電力系統(tǒng)規(guī)劃和運行的重要組成部分,其準確的分析和預測對電網(wǎng)系統(tǒng)的安全可靠運行、降低成本、提高效率、合理規(guī)劃起到尤為重要的作用[2]。
隨著大數(shù)據(jù)技術的發(fā)展,我國電網(wǎng)系統(tǒng)已進入智能電網(wǎng)時代,給電力系統(tǒng)各項數(shù)據(jù)的采集、監(jiān)控、分析和存儲帶來了更大的挑戰(zhàn)。趨勢外推法[3]、時間序列法[4]、專家系統(tǒng)法[5]、回歸分析法[6]等經(jīng)典的電力負荷預測方法難以滿足智能電網(wǎng)時代電力負荷預測的更高要求。郭松林等[7]分析了灰色數(shù)學理論法在電力負荷預測中的應用前景,張國江等[8]運用模糊預測的方法分析了多種因素對電力負荷預測結果的影響,劉洋等[9]應用反向傳播神經(jīng)網(wǎng)絡算法對海量負荷數(shù)據(jù)進行了分類研究,文獻[10-11]中將自回歸積分滑動平均模型(ARIMA)應用于電力負荷預測,肖白等[12]基于支持向量機模型(SVM)對空間負荷數(shù)據(jù)進行了預測。
針對以上模型對長周期時間序列數(shù)據(jù)連續(xù)學習能力不強等問題,本文提出了在Tensorflow 深度學習的框架下,構建針對電力負荷預測的LSTM 神經(jīng)網(wǎng)絡預測模型,使用西班牙真實電力負荷數(shù)據(jù)訓練模型,并對預測結果進行驗證。實驗結果證明,模型在電力負荷數(shù)據(jù)預測時具有很好的長周期非線性學習能力,預測結果具有較高的精度,為電力系統(tǒng)負荷預測提供有效依據(jù)。
神經(jīng)網(wǎng)絡理論用計算機模擬人腦的學習能力,用算法結點模擬人腦的神經(jīng)元,對海量歷史數(shù)據(jù)進行學習,以找到解決問題的最佳方法[13]。電力負荷預測本質上是找到歷史負荷數(shù)據(jù)中的映射關系,再利用此映射關系預測未來的電力負荷數(shù)據(jù)。神經(jīng)網(wǎng)絡模型具有很強的記憶力、魯棒性、非線性學習能力,可以很好地解決電力負荷預測問題[14]。
LSTM是一種改進的循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)算法,由Hochreiter 等提出并經(jīng)Alex Graves改進后得以推廣和應用[15]。RNN 的工作原理重在循環(huán),即前一神經(jīng)元的輸出連同下一時間點的其他變量重新作為神經(jīng)元的輸入送到當前神經(jīng)元,數(shù)據(jù)在回路中由當前狀態(tài)傳遞到下一個狀態(tài),可將RNN 展成鏈狀神經(jīng)網(wǎng)絡(見圖1)[16]。
圖1 RNN展開示意圖
圖1 中神經(jīng)網(wǎng)絡單元的輸入為Xt,輸出為Ht。當訓練數(shù)據(jù)的時間間隔較短,即訓練數(shù)據(jù)較少時,RNN能夠很好地對歷史信息進行學習并做出預測。隨著訓練數(shù)據(jù)的時間間隔不斷增長,RNN 學習能力會變弱,模型會隨著時間間隔的增大忘記之前數(shù)據(jù)的規(guī)律,長期依賴的學習能力差,從而出現(xiàn)梯度下降現(xiàn)象[17]。電力負荷預測需對長周期的負荷數(shù)據(jù)進行學習,找到其中的映射關系再做出預測,而RNN處理電力負荷預測問題難以達到理想效果。
LSTM神經(jīng)網(wǎng)絡能夠很好地用于解決上述問題。它具有能夠學習長期依賴的能力,適合對長周期的電力負荷數(shù)據(jù)進行學習,找出其中隱含的映射關系并用于預測。LSTM 神經(jīng)網(wǎng)絡與RNN 同樣可展成鏈式結構,但LSTM網(wǎng)絡模型比RNN模型的神經(jīng)元結構復雜一些[18],信息在網(wǎng)絡的細胞中逐個傳遞(見圖2)。
圖2 LSTM網(wǎng)絡模型結構示意圖
為了避免像RNN 一樣出現(xiàn)梯度下降現(xiàn)象,LSTM采用“門”結構來加強細胞間的信息傳遞與溝通,包括輸入門(Input Gate)、輸出門(Output Gate)、遺忘門(Forget Gate)三門結構[19],它們通過控制神經(jīng)元的輸入、輸出以及歷史依賴共同作用對電力負荷數(shù)據(jù)進行學習和預測。LSTM神經(jīng)網(wǎng)絡具體運算過程如下:
式(1)控制當前神經(jīng)元從上一神經(jīng)元中“忘記”信息,由被稱作“遺忘門”的Sigmoid 層實現(xiàn)。遺忘門的工作原理是它通過讀取前一神經(jīng)元的輸出ht-1及當前神經(jīng)元輸入Xt進行運算,輸出一個[0,1]之間的值與上一細胞狀態(tài)ct-1相乘,若輸出1 與ct-1相乘后代表對上一細胞狀態(tài)信息完全“記憶”,輸出0 與ct-1相乘后代表對上一細胞狀態(tài)完全“遺忘”,以此方式保證網(wǎng)絡模型的長期記憶性。
式(2)和(3)共同控制細胞的輸入。式(2)由被稱作“輸入門”的Sigmoid層實現(xiàn)。輸入門讀取前一神經(jīng)元的輸出ht-1及當前神經(jīng)元輸入Xt輸出一個[0,1]之間的量it。式(3)由一層tanh 創(chuàng)建一個新的候選值向量~ct,便可由ct-1、ft、it得到式(4)中當前細胞狀態(tài)ct。
經(jīng)計算獲得上一神經(jīng)元的信息留存及當前神經(jīng)元的信息輸入后,最終輸出由被稱作“輸出門”的Sigmoid層控制。將經(jīng)過tanh 層處理的當前細胞狀態(tài)量ct與輸出門得到的Sigmoid量ot相乘,得到式(6)中當前神經(jīng)元的最終輸出量ht。
基于LSTM設計一種用于電力負荷數(shù)據(jù)預測的神經(jīng)網(wǎng)絡模型,在TensorFlow 框架下使用Python 語言編程實現(xiàn),能對長周期的電力負荷數(shù)據(jù)進行學習,用得到的模型去預測未來的電力負荷值。
從ENTSO(Europe electricity transmission system operator)網(wǎng)站(https://transparency.entsoe. eu)下載了實驗所用電力負荷數(shù)據(jù)。選取西班牙自2018-01-01 ~2019-01-01 的真實電力負荷數(shù)據(jù)作為實驗數(shù)據(jù)集,此數(shù)據(jù)集由這1 a 中每天24 個整點電力負荷采樣值構成,共計8 760(24 ×365)條負荷數(shù)據(jù)(見圖3)。
圖3 原始數(shù)據(jù)展示圖(前2 000條)
數(shù)據(jù)采集過程中因人為操作或設備故障等原因可能造成數(shù)據(jù)缺失,數(shù)據(jù)不完整會影響模型的預測結果,故需補全缺失數(shù)據(jù)。電力負荷數(shù)據(jù)具有典型的日周期變化規(guī)律,實驗中采用缺失值的前1 d以及后1 d相同時刻的負荷數(shù)據(jù)均值對缺失數(shù)據(jù)補全。
LSTM神經(jīng)網(wǎng)絡模型對輸入的數(shù)據(jù)尺度敏感,數(shù)據(jù)尺度太大會影響模型訓練效果,可用下式對補全后的數(shù)據(jù)進行歸一化處理[20]:
式中:x是原始電力負荷數(shù)據(jù);xmin為原始數(shù)據(jù)的最小值(18.179 GW);xmax表示原始數(shù)據(jù)的最大值(22.514 GW);xnorm為歸一化后的負荷數(shù)據(jù)([0,1]之間的一個值),可在保證數(shù)據(jù)趨勢不變的前提下縮小數(shù)據(jù)尺度。
TensorFlow作為目前最受歡迎的一個機器學習框架,廣泛用于機器學習、深度學習研究[21]?;赥ensorFlow框架設計了針對電力負荷數(shù)據(jù)預測的LSTM神經(jīng)網(wǎng)絡模型(見圖4)。
實驗數(shù)據(jù)分成兩部分,前51 周用作模型訓練集,第52 周電力負荷數(shù)據(jù)作為測試集,與模型預測結果對比以檢驗模型的預測效果。將訓練數(shù)據(jù)輸入到設計好的RNN、LSTM模型分別迭代訓練,通過對模型不斷地調參優(yōu)化,最終確定模型參數(shù)為:隱層神經(jīng)元個數(shù)(num_units)為128,訓練數(shù)據(jù)分成16 批(batch_size),每批400 個(window_size),學利率(AdamOptimizer)為0.001,迭代次數(shù)3 000 次(train_steps)。
用訓練后的LSTM、RNN 模型分別生成未來1 周的預測數(shù)據(jù),預測數(shù)據(jù)個數(shù)(predict_steps)為168(24×7)。最終得到的實驗結果圖(見圖5、6)。
圖4 LSTM神經(jīng)網(wǎng)絡模型實現(xiàn)流程圖
圖5 LSTM模型預測結果圖
圖6 RNN模型預測結果圖
圖5、6 中共展示了4 周數(shù)據(jù),綠線為預測部分前3 周的訓練數(shù)據(jù)(訓練集最后3 周數(shù)據(jù));藍線為待預測1 周時間內的真實數(shù)據(jù)(與模型預測結果進行對比);紅色線為兩種模型生成的預測曲線。預測部分的原始數(shù)據(jù)、LSTM 預測結果、RNN 預測結果圖(見圖7)。
圖7 預測結果對比圖
(1)負荷數(shù)據(jù)的日變化規(guī)律。從0:00 ~11:00 隨著人們工作、生活的開始負荷數(shù)據(jù)逐漸增大,在11:00時負荷值達到日最大值27.964 GW(均值),11:00 ~12:00 因午休導致負荷下降,12:00 ~ 13:00 負荷短暫增加,13:00 ~24:00 負荷逐漸下降,在午夜24 點負荷數(shù)據(jù)達到最低值18.260 GW(均值)。
(2)負荷數(shù)據(jù)的周變化規(guī)律。1 周中每天均遵循上述日變化規(guī)律,其中周1 ~周5 負荷呈周期性變化,變化規(guī)律基本相同;周6、周日隨著工廠等用電大戶的休息,同期負荷值、負荷峰值會較工作日低。對比兩個模型的預測結果可知,RNN模型(綠線)只能學習到電力負荷歷史數(shù)據(jù)的日周期規(guī)律,難以準確預測周6、周日的負荷變化,而LSTM 模型(橙線)可以很好地學習到負荷數(shù)據(jù)日變化、周變化的周期規(guī)律,能準確預測周1 ~周日7 d的負荷值。
預測誤差用模型損失值(真實值與預測值的誤差均方差)表示,實驗中將訓練數(shù)據(jù)輸入到網(wǎng)絡中進行3 000 次迭代,隨著迭代次數(shù)的增加可以得到不同模型的損失值(見圖8、表1)。
圖8 模型損失值隨迭代次數(shù)變化圖
LSTM、RNN兩種模型的損失值在前500 次迭代的下降速率很快,當?shù)_到1 000 次后均逐漸趨于穩(wěn)定。由損失值的差異可知,RNN 模型比LSTM 模型的損失值大,LSTM模型最終損失值穩(wěn)定在0.2 左右,而RNN模型損失值最終穩(wěn)定在0.3 左右,故LSTM 模型的預測結果更為準確。
基于LSTM模型設計了一種用于電力負荷數(shù)據(jù)預測的神經(jīng)網(wǎng)絡模型,在TensorFlow 框架下用Python 語言編程實現(xiàn)。采用西班牙電力負荷的真實數(shù)據(jù)進行驗證,證明了所提出模型的有效性。
LSTM與RNN對比結果表明LSTM模型學習的長期依賴性較強,可有效避免在模型訓練過程中出現(xiàn)梯度下降現(xiàn)象。
綜上所述,LSTM 神經(jīng)網(wǎng)絡具有長時間依賴的學習能力,為長周期電力負荷數(shù)據(jù)預測提供了一種有效的解決方法。
表1 模型損失值