趙婧宇,池 越,周亞同
(河北工業(yè)大學電子信息工程學院,天津 300401)
電力系統(tǒng)負荷預測可對未來一段時間的電力需求進行估計,從而根據(jù)負荷預測結果來安排機組組合計劃、發(fā)電計劃、聯(lián)絡線交換計劃,組織電力現(xiàn)貨交易。因此,準確的電力負荷預測對于電力系統(tǒng)安全、經(jīng)濟、高效地運行有著重要的意義[1]。短期電力負荷預測主要是指對未來一天、一周甚至幾周時間內(nèi)的用電負荷進行預測,是電網(wǎng)日常運營的重要組成部分。
對于短期電力負荷預測的研究方法,大致分為兩類,包括傳統(tǒng)電力負荷預測方法[2-12]和機器學習算法[13-16]模型預測方法。基于當下新型用電環(huán)境與影響用電因素復雜多樣化的特點,機器學習算法模型成為學者們在電力負荷預測領域研究的焦點。
隨著人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)的迅速發(fā)展,其各種模型及其變體被廣泛應用于負荷預測領域,其中最具有代表性的是反向傳播神經(jīng)網(wǎng)絡(Back Propagation,BP)。文獻[16,17]針對傳統(tǒng)BP算法模型易陷入局部極小值的問題,分別從梯度下降角度和改進神經(jīng)網(wǎng)絡的連接權值角度進行尋優(yōu),優(yōu)化了網(wǎng)絡性能并提高了預測精度;文獻[18]對用電數(shù)據(jù)進行點預測與區(qū)間預測,其通過小波變換以及改進粒子群優(yōu)化BP神經(jīng)網(wǎng)絡模型進行的點預測和其構建的區(qū)間預測模型都較傳統(tǒng)BP模型在精度上有所提高。
循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Networks,RNN)通過將數(shù)據(jù)的時序性與網(wǎng)絡設計相結合,有效地突破了ANN無法利用數(shù)據(jù)間時序依賴關系進行預測的弊端,但是RNN在處理具有長時間跨度的非線性數(shù)據(jù)上時,又產(chǎn)生了梯度消失與梯度爆炸的問題。對此Hochreiter 和 Schmidhuber[19]提出了長短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡對其進行改進,有效地解決了數(shù)據(jù)間的長期時序依賴問題。文獻[20-23]分別采用了張量深度學習框架、雙層LSTM神經(jīng)網(wǎng)絡、將LSTM的輸出層與全連接層進行合并以及結合支持向量回歸(Support Vector Regression,SVR)與LSTM構建混合模型的方式,在LSTM模型的搭建上分別進行不同的改進,以獲得較為精確的預測結果。文獻[24]將LSTM的輸入數(shù)據(jù)通過卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)去融合多尺度特征向量進行改進。文獻[25,26]分別通過粒子群算法(Particle Swarm Optimization,PSO)及改進算法對LSTM網(wǎng)絡參數(shù)進行尋優(yōu),在人為設定網(wǎng)絡參數(shù)與網(wǎng)絡模型的預測精度方面較之前LSTM的提升算法均有顯著的提高。
綜上所述并結合現(xiàn)有算法,本文提出基于麻雀搜索算法-長短期記憶(Sparrow Search Algorithm-Long Short-Term Memory,SSA-LSTM)模型進行短期電力負荷預測,用以解決LSTM網(wǎng)絡參數(shù)選取隨機性大、選擇困難的問題,同時提高負荷預測的精度。首先對歷史用電負荷數(shù)據(jù)以及氣候、節(jié)假日等影響因素數(shù)據(jù)進行預處理,然后構建麻雀群體,將待優(yōu)化參數(shù)與麻雀種群維度相對應,將處理好的數(shù)據(jù)輸入到模型中,在模型的訓練過程中通過麻雀搜索算法(Sparrow Search Algorithm,SSA)進行參數(shù)尋優(yōu),將得到的最優(yōu)參數(shù)用以搭建預測模型進行預測。與傳統(tǒng)預測模型相比較,SSA-LSTM模型在一定程度上提高了預測的準確度,相較于PSO優(yōu)化的LSTM模型,SSA-LSTM模型能夠不受季節(jié)變化的影響,模型的預測精度更高。
圖1為LSTM的基本單元,LSTM通過對其遺忘門、輸入門、輸出門等門控單元進行有效組合可以實現(xiàn)信息的保護和當前狀態(tài)的更新,更新規(guī)則如式(4)所示。門控單元的實現(xiàn)如式(1)~式(6)所示:
圖1 LSTM結構示意圖Fig.1 Structure diagram of LSTM
ft=σ(Wf×[ht-1,zt]+bf)
(1)
it=σ(Wi×[ht-1,zt]+bi)
(2)
(3)
(4)
ot=σ(Wo×[ht-1,zt]+bo)
(5)
ht=ot×tanhCt
(6)
式中,z為輸入向量;h為輸出向量;f為遺忘門;i為輸入門;o為輸出門;C為單元狀態(tài);t為時刻;σ、tanh分別為sigmoid、tanh激活函數(shù);W為權重;b為偏差矩陣。
圖2為本文構建的LSTM的多輸入多輸出神經(jīng)網(wǎng)絡模型,通過截取預測日前N天的用電負荷數(shù)據(jù),與預測日當天的天氣等相關影響特征構建輸入向量;構建包含兩層隱藏層的堆疊LSTM模型,使得網(wǎng)絡能夠對輸入數(shù)據(jù)進行深度學習;通過將之前時刻輸出負荷值在時間軸上進行傳遞,可以有效地利用歷史負荷數(shù)據(jù)進行當前負荷數(shù)據(jù)的預測。但是時間窗口N的大小、隱藏層所包含的基本單元個數(shù),以及為了獲取最小損失函數(shù)需要循環(huán)迭代次數(shù)、每次輸入的樣本數(shù)量都對預測的輸出數(shù)據(jù)精度產(chǎn)生一定的影響,而每次通過手動調參又會浪費大量的時間且不一定可以調得最優(yōu)參數(shù),因此根據(jù)所需優(yōu)化的超參數(shù)個數(shù)構建麻雀種群粒子維度,采用SSA算法對以上參數(shù)進行尋優(yōu)。
圖2 LSTM神經(jīng)網(wǎng)絡結構圖Fig.2 Structure diagram of LSTM neural network
麻雀搜索算法是由薛建凱[27]提出的新型群智能優(yōu)化技術,其靈感來源于麻雀種群中的覓食行為和反捕食行為。算法將麻雀的種群分為發(fā)現(xiàn)者和加入者,通過構建的適應度函數(shù)對麻雀的適應度值進行計算,以此來實現(xiàn)麻雀個體之間的角色、位置變換,有效地避免了傳統(tǒng)優(yōu)化算法易陷入局部最優(yōu)解的問題。
(7)
式中,X為隨機初始化的麻雀種群;x為麻雀個體;d為種群的維數(shù),在數(shù)值上與LSTM神經(jīng)網(wǎng)絡待優(yōu)化參數(shù)個數(shù)相同;n為麻雀的數(shù)量。
(8)
式中,Gx為適應度矩陣;g為麻雀的適應度值,通過預測負荷數(shù)據(jù)與原始負荷數(shù)據(jù)的均方根(Root Mean Squared Error,RMSE) 進行計算。
(9)
式中,iter為當前迭代數(shù);itermax為最大迭代次數(shù);Xi,j為第i個麻雀在第j維中的位置信息,j=1,2,3,…,d;α∈(0,1];R2和ST分別為預警值和安全值,其中R2∈(0,1],ST∈[0.5,1],發(fā)現(xiàn)者發(fā)現(xiàn)了捕食者,會立即發(fā)出報警信號,如果報警值大于安全閾值,發(fā)現(xiàn)者就會根據(jù)式(9)進行位置更新,否則就繼續(xù)進行之前的搜索工作;Q為隨機數(shù),服從正態(tài)分布;L為1×d且每個元素都為1的矩陣。
(10)
式中,Xp為當前發(fā)現(xiàn)者所占據(jù)的最優(yōu)位置;Xworst為當前全局最差的位置;A為每個元素隨機賦值為1或-1的矩陣,并且A+=AT(AAT)-1。加入者在覓食過程中會隨時監(jiān)視著發(fā)現(xiàn)者,一旦發(fā)現(xiàn)者發(fā)現(xiàn)了更好的食物,加入者會立刻與之爭搶,如果加入者贏了,那么它們就將該發(fā)現(xiàn)者的食物據(jù)為己有,否則繼續(xù)覓食。加入者按照式(10)進行位置更新,根據(jù)條件可知,當適應度較低的加入者沒有獲得食物時,就會進行位置變換,以獲取更多的食物。
(11)
式中,Xbest為當前全局最優(yōu)位置;β為步長控制參數(shù),服從N(0,1)分布;K∈[-1,1];fi為第i只麻雀的適應度值;fg為全局最佳適應值;fw為全局最差適應值;ε為避免分母出現(xiàn)零而設置的常數(shù)。隨機初始化的發(fā)現(xiàn)者與加入者根據(jù)式(11)去爭搶食物資源并進行位置更新,直到達到最大迭代次數(shù),找出全局適應度值最高的麻雀為全局最優(yōu)解。
LSTM網(wǎng)絡結構的參數(shù)選擇對負荷預測的準確性有很大的影響,因此對LSTM網(wǎng)絡結構的關鍵參數(shù)進行尋優(yōu)是十分必要的。麻雀搜索算法在收斂度和精度方面都表現(xiàn)出良好的性能,在處理非線性和多變量問題時也有一定的優(yōu)勢,因此本文采用麻雀搜索算法對LSTM神經(jīng)網(wǎng)絡結構的關鍵參數(shù)進行尋優(yōu)。本文選取LSTM網(wǎng)絡模型中的時間窗口大小、批處理大小和隱藏層單元數(shù)作為優(yōu)化對象,用以架構麻雀搜索算法的粒子維度。模型整體結構如圖3所示,模型優(yōu)化過程如下:
圖3 預測模型整體結構Fig.3 Forecast model overall structure
(1)初始化:以LSTM網(wǎng)絡的時間窗口大小、批處理大小和隱藏層單元數(shù)作為優(yōu)化對象,確定麻雀種群大小、迭代次數(shù)、初始安全閾值,初始化SSA優(yōu)化算法。
(2)適應值:利用LSTM算法的預測值和樣本數(shù)據(jù)的均方根來確定每只麻雀的適應值。
(3)更新:利用式(9)~式(11)更新麻雀位置,得到麻雀種群的適應度值,并對種群中最優(yōu)個體位置和全局最優(yōu)位置值進行保存。
(4)迭代:判斷是否滿足終止條件或者是否達到更新迭代次數(shù)的最大值。如果是,則退出循環(huán)并返回最優(yōu)個體解,即確定網(wǎng)絡結構最優(yōu)參數(shù),否則繼續(xù)循環(huán)步驟(3)。
(5)優(yōu)化結果輸出:以SSA算法輸出的最優(yōu)粒子值作為LSTM的時間窗口大小、批處理大小和隱藏層單元數(shù)值。
實驗基于2016年電工杯A題所提供的數(shù)據(jù)集,該數(shù)據(jù)集包含了2012年1月1日至2015年1月10日的用電數(shù)據(jù)以及氣象數(shù)據(jù),該用電負荷數(shù)據(jù)以15 min為粒度,每天一共96個采集點數(shù)據(jù),實驗選取距今較近且數(shù)據(jù)較全的2014年負荷數(shù)據(jù)以及氣象數(shù)據(jù)進行實驗。
3.2.1 數(shù)據(jù)清洗
數(shù)據(jù)的質量為預測精度提供了有力的保障,但是在數(shù)據(jù)的采集過程中也存在著一些異常數(shù)據(jù)。對于缺失的負荷數(shù)據(jù)先用0值進行填充,此時缺失數(shù)據(jù)點被處理成了異常數(shù)據(jù)點,然后統(tǒng)一對數(shù)據(jù)集中的異常數(shù)據(jù)項進行辨別和修正。
負荷曲線中的異常數(shù)據(jù)通常表現(xiàn)為數(shù)據(jù)項取值突然升高或者降低,對這些異常數(shù)據(jù)運用均值填補法進行修正,公式如下:
(12)
式中,a、b分別為向前與向后所取的天數(shù),一般取2~4;y(i,s)為第i天的第s個采樣點的負荷數(shù)據(jù)。某條負荷曲線采樣點缺失數(shù)據(jù)與異常數(shù)據(jù)的處理如圖4所示。
圖4 缺失數(shù)據(jù)與異常數(shù)據(jù)的處理Fig.4 Handling of missing data and abnormal data
3.2.2 數(shù)據(jù)去噪
在數(shù)據(jù)采集過程中由于受到各種因素的影響,采集到的歷史負荷數(shù)據(jù)往往是在真實的負荷值上疊加了一定的隨機噪聲,這些噪聲會引起預測結果的偏差,因此對原始負荷數(shù)據(jù)進行了去噪處理。實驗選取Symlet小波函數(shù)對數(shù)據(jù)進行去噪處理,部分去噪后數(shù)據(jù)與原始數(shù)據(jù)對比曲線如圖5所示。
圖5 數(shù)據(jù)去噪對比圖Fig.5 Comparison chart of data denoising
3.2.3 數(shù)據(jù)歸一化處理
由于用電負荷數(shù)據(jù)的數(shù)量級較大,會對神經(jīng)網(wǎng)絡的訓練和計算效率產(chǎn)生影響,同時也為了提升算法的收斂速率,因此將數(shù)據(jù)進行歸一化處理。本文采用min-max標準化方法將原始用電負荷數(shù)據(jù)歸一化到[0,1]之間,表達式如下:
(13)
3.2.4 輸入向量的構建
電力負荷數(shù)據(jù)是一種非線性、非平穩(wěn)的時間序列,其需求量與許多影響因素有關,研究選取對負荷預測影響較大的平均溫度、最高溫度、最低溫度、濕度、日期類型以及是否節(jié)假日等作為負荷預測的影響因素,結合前N日負荷序列的96點采樣數(shù)據(jù)進行輸入向量的構建。其中需對工作日、節(jié)假日等數(shù)據(jù)進行量化處理,例如對工作日置0節(jié)假日置1。
本文構造的輸入向量為待預測日前N天的負荷數(shù)據(jù)[y(pre-N,1),y(pre-N,2),…,y(pre-1,95),y(pre-1,96)]并結合待預測日的影響因素,將其輸入到神經(jīng)網(wǎng)絡中,網(wǎng)絡輸出為待預測日的96點負荷數(shù)據(jù)[y(pre,1),y(pre,2),…,y(pre,95),y(pre,96)]。
使用平均絕對誤差(Mean Absolute Error,MAE)、平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)、均方根誤差(Root Mean Squared Error,RMSE)和平均誤差(Mean Error,ME)來評估模型,如式(14)~式(17)所示:
(14)
(15)
(16)
(17)
同時本文以RMSE構建SSA的適應度函數(shù),求解最佳粒子。同時通過評價指標對LSTM、PSO-LSTM、BP、PSO-BP、SSA-BP、SSA-LSTM等模型進行對比評估,驗證本文所提出模型的先進性。
實驗模型在python3.8編譯器下搭建,在2.40 GHz Intel(R) Core(TM) /i5-9300HF CPU /GeForce GTX 1650-GPU/8 GB內(nèi)存的計算機上運行。
3.4.1 各個季節(jié)單日負荷預測
因各個季節(jié)氣候不同,因此用電量也會有所變化,因此對四個季節(jié)分別建立模型并進行參數(shù)尋優(yōu)。按照地球公轉原則,截取2014年的3~5月為春季數(shù)據(jù)集,6~8月為夏季數(shù)據(jù)集,9~11月為秋季數(shù)據(jù)集,因數(shù)據(jù)集中只收錄到2015年1月數(shù)據(jù),故選取2013年12月、2014年1月、2月為冬季數(shù)據(jù)集分別進行實驗。四個數(shù)據(jù)集中的數(shù)據(jù)60%用于訓練,20%用于驗證,20%用于預測。
經(jīng)實驗發(fā)現(xiàn),在訓練初期模型的預測精度隨著網(wǎng)絡層數(shù)的增加而提高,但是當LSTM神經(jīng)網(wǎng)絡層數(shù)大于2層時,模型的預測精度未發(fā)生明顯提高且整體優(yōu)化時間成倍遞增,因此選擇LSTM的網(wǎng)絡層數(shù)為2層,Dropout為0.2,在LSTM最后加入一個全連接層,神經(jīng)單元數(shù)量為96即預測的96個負荷數(shù)據(jù),學習率為0.001。經(jīng)網(wǎng)絡模型尋優(yōu)出來的四個季節(jié)模型參數(shù)見表1。
表1 各季節(jié)模型參數(shù)Tab.1 Model parameters for each season
利用尋優(yōu)出來的參數(shù)進行模型的搭建,然后隨機選取預測日進行負荷預測。實驗分別對2014年2月21日、5月26日、8月28日、11月27日的負荷數(shù)據(jù)進行了預測,真實值與預測值對比結果如圖6所示,每15 min為1個采樣點。通過預測結果獲得的MAE、RMSE、MAPE與ME見表2。
圖6 預測結果圖Fig.6 Forecast result chart
表2 2014年預測結果MAE、MAPE、RMSE、ME對比Tab.2 Comparison of MAE,MAPE,RMSE and ME predicted results in 2014
從圖6可以看出,利用經(jīng)SSA算法優(yōu)化出的參數(shù)重新訓練出的模型,在四個預測日的預測效果都比較好,與真實值更為接近,通過圖6(c)可以看出,預測曲線幾乎與真實曲線完全重合,有效地預測了短期內(nèi)日負荷量未來的變化趨勢,精準地把握了負荷變化的規(guī)律。由表2可得,從誤差的實際情況來看,MAE控制在90.12~114.8 MW之間;從預測精度來看,RMSE控制在114.18~136.05 MW之間;從評估模型精度的角度來看,MAPE控制在1.02%~1.95%之間。綜上所述,本文所提算法模型具有較高的預測精度。
3.4.2 模型對比分析
圖7為四個預測日分別在LSTM、PSO-LSTM、BP、PSO-BP、SSA-BP、SSA-LSTM六種預測模型下的結果對比,表3為六種模型的預測指標。
從圖7可以看出,通過SSA-LSTM模型預測出的用電負荷與真實用電負荷數(shù)據(jù)之間的擬合程度在隨機選取的四個預測日中都較其他5種模型預測效果更好,與真實值的擬合程度更高。
圖7 四個預測日負荷預測結果對比Fig.7 Comparison of four daily load forecasting results
表3和表4為四個預測日分別在六種算法模型下的預測結果對比,通過表3和表4可以看出,SSA-LSTM模型預測精度的誤差在1.02%~1.95%之間,而目前普遍應用的PSO-LSTM算法模型預測精度的誤差在1.43%~2.06%之間,提升了0.09%~0.41%。且就六種對比算法整體擬合效果較好的圖6(c)來看,SSA-LSTM的MAPE較目前存在的改進算法模型PSO-BP、PSO-LSTM分別提升了0.82%、0.41%,較SSA優(yōu)化的對比算法模型SSA-BP提升了0.42%,表現(xiàn)出了較好的預測模型精度;MAE較其他三種優(yōu)化算法模型分別降低了62.53 MW、44.43 MW、31 MW,較好地降低了預測誤差;RMSE相較于其他三種優(yōu)化算法模型分別降低了83.8 MW、60.54 MW、31.08 MW,表明所提算法模型在預測精度方面有較大的提升;通過預測模型的ME來看,模型整體性能穩(wěn)定,未出現(xiàn)較大偏差。
此外,對比表3和表4中SSA-BP的MAE、MAPE、RMSE、ME評價指標,可以看出實驗所搭建的SSA優(yōu)化BP神經(jīng)網(wǎng)絡對比算法模型較PSO-BP神經(jīng)網(wǎng)絡模型有了改進,這表明通過SSA算法來尋優(yōu)網(wǎng)絡參數(shù)進行預測是優(yōu)于目前應用較多的PSO尋優(yōu)算法模型的。
表3 對比模型的MAE、MAPETab.3 MAE and MAPE of comparison models
表4 對比模型的ME、RMSETab.4 ME and RMSE of comparison models (單位:MW)
由此可見,本文提出的SSA優(yōu)化LSTM的多輸出神經(jīng)網(wǎng)絡模型能夠將歷史用電負荷與相關影響因素等數(shù)據(jù)與網(wǎng)絡結構深入匹配,較好地學習了歷史負荷變化的規(guī)律,能夠對未來的用電負荷做出更為準確的預測。
本文提出SSA-LSTM模型,并結合2016年電工杯數(shù)學建模競賽數(shù)據(jù)進行短期負荷預測,通過算例分析得到以下結論:
(1)通過對用電負荷數(shù)據(jù)集按照季節(jié)進行劃分,選取預測日的溫度、濕度以及節(jié)假日和工作日類型并結合歷史用電數(shù)據(jù)進行輸入序列的構建,并訓練相應的模型,充分考慮了相關影響因素對負荷預測的影響,有效地提高了預測精度。
(2)本文通過SSA進行參數(shù)尋優(yōu)并構建LSTM預測網(wǎng)絡,使得輸入數(shù)據(jù)與網(wǎng)絡結構深入匹配,有效地解決了人工調參的耗時長且預測效果不佳的問題,并提高了預測精度。