應稼田 程良倫 林錦發(fā)
摘 要:文章針對風力發(fā)電特有的間歇性和不穩(wěn)定性等特性,提出一種雙存儲神經(jīng)元的長短時記憶(LSTM)模型(Du-LSTM)用于風電功率預測。通過建立雙存儲神經(jīng)元結(jié)構(gòu)的LSTM模型,對周期性較強和突變性較強的風電功率分別采用不同神經(jīng)元建模,有效解決受天氣劇烈變化影響下的風電功率預測精度較低的問題。實驗結(jié)果表明,預測誤差相對LSTM模型從10.4%下降到7.0%,改進后的Du-LSTM神經(jīng)網(wǎng)絡(luò)模型在預測精度和擬合度上優(yōu)于原始LSTM網(wǎng)絡(luò)模型。
關(guān)鍵詞:風電功率;神經(jīng)網(wǎng)絡(luò);趨勢預測
風力發(fā)電是一種清潔安全的能源,技術(shù)相對成熟,是具有大規(guī)模開發(fā)的可再生能源技術(shù)之一。然而風是隨機的、不可控的,這就導致風力發(fā)電具有不穩(wěn)定性,若能實現(xiàn)風電功率高精度預測,就能準確掌握風電變化趨勢,有利于消除風電對電網(wǎng)的不良影響,使其在電力市場具有更強的競爭力[1]。研究基于歷史數(shù)據(jù)的風電高精度預測對我國風電行業(yè)具有重要意義,已經(jīng)成為相關(guān)研究人員研究重點[2]。
風電功率預測方法主要有以下幾種:基于數(shù)值天氣預報系統(tǒng)的物理模型預測方法,統(tǒng)計預測方法和空間相關(guān)性方法[3],卡爾曼濾波法[4],遺傳算法與預測模型結(jié)合的預測方法[5-6]。隨著人工智能發(fā)展,神經(jīng)網(wǎng)絡(luò)在風電功率預測中應用最為廣泛[7-8]。其中,長短時記憶網(wǎng)絡(luò)模型(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)模型由于其可以記憶更長遠的歷史時間信息,在風電功率預測上表現(xiàn)更好。
針對風力具有季節(jié)性和波動性的特征,本文構(gòu)建雙存儲神經(jīng)元的長短時記憶神經(jīng)網(wǎng)絡(luò)模型(DU-LSTM),長時記憶單元存儲長期歷史風力數(shù)據(jù)進行訓練,風力出現(xiàn)短時大幅波動時將其存儲在短時記憶單元進行訓練??梢越鉀Q受天氣劇烈變化影響下風電功率變化大,導致預測精度較低的問題。最終提高了雙存儲神經(jīng)元LSTM模型的短期風電功率預測精度。
1 LSTM模型相關(guān)理論
LSTM是一種遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的特殊類型,可以學習長期依賴的信息[9-10]。盡管標準RNN模型能夠有效地處理非線性時間序列,但是主要存在兩個問題:一是由于梯度消失和梯度爆炸問題,RNN不能處理延遲過長的時間序列;二是訓練RNN模型需要預先確定延遲窗口長度,然而實際應用中很難自動地獲取這一參數(shù)的最優(yōu)值。LSTM模型改變了RNN的細胞模型,使之具有長期記憶能力。LSTM模型結(jié)果包含一組相互聯(lián)系的遞歸子網(wǎng)絡(luò),被稱為記憶模塊。每個記憶模塊包含一個或多個自相關(guān)的記憶信元和3個增值單元。它的前向算法可以表示為:
其中:i,f,c,o分別表示輸入門、遺忘門、細胞狀態(tài)、輸出門,W和b分別為對應的權(quán)重系數(shù)矩陣和偏置項,σ為sigmoid函數(shù)。
LSTM模型的前向傳播算法(Forward Propagation)跟反向傳播算法(Back Propagation,BP)神經(jīng)網(wǎng)絡(luò)的并無本質(zhì)不同,而其訓練過程采用的基于時間的反向傳播算法(Back Propagation Through Time,BPTT)是經(jīng)典BP的簡單變體,其目的也是從最后一步時間向前傳遞累積的殘差,其計算過程為:
(1)按照前向傳播算法(公式(1)—公式(5))計算LSTM模型中cell的輸出值。
(2)反向計算每個cell的誤差項,包括時間和網(wǎng)絡(luò)層兩個反向傳播方向。
(3)根據(jù)誤差,計算相應權(quán)重的梯度。
(4)應用基于梯度的優(yōu)化算法更新權(quán)重。
2 雙存儲LSTM模型實現(xiàn)
2.1 雙存儲LSTM神經(jīng)元
為了解決不同天氣因素情況下,長期時間因素和短時時間因素對風電功率預測不同程度的影響,本文提出了一種長時記憶單元和短時記憶單元相結(jié)合的雙存儲LSTM神經(jīng)元,定義變量ηt,用于判斷風電功率訓練所用的LSTM神經(jīng)元記憶單元。它們有不同的時間步長。對于時間t+1步的風電功率預測,長時記憶單元的時間步長為起始時間到t時刻。相對應的,短時記憶單元捕捉短周期內(nèi)的風電功率變化趨勢,其時間步長為預測時間點t之前的最短時間步長ω,即從t-ω+1到t時刻。這種雙存儲結(jié)構(gòu)的LSTM神經(jīng)元模型如圖1所示。其中h為LSTM層輸出,x為觀測特征,y為風電功率。
基于雙存儲神經(jīng)元的LSTM模型,需要定義兩組細胞,{ct(l)}和{ct(s)},分別記錄長時記憶單元信息和短時記憶單元信息。c(l)和c(s)有獨立的LSTM權(quán)重參數(shù),即對于長時記憶單元和短時記憶單元來說,它們的細胞狀態(tài),遺忘門和輸入門分別有其各自對應的權(quán)重矩陣,分別記為θ(l)={Wc(l),Wf(l),Wi(l)}和θ(s)={Wc(s),Wf(s),Wi(s)},但是它們的輸出門的權(quán)重矩陣Wo是共用的。在LSTM模型的訓練階段,參數(shù)θ(l)和θ(s)分別為長時記憶單元與短時記憶單元中的樣本數(shù)據(jù)訓練所得。在本文中,通過變量ηt來確定隱藏層輸出ht所屬記憶單元。ηt通過所觀測特征{P1,P2,Pn}計算所得。某些時間點的風電功率表現(xiàn)為季風特性,趨向于長期的風電功率變化特性,而對于某些時間點的風電功率表現(xiàn)為受短時極端天氣影響,則趨向于短期的大幅波動變化。長時記憶單元和短時記憶單元的選擇過程可以表示為:
當ηt大于0.5時,LSTM神經(jīng)元的細胞為長時記憶單元;當ηt小于等于0.5時,LSTM神經(jīng)元的細胞為短時記憶單元。
在已經(jīng)設(shè)計好的雙存儲LSTM模型上,結(jié)合Adam算法計算LSTM模型各個參數(shù)的自適應學習率。流程如圖2所示。
2.2 網(wǎng)絡(luò)訓練
網(wǎng)絡(luò)訓練主要是以隱藏層為研究對象。首先在LSTM神經(jīng)網(wǎng)絡(luò)輸入層中,定義原始的風電功率時間序列為Po={P1,P2,…,P3},將其劃分為訓練集Ptrain={P1,P2,…,Pm}和測試集Ptest={Pm+1,Pm+2,…,Pm+3}。接著對訓練集和測試集中的所有元素p進行標準化。
設(shè)定時間步長為L,對訓練集進行切割,切割后的模型輸入為:
公式(9)中的Cn-1和Hn-1為前一個LSTM神經(jīng)元的狀態(tài)和輸出,可由公式(1)到公式(5)求得。對于訓練過程中的損失函數(shù),采用均方根誤差作為誤差計算公式,訓練的目標是使得損失函數(shù)最小化。
2.3 網(wǎng)絡(luò)預測
將訓練完成的模型用于預測。預測采用迭代的過程,首先將LSTM訓練模型的最終輸出結(jié)果Yt={pm-L+1',pm-L+2',pm}作為輸入,輸入到訓練完成的LSTM模型(記為LSTMtrain),得到m+1時刻的預測值為pm+1。刪除Yt中第一個時間點的值pm-L+1,將pm+1與Yt合并為新的數(shù)據(jù)集。以此類推,可以得到最終的預測結(jié)果為:Yp={pm+1,pm+2,…,pn}。
得到預測結(jié)果后,對Yp進行反標準化,得到與測試集Ptest對應的預測序列Ytest={p*m+1,p*m+2,…,p*n}。
總的來說,Du-LSTM模型的訓練及預測過程如下。
步驟1 設(shè)置LSTM模型參數(shù)。包括輸入層維度,輸出層維度,LSTM層神經(jīng)元個數(shù),初始學習率。
步驟2 數(shù)據(jù)集切割與標準化處理。LSTM模型所用激勵函數(shù)為sigmoid函數(shù),其值域為[0,1],對數(shù)據(jù)集進行標準化處理。將數(shù)據(jù)集劃分為訓練集與訓練標簽。
步驟3 構(gòu)建雙存儲LSTM網(wǎng)絡(luò)模型,即Du-LSTM網(wǎng)絡(luò)模型。每個LSTM神經(jīng)元包括長時記憶單元與短時記憶單元兩個存儲塊,具體結(jié)構(gòu)如圖1所示。
步驟4 利用構(gòu)建好的LSTM模型對數(shù)據(jù)進行訓練,采用Adam算法對LSTM所有參數(shù)自適應其學習率。
步驟5 確定預測時間范圍,逐點預測風電功率。
3 實驗及結(jié)果分析
3.1 數(shù)據(jù)選取
為驗證所建立的預測模型的有效性,本文采用Global Energy Forecasting Competition 2012-Wind Forecasting的風電場數(shù)據(jù)為樣本進行風電功率預測。時間跨度為2010年1月1日到2012年6月28日。時間分辨率為1小時。所采集數(shù)據(jù)包括實際風電功率和風機監(jiān)測系統(tǒng)采集的緯度方向風分量,經(jīng)度方向風分量,風速和風向等。以單臺的異步風力發(fā)電機組為例,對該風電機組的短期風電功率進行預測。為了預測短期的風電機組輸出功率,將前一小時的風電機組輸出功率、后一小時的風速、風向、緯度方向風分量和經(jīng)度方向風分量作為網(wǎng)絡(luò)訓練的輸入。
對于風電功率預測模型中輸入的訓練特征風速、風電功率等,它們的量綱不一樣,數(shù)量級也不相同,因此,首先對訓練數(shù)據(jù)進行標準化處理,將訓練數(shù)據(jù)映射到[0,1],當使用訓練好的模型進行預測時,將預測所得的風電功率進行反標準化,則可得到真實數(shù)據(jù)。
風速是一個變化趨勢明顯的非線性函數(shù),對風電機組的發(fā)電功率影響最大。風速的變化呈現(xiàn)出一定的周期性,同時存在波動較大的特點。
設(shè)置LSTM模型的參數(shù)為:隱藏層數(shù)為2,每一層的神經(jīng)元個數(shù)為10,初始學習率為0.001,最大迭代次數(shù)1 000次;兩層的Dropout層,Dropout層神經(jīng)元丟棄率為0.2;一層池化層,激勵函數(shù)為relu函數(shù)。
3.2 方法評估及誤差分析
在實際建模過程中,選取了2012年6月27日到2012年6月28日作為預測時間段,預測這兩天內(nèi)48小時中每小時的風電功率。為了評價本文提出的Du-LSTM算法的預測效果,將通過上述的訓練樣本分別用Du-LSTM,LSTM和XGBoost(Extreme Gradient Boosting)模型訓練,并用同樣測試集預測檢驗。XGBoost最初是由Tianqi Chen提出,所應用的算法就是GBDT(Gradient Boost Decision Tree),近年來在kaggle等各大數(shù)據(jù)挖掘競賽展示了強大的能力,有兩個以上的團隊采用XGBoost算法獲得最終冠軍。圖3是本文方法的預測結(jié)果。
由圖3可以看出,本文提出的Du-LSTM模型不僅能很好地逼近風電功率時間序列,同時也能迅速趨近風電功率變化趨勢。
為了判定模型預測結(jié)果的有效性,采用絕對平均誤差,均方根誤差RMSE和相對系數(shù)R-square作為模型預測的評價指標。其中絕對平均誤差MMAPE和RMSE用來評估模型預測結(jié)果的準確性,而相對系數(shù)R-square是通過數(shù)據(jù)的變化來表征一個擬合的好壞。“確定系數(shù)”的正常取值范圍為[0,1],越接近1,表明模型的解釋能力越強,這個模型對數(shù)據(jù)擬合得也較好。
為進一步驗證預測模型的有效性,分別利用原始LSTM和XGBoost建立風電功率預測模型。其中原始LSTM和XGBoost的模型參數(shù)初始學習率,迭代次數(shù)與Du-LSTM的對應參數(shù)保持一致,采用與Du-LSTM相同的訓練樣本和測試樣本數(shù)據(jù),同樣計算對應的絕對平均誤差、RMSE和R-square。圖4是各個方法每個時間點的絕對平均誤差對比圖。絕對平均誤差、RMSE和R-square的對比如表1所示。
由圖4和表1可得,Du-LSTM在絕對平均誤差、RMSE和R-square 3種指標上的表現(xiàn)均優(yōu)于原始LSTM和XGBoost,說明其在預測精度和模型擬合度上表現(xiàn)都是最好的。尤其是相對于原始LSTM,絕對平均誤差從19.40%下降到12.90%,RMSE從10.40%下降到7.04%,R-square從85.04%提升到93.20%。提升效果較為明顯。
4 結(jié)語
本文在LSTM模型基礎(chǔ)上,提出了雙存儲神經(jīng)元結(jié)構(gòu)LSTM模型對風電功率趨勢進行預測,可以很好地預測未來風電功率值。
通過將Adam算法與LSTM模型結(jié)合,改變單一學習率更新網(wǎng)絡(luò)模型參數(shù)為自適應學習率更新網(wǎng)絡(luò)模型參數(shù)。
在相同的數(shù)據(jù)條件下,Du-LSTM的雙存儲神經(jīng)元結(jié)構(gòu)能夠更好地處理長期與短期訓練特征,使之預測結(jié)果相對LSTM模型預測精度更高,擬合度更好。在絕對平均誤差,RMSE和R-square上均有提升。但是在運算的速度上,本文的算法相對較慢,主要原因是兩層的LSTM模型訓練過程時間復雜度更高。
對于其他預測算法,其他數(shù)據(jù),本文提出算法是否同樣具有優(yōu)越性還有待進一步深入研究。
[參考文獻]
[1]鄭婷婷,王海霞,李衛(wèi)東.風電預測技術(shù)及其性能評價綜述[J].南方電網(wǎng)技術(shù),2013(2):104-109.
[2]谷興凱,范高鋒,王曉蓉,等.風電功率預測技術(shù)綜述[J].電網(wǎng)技術(shù),2007(S2):335-338.
[3]安學利,蔣東翔.風力發(fā)電機組運行狀態(tài)的混沌特性識別及其趨勢預測[J].電力自動化設(shè)備,2010(3):15-19.
[4]潘迪夫,劉輝,李燕飛.基于時間序列分析和卡爾曼濾波算法的風電場風速預測優(yōu)化模型[J].電網(wǎng)技術(shù),2008(7):82-86.
[5]周洪煜,曾濟貧,王照陽,等.基于混沌DNA遺傳算法與PSO組合優(yōu)化的RNN短期風電功率預測[J].電力系統(tǒng)保護與控制,2013(2):144-149.
[6]楊洪,古世甫,崔明東,等.基于遺傳優(yōu)化的最小二乘支持向量機風電場風速短期預測[J].電力系統(tǒng)保護與控制,2011(11):44-48.
[7]張穎超,王雅晨,鄧華,等.基于IAFSA-BPNN的短期風電功率預測[J].電力系統(tǒng)保護與控制,2017(7):58-63.
[8]范高鋒,王偉勝,劉純,等.基于人工神經(jīng)網(wǎng)絡(luò)的風電功率預測[J].中國電機工程學報,2008(34):118-123.
[9]HAO X,DU Q H,REYNOLDS M.SS-LSTM: a hierarchical lstm model for pedestrian trajectory prediction[C].Lake Placid:IEEE Winter Conference on Applications of Computer Vision,IEEE Computer Society,2018:1186-1194.
[10]KUMAR V,KUMAR V,KUMAR V,et al.Incremental dual-memory lstm in land cover prediction[C].Chicago:ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,ACM,2017:867-876.