王旭東,嚴(yán) 珂,陸慧娟,葉敏超
(中國計(jì)量大學(xué) 信息工程學(xué)院,浙江 杭州 310018)
隨著世界人口數(shù)目的不斷增多,人類對能源需求日趨增大.目前,家庭住宅的能源消耗約占全世界能源使用總量的30%~40%[1-3],住宅負(fù)荷經(jīng)常對季節(jié)和日用電高峰需求有顯著影響[4].通常,為了滿足高峰時(shí)期的用電需求,電力公司會(huì)提高發(fā)電能力以滿足需求.但是提升20%的發(fā)電能力大約可以應(yīng)對潛在發(fā)生的5%的峰值需求[5],這對電力資源是一種極大的浪費(fèi).準(zhǔn)確的預(yù)測家庭住宅用電需求,平衡用電高峰的供需關(guān)系,將會(huì)減少電力資源的浪費(fèi),對保護(hù)生態(tài)環(huán)境產(chǎn)生積極影響.隨著智能電網(wǎng)的出現(xiàn)和大量智能電表的安裝[6],降低了數(shù)據(jù)獲取的難度,因此短時(shí)家庭電力負(fù)荷預(yù)測具有可行性和現(xiàn)實(shí)意義.
關(guān)于家庭層面的用電需求預(yù)測,近幾年相關(guān)研究很多,大部分都采用了機(jī)器學(xué)習(xí)的方法.Ghofrani等[7]使用卡爾曼濾波研究了負(fù)荷預(yù)測.Humeau等[8]利用支持向量回歸和神經(jīng)網(wǎng)絡(luò)研究了個(gè)體級別的住宅負(fù)荷預(yù)測和總體水平.Sevlian和Rajagopal[9]研究了預(yù)測精度與聚合水平之間的比例關(guān)系.Arora和Taylor[10]考慮了負(fù)荷預(yù)測的條件核密度估計(jì),并討論了其在分時(shí)定價(jià)中的應(yīng)用.Haben等人[11]提出了一種新的評估個(gè)體家庭負(fù)荷預(yù)測誤差的方法,以更好地描述波動(dòng)性和噪聲負(fù)荷信號(hào).Yu等[12]提出了利用稀疏編碼的方式對短期家庭需求進(jìn)行預(yù)測,提升了預(yù)測精度.Shi等[13]使用一種基于池化處理的深度循環(huán)神經(jīng)網(wǎng)絡(luò)來克服家庭電力需求數(shù)據(jù)隨機(jī)性大的問題.
近年來,隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,一些深度學(xué)習(xí)模型逐漸被應(yīng)用到時(shí)序數(shù)據(jù)的研究中[14].其中,循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks, RNN)是一種帶有自循環(huán)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),允許時(shí)間序列數(shù)據(jù)在網(wǎng)絡(luò)層上信息流動(dòng)的持久化,在理論上十分適合處理時(shí)間序列數(shù)據(jù).RNN產(chǎn)生了眾多變體,如雙向循環(huán)神經(jīng)網(wǎng)絡(luò)[15]、長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM)[16]、門控循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU)[17]等.在眾多RNN的變體中,LSTM網(wǎng)絡(luò)彌補(bǔ)了RNN的梯度消失和梯度爆炸、長期記憶能力不足等問題,使得循環(huán)神經(jīng)網(wǎng)絡(luò)能夠真正有效地利用長距離的時(shí)序信息.并且LSTM網(wǎng)絡(luò)已經(jīng)在股票預(yù)測[18]、故障時(shí)間序列預(yù)測[19]、語音識(shí)別[20]、航空發(fā)動(dòng)機(jī)過度振動(dòng)預(yù)測[21]等時(shí)間序列相關(guān)研究領(lǐng)域取得了應(yīng)用.
本文針對短時(shí)家庭電力需求數(shù)據(jù)維度單一、數(shù)據(jù)隨機(jī)性強(qiáng)的問題,提出了一種基于LSTM的單變量短時(shí)家庭電力需求預(yù)測模型,來對1 h為單位的家庭電力需求進(jìn)行預(yù)測.
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)是一種具有反饋結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),其輸入不僅和當(dāng)前輸入和網(wǎng)絡(luò)的權(quán)值有關(guān),而且也和之前的網(wǎng)絡(luò)輸入有關(guān),因此,在理論上說,RNN非常適合處理序列數(shù)據(jù).但是用循環(huán)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)長期依賴問題時(shí),會(huì)出現(xiàn)梯度消失或者梯度爆炸問題[22],導(dǎo)致模型無法訓(xùn)練.為了克服這一問題,Hochreiter等人[16]提出了長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM),引入了細(xì)胞狀態(tài)和三個(gè)門結(jié)構(gòu)控制信息在細(xì)胞狀態(tài)上的更新,實(shí)現(xiàn)了信息在網(wǎng)絡(luò)上的長期流動(dòng).
圖1 LSTM神經(jīng)元內(nèi)部結(jié)構(gòu)圖Figure 1 Internal structure of LSTM neural networks
LSTM神經(jīng)元內(nèi)部結(jié)構(gòu)如圖1.為了建立時(shí)間連接,LSTM在整個(gè)循環(huán)周期內(nèi)定義和維護(hù)一個(gè)內(nèi)部記憶單元狀態(tài)——細(xì)胞狀態(tài)Ct,然后通過遺忘門ft、輸入門it、輸出門ot三個(gè)門結(jié)構(gòu)來更新、維護(hù)或刪除細(xì)胞狀態(tài)內(nèi)的信息.前向計(jì)算過程如下:
ft=σ(Wf·[ht-1,xt]+bf),
(1)
it=σ(Wi·[ht-1,xt]+bi),
(2)
(3)
(4)
ot=σ(Wo·[ht-1,xt]+bo),
(5)
ht=ot·tanh(Ct).
(6)
LSTM網(wǎng)絡(luò)訓(xùn)練過程采用通過時(shí)間反向傳播算法(back-propagation through time,BPTT),反向計(jì)算每個(gè)LSTM神經(jīng)元輸出值與真實(shí)值的誤差項(xiàng),根據(jù)相應(yīng)的誤差項(xiàng),計(jì)算每個(gè)權(quán)重的梯度,應(yīng)用梯度優(yōu)化算法更新權(quán)重.
家庭級別的電力需求數(shù)據(jù),是通過智能電表自動(dòng)采集單位時(shí)間內(nèi)的用電量來收集,相對于城市級別的電力需求數(shù)據(jù),家庭電力需求數(shù)據(jù)維度單一且隨機(jī)性強(qiáng),預(yù)測難度更大.考慮到家庭電力需求數(shù)據(jù)的特點(diǎn),現(xiàn)提出一種基于LSTM的單變量的家庭電力需求預(yù)測模型.模型包括輸入層、隱藏層、輸出層、網(wǎng)絡(luò)訓(xùn)練及優(yōu)化四個(gè)模塊,網(wǎng)絡(luò)模型整體框架圖如圖2:
圖2 基于LSTM的單變量短期家庭電力需求預(yù)測模型框架Figure 2 Short-term forecast framework of household electricity demand based LSTM single variable
圖3 網(wǎng)絡(luò)層上數(shù)據(jù)流動(dòng)形式Figure 3 Data flow-chart on the network layer
由于訓(xùn)練樣本基數(shù)大,訓(xùn)練過程中優(yōu)化算法使用小批量梯度下降算法(Mini-batch gradient descent),相對于批量梯度下降,小批量梯度下降每次選取一個(gè)批大小的樣本更新參數(shù),節(jié)省了運(yùn)算成本,提高了運(yùn)算速度;相比于隨機(jī)梯度下降,小批量梯度下降降低了收斂的波動(dòng)性,使得參數(shù)更新更加穩(wěn)定.網(wǎng)絡(luò)的損失函數(shù)定義為
(7)
其中:B表示一個(gè)批次中樣本的數(shù)量.
學(xué)習(xí)率η的選取對模型性能有重要影響,同時(shí)也常常是模型中最難調(diào)試的一個(gè)參數(shù),為了降低參數(shù)調(diào)試難度,使模型表現(xiàn)最優(yōu),本文使用超參數(shù)優(yōu)化算法來對學(xué)習(xí)率η進(jìn)行參數(shù)優(yōu)化.常用的自適應(yīng)學(xué)習(xí)率優(yōu)化算法有AdaGrad、RMSProp,Adam等,其中RMSprop使用指數(shù)衰減平均以丟棄遙遠(yuǎn)過去的歷史,使其能夠在找到凸碗狀結(jié)構(gòu)后快速收斂,因此選用RMSProp算法作為模型的超參數(shù)優(yōu)化算法.
本章使用英國能源中心提供的英國倫敦家庭電力需求數(shù)據(jù),來對提出的基于LSTM的單變量短期家庭電力需求預(yù)測模型進(jìn)行訓(xùn)練及性能測試.
本數(shù)據(jù)來自于英國倫敦的家庭電力使用記錄[23].該數(shù)據(jù)集使用智能電表收集了五個(gè)英國家庭2012年至2014年以6 s為采樣間隔的電力消費(fèi)數(shù)據(jù).
原始電力需求數(shù)據(jù)是以6 s為采集頻率采集的,本文是對1 h家庭電力需求進(jìn)行預(yù)測,因此要先進(jìn)行數(shù)據(jù)合并得到實(shí)驗(yàn)數(shù)據(jù)集,合并后的數(shù)據(jù)選取90%作為訓(xùn)練集,其中的5%作為驗(yàn)證集;10%作為測試集,數(shù)據(jù)具體值如表1.
表1 實(shí)驗(yàn)數(shù)據(jù)集描述
實(shí)驗(yàn)中所用的計(jì)算機(jī)配置環(huán)境為:處理器為Intel(R)Core(TM)i7-7700 CPU @ 2.80 GHZ,內(nèi)存為8.00GB,GPU為基于Pascal架構(gòu)NVIDIA GeForce GTX1050顯卡,顯存為2.00GB;操作系統(tǒng)為Windows10(64-bit);程序設(shè)計(jì)語言為Python 3.5.2(64-bit);集成開發(fā)環(huán)境為PYCharm Comm Edition 2016.3.2.深度學(xué)習(xí)代碼后端基于Google的深度學(xué)習(xí)開源框架Tensorflow訓(xùn)練,版本為tensorflow-gpu 1.30,前端為Keras 2.0.8.
本文選用均方誤差(Mean Square Error,MSE)作為評價(jià)標(biāo)準(zhǔn),MSE的計(jì)算公式為
(8)
MSE越小,表明預(yù)測的用電需求值和實(shí)際需求值越接近,預(yù)測越準(zhǔn)確.
模型使用英國倫敦家庭電力需求數(shù)據(jù)進(jìn)行性能評估.其中,迭代次數(shù)、學(xué)習(xí)率是重要的超參數(shù),這些超參數(shù)的取值對模型的性能表現(xiàn)產(chǎn)生重大影響,需要選取合適的參數(shù).
當(dāng)固定學(xué)習(xí)率為0.005,序列長度為23,批樣本為512,優(yōu)化器選擇RMSprop時(shí),觀察不同的迭代次數(shù)下訓(xùn)練誤差和驗(yàn)證誤差變化,如圖4.
圖4 不同迭代次數(shù)下,LSTM模型訓(xùn)練誤差和驗(yàn)證誤差變化Figure 4 LSTM model training error and verification error under different epochs
由圖4可以看出,隨著迭代次數(shù)的不斷增大,訓(xùn)練誤差呈下降趨勢,并且在迭代次數(shù)為60之后,趨于平穩(wěn);驗(yàn)證誤差隨著迭代次數(shù)增大經(jīng)歷了先下降又遞增的過程,這說明迭代次數(shù)過大將導(dǎo)致模型產(chǎn)生了嚴(yán)重的過擬合.因此,將迭代次數(shù)定為20.
在相同參數(shù)下取不同學(xué)習(xí)率(LR=0.001,0.002,0.003,0.004,0.005)對模型進(jìn)行訓(xùn)練,得到的預(yù)測精度如圖5,可清楚的看出,學(xué)習(xí)率為0.002時(shí)預(yù)測精度最高(MSE最低),因此,將模型學(xué)習(xí)率定為0.002.
實(shí)驗(yàn)選取不同的序列長度(L=4,6,8,10,12,14,16,18,20,22,24,26,28,30)來訓(xùn)練LSTM模型,預(yù)測精度隨序列長度變化如圖6.序列長度為24時(shí)MSE最小,因此,模型的序列長度定為24.
圖5 不同學(xué)習(xí)率下,均方誤差(MSE)變化Figure 5 Mean square errors(MSE) in different learn rate
圖6 不同序列長度下,均方誤差(MSE)變化Figure 6 Mean square errors(MSE) in different sequence length
將本模型在五個(gè)數(shù)據(jù)量、生活習(xí)慣不同的用電家庭數(shù)據(jù)集上進(jìn)行測試,評價(jià)指標(biāo)使用均方誤差(MSE),并和傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、門控循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU)進(jìn)行了對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2.從表2可以清楚的看出,LSTM模型在第1、2、5家庭中預(yù)測表現(xiàn)最優(yōu),而RNN方法只在家庭4中表現(xiàn)最優(yōu),GRU方法只在家庭3中表現(xiàn)最優(yōu).這說明LSTM短期電力需求預(yù)測模型泛化能力比RNN、GRU好.同時(shí)和表1聯(lián)合觀察可知,家庭3訓(xùn)練集數(shù)據(jù)過少(小于1 000),預(yù)測精度不高(MSE最高),其余四個(gè)家庭數(shù)據(jù)集MSE在5以下,說明LSTM在訓(xùn)練集大于1 000時(shí)表現(xiàn)較好,但是數(shù)據(jù)集過大(家庭1),精度提升不會(huì)過于明顯,因此,我們選取家庭2作為實(shí)驗(yàn)結(jié)果比較的主要對象.
表2 三種方法在5個(gè)英國家庭中的均方誤差Table 2 Forecasting MSE of three models in 5 British households
圖7是LSTM、RNN、GRU三種模型對英國家庭2電力需求預(yù)測一周的曲線變化.從圖上可以清楚的看出,傳統(tǒng)的RNN方法對用電平穩(wěn)的時(shí)間段預(yù)測效果較為精準(zhǔn),但是當(dāng)用電峰值來臨時(shí),RNN方法預(yù)測誤差很大,達(dá)不到實(shí)際應(yīng)用要求.LSTM和GRU方法都能夠準(zhǔn)確的反映家庭2的用電趨勢變化,但是本文提出的LSTM模型對峰值擬合程度更高,整體表現(xiàn)更好.同時(shí)從表2可知,RNN、GRU、LSTM三種方法在英國家庭2測試集上的均方誤差分別為1.460、1.628、1.357,本文的LSTM模型均方誤差最小.綜上,LSTM模型在整體預(yù)測精度和峰值預(yù)測表現(xiàn)均優(yōu)于RNN和GRU方法.當(dāng)突發(fā)性的用電峰值來臨時(shí),如115 h、139 h,本文提出的LSTM模型對于突發(fā)性的用電峰值預(yù)測還存在較大誤差.造成這一問題的原因是家庭的用電需求會(huì)受到突發(fā)性的社會(huì)活動(dòng)影響,這就造成了一個(gè)家庭短時(shí)間內(nèi)用電需求的大幅提升,從而影響了預(yù)測精度.
圖7 三種模型對英國家庭2電力需求預(yù)測曲線Figure 7 Electricity demand forecasting results using three models for family 2.
本文提出了基于LSTM的單變量短期家庭電力負(fù)荷預(yù)測模型,包括模型的框架,網(wǎng)絡(luò)結(jié)構(gòu)、超參數(shù)優(yōu)化等內(nèi)容.并使用倫敦家庭用電數(shù)據(jù)進(jìn)行訓(xùn)練,對1 h內(nèi)家庭電力需求進(jìn)行預(yù)測.本模型克服了數(shù)據(jù)本身特征維度低、隨機(jī)性強(qiáng)的問題,為智能電網(wǎng)在家庭層面用電需求的準(zhǔn)確及時(shí)預(yù)測提供了保障,對推動(dòng)個(gè)性化用電套餐的廣泛普及及減少能源浪費(fèi)發(fā)揮了重要影響.但是,該模型在對用電峰值的預(yù)測上精度還不夠高,后續(xù)的工作準(zhǔn)備通過拓展網(wǎng)絡(luò)層數(shù)與尋求更有效的參數(shù)優(yōu)化方法等提高預(yù)測模型的峰值預(yù)測精度.