張嘉嘉
(中國石化工程建設(shè)公司,北京 100101)
電力系統(tǒng)負荷預(yù)測是根據(jù)電力負荷、經(jīng)濟、社會、氣象等的歷史數(shù)據(jù),探索電力負荷歷史數(shù)據(jù)變化規(guī)律對未來負荷的影響,尋求電力負荷與相關(guān)因素之間的內(nèi)在聯(lián)系,從而對未來的電力負荷進行科學(xué)的預(yù)測[1],為電力系統(tǒng)規(guī)劃和運行提供可靠的依據(jù)[2]。
論文介紹了人工神經(jīng)網(wǎng)絡(luò)預(yù)測方法,并對日負荷數(shù)據(jù)進行程序仿真。在此基礎(chǔ)上,論文對人工神經(jīng)網(wǎng)絡(luò)中BP 算法進行了改進,建立了組合預(yù)測神經(jīng)網(wǎng)絡(luò)模型,使用了Matlab 中的cftool 工具箱對日負荷數(shù)據(jù)進行仿真,結(jié)果表明改進的組合預(yù)測神經(jīng)網(wǎng)絡(luò)模型具有更好的精度和應(yīng)用價值。
人工神經(jīng)網(wǎng)絡(luò)中一個重要部分就是單元聯(lián)接形式,也就是網(wǎng)絡(luò)的結(jié)構(gòu)形式。神經(jīng)網(wǎng)絡(luò)的命名往往根據(jù)他的結(jié)構(gòu)特點,或者根據(jù)采用的學(xué)習(xí)方法(簡稱算法)。目前常用的網(wǎng)絡(luò)結(jié)構(gòu)形式如下。
1)分層網(wǎng)絡(luò)(又稱前向多層網(wǎng)絡(luò),前饋網(wǎng)絡(luò)等)
分層網(wǎng)絡(luò)是指網(wǎng)絡(luò)中具有相同拓撲結(jié)構(gòu)地位的神經(jīng)元構(gòu)成的一個子集;它是作為有向圖的人工神經(jīng)網(wǎng)絡(luò)圖中處于同一列或同一行上的節(jié)點;它們是運算處理程序進行過程中的同一個段面;它所屬的每一神經(jīng)元的權(quán)向量參與構(gòu)成一個獨立的權(quán)矩陣。如果網(wǎng)絡(luò)中有多個這樣的人工神經(jīng)元子集,就構(gòu)成了一種多層網(wǎng)絡(luò)。多層網(wǎng)絡(luò)信息的前向傳遞處理過程是一個輸入特征向量從高維空間逐次映射的過程,是一個輸入向量按特征聚類的過程;是與生物系統(tǒng)的由感覺器官對外部世界事務(wù)特征的攝取知道認知完成這樣一個高度抽象的過程的過程完全類似的,是一件具有深邃含義事物的模型和數(shù)學(xué)的表征。
前饋網(wǎng)絡(luò)的基本要素是能用一個前向無環(huán)路有向圖表示,如圖1所示。
圖1 前向多層網(wǎng)絡(luò)示意
就是說,必須不存在前層神經(jīng)元輸出y 向后層傳遞的支路;更不允許一個神經(jīng)元的輸出向其自身輸入端傳送的支路,否則嚴(yán)重違反生物神經(jīng)元單向傳遞特性;嚴(yán)格的講存在同一層神經(jīng)元輸出向本層其他神經(jīng)元的輸入端傳遞支路的網(wǎng)絡(luò),也不應(yīng)屬于前向多層網(wǎng)絡(luò)。
2)互聯(lián)網(wǎng)絡(luò)(或稱反饋網(wǎng)絡(luò))
典型的反饋型網(wǎng)絡(luò)如圖2所示。
圖2 互聯(lián)網(wǎng)絡(luò)模型
圖3 BP 神經(jīng)網(wǎng)絡(luò)
圖2中每個節(jié)點都表示一個計算單元,同時接受外加輸入和其他各節(jié)點的反饋輸入,每個節(jié)點也都直接向外部輸出。Hopfield 網(wǎng)絡(luò)即屬于此種類型。在某些反饋網(wǎng)絡(luò)中,各神經(jīng)元除接受外加輸入與其他各節(jié)點反饋輸入之外,還包括自環(huán)反饋。
3)BP 網(wǎng)絡(luò)結(jié)構(gòu)
圖3是具有一個隱含層的BP(Back-Propagation)神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)圖(圖中輸入節(jié)點j=1,2,…,r;隱含節(jié)點i=1,2,…,s1;輸出節(jié)點k=1,2,…,s2),其輸入層神經(jīng)元數(shù)為r,隱含層神經(jīng)元數(shù)為s1,輸出層神經(jīng)元數(shù)為s2,隱含層神經(jīng)元的激活函數(shù)為,輸出層神經(jīng)元的激活函數(shù)為F2,輸入為P,輸出為A。如果不計輸入層,就可稱其為兩層神經(jīng)網(wǎng)絡(luò)。
盡管BP 算法在實際工程中得到了廣泛應(yīng)用,但也存在著自身的局限和不足,主要表現(xiàn)在收斂速度慢、局部極小值、訓(xùn)練癱瘓等問題。針對BP 算法的缺點,提出以下幾種改進方法。
1)動量法
該方法是在反向傳播法的基礎(chǔ)上,對每一個全職的變化再加上一項正比于前次權(quán)值變化量的值,并根據(jù)反向傳播法產(chǎn)生新的權(quán)值變化。帶有動量因子的權(quán)值調(diào)節(jié)公式為
式中,k為訓(xùn)練次數(shù);mc 為動量因子,一般取0.95左右。
2)自適應(yīng)調(diào)整學(xué)習(xí)速率算法
對于一個特定的問題要選擇適當(dāng)?shù)膶W(xué)習(xí)速率不是一件容易的事。學(xué)習(xí)速率選的太小,收斂太慢;選的太大,特有可能修正過頭,導(dǎo)致振蕩甚至發(fā)散。為了解決這一問題,可以再訓(xùn)練過程中自動調(diào)整學(xué)習(xí)速率。學(xué)習(xí)速率η的自適應(yīng)調(diào)整公式為
式中,SSE 為誤差平方和。
3)動量-自適應(yīng)調(diào)整學(xué)習(xí)速率算法
當(dāng)采用動量法時,BP 算法可以找到更優(yōu)的解;而采用自適應(yīng)調(diào)整學(xué)習(xí)速率法時,BP 算法可以縮短訓(xùn)練時間。綜合采用以上兩種算法,不僅可以避免網(wǎng)絡(luò)陷入局部極小值,而且還能加速網(wǎng)絡(luò)收斂。
4)利用Levenberg-Marquardt 學(xué)習(xí)規(guī)則
更新權(quán)值參數(shù)的L-M(Levenberg -Marquardt)學(xué)習(xí)規(guī)則為
式中,e為誤差矢量;J為網(wǎng)絡(luò)誤差對權(quán)值導(dǎo)數(shù)的雅可比(Jacobian)矩陣;I為單位矩陣;μ為一個標(biāo)量,其大小決定了算法是根據(jù)牛頓法還是梯度法完成。
Levenberg-Marquardt 優(yōu)化算法比前述幾種使用梯度下降法的BP 算法快很多,但它需要更多的內(nèi)存。
5)電力負荷組合預(yù)測[3]
組合預(yù)測方法是對同一個預(yù)測問題,將多個不同的預(yù)測模型有機地組合在一起,綜合各模型的優(yōu)點,以期有效地改善模型的擬合能力,提高預(yù)測精度。加權(quán)處理是一種常見的處理手段,基本思想是:在某一預(yù)測問題中,在某一時段的實際值為yt(t= 1,2,···,n)。對該問題有m種預(yù)測方法,其中利用第i種方法對t時段的預(yù)測值為f it(i= 1,2,···,m)。如果各種預(yù)測方法 的權(quán)重為W= [w1,w2,···,wm]T,滿足組合預(yù) 測模型可表示為
式中,w因子可用拉格朗日乘數(shù)法或其他數(shù)學(xué)規(guī)劃方法確定。
上述組合預(yù)測方法,只對權(quán)重進行線性組合,要求參加組合預(yù)測方法的誤差能保持穩(wěn)定,但電力系統(tǒng)負荷預(yù)測結(jié)果的誤差往往是非均勻性的,因而這種組合校正可就存在不足??紤]到人工神經(jīng)網(wǎng)絡(luò)對復(fù)雜線性的擬合能力,構(gòu)造了基于人工神經(jīng)網(wǎng)絡(luò)的組合預(yù)測模型。
采用人工神經(jīng)網(wǎng)絡(luò)進行組合預(yù)測的模型如圖4所示。
圖4 組合預(yù)測神經(jīng)網(wǎng)絡(luò)模型
其中模型1、模型2,…,模型m為不同的單個預(yù)測模型。輸入層神經(jīng)元個數(shù)m為不同的單個預(yù)測模型數(shù),輸入層為一個神經(jīng)元,即得到一個組合輸出,隱層個數(shù)可經(jīng)試驗確定。
選擇與預(yù)測量最近的n個已知值作為樣本,即把最近的n個已知值作為輸出,采用不同的單個預(yù)測模型對這n個已知值分別進行預(yù)測,其預(yù)測值即為神經(jīng)網(wǎng)絡(luò)的輸入,由此對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。對于訓(xùn)練好的神經(jīng)那個網(wǎng)絡(luò),當(dāng)輸入端為不同的單個模型預(yù)測值時,其輸出即為用神經(jīng)網(wǎng)絡(luò)組合后的預(yù)測值。
對文獻[4]某城市的2004年7月10-7月20日的整點有功負荷值進行仿真計算。數(shù)據(jù)見表1和表2。
表1 某城市7月10-20日的整點有功負荷值
表2 某城市7月10-20日的氣象因子數(shù)值
1)梯度下降BP 算法函數(shù)算例結(jié)果
采用梯度下降BP 算法對表1和表2的數(shù)據(jù)進行仿真,結(jié)果如圖5和表3所示。
預(yù)測結(jié)果輸出見表3。
圖5 梯度下降BP 算法訓(xùn)練結(jié)果
圖6 梯度下降動量BP 算法訓(xùn)練結(jié)果
2)基于梯度下降動量BP 算法
改進算法1 是基于動量-自適應(yīng)調(diào)整學(xué)習(xí)速率算法進行訓(xùn)練的人工神經(jīng)網(wǎng)絡(luò)模型。其中網(wǎng)絡(luò)結(jié)構(gòu)為3 層BP 網(wǎng)絡(luò),輸入層神經(jīng)元的個數(shù)為15,輸出層神經(jīng)元的個數(shù)為12,隱含層神經(jīng)元個數(shù)取為31,隱含層神經(jīng)元的傳遞函數(shù)采用tansig,輸出層神經(jīng)元的傳遞函數(shù)采用 purelin。網(wǎng)絡(luò)訓(xùn)練函數(shù)采用traingdm,相應(yīng)的學(xué)習(xí)函數(shù)為learngdm 具體訓(xùn)練參數(shù)是:動量因子為0.98,學(xué)習(xí)速率為0.2,訓(xùn)練指標(biāo)誤差為0.0001,最大訓(xùn)練步數(shù)為5000,每25 步顯示一次。計算結(jié)果如圖6和表4所示。
3)基于L-M 學(xué)習(xí)規(guī)則進行訓(xùn)練的人工神經(jīng)網(wǎng)絡(luò)模型的仿真
基于L-M 學(xué)習(xí)規(guī)則進行網(wǎng)絡(luò)訓(xùn)練,其中訓(xùn)練函數(shù)函數(shù)選用TRAΙNLM。具體的訓(xùn)練參數(shù)為:網(wǎng)絡(luò)訓(xùn)練函數(shù)采用trainlm,相應(yīng)的學(xué)習(xí)函數(shù)為learndm,學(xué)習(xí)速率為0.1,訓(xùn)練指標(biāo)誤差為0,最大訓(xùn)練步數(shù)為1000,每25 步顯示一次。其結(jié)果與實際值比較如圖7所示。經(jīng)計算,利用此方法預(yù)測數(shù)據(jù)的均方差達到6.2814e-004。
4)3 種算法預(yù)測結(jié)果比較
以下對上述3 種人工神經(jīng)網(wǎng)絡(luò)預(yù)測方法進行對比。3 種方法的預(yù)測結(jié)果如圖8所示,誤差見表5。
圖7 利用L-M 方法輸出的結(jié)果與實際值比較 (X 為實際值,Out 為預(yù)測值)
圖8 神經(jīng)網(wǎng)絡(luò)3 種方法預(yù)測值曲線圖比較
表3 梯度下降BP 法輸出值與實際值誤差比較
表4 梯度下降動量BP 法輸出值與實際值誤差比較
表5 梯度下降BP 算法與兩種改進方法應(yīng)用于日負荷預(yù)測的誤差值比較
由圖8可以表明,改進的算法進行預(yù)測的結(jié)果優(yōu)于沒有改進的方法,且在日負荷預(yù)測中,人工神經(jīng)網(wǎng)絡(luò)具有很明顯的優(yōu)勢。
對于變化快時間短的日負荷預(yù)測,人工神經(jīng)網(wǎng)絡(luò)方法能夠依靠其人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練得到更加適合的算法。在神經(jīng)網(wǎng)絡(luò)的方法中,通過選取不同的訓(xùn)練函數(shù),可以實現(xiàn)不同模型組合的非線性擬合,同時也提高了電力負荷預(yù)測的精度。利用Matlab 神經(jīng)網(wǎng)絡(luò)工具箱編程,使網(wǎng)絡(luò)訓(xùn)練程序比用其他語言編制的效率更高,訓(xùn)練時間更短。算例結(jié)果表明基于Matlab 神經(jīng)網(wǎng)絡(luò)工具箱的電力負荷組合預(yù)測模型簡潔、實用,并且具有較高精度。
[1] 康重慶,夏清,劉梅.電力系統(tǒng)負荷預(yù)測[M].北京:中國電力出版社,2007:4-22.
[2] 程浩忠.電力系統(tǒng)規(guī)劃[M].北京:中國電力出版社,2008:13-16.
[3] 劉雙,楊麗徙,王志剛,等.基于Matlab 神經(jīng)網(wǎng)絡(luò)工具箱的電力負荷組合預(yù)測模型[J].電力自動化設(shè)備,2003,23(3):59-61.
[4] 張德豐.Matlab 神經(jīng)網(wǎng)絡(luò)應(yīng)用設(shè)計[M].北京:機械工業(yè)出版社.2009:215-217.