郭玲,徐青山,鄭樂
(1. 東南大學網絡空間安全學院,江蘇 南京 210096;2. 東南大學電氣工程學院,江蘇 南京210096)
短期負荷預測是能源管理系統的重要組成部分,是市場機制下制定供電計劃、電力調度計劃和電力交易計劃的重要基礎,也為電力系統的經濟、安全、穩定運行提供了有力保障[1—2]。傳統的短期負荷預測方法主要有以自回歸移動均值(auto regressive moving average,ARMA)[3—4]、線性回歸方法(linear regression,LR)[5]和卡爾曼濾波法[6]為代表的統計學方法和以支持向量回歸方法[7—8]、貝葉斯方法[9]和隨機森林方法[10]為代表的機器學習方法。統計學方法具有模型簡單、訓練速度快的優點,但是對于非線性的負荷預測問題,該方法擬合能力不足,預測精度較低。傳統機器學習方法雖然具有較強的非線性擬合能力,但是大多數模型參數尋優困難,容易陷入局部最優的困境。近年來隨著深度學習的不斷發展,很多學者也開展了利用深度學習模型進行短期負荷預測的研究,主要有基于反饋神經網絡(back propagation,BP)[11]、基于循環神經網絡(recurrent neural networks,RNN)[12—13]和基于卷積神經網絡(convolutional neural network,CNN)的負荷預測方法[14]。文獻[15]中利用BP神經網絡的特征提取和非線性擬合能力,實現了短期負荷的有效預測,但該模型未考慮負荷特征之間的時序關系,預測精度不高。RNN模型具有記憶單元,可以實現對電力負荷數據時序關系提取,但在訓練過程中容易產生梯度消失或爆炸的問題。基于RNN模型改進的長短期記憶網絡[13,16](long short-term memory,LSTM)模型引入門控制單元,解決了RNN模型訓練過程中梯度消失或爆炸的問題。文獻[17]中采用了基于LSTM模型改進的門限循環單元(gated recurrent unit,GRU)模型,能以更快的收斂速度取得與LSTM模型相近的預測效果。CNN模型具有可并行計算的優點,但是無法很好提取時間序列數據的時序依賴特征。針對此問題,文獻[18]中提出了時間卷積網絡(temporal convolutional network,TCN),并在多種數據集上驗證了其預測性能。
為了進一步提高短期負荷預測精度,文中基于負荷預測影響因素時序特征的分析,提出了一種基于TCN-GRU的短期負荷預測方法。利用時間卷積網絡對時序數據的特征提取能力和GRU神經網絡的非線性擬合能力,搭建TCN-GRU模型,并基于我國廣東省佛山市某工業負荷數據進行短期負荷預測。預測結果表明,TCN-GRU模型的負荷預測能力明顯優于其他單預測模型。
TCN模型是一種簡單通用的解決時間序列問題的卷積神經網絡架構[18]。TCN模型由一組殘差單元組成,每個殘差單元是一個具有殘差連接[19]的小型神經網絡,通過殘差連接可以加快深層網絡的反饋與收斂,解決隨著網絡層次增加造成的“退化現象”。TCN的殘差單元如圖1所示。

圖1 TCN殘差單元Fig.1 Residual unit of TCN
殘差連接是將殘差單元的輸入x添加到輸出f(x),網絡被強制模型化為:
f(x)=h(x)-x
(1)
殘差單元中包含2個卷積單元和非線性映射。卷積單元中首先進行一維擴張因果卷積,通過擴張系數調整采樣間隔,實現更大的感受野(receptive field,RF),即卷積層上的特征能看到的區域范圍,讓網絡可以記憶足夠長的歷史信息,并且只對t時刻之前的輸入進行卷積以得到t時刻的輸出,保證不會泄露未來的信息;然后對權重進行歸一化處理,使用ReLU函數作為激活函數;最后采用Dropout操作,按照一定的概率隨機丟棄神經元,達到防止過擬合和加速模型訓練速度的目的。非線性映射是在殘差單元的輸入和輸出具有不同的維度時,對高維度的數據進行降維。一維擴張因果卷積的運算式為:
(2)
式中:x為輸入序列;f為過濾器;d為擴張系數;k為卷積核大小;s-di確保只能對過去的輸入做卷積操作。
GRU是LSTM的一個簡化版本,其將LSTM的輸入門和遺忘門整合為一個更新門,沒有輸出門,但增加了一個重置門。更新門控制前一時刻狀態信息的保留程度,更新門的值越大說明前一時刻狀態信息對當前狀態的影響就越大[20]。重置門控制當前狀態與先前信息的結合程度,值越小說明忽略的信息越多[21]。GRU單元結構如圖2所示。

圖2 GRU單元結構Fig.2 GRU structure
GRU單元中h(t)的計算公式為:
(3)
(4)
(5)
ht=(-zt)?ht-1+zt?gt
(6)
式中:xt為t時刻的輸入;ht為t時刻的輸出或狀態;ht-1為t-1時刻的狀態;w為權重;σ為激活函數sigmoid(·);tanh(·)為激活函數。
電力負荷預測是一個非線性的時間序列預測問題[22]。時間序列數據是指隨時間變化的數據,而影響電力負荷的因素不單單有電力負荷數據等時序序列數據,也有溫度、日期等非時間序列數據。如果將所有數據無差別的輸入到單模型中進行訓練,不能有效提取出原始數據內部蘊含的時序關系和非時序關系。
TCN模型通過一維因果卷積對過去的數據進行提取,保證時序性,殘差連接加快收斂速度,擴張卷積實現時序特征提取。GRU模型作為循環神經網絡的變種,具有非線性擬合能力,能夠有效提取數據特征,且在保障得到與LSTM相近預測效果的同時獲得更快的收斂速度[23]。文中將兩者結合搭建了TCN-GRU模型,如圖3所示。

圖3 TCN-GRU模型結構Fig.3 TCN-GRU model structure
圖3中,TCN-GRU模型結構包括:
(1) 輸入1。輸入為連續7 d的電力負荷數據樣本。每日的電力負荷數據是按照24 h設置96個采樣點,時間間隔為15 min,獲取得到96維電力負荷數據。
(2) 時間卷積網絡層。設置2層的殘差單元。每層殘差單元包含2個卷積單元和1個非線性映射。其中卷積單元使用ReLU函數作為激活函數,對卷積核的權重進行歸一化操作。卷積核大小為2;并設置Dropout系數為0.4,Dropout設置可以隨機選取部分神經元失活,防止訓練過擬合,同時加快模型的收斂速度;設置擴張系數為(1,2,4,8,16,32);過濾器為128。殘差單元的輸入和輸出具有不同的維度,不能直接做加和操作,將殘差映射中增加了一個1×1的卷積層進行降維。
(3) 輸入2。輸入為連續7 d的非時序數據。每日的非時序數據包含日平均溫度、日平均電價和日期類型經過one-hot編碼后產生的7維的數據,一共9維數據。
(4) 門限循環單元層。設置3層的GRU單元。首先將TCN模型的輸出g與輸入2的輸出x2進行連接,需要保證數據的維度和樣本個數相同,得到數據ct。
ct=f(x(2,t),gt)
(7)
式中:f表示連接操作,利用keras模型的concatenate函數實現,將時間卷積網絡和輸入2連接起來,作為門限循環單元的輸入。
(5) 輸出層。輸出為預測日一天96個時間點的電力負荷預測結果y。輸出層神經元個數設定為96。該層網絡以Sigmoid函數作為激活函數。t時刻的輸出式為:
yt=σ(wht+b)
(8)
式中:b為偏差向量。
文中提出的TCN-GRU模型中采用Adam[24]優化器對模型的參數進行優化以減小損失。Adam是一種對隨機目標函數執行一階梯度優化的自適應優化算法,結合了AdaGrad優化器和RMSProp優化器的優點。損失函數L選取了平均絕對誤差(mean absolute error,MAE)。
(9)

實驗選取平均絕對百分誤差(mean absolute per-centage error,MAPE)、均方誤差(root mean square error,RMSE)、測試時間和決定系數R2作為模型衡量指標。MAPE可以衡量預測模型的精確度,RMSE可以體現預測平均誤差的大小,R2可以表征預測模型的擬合程度。在進行負荷預測中,MAPE和RMSE的值越小,R2的值越接近于1表示模型的擬合效果越好。
(10)
(11)
(12)
(13)

文中運算使用的計算機配置為Window10系統,16 G運行內存,GTX1650顯卡;采用的編程環境為PyCharm2017.1;搭建的神經網絡模型為深度學習框架TensorFlow和Keras框架。
文中選取廣東省佛山市某行業2017年12個月的真實歷史負荷數據作為數據集。每日設置了96個采樣點,時間間隔為15 min,數據集獲取96維電力負荷數據。考慮到工業用戶用電情況受天氣,工作日和非工作日以及電價的影響較大[14],選取了每日平均溫度、日期類型、電價[25]作為其他輸入。根據時序特征的特點,認定電力負荷為時序特征,每日平均溫度、日期類型、電價作為非時序特征[22]。
3.3.1 數據補全
對于數據集中的數據缺失情況,文中采用均值填充的方式進行缺值填充,補全效果如圖4所示。

圖4 數據補全示例Fig.4 Example ofdata completion
3.3.2 數據標準化
數據集中的樣本數據衡量的是不同尺度的數據特征,如果直接放入模型中進行訓練操作,會使模型偏向于數值較高的指標,而降低數值水平較低的指標在模型中的作用。因此,將歷史負荷數據和溫度數據進行歸一化處理,歸一化后的數據處于[0,1]范圍內。歸一化x′i,j可表示為:
(14)
式中:xi,j為矩量陣x的i行,j列元素值;x(i,j)min為輸入數據x的最小元素值;x(i,j)max為輸入數據x的最大元素值。
對于離散型數據,采用one-hot編碼的方式進行預處理。比如日期類型中的周一類型可以表示為0000001。
3.3.3 數據集劃分
將數據集劃分為訓練集、測試集和驗證集,其中訓練集和驗證集以9∶1比例分配,并選取2017-12-30的數據作為測試集。
首先通過對比實驗確定TCN-GRU模型中TCN殘差單元的個數和GRU神經網絡的網絡層數。設定模型迭代次數均為500次,GRU模型中每層神經元個數為256個,TCN中擴張系數以2的倍數疊加。在設置不同殘差單元的個數和GRU神經網絡的網絡層數時,模型的預測效果如表1所示。

表1 TCN-GRU參數比較Table 1 Comparison of TCN-GRU model
由表1中數據可以得出:當殘差單元的個數設置為2,GRU神經網絡的網絡層數設置為3時,預測效果最好。
為了驗證模型的性能,實驗將TCN-GRU模型與GRU模型、LSTM模型、TCN模型、深度神經網絡(deep neural networks,DNN)模型進行了對比訓練,其中GRU模型、LSTM模型、TCN模型、DNN模型的網絡層數統一設置為3層。利用廣東省佛山市的電力負荷數據集對模型進行訓練,并利用訓練好的模型對2017-12-30廣東省佛山市某行業的電力負荷進行預測,預測效果如表2所示。

表2 模型對比Table 2 Comparison of five models
由表2可知,TCN-GRU模型的MAPE值為1.75%,和現有的常用于負荷預測的深度學習模型相比,取得了更好的預測精度,對比單模型TCN模型和GRU模型,準確度也得到了提升。DNN模型和LSTM模型的預測效果與文中模型進行對比,如圖5所示。

圖5 預測結果對比Fig.5 Comparison of load forecasting results
由圖5可以發現,文中預測曲線更加貼近真實負荷數據曲線,特別是幾個高峰點和低谷點擬合效果更佳。
圖6對比了文中TCN-GRU預測模型和單模型之間的預測曲線。從圖中可以得出文中提出的TCN-GRU模型預測效果要優于單模型TCN和GRU。

圖6 預測結果對比Fig.6 Comparison of load forecasting results
對電力負荷的短期預測往往只考慮輸入數據的時序特性或者不考慮輸入數據之間的時序關系。文中提出的基于TCN-GRU模型的短期負荷預測方法兼顧數據的時序特性和非時序特征。首先該方法通過TCN模型提取時序數據的時間序列特征;然后結合非時序特征以組成新的數據集;最后利用GRU模型的非線性擬合能力以及深度學習能力對電力負荷進行預測。相較于經典的深度學習模型GRU、LSTM等模型,文中提出的TCN-GRU模型取得了更高的預測準確率,為電網系統提供了更加精確的預測結果,也為電網系統靈活調節供電量提供了更加可靠的依據。
未來將在以下幾個方面進行深入研究:(1) 文中研究目標為單一的電力負荷數據,考慮將該模型應用于綜合能源的負荷預測之中;(2) 文中研究輸入數據為單一的負荷數據,考慮將空間特征引入短期負荷預測。