關(guān)蕾
(西安職業(yè)技術(shù)學(xué)院, 建筑與軌道交通學(xué)院, 陜西, 西安 710000)
電力負(fù)荷預(yù)測(cè)在保證電力系統(tǒng)規(guī)劃與可靠、經(jīng)濟(jì)運(yùn)行等方面十分重要。輸電公司根據(jù)負(fù)荷預(yù)測(cè)結(jié)果可以合理地安排系統(tǒng)運(yùn)行方式和制定發(fā)電計(jì)劃,以維持電網(wǎng)的安全、穩(wěn)定和經(jīng)濟(jì)運(yùn)行[1-2]。電力負(fù)荷預(yù)測(cè)在綜合考慮地區(qū)生活水平以及電網(wǎng)運(yùn)行特性等條件的基礎(chǔ)上,通過(guò)研究得到一個(gè)有效分析歷史負(fù)荷數(shù)據(jù)從而預(yù)測(cè)出未來(lái)某個(gè)時(shí)間段內(nèi)電力負(fù)荷情況[3-4]。陳銳彬等證明了BP神經(jīng)網(wǎng)絡(luò)算法比傳統(tǒng)的數(shù)理統(tǒng)計(jì)預(yù)測(cè)更實(shí)用。深度學(xué)習(xí)能夠使得對(duì)一個(gè)網(wǎng)絡(luò)的訓(xùn)練取得更高的準(zhǔn)確率,更精準(zhǔn)地對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行預(yù)測(cè),現(xiàn)已成為預(yù)測(cè)領(lǐng)域內(nèi)的新課題[5-7]。
為了更好地預(yù)測(cè)用電負(fù)荷,本文提出了一種基于改進(jìn)深度信念網(wǎng)絡(luò)(Deep Belief Network, DBN)的預(yù)測(cè)模型方法。首先對(duì)樣本集進(jìn)行預(yù)處理,利用歸一化操作消除不同量綱間的影響,從而為模型提供更加可靠的數(shù)據(jù)。其次,利用遺傳算法(Genetic Algorithm, GA)選取DBN模型的初始權(quán)重,從而避免了隨機(jī)初始權(quán)重時(shí)造成模型參數(shù)對(duì)訓(xùn)練精度的影響[8-11]。再次,利用數(shù)據(jù)集對(duì)改進(jìn)的DBN模型訓(xùn)練,得到用電負(fù)荷預(yù)測(cè)模型。最后,通過(guò)預(yù)測(cè)得到的負(fù)荷值來(lái)彌補(bǔ)未來(lái)時(shí)間序列中負(fù)荷值的缺失。仿真對(duì)比試驗(yàn)驗(yàn)證了提出的改進(jìn)DBN模型的精確性。
深度學(xué)習(xí)的領(lǐng)軍人物Hinton于2006年提出了深度信念網(wǎng)絡(luò)的方法,與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法不同的是,深度信念網(wǎng)絡(luò)方法含有更多的隱藏層,每一層都表示數(shù)據(jù)的一種特征,把低層次的特征組合后可以抽取出更高層次的特征。深度信念網(wǎng)絡(luò)由多層受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM)疊加而成,即RBM是構(gòu)建DBN的基本組成單元。
受限玻爾茲曼機(jī)是一種僅由兩層的神經(jīng)元結(jié)點(diǎn)構(gòu)成的網(wǎng)絡(luò)模型,是一種概率模型。RBM由可見(jiàn)層和隱藏層構(gòu)成。RBM中任意2個(gè)相連接的神經(jīng)元之間都有一個(gè)權(quán)重w表示其連接強(qiáng)度,且每個(gè)神經(jīng)元自身也有一個(gè)偏置系數(shù)a和b來(lái)表示其自身的權(quán)重,則RBM還存在能量值。圖1中,wij為層間的權(quán)重,ai為可見(jiàn)層偏置量,bj為隱藏層偏置量,θ=w,a,b為一個(gè)RBM的參數(shù)。RBM的網(wǎng)絡(luò)訓(xùn)練過(guò)程就是不斷調(diào)整參數(shù)θ的過(guò)程,使樣本數(shù)據(jù)在參數(shù)θ下的概率達(dá)到最大。
DBN是一個(gè)由若干個(gè)RBM構(gòu)成的模型。在訓(xùn)練過(guò)程中,首先對(duì)第一個(gè)RBM進(jìn)行訓(xùn)練,用CD-1算法計(jì)算出第一個(gè)RBM的權(quán)重和偏移量,再令隱藏層神經(jīng)元的計(jì)算輸出作為第二層RBM可見(jiàn)層的輸入數(shù)據(jù)來(lái)訓(xùn)練第二個(gè)RBM。將2個(gè)RBM相連接。重復(fù)以上步驟多次,則構(gòu)成了一個(gè)深度信念網(wǎng)絡(luò)的模型,這是一個(gè)典型的無(wú)監(jiān)督訓(xùn)練的過(guò)程。深度信念網(wǎng)絡(luò)模型如圖1所示。

圖1 深度信念網(wǎng)絡(luò)模型
首先通過(guò)樣本數(shù)據(jù)進(jìn)入訓(xùn)練一個(gè)單層網(wǎng)絡(luò),計(jì)算單層網(wǎng)絡(luò)的每一個(gè)神經(jīng)元,再計(jì)算下一層,直到計(jì)算出每一層的神經(jīng)元。方向向上的權(quán)重學(xué)習(xí)用作“認(rèn)知”,方向向下的權(quán)重學(xué)習(xí)用作“生成”,再使用Wake-Sleep算法,微調(diào)整個(gè)網(wǎng)絡(luò)所有權(quán)重。Wake-Sleep算法的原則是讓訓(xùn)練網(wǎng)絡(luò)的每一次“認(rèn)知”權(quán)重學(xué)習(xí)都與每一次的“生成”權(quán)重學(xué)習(xí)保持一致,以此保證最高的準(zhǔn)確率。
遺傳算法是一種通過(guò)模擬自然進(jìn)化過(guò)程搜索最優(yōu)解的方法。首先,隨機(jī)初始化種群,將適應(yīng)度值或迭代次數(shù)作為終止條件。遺傳算法需要對(duì)所有的解進(jìn)行編碼,然后通過(guò)判斷是否達(dá)到終止條件,若未達(dá)到終止條件,就開(kāi)始交叉、變異、感染,然后再次進(jìn)行判斷是否達(dá)到終止條件,依次循環(huán),直到達(dá)到終止條件。事實(shí)上,每一循環(huán)都淘汰掉性能不優(yōu)的個(gè)體,這樣就意味著向更優(yōu)解進(jìn)化。遺傳算法流程圖如圖2所示。

圖2 遺傳算法流程圖
負(fù)荷預(yù)測(cè)模型從歷史負(fù)荷數(shù)據(jù)中產(chǎn)生對(duì)未來(lái)一段時(shí)間的預(yù)測(cè)值,選擇正確的預(yù)測(cè)模型對(duì)于預(yù)測(cè)效果影響較大。無(wú)論想要對(duì)哪種類型的電力負(fù)荷進(jìn)行預(yù)測(cè),也無(wú)論采用哪種方式對(duì)電力負(fù)荷進(jìn)行預(yù)測(cè),科學(xué)的負(fù)荷預(yù)測(cè)都必須綜合各方面因素來(lái)制定出正確合理的預(yù)測(cè)步驟。
為了解決傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)存在容易陷入局部極小值、訓(xùn)練速度慢、需要信號(hào)指導(dǎo)網(wǎng)絡(luò)訓(xùn)練等缺點(diǎn),并且為了能夠使海量的數(shù)據(jù)信息得到充分的利用,使網(wǎng)絡(luò)能夠更加準(zhǔn)確的進(jìn)行負(fù)荷預(yù)測(cè),本文提出了一種基于改進(jìn)DBN的用電負(fù)荷預(yù)測(cè)模型方法,如圖3所示。

圖3 基于改進(jìn)DBN的用電負(fù)荷預(yù)測(cè)模型方法
本文的數(shù)據(jù)來(lái)自2017年1月至3月的澳大利亞新南威爾士州用電量,數(shù)據(jù)每30分鐘采集一次。對(duì)于模型輸入特征的參數(shù)來(lái)說(shuō),如果特征數(shù)較少,模型不能夠很好地捕捉數(shù)據(jù)中隱藏的基本特征,從而使模型預(yù)測(cè)的精度有較大的降低。相對(duì)來(lái)說(shuō),如果輸入的特征數(shù)過(guò)多,但是由于數(shù)據(jù)量較少,從而導(dǎo)致模型會(huì)過(guò)度依賴于樣本集,從而使模型的泛化性能降低。所以,為了使本文的用電負(fù)荷預(yù)測(cè)模型能夠有較好的精度,從而將輸入的特征量確定為96,并利用移動(dòng)的窗口量進(jìn)行連續(xù)預(yù)測(cè)時(shí)間序列值。樣本集的建立過(guò)程如表1所示。

表1 樣本集的建立過(guò)程
通過(guò)數(shù)據(jù)預(yù)處理進(jìn)行數(shù)據(jù)的清洗,為模型提供更加可靠的輸入數(shù)據(jù),從而能夠獲得更為準(zhǔn)確的用電負(fù)荷預(yù)測(cè)模型。由于神經(jīng)網(wǎng)絡(luò)的輸出層激活函數(shù)的值域被限制在[0,1]區(qū)間內(nèi),故將樣本數(shù)據(jù)也要?dú)w一化到[0,1]區(qū)間,如式(1):
(1)
其中,xmax表示樣本數(shù)據(jù)中的最大值,xmin表示樣本數(shù)據(jù)中的最小值。
將遺傳算法和吉布斯采樣相結(jié)合,對(duì)DBN進(jìn)行預(yù)訓(xùn)練獲得初始參數(shù)。DBN的預(yù)訓(xùn)練是通過(guò)無(wú)監(jiān)督學(xué)習(xí)算法來(lái)實(shí)現(xiàn),即最底層RBM通過(guò)吉布斯—遺傳算法學(xué)習(xí)得到其權(quán)值矩陣W1,然后通過(guò)p(h1|v)得出隱含層h1,低層的輸出作為高層的輸入,重復(fù)利用該算法逐層訓(xùn)練RBM,得到所有的網(wǎng)絡(luò)權(quán)值。Gibbs采樣算法雖然可以用來(lái)訓(xùn)練RBM,但當(dāng)特征較大時(shí),訓(xùn)練效率較低。經(jīng)過(guò)反復(fù)演算驗(yàn)證,對(duì)比散度算法(Contrastive Divergence,CD-k)與Gibbs采樣不同的是,當(dāng)訓(xùn)練樣本數(shù)據(jù)初始化為v0時(shí),僅需要使用k步(通常k=1)Gibbs采樣就可得到比較好的近似效果。此后對(duì)比散度算法被廣泛應(yīng)用到RBM的計(jì)算中。因此,可以獲得DBN網(wǎng)絡(luò)的整體訓(xùn)練過(guò)程。
利用遺傳算法獲得DBN的參數(shù),算法的主要步驟如下。
Step 1:初始化種群。將RBM的權(quán)值按照實(shí)數(shù)編碼方式進(jìn)行編碼。
Step 2: 構(gòu)造適應(yīng)度函數(shù)如式(2),
(2)
Step 3:選擇操作,將優(yōu)良個(gè)體i從中群眾選出遺傳到下一代的概率定義為式(3),
(3)
其中,c為種群總數(shù)目;Fi為個(gè)體i的適應(yīng)度值。
Step 4:交叉操作,將配對(duì)個(gè)體通過(guò)交叉產(chǎn)生新個(gè)體遺傳到下一代,其操作為式(4),

(4)
其中,gk1j和gk2j分別為k1和k2個(gè)體在第j位的基因;r為[0,1]的隨機(jī)數(shù)。
Step 5:變異操作,將個(gè)體的某些基因以變異概率發(fā)生變異,其操作方法為式(5),

(5)
其中,gmax和gmin為基因gij的上、下界;r1和r2為隨機(jī)數(shù),s為當(dāng)前迭代次數(shù),smax為最大進(jìn)化次數(shù)。
Step 6:計(jì)算適應(yīng)度函數(shù)值,若滿足結(jié)束條件,則根據(jù)為式(6),
Δa=a+α(vj-vj+1)
(6)
Δb=b+α(p(hi=1|vj)-p(hi+1=1|vj+1))
通過(guò)式(6)來(lái)修正RBM的權(quán)值和偏置系數(shù),若不滿足則返回Step 3。
Step 7:從可見(jiàn)層開(kāi)始對(duì)DBN逐層進(jìn)行預(yù)訓(xùn)練,直到全部預(yù)訓(xùn)練完成。
本文的數(shù)據(jù)來(lái)自2017年1—3月的澳大利亞新南威爾士州用電量[15],數(shù)據(jù)每30分鐘進(jìn)行一次采集,即一天24小時(shí)內(nèi)獲得48個(gè)負(fù)荷樣本數(shù)據(jù)。在獲得數(shù)據(jù)樣本集后,根據(jù)前96個(gè)樣本數(shù)據(jù)來(lái)預(yù)測(cè)第97個(gè)樣本數(shù)據(jù),以此來(lái)解決電力負(fù)荷預(yù)測(cè)問(wèn)題。本文選取了1392個(gè)樣本,其中第1297至第1392個(gè)樣本作為測(cè)試集,其余樣本作為測(cè)試集。
搭建DBN網(wǎng)絡(luò)模型來(lái)預(yù)測(cè)短期電力負(fù)荷數(shù)據(jù)之前,首先要明確影響到模型效果的相關(guān)因素,確定好網(wǎng)絡(luò)層數(shù)以及網(wǎng)絡(luò)節(jié)點(diǎn)的個(gè)數(shù)。
Step 1: 網(wǎng)絡(luò)層數(shù)的構(gòu)建。
從原理上來(lái)說(shuō),隱藏層數(shù)越大,神經(jīng)網(wǎng)絡(luò)的處理能力越強(qiáng)。然而,隱藏層數(shù)過(guò)大會(huì)使得訓(xùn)練時(shí)間長(zhǎng),容易陷入局部極小值,發(fā)生梯度彌散現(xiàn)象。

Step 2:RBM節(jié)點(diǎn)數(shù)的確定。
利用DBN深度信念網(wǎng)絡(luò)對(duì)電力負(fù)荷數(shù)據(jù)進(jìn)行預(yù)測(cè),前文已經(jīng)提到輸入神經(jīng)元個(gè)數(shù)為96個(gè),即用前96個(gè)數(shù)據(jù)預(yù)測(cè)第97個(gè)數(shù)據(jù)。
Step 3:模型微調(diào)。
為了更加清晰明了地顯示出DBN網(wǎng)絡(luò)的訓(xùn)練效果和預(yù)測(cè)效果,首先分別畫(huà)出RBM的重構(gòu)誤差曲線,再用共軛梯度的方法對(duì)參數(shù)進(jìn)行調(diào)優(yōu)之后分別畫(huà)了訓(xùn)練數(shù)據(jù)的預(yù)測(cè)誤差曲線和測(cè)試數(shù)據(jù)的預(yù)測(cè)誤差曲線。最后再分別對(duì)訓(xùn)練樣本和測(cè)試樣本畫(huà)了預(yù)測(cè)值和真實(shí)值的對(duì)比曲線。
為了對(duì)基于改進(jìn)DBN的用電負(fù)荷預(yù)測(cè)模型進(jìn)行對(duì)比,并能夠反映出深層網(wǎng)絡(luò)對(duì)特征信息的利用程度,首先進(jìn)行基于BP網(wǎng)絡(luò)的用電負(fù)荷模型的仿真分析,然后再對(duì)改進(jìn)DBN模型進(jìn)行仿真分析,從而通過(guò)對(duì)比分析來(lái)獲得最優(yōu)模型性能。
3.3.1 基于BP網(wǎng)絡(luò)的用電負(fù)荷模型仿真
從原理上來(lái)說(shuō),隱藏層數(shù)越大,神經(jīng)網(wǎng)絡(luò)的處理能力越強(qiáng),然而,前文提到,隱藏層數(shù)過(guò)大會(huì)使得訓(xùn)練時(shí)間長(zhǎng),容易陷入局部極小值,發(fā)生梯度彌散現(xiàn)象。本文的BP網(wǎng)絡(luò)采用3層網(wǎng)絡(luò)。
隨著B(niǎo)P神經(jīng)網(wǎng)絡(luò)的不斷完善,研究人員已經(jīng)計(jì)算出比較合適的隱藏節(jié)點(diǎn)數(shù)經(jīng)驗(yàn)式如式(7):
(7)
其中,h為隱藏節(jié)點(diǎn)數(shù),m為輸入層節(jié)點(diǎn)數(shù),n為輸出層節(jié)點(diǎn)數(shù),a是[1,10]之間的常數(shù)。
本文中,輸入層節(jié)點(diǎn)數(shù)取96,輸出層節(jié)點(diǎn)數(shù)取1,a取5,隱藏層節(jié)點(diǎn)數(shù)為15。由于本次研究中的負(fù)荷數(shù)據(jù)為時(shí)間序列,故在進(jìn)行網(wǎng)絡(luò)訓(xùn)練之前需要將時(shí)間序列轉(zhuǎn)換為樣本集。本次研究中激勵(lì)函數(shù)選擇sigmoid函數(shù)。對(duì)于BP網(wǎng)絡(luò),選擇不同數(shù)目的訓(xùn)練樣本有不同的結(jié)果,結(jié)果如表2所示。

表2 不同訓(xùn)練樣本下的訓(xùn)練結(jié)果
從表2中可以看出,訓(xùn)練樣本數(shù)的多少對(duì)訓(xùn)練效果有一定的影響。以300個(gè)訓(xùn)練樣本數(shù)為例對(duì)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果的分析,迭代10 000次后,總訓(xùn)練時(shí)間為21秒,梯度也滿足精度要求。網(wǎng)絡(luò)訓(xùn)練完成后,用訓(xùn)練好的網(wǎng)絡(luò)對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),得到圖4(a),可以看出,實(shí)際值和預(yù)測(cè)值有一定誤差,在用電量上升階段誤差尤為明顯,可見(jiàn)BP網(wǎng)絡(luò)有待改善。測(cè)試集的相對(duì)誤差如圖4(b)所示。

(a)
對(duì)1000個(gè)測(cè)試樣本進(jìn)行預(yù)測(cè)的相對(duì)誤差在[-0.35,0.68]之間,表明網(wǎng)絡(luò)能夠?qū)﹄娏ω?fù)荷進(jìn)行預(yù)測(cè),但是效果不是很好。對(duì)比訓(xùn)練樣本和測(cè)試樣本的兩組曲線,可知該BP神經(jīng)網(wǎng)絡(luò)的泛化能力還有待改善。
3.3.2 基于改進(jìn)DBN的用電負(fù)荷模型的仿真
訓(xùn)練DBN時(shí)有許多預(yù)置參數(shù)對(duì)模型性能有很大的影響,在前面進(jìn)行訓(xùn)練、測(cè)試的時(shí)候都是將他們隨機(jī)置一個(gè)值。通過(guò)GA對(duì)它進(jìn)行優(yōu)化,將誤差作為適應(yīng)度函數(shù),尋找使誤差最小的初始參數(shù)。最終可以得到權(quán)重的學(xué)習(xí)速率為0.0635,可視節(jié)點(diǎn)的偏置學(xué)習(xí)速率為0.6862,隱含節(jié)點(diǎn)的偏置學(xué)習(xí)速率為0.2366,將其用于模型訓(xùn)練中。在本節(jié)中,采用96-100-50-25-1的結(jié)構(gòu)建立DBN數(shù)學(xué)模型,需要4層RBM受限玻爾茲曼機(jī),對(duì)每一個(gè)RBM進(jìn)行迭代訓(xùn)練,得到每一層RBM的重構(gòu)誤差,如圖5所示。

圖5 各層RBM的重構(gòu)誤差
由圖5可知,隨著迭代次數(shù)的增加,每一層RBM的重構(gòu)誤差都在減小。迭代了50次后,每一層RBM的重構(gòu)誤差均下降到0.02左右。在沒(méi)有進(jìn)行整體微調(diào)的情況下得到的重構(gòu)誤差已經(jīng)可以與BP神經(jīng)網(wǎng)絡(luò)相比較。對(duì)樣本數(shù)據(jù)進(jìn)行迭代尋優(yōu),得到樣本數(shù)據(jù)的預(yù)測(cè)誤差圖如圖6所示。
由圖6可以看出,在用共軛梯度的方法進(jìn)行了20次參數(shù)調(diào)優(yōu)之后,訓(xùn)練樣本數(shù)據(jù)的預(yù)測(cè)誤差已經(jīng)下降到了0.003左右,測(cè)試樣本的預(yù)測(cè)誤差也已經(jīng)下降到了0.005以下。利用模型對(duì)訓(xùn)練集、測(cè)試集進(jìn)行負(fù)荷預(yù)測(cè),改進(jìn)DBN模型預(yù)測(cè)結(jié)果如圖7所示。

圖6 樣本數(shù)據(jù)預(yù)測(cè)誤差圖

(a) 訓(xùn)練樣本
相比于BP神經(jīng)網(wǎng)絡(luò)方法對(duì)短期電力負(fù)荷數(shù)據(jù)進(jìn)行預(yù)測(cè),采用的DBN深度信念網(wǎng)絡(luò)中更加明顯地可以看出:測(cè)試集的預(yù)測(cè)值和實(shí)際值幾乎達(dá)到重合,DBN模型比BP網(wǎng)絡(luò)模型的泛化能力更強(qiáng)。預(yù)測(cè)結(jié)果比較如表3所示。

表3 預(yù)測(cè)結(jié)果指標(biāo)
相較于上一節(jié)BP神經(jīng)網(wǎng)絡(luò)0.001以上的均方誤差和20 s以上的運(yùn)算時(shí)間,可以看出改進(jìn)的DBN深度信念網(wǎng)絡(luò)模型具有更快的運(yùn)算速度以及更小的預(yù)測(cè)誤差。
本文分別使用BP網(wǎng)絡(luò)和改進(jìn)的DBN網(wǎng)絡(luò)對(duì)澳大利亞新南威爾士州的電力負(fù)荷進(jìn)行了短期預(yù)測(cè)。對(duì)比預(yù)測(cè)結(jié)果,BP神經(jīng)網(wǎng)絡(luò)的運(yùn)算時(shí)間是21 s,改進(jìn)的DBN網(wǎng)絡(luò)的運(yùn)算時(shí)間是11.34 s;BP網(wǎng)絡(luò)預(yù)測(cè)出的數(shù)據(jù)均方差為0.1左右;而改進(jìn)的DBN網(wǎng)絡(luò)預(yù)測(cè)出的數(shù)據(jù)均方差為0.002左右。綜上所述,改進(jìn)的DBN網(wǎng)絡(luò)的預(yù)測(cè)時(shí)間和預(yù)測(cè)精度都高于BP神經(jīng)網(wǎng)絡(luò)。且經(jīng)過(guò)多次試驗(yàn),改進(jìn)的DBN網(wǎng)絡(luò)的測(cè)試集預(yù)測(cè)誤差都在0.002左右,說(shuō)明改進(jìn)的DBN網(wǎng)絡(luò)對(duì)短期電力負(fù)荷預(yù)測(cè)具有較高的穩(wěn)定性,這是由改進(jìn)的DBN網(wǎng)絡(luò)的訓(xùn)練機(jī)制決定的。由于深度學(xué)習(xí)和傳統(tǒng)淺層神經(jīng)網(wǎng)絡(luò)每次運(yùn)算都能得到不同的結(jié)果,難免會(huì)導(dǎo)致網(wǎng)絡(luò)的不穩(wěn)定性,因此未來(lái)的研究中需要進(jìn)一步研究更強(qiáng)的算法解決這一問(wèn)題,使網(wǎng)絡(luò)更加穩(wěn)定。