王 瑞,王強強,逯 靜
(河南理工大學 計算機科學與技術(shù)學院,焦作 454000)
隨著智能電網(wǎng)在世界范圍的建設和相關(guān)技術(shù)的發(fā)展,現(xiàn)代化電網(wǎng)產(chǎn)生大量負荷數(shù)據(jù),如何在這些數(shù)據(jù)之間尋找負荷預測需要的信息,對今后智能電網(wǎng)的建設有著至關(guān)重要的意義[1,2]。最初的負荷預測方法依賴于工作經(jīng)驗豐富的電網(wǎng)人員的判斷,由于沒有科學依據(jù),以及工作人員背景不同會使得負荷預測沒有普遍性。隨著智能電網(wǎng)的建設普及,研究人員可以獲取海量電網(wǎng)數(shù)據(jù),因此相繼涌現(xiàn)出多種建立在數(shù)學理論的負荷預測方法,例如經(jīng)典的模型有灰色理論[3]、人工神經(jīng)網(wǎng)絡[4]、人工神經(jīng)網(wǎng)絡與灰色理論結(jié)合[5]、支持向量機[6]和決策樹[7]等。這些經(jīng)典算法由于自身或其他原因,使得負荷預測精度遠遠不能滿足電力市場的需要。
在1985年英國,據(jù)估計每增加百分之一的負荷預測錯誤就導致一千萬英鎊的損失[8]。電力行業(yè)需要更加準確的負荷預測數(shù)據(jù)才能做出合適的電力規(guī)劃和管理策略。一個精準的負荷預測能夠最小化電力供給和實際需求的差距,為了滿足未來的電力需求和降低短期電力不足的壓力,一些實時技術(shù)創(chuàng)新應運而生。在近幾十年中為了提高預測精準度,各種負荷預測的新技術(shù)相繼提出。但是由于天氣情況、經(jīng)濟狀況和電力系統(tǒng)的非線性因素和人們隨機使用電器行為等導致很難進行精準的電力預測[9]。隨著科技的發(fā)展,負荷預測愈加準確,由于負荷預測失誤導致經(jīng)濟的負面影響漸漸減低。電力市場的制定者需要更準確的負荷預測數(shù)據(jù)獲取利潤和優(yōu)化公共事業(yè)。
一般來說,能源管理系統(tǒng)(EMS)使用四種類型的負荷預測去設計電力方案:1)短期負荷預測,要求預測幾分鐘到一周內(nèi)的電力;2)中期負荷預測要求預測超過一周最多幾個月的電力;3)長期負荷預測要求幾個月到幾年的電力。短期負荷在電力系統(tǒng)為了調(diào)控和規(guī)劃電力要求精準的預測。電力負荷預測模型大致可以分為四類:1)統(tǒng)計模型;2)基于知識的專家系統(tǒng);3)混合模型;4)人工智能模型。
在所有有效的負荷模型中,基于人工神經(jīng)網(wǎng)絡算法解決短期負荷預測問題。神經(jīng)網(wǎng)絡因即使在復雜的非線性環(huán)境中也能顯示出較強的學習能力而聞名。神經(jīng)網(wǎng)絡具有結(jié)構(gòu)簡單、高容錯性和非線性的特點使其能被廣泛的應用[10]。在一般的神經(jīng)網(wǎng)絡的中,隨機初始化神經(jīng)網(wǎng)絡模型,在使用梯度下降優(yōu)化模型的過程中容易陷入局部最優(yōu),嚴重影響神經(jīng)網(wǎng)絡模型的負荷預測準確度。因此,為了達到更好的預測效果,應采用隨機神經(jīng)網(wǎng)絡模型。
針對隨機神經(jīng)網(wǎng)絡優(yōu)化緩慢,每次模型參數(shù)優(yōu)化是朝著單個訓練數(shù)據(jù)的方向優(yōu)化,最后保存的模型參數(shù)不是對整個訓練集最優(yōu)的模型,隨機神經(jīng)網(wǎng)絡的層數(shù)對負荷預測效果較大等不足。本文對傳統(tǒng)的隨機神經(jīng)網(wǎng)絡模型提出改進,針對隨機神經(jīng)網(wǎng)絡模型優(yōu)化速率緩慢提出快速優(yōu)化的Adam算法;最后保存模型不是整體訓練集的損失函數(shù)最小的參數(shù)模型問題,提出在隨機神經(jīng)網(wǎng)絡每次更新馬上計算整體訓練集在當前模型的損失函數(shù),與記錄的最小損失函數(shù)進行比較,如果損失函數(shù)更小則保存模型,否則進行下次參數(shù)更新;探索適應當前數(shù)據(jù)集的神經(jīng)網(wǎng)絡層數(shù)。為了驗證改進的隨機神經(jīng)模型的有效性,本文在河南省焦作市某縣的電力市場數(shù)據(jù)上做了大量實驗。
神經(jīng)網(wǎng)絡是模擬生物神經(jīng)元的功能,很大程度的簡化生物神經(jīng)網(wǎng)絡的功能,神經(jīng)網(wǎng)絡由多層神經(jīng)網(wǎng)路層組成,每一層有多個神經(jīng)元,第一層稱為輸入層,最后一層為輸出層,中間為隱藏層,神經(jīng)網(wǎng)絡中輸入層和輸出層只有一層,隱藏層的層數(shù)最少為一層;在BP神經(jīng)網(wǎng)絡中,只有相鄰的神經(jīng)網(wǎng)絡層之間的單元有傳遞,神經(jīng)網(wǎng)絡的輸出層是沒有偏置,其他都有偏置調(diào)節(jié)。神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖1所示。
圖1 神經(jīng)網(wǎng)絡結(jié)構(gòu)圖
整個基于神經(jīng)網(wǎng)絡的短期負荷預測模型建立可以分為兩個步驟:1)向前傳播,計算當前神經(jīng)網(wǎng)絡預測模型的預測結(jié)果;2)反向反饋,計算當前預測結(jié)果與實際值之間的損失函數(shù),然后對各個參數(shù)求偏導數(shù),求出的偏導數(shù)乘以一定的學習率與模型中各個參數(shù)和偏置相加,從而達到模型優(yōu)化的效果。訓練神經(jīng)網(wǎng)絡,實際就是尋找最優(yōu)的權(quán)重和偏置,使得訓練數(shù)據(jù)損失函數(shù)最小。
對于一個三層的神經(jīng)網(wǎng)絡模型,在時間為t(t=1,2,3,…,N-1,N)的時間序列中,輸入值為x(t),目標輸出值為輸入層和輸出層的節(jié)點數(shù)為1,M為隱藏層的節(jié)點數(shù),b為輸入層的偏置和c為隱藏層偏置,U、V分別代表輸入層到隱藏層和隱藏層到輸出層的權(quán)重。
L記為訓練數(shù)據(jù)的損失函數(shù),通過損失函數(shù)可以使用梯度下降算法或更加優(yōu)秀的Adam優(yōu)化算法更新模型參數(shù)。
一般情況下神經(jīng)網(wǎng)絡的激活函數(shù)是Sigmoid,但是Sigmoid函數(shù)的中心不在0處,導致尋找最優(yōu)的權(quán)重很費時,而且Sidmoid函數(shù)容易過飽和導致梯度消失,為了避免以上缺點采用tanh函數(shù),tanh函數(shù)如圖2所示。
圖2 激活函數(shù)Tanh曲線
tanh激活函數(shù)是0均值,相比Sigmoid函數(shù)更具有優(yōu)越性,Sigmoid函數(shù)在輸入處于[-1,1]之間時,函數(shù)值變化敏感,一旦接近或超出區(qū)間就失去敏感性,處于飽和狀態(tài),影響神經(jīng)網(wǎng)絡的精度值。而tanh的輸入和輸出能夠保持非線性單調(diào)上升和下降的關(guān)系,非常符合BP神經(jīng)網(wǎng)絡的梯度求解,比Sigmoid延遲了飽和期[11]。
困擾深度學習算法的原因是深度學習往往需要大量的計算時間和計算資源,采用分布式并行訓練加快模型的學習沒有減少學習的資源?;跍p少學習資源的想法提出Adam(A Method for Stochastic Optimization)算法。
Adam的優(yōu)點主要在于經(jīng)過偏置校正后,每一次迭代學習率都有個確定范圍,使得參數(shù)比較平穩(wěn)。公式如下:
其中,mt,vt分別是對梯度的一階矩估計和二階矩估計;是對mt,vt的校正,這樣可以近似對期望的無偏估計。Adam算法β1默認值為0.9,β2的默認值為0.999,默認值為10-8。
Adam算法結(jié)合了適應性梯度算法(AdaGrad)為每個參數(shù)保留一個學習率以提升稀疏梯度上的性能和均方根傳播(RMSProp)基于權(quán)重梯度最近量級的均值為每個參數(shù)適應性地保留學習率的優(yōu)勢。更多關(guān)于Adam算法請參考文獻[12]。
隨機神經(jīng)網(wǎng)絡是在傳統(tǒng)神經(jīng)網(wǎng)絡在的基礎上的一種改進網(wǎng)路結(jié)構(gòu),傳統(tǒng)神經(jīng)網(wǎng)絡是一次計算全體訓練集的損失,利用梯度下降對神經(jīng)網(wǎng)絡的參數(shù)進行優(yōu)化,隨機神經(jīng)網(wǎng)絡是對每一組訓練數(shù)據(jù)計算損失,模型是朝著這一組訓練數(shù)據(jù)的方向優(yōu)化。隨機神經(jīng)網(wǎng)絡也有自己的不足,與向全體數(shù)據(jù)優(yōu)化的方向更新參數(shù)相比,隨機神經(jīng)網(wǎng)絡訓練模型無疑是要多走彎路,但是最重要的一點,隨機神經(jīng)網(wǎng)絡不會陷入局部最優(yōu)。最后隨機神經(jīng)網(wǎng)絡的參數(shù)始終是圍繞著全局最優(yōu)附件徘徊,每次訓練都是參數(shù)修正,因此可能在就全體數(shù)據(jù)最優(yōu)參數(shù)的情況下,下次數(shù)據(jù)訓練就改變參數(shù),最后的模型不是最優(yōu)模型。針對以上缺點,本文提出改進的隨機神經(jīng)網(wǎng)絡模型。該模型是隨機神經(jīng)網(wǎng)絡最后保存模型提出一個判斷條件,當訓練模型的損失小于一個我們設定的閾值時記錄最小的整個訓練數(shù)據(jù)集的損失min,每次隨機神經(jīng)網(wǎng)絡的參數(shù)調(diào)整,都與最小的損失比較,保留最小的損失值和模型,具體過程如下:
Step1:數(shù)據(jù)預處理,在輸入模型進行訓練前歸一化處理,可以加快模型的學習,一般歸一化式(5)如下:
Step2:確定神經(jīng)網(wǎng)絡模型隱藏層數(shù)、每層節(jié)點數(shù)、學習目標、訓練次數(shù)、學習速率,激活函數(shù)等。
Step3:確定隨機神經(jīng)網(wǎng)絡模型batch大小,把Step1歸一化的數(shù)據(jù)輸入到Step2生成的神經(jīng)網(wǎng)絡,計算神經(jīng)網(wǎng)絡的輸出值。
Step4:計算神經(jīng)網(wǎng)絡輸出y(t)與目標值y(t)target的損失函數(shù)L,并且采用Adam優(yōu)化算法,對神經(jīng)網(wǎng)絡模型參數(shù)更新。
Step5:計算全部訓練數(shù)據(jù)集在Step4參數(shù)更新后的損失函數(shù)。由于算法保存模型需要時間長,為了減少模型訓練時間,設定損失函數(shù)閾值,只有損失函數(shù)小于閾值,再與保存的最小損失函數(shù)相比,如果當前損失函數(shù)小于保存的最小損失函數(shù),則說明模型參數(shù)更優(yōu),更新保存的模型和最小損失函數(shù)值,否則跳過Step5。
如圖3所示為具體的訓練模型流程圖。
圖3 改進的隨機神經(jīng)網(wǎng)絡流程圖
設置閾值是為了減少程序運行時間,在模型訓練中,數(shù)據(jù)的讀寫特別占用時間,因此設置閾值。當整個訓練集的損失小于設置的閾值時開始保留模型,在模型優(yōu)化的過程中,保證了當前的模型為訓練集整體損失最小的參數(shù)。
雖然有很多評價負荷預測準確度的指標,但是為了一個公平的對比,我們采用MAPE,MAE和RMSE作為評價標準,它們定義如下:
y(t)代表在t時刻的預測結(jié)果,y(t)target代表在t時刻真實情況下的負荷值,N代表預測范圍。
在本文中,我們進行短期負荷預測,負荷數(shù)據(jù)是2017年5月焦作市某縣的數(shù)據(jù),數(shù)據(jù)的輸入為負荷時刻前三個小時的真實負荷和負荷時刻的溫度值如表1所示。
表1 模型輸入與輸出
表中第一行的數(shù)據(jù)分別為5月1號0時刻的負荷、1時的負荷和2時的負荷,3時的溫度,LF(Load forecasting)表示的預測的負荷值,深度學習模型每次的負荷預測都只能預測將來一小時的負荷,每次輸入都是真實的負荷數(shù)值。不使用負荷數(shù)據(jù)作為輸入值是因為負荷數(shù)據(jù)總是存在一定的誤差,如果以負荷預測數(shù)據(jù)作為輸入,依次循環(huán)預測的效果越來越偏離真實負荷數(shù)據(jù)[13]。
表2表示優(yōu)化的模型預測數(shù)據(jù):從上往下依次為一層采用梯度下降隨機神經(jīng)網(wǎng)絡、采用Adam的隨機神經(jīng)網(wǎng)絡、兩層采用梯度下降隨機神經(jīng)網(wǎng)絡、采用Adam的隨機神經(jīng)網(wǎng)絡和采用梯度下降的隨機神經(jīng)網(wǎng)絡模型、采用梯度下降的深度學習和采用Adam的深度學習的負荷預測精度數(shù)據(jù)。評價結(jié)果由3個不同的評價標準:MAPE,MAE和RMSE。通過實驗結(jié)果表明采用Adam算法的兩層隨機神經(jīng)網(wǎng)絡模型預測效果最佳。
表2 改善模型預測結(jié)果
從表中可以看出隨機神經(jīng)網(wǎng)絡采用Adam算法比采用梯度下降的明顯優(yōu)勢,MAPE從0.080降到了0.059,相當于35.59%的MAPE的降低。MAE也實現(xiàn)了29.64%的下降(從7.5178WH降到了5.289WH),RMSE實現(xiàn)了大約30.22%的降低;在深度學習中Adam算法也表現(xiàn)出明顯的優(yōu)異性。MAPE、MAE和RMSE分別提高了23.94%、36.15%和33.90%。從BP神經(jīng)網(wǎng)絡到深度學習,不管使用算法,可以看到深度學習展現(xiàn)了強大的學習能力。
為了可視化提出的采用Adam算法的隨機神經(jīng)網(wǎng)絡組成的深度學習模型。本文選取2017年5月11號河南省焦作市某縣的的日負荷曲線和預測模型。為了體現(xiàn)提出模型的優(yōu)越性同時探索最適合的神經(jīng)網(wǎng)絡層數(shù),分別畫出BP神經(jīng)網(wǎng)絡預測與實際負荷的曲線圖如圖4所示、兩層神經(jīng)網(wǎng)絡的模型與實際負荷的曲線圖如圖5所示,深度學習模型實際負荷的曲線圖如圖6所示。
圖4 一層神經(jīng)元模型預測值與實際值對比圖
圖5 兩層模型預測值與實際值對比圖
圖6 深度學習模型預測與實際對比圖
從圖4~圖6中我們發(fā)現(xiàn)以下特點:在隨機神經(jīng)中,隨著層數(shù)的遞增模型對數(shù)據(jù)的敏感性在下降,一層時過于敏感,兩層時模型表現(xiàn)最好與表的結(jié)果一直,三層時的模型對數(shù)據(jù)的特征表現(xiàn)不敏感;以負荷前3小時的負荷數(shù)據(jù)與負荷預測的溫度值作為輸入值,該時刻的負荷作為輸出值,輸入與輸出之間的關(guān)系使用兩層神經(jīng)網(wǎng)絡模型能夠充分擬合,從圖5中可以看到實際的負荷曲線與預測負荷曲線非常接近,表現(xiàn)出較強的魯棒性。隨著層數(shù)的增加,深度學習的模型的預測曲線與實際的負荷曲線出現(xiàn)差距,表明模型的擬合能力有所下降。
本文提出一種改進的隨機神經(jīng)網(wǎng)絡用于負荷預測的模型。針對神經(jīng)網(wǎng)絡容易陷入局部最優(yōu)問題,采用隨機神經(jīng)網(wǎng)絡并對隨機神經(jīng)網(wǎng)絡模型本身存在問題模型總是朝著部分訓練數(shù)據(jù)優(yōu)化的方向更新參數(shù)提出改進,并探索適用于短期負荷預測的模型層數(shù),實驗結(jié)果表明,兩層時的隨機神經(jīng)網(wǎng)絡模型表現(xiàn)出較好的預測精度。