張亞寧
(華北電力大學(xué) 數(shù)理學(xué)院,北京 102206)
電力系統(tǒng)是由電網(wǎng)和用戶組成,需要滿足不同用戶的各類負(fù)荷需求。由于電能具有不可存儲性,電能的生產(chǎn)、輸送、調(diào)度和消費(fèi)實(shí)質(zhì)是同時(shí)進(jìn)行的閉環(huán)。為了保證電力系統(tǒng)運(yùn)行的可靠性和經(jīng)濟(jì)性,需要制訂合理的計(jì)劃和調(diào)度方案,而準(zhǔn)確的電力負(fù)荷預(yù)測是必要的前置條件。短期負(fù)荷預(yù)測(Short Term Load Forecasting,STLF)是其中重要的組合部分。短期負(fù)荷預(yù)測主要是指,預(yù)報(bào)未來幾小時(shí)、一天至幾天的電力負(fù)荷。英國的研究結(jié)果表明,短期負(fù)荷預(yù)測的誤差每增加1%將導(dǎo)致每年運(yùn)行成本增加約1 770萬英鎊。在挪威,每增加1%的短期負(fù)荷預(yù)測誤差將增加455~910萬歐元的附加運(yùn)行成本[1]。
根據(jù)用戶用電體量和習(xí)慣的不同,可將用戶分為居民用戶、商業(yè)用戶和工業(yè)用戶。其中,工業(yè)用戶一般配有智能表計(jì)裝置,其耗電量大、自動(dòng)化程度高,具有開展智能用電管理的良好基礎(chǔ)。我國國家能源局發(fā)布的2017年全國電力工業(yè)統(tǒng)計(jì)數(shù)據(jù)顯示,我國工業(yè)用電在全社會用電中所占的比例較大,約86%[2].因此,工業(yè)用戶作為智能化用電的行為主體,在智能電網(wǎng)的需求響應(yīng)、節(jié)能減排中起著至關(guān)重要的作用[3]。
如果能提高工業(yè)用戶的負(fù)荷預(yù)測精度,將對電力系統(tǒng)規(guī)劃和優(yōu)化運(yùn)行有著重要的影響。然而,工業(yè)用戶負(fù)荷受天氣、溫度、經(jīng)濟(jì)、政治等因素的影響很大,工業(yè)用戶的短期負(fù)荷預(yù)測是一個(gè)復(fù)雜的問題,傳統(tǒng)的預(yù)測方法難以精確預(yù)測。
短期負(fù)荷預(yù)測的傳統(tǒng)模型分為兩類,第一類是處理時(shí)間周期性變化的負(fù)荷數(shù)據(jù)最常用到的時(shí)間序列模型。典型的時(shí)間序列方法有Box-Jenkins模型預(yù)測[4]、ARMA模型預(yù)測法[5]等。該類方法所構(gòu)建的預(yù)測模型簡單,應(yīng)用較為廣泛,但對負(fù)荷序列的平穩(wěn)性要求比較高。在大多數(shù)情況下,只利用歷史負(fù)荷進(jìn)行預(yù)測,在某些情況下,預(yù)測精度會受到影響。為了克服這些缺陷,隨著人工智能和智能電網(wǎng)的迅速發(fā)展,適應(yīng)大數(shù)據(jù)的第二類機(jī)器學(xué)習(xí)模型已成為研究主流。以人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)、支持向量機(jī)(Support Vector Machine,SVM)、隨機(jī)森林(Random Forest,RF)為代表的淺層機(jī)器學(xué)習(xí)算法憑借良好的非線性函數(shù)擬合能力已成為該領(lǐng)域的研究熱點(diǎn)。這些方法的改進(jìn)和組合在一定程度上改善了負(fù)荷預(yù)測精度提高受限的問題。
人工神經(jīng)網(wǎng)絡(luò)具有對樣本數(shù)據(jù)容錯(cuò)率高、非線性映射能力強(qiáng)、自適應(yīng)和自組織等優(yōu)點(diǎn)[6],但BP(Back Propagation,BP)網(wǎng)絡(luò)的缺陷在于容易陷入局部最小點(diǎn)。
支持向量機(jī)也是現(xiàn)在負(fù)荷預(yù)測的主流方法之一。支持向量機(jī)是一種監(jiān)督學(xué)習(xí)模型,在解決小樣本、模式識別中表現(xiàn)出許多優(yōu)勢。但是,SVM算法在大規(guī)模訓(xùn)練樣本中難以實(shí)施。由于SVM是借助二次規(guī)劃來求解支持向量的,而求解二次規(guī)劃將涉及高階矩陣的計(jì)算,所以,當(dāng)樣本數(shù)目很大時(shí),該矩陣的存儲和計(jì)算將耗費(fèi)大量的機(jī)器內(nèi)存和運(yùn)算時(shí)間[7]。隨機(jī)森林具有較好的泛化性能且對噪聲不敏感等優(yōu)點(diǎn),常常用于負(fù)荷預(yù)測中。但是,隨機(jī)森林在某些噪聲較大的樣本上會產(chǎn)生過擬合的問題[8]。
這些方法都是使用機(jī)器學(xué)習(xí)的方法尋找負(fù)荷影響因素與負(fù)荷之間的非線性映射關(guān)系,而忽略了連續(xù)負(fù)荷樣本之間的序列數(shù)據(jù)的相關(guān)關(guān)系。實(shí)際上,作為典型的時(shí)間序列,負(fù)荷數(shù)據(jù)不但具有非線性,而且具有相關(guān)性,即對于給定的用戶,其負(fù)荷數(shù)據(jù)的變化是一個(gè)連續(xù)的過程,當(dāng)前時(shí)刻的負(fù)荷與上一時(shí)刻的負(fù)荷之間并不是相互獨(dú)立的,兩者存在著很強(qiáng)的相關(guān)性。所以,每一時(shí)刻的負(fù)荷變化不僅依賴于當(dāng)前時(shí)刻的輸入特征,而且與過去的輸入特征也有關(guān)。因此,傳統(tǒng)方法僅對單個(gè)樣本的輸入特征和輸出功率建立非線性關(guān)系,丟失了連續(xù)序列樣本間的強(qiáng)相關(guān)性,其預(yù)測精度有限。因此,本文提出了一種基于長短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)的短期負(fù)荷預(yù)測方法。LSTM神經(jīng)網(wǎng)絡(luò)是改進(jìn)循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)的計(jì)算單元,得到的一種改進(jìn)的深度學(xué)習(xí)算法,對于處理時(shí)間序列相關(guān)的數(shù)據(jù)有良好的效果。該方法可充分利用負(fù)荷數(shù)據(jù)之間的時(shí)間相關(guān)性,從而提高負(fù)荷預(yù)測的精度。
長短期記憶網(wǎng)絡(luò)是一種改進(jìn)的循環(huán)神經(jīng)網(wǎng)絡(luò)。由于其獨(dú)特的設(shè)計(jì)結(jié)構(gòu),LSTM適用于處理與預(yù)測時(shí)間序列中間隔和延遲非常長的重要事件。
RNN(Recurrent Neural Network)是一種專門處理序列性數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò),與普通的神經(jīng)網(wǎng)絡(luò)不同的是,RNN通過隱藏層節(jié)點(diǎn)周期性的連接來保存、學(xué)習(xí)和記錄序列數(shù)據(jù)中的歷史信息。如圖1所示,RNN的結(jié)構(gòu)包括輸入層、隱藏層、輸出層。層與層之間由權(quán)重相連接。
圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
如圖1所示,U,V,W分別為輸入到隱藏層、隱藏層到隱藏層、隱含層到輸出的權(quán)重。不同于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),RNN具有參數(shù)共享的思想,即層與層之間具有相同的參數(shù)U,V,W。這樣大大減少了網(wǎng)絡(luò)中需要學(xué)習(xí)的參數(shù),縮短了模型的訓(xùn)練時(shí)間。但是,RNN在處理時(shí)間序列上距離較遠(yuǎn)的節(jié)點(diǎn)時(shí)會遇到巨大的困難,因?yàn)橛?jì)算距離較遠(yuǎn)的節(jié)點(diǎn)之間的聯(lián)系時(shí)會涉及雅可比矩陣的多次相乘,這會出現(xiàn)梯度消失(經(jīng)常發(fā)生)或者梯度膨脹(較少發(fā)生)的問題,而長短期記憶網(wǎng)絡(luò)可以很好地解決這個(gè)問題。
圖2 LSTM結(jié)構(gòu)介紹
長短期記憶網(wǎng)絡(luò)為了克服循環(huán)神經(jīng)網(wǎng)絡(luò)的梯度消失或爆炸的問題,在保持循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上重新設(shè)計(jì)了記憶單元,其結(jié)構(gòu)如圖2所示。
每個(gè)LSTM記憶單元中含有3個(gè)控制門,分別是it、輸出門ot和遺忘門ft。如圖2所示,LSTM在時(shí)刻t的輸入數(shù)據(jù)為xt,輸出值為ht,ct為記憶狀態(tài)。LSTM記憶單元更新如下。
3.2.1 遺忘門ft的計(jì)算
遺忘門主要取決于從記憶單元狀態(tài)中遺忘多少信息,由t時(shí)刻輸入值xt和t-1時(shí)刻隱層輸出ht-1共同決定。遺忘門ft的計(jì)算公式是:
式(1)中:wf為t時(shí)刻遺忘門ft的權(quán)值矩陣;bf為偏置量;σ采用Sigmoid函數(shù)。
3.2.2 輸入門it的計(jì)算
輸出門主要決定當(dāng)前輸入數(shù)據(jù)有多少輸入到記憶單元中,由t時(shí)刻輸入值xt和t-1時(shí)刻隱層輸出ht-1共同決定。輸入門it的計(jì)算公式是:
式(2)中:wi為t時(shí)刻輸入門it的權(quán)值矩陣;bi為偏置量。
3.2.3 記憶單元的候選狀態(tài)的計(jì)算
由t時(shí)刻輸入值xt和t-1時(shí)刻隱層輸出共同決定。記憶單元的候選狀態(tài)的計(jì)算公式是:
上式中:wc為t時(shí)刻候選狀態(tài)的權(quán)值矩陣;bc為偏置量。
3.2.4 記憶單元狀態(tài)值ct的更新計(jì)算
記憶單元通過輸入門it和遺忘門ft對自身狀態(tài)和當(dāng)前候選記憶狀態(tài)值進(jìn)行調(diào)節(jié)來更新記憶單元狀態(tài)。記憶單元狀態(tài)值ct的更新計(jì)算公式為:
3.2.5 輸出門ot的計(jì)算
輸出門主要是用來控制記憶單元狀態(tài)值有多少需要輸出,由t時(shí)刻輸入值xt和t-1時(shí)刻隱層輸出ht-1共同決定。輸出門ot的計(jì)算公式為:
式(5)中:w0為t時(shí)刻輸出門ot的權(quán)值矩陣;b0為偏置量。
3.2.6 隱藏層輸出值ht計(jì)算
隱藏層輸出值由t時(shí)刻輸出值ot和記憶單元狀態(tài)值ct共同決定。隱藏層輸出值ht的計(jì)算公式是:
與傳統(tǒng)RNN相比,LSTM增加了一個(gè)細(xì)胞狀態(tài),用來記錄隨著時(shí)間傳遞的信息。在信息傳遞過程中,LSTM通過當(dāng)前時(shí)刻輸入、上一時(shí)刻隱藏層狀態(tài)、上一時(shí)刻細(xì)胞狀態(tài)和門結(jié)構(gòu)來增加或刪除細(xì)胞狀態(tài)中的信息。門結(jié)構(gòu)用來控制增加或刪除信息的程度,共有輸入門(input gate)、遺忘門(forget gate)、輸出門(output gate)3種結(jié)構(gòu)門。輸入門用來控制當(dāng)前輸入新生成的信息中有多少信息可以加入到細(xì)胞狀態(tài)中,遺忘門決定上一時(shí)刻細(xì)胞狀態(tài)中的多少信息可以傳遞到當(dāng)前時(shí)刻中。LSTM基于遺忘門和輸入門的輸出來更新細(xì)胞狀態(tài)。更新后的細(xì)胞狀態(tài)由2部分構(gòu)成:①來自上一時(shí)刻舊的細(xì)胞狀態(tài)信息;②當(dāng)前輸入新生成的信息。最后,基于更新的細(xì)胞狀態(tài),輸出隱藏狀態(tài)。
數(shù)據(jù)集由廣州計(jì)量自動(dòng)化系統(tǒng)采集105個(gè)工業(yè)用戶近2年的電量數(shù)據(jù)得到,采樣頻率為15 min一個(gè)點(diǎn)。對于每一個(gè)工業(yè)用戶,我們采取7月和8月共62 d的數(shù)據(jù),每天有96個(gè)點(diǎn)。
圖3 負(fù)荷數(shù)據(jù)
由于每個(gè)工業(yè)用戶的負(fù)荷數(shù)據(jù)特點(diǎn)不盡相同,所以,用單個(gè)用戶的數(shù)據(jù)進(jìn)行預(yù)測。在實(shí)驗(yàn)過程中,本文在不同種類的用戶中選取最具代表性的一個(gè)用戶進(jìn)行實(shí)驗(yàn)。每個(gè)用戶選取44 d的數(shù)據(jù)進(jìn)行訓(xùn)練,18 d的數(shù)據(jù)進(jìn)行測試。負(fù)荷數(shù)據(jù)具有明顯的周期性和規(guī)律性,如圖3所示。由于歷史數(shù)據(jù)的時(shí)間相關(guān)性比較強(qiáng),通過實(shí)驗(yàn)和統(tǒng)計(jì)發(fā)現(xiàn),利用用電負(fù)荷序列的前10個(gè)時(shí)刻點(diǎn)的數(shù)據(jù)信息來預(yù)測第11個(gè)時(shí)刻點(diǎn)的負(fù)荷可以得到較優(yōu)解,因此,LSTM的時(shí)間步長設(shè)置為10.
在采樣過程中,存在人為操作不當(dāng)、設(shè)備老化等問題,致使存在缺失值和異常數(shù)據(jù),因此,需要進(jìn)行數(shù)據(jù)預(yù)處理。負(fù)荷數(shù)據(jù)存在日周期的規(guī)律性,我們采用前一天的同一時(shí)刻的負(fù)荷數(shù)據(jù)補(bǔ)全。
由于LSTM及其他機(jī)器學(xué)習(xí)方法對數(shù)據(jù)尺度比較敏感,我們采用MinMax法進(jìn)行歸一化,歸一化后的數(shù)據(jù)值域變換到[0,1],計(jì)算公式如下:
為了提高預(yù)測精度,在負(fù)荷數(shù)據(jù)的基礎(chǔ)上添加時(shí)刻、日期、節(jié)假日的特征。由于采樣頻率為15 min,1 d中共有96個(gè)點(diǎn),我們采用one-hot編碼的形式將時(shí)刻信息轉(zhuǎn)換為96維的向量的形式,如果是某個(gè)時(shí)刻,則這個(gè)位置的值為1,否則為0.同理可得,日期信息為7維向量,節(jié)假日信息為1維向量。經(jīng)過這樣的處理后,每個(gè)時(shí)刻點(diǎn)的信息為105維的向量,對于每個(gè)用戶,數(shù)據(jù)集為5 952×105的矩陣。
LSTM所使用的特征包括:過去10個(gè)時(shí)刻的負(fù)荷序列L,過去節(jié)點(diǎn)的時(shí)刻I,每周的周幾D,是否為節(jié)假日H。LSTM的輸入量X={LT,ITDT,HT}.
預(yù)測結(jié)果誤差評估標(biāo)準(zhǔn)采用平均絕對百分誤差(Mean Absolute Percent Error),即:
式(8)中:為預(yù)測值;yi為真實(shí)值;n為樣本容量。
本文采用多變量單模型方法構(gòu)建網(wǎng)絡(luò)。由于LSTM網(wǎng)絡(luò)權(quán)重共享方式與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)不同,LSTM網(wǎng)絡(luò)需要學(xué)習(xí)的參數(shù)比傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)較少,方便了模型的建立,同時(shí)對于負(fù)荷預(yù)測具有很高的精度,這也是LSTM網(wǎng)絡(luò)在負(fù)荷預(yù)測上優(yōu)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的地方。LSTM模型的輸入節(jié)點(diǎn)為10個(gè),分別為前10個(gè)數(shù)據(jù)的信息,輸出節(jié)點(diǎn)為1個(gè),為第11個(gè)時(shí)刻點(diǎn)的負(fù)荷。本文基于Keras框架下設(shè)計(jì)LSTM網(wǎng)絡(luò)結(jié)構(gòu),LSTM的單元數(shù)為10,在LSTM結(jié)構(gòu)的基礎(chǔ)上,加入兩層全連接層,激活函數(shù)分別為relu和sigmoid函數(shù)。結(jié)構(gòu)如圖4所示。
如圖5所示,使用訓(xùn)練好的LSTM模型對測試集中的數(shù)據(jù)進(jìn)行預(yù)測,并選取典型用戶的某一天的數(shù)據(jù)進(jìn)行展示,發(fā)現(xiàn)具有較高的精度。
在對比實(shí)驗(yàn)中,本文選取支持向量回歸SVR、隨機(jī)森林RF、人工神經(jīng)網(wǎng)絡(luò)ANN模型和LSTM模型作對比。在支持向量回歸模型中,懲罰系數(shù)C設(shè)置為20,誤差閾值設(shè)為0.1,核函數(shù)選擇rbf核函數(shù)。在隨機(jī)森林回歸模型中,設(shè)置10個(gè)樹,樹的最大深度為3.在人工神經(jīng)網(wǎng)絡(luò)模型中,輸入層為64個(gè)神經(jīng)元,隱藏層為10個(gè)神經(jīng)元,輸出層為1個(gè)神經(jīng)元,激活函數(shù)為sigmoid函數(shù),迭代輪數(shù)為200輪。
圖4 LSTM模型結(jié)構(gòu)
圖5 預(yù)測結(jié)果與實(shí)際結(jié)果
如表1所示,選取各類工業(yè)用戶中最具代表性的工業(yè)用戶的預(yù)測數(shù)據(jù)進(jìn)行展示。由以上結(jié)果可知,LSTM的MAPE最低可達(dá)5.82%,具有很高的準(zhǔn)確性。同時(shí),LSTM模型對電力負(fù)荷的預(yù)測誤差顯著低于別的方法,這證明了LSTM在實(shí)際中的使用效果要優(yōu)于別的方法,在實(shí)際應(yīng)用中有較大的價(jià)值。
表1 各模型MAPE對比
本文首先分析負(fù)荷數(shù)據(jù)的特點(diǎn),發(fā)現(xiàn)不同用戶的負(fù)荷數(shù)據(jù)具有較大的差異,每個(gè)用戶的負(fù)荷數(shù)據(jù)具有較強(qiáng)的規(guī)律性和周期性。因此,本文使用用戶級數(shù)據(jù),基于歷史時(shí)刻的特征,采用LSTM網(wǎng)絡(luò)模型。然后介紹了LSTM模型的原理和結(jié)構(gòu),解釋了為什么LSTM模型適用于負(fù)荷預(yù)測。隨后討論了網(wǎng)絡(luò)的設(shè)計(jì),并在歷史時(shí)刻的負(fù)荷數(shù)據(jù)的基礎(chǔ)上,綜合時(shí)刻、日期、節(jié)假日的信息,全方面整合歷史時(shí)刻的信息,并通過one-hot編碼數(shù)值化,使得輸入量具有很大的信息量。最后,采用廣州計(jì)量自動(dòng)化系統(tǒng)采集的實(shí)際數(shù)據(jù)進(jìn)行仿真,將數(shù)據(jù)進(jìn)行預(yù)處理后輸入進(jìn)模型進(jìn)行訓(xùn)練預(yù)測,結(jié)果證明基于LSTM 神經(jīng)網(wǎng)絡(luò)的負(fù)荷預(yù)測模型具有更高的精確度和更好的適用性。
[1]張宇航,邱才明,賀興,等.一種基于LSTM神經(jīng)網(wǎng)絡(luò)的短期用電負(fù)荷預(yù)測方法[J].電力信息與通信技術(shù),2017(9).
[2]中華人民共和國國家統(tǒng)計(jì)局.年度數(shù)據(jù)查詢[EB/OL].[2018-01-07].http://data.stats.gov.cn/easyquery.htm?Cn=C01.
[3]王康琪.智能電網(wǎng)環(huán)境中基于動(dòng)態(tài)價(jià)格的需求響應(yīng)策略[D].合肥:中國科學(xué)技術(shù)大學(xué),2014.
[4]Elattar EE,Goulermas J,Wu Q H.Electric Load Forcasting Based on Locally Weighted Support Vector Regression[J].IEEE TRansactions on systems,Man,and Cybernetics,Part C(Applicationsand Reviews),2010,40(4):438-447.
[5]Lin W,Tu C,Yang R,et al.Particle swarm optimisation aided least-square support vector machine for load forecast with spikes[J].IET Generation,Transmission&Distribution,2016,10(5):1145-1153.
[6]Huaiguang Jiang,Yingchen Zhang,E Muljadi,et al.A short-term and high-resolution distribution system load forecasting approach using support vector regression with hybrid parameters optimization[J].IEEETransactions on Smart Grid,2017,11(18):1.
[7]Xiaoyu Wu,Jinghan He,Tony Yip,et al.A two-stage random forest method for short-term load forecasting[J].Power and Energy Society General Meeting(PESGM),2016:1-5.
[8]Ying-Ying Cheng,Patrick P.K Chan,et al.Random forest based ensemble system for short term load forecasting[C]//Machine Learning and Cybernetics(ICMLC).2012 International Conference,2012:52-56.