王 瑞,王強強,逯 靜
(河南理工大學 計算機科學與技術學院,焦作 454000)
隨著智能電網在世界范圍的建設和相關技術的發展,現代化電網產生大量負荷數據,如何在這些數據之間尋找負荷預測需要的信息,對今后智能電網的建設有著至關重要的意義[1,2]。最初的負荷預測方法依賴于工作經驗豐富的電網人員的判斷,由于沒有科學依據,以及工作人員背景不同會使得負荷預測沒有普遍性。隨著智能電網的建設普及,研究人員可以獲取海量電網數據,因此相繼涌現出多種建立在數學理論的負荷預測方法,例如經典的模型有灰色理論[3]、人工神經網絡[4]、人工神經網絡與灰色理論結合[5]、支持向量機[6]和決策樹[7]等。這些經典算法由于自身或其他原因,使得負荷預測精度遠遠不能滿足電力市場的需要。
在1985年英國,據估計每增加百分之一的負荷預測錯誤就導致一千萬英鎊的損失[8]。電力行業需要更加準確的負荷預測數據才能做出合適的電力規劃和管理策略。一個精準的負荷預測能夠最小化電力供給和實際需求的差距,為了滿足未來的電力需求和降低短期電力不足的壓力,一些實時技術創新應運而生。在近幾十年中為了提高預測精準度,各種負荷預測的新技術相繼提出。但是由于天氣情況、經濟狀況和電力系統的非線性因素和人們隨機使用電器行為等導致很難進行精準的電力預測[9]。隨著科技的發展,負荷預測愈加準確,由于負荷預測失誤導致經濟的負面影響漸漸減低。電力市場的制定者需要更準確的負荷預測數據獲取利潤和優化公共事業。
一般來說,能源管理系統(EMS)使用四種類型的負荷預測去設計電力方案:1)短期負荷預測,要求預測幾分鐘到一周內的電力;2)中期負荷預測要求預測超過一周最多幾個月的電力;3)長期負荷預測要求幾個月到幾年的電力。短期負荷在電力系統為了調控和規劃電力要求精準的預測。電力負荷預測模型大致可以分為四類:1)統計模型;2)基于知識的專家系統;3)混合模型;4)人工智能模型。
在所有有效的負荷模型中,基于人工神經網絡算法解決短期負荷預測問題。神經網絡因即使在復雜的非線性環境中也能顯示出較強的學習能力而聞名。神經網絡具有結構簡單、高容錯性和非線性的特點使其能被廣泛的應用[10]。在一般的神經網絡的中,隨機初始化神經網絡模型,在使用梯度下降優化模型的過程中容易陷入局部最優,嚴重影響神經網絡模型的負荷預測準確度。因此,為了達到更好的預測效果,應采用隨機神經網絡模型。
針對隨機神經網絡優化緩慢,每次模型參數優化是朝著單個訓練數據的方向優化,最后保存的模型參數不是對整個訓練集最優的模型,隨機神經網絡的層數對負荷預測效果較大等不足。本文對傳統的隨機神經網絡模型提出改進,針對隨機神經網絡模型優化速率緩慢提出快速優化的Adam算法;最后保存模型不是整體訓練集的損失函數最小的參數模型問題,提出在隨機神經網絡每次更新馬上計算整體訓練集在當前模型的損失函數,與記錄的最小損失函數進行比較,如果損失函數更小則保存模型,否則進行下次參數更新;探索適應當前數據集的神經網絡層數。為了驗證改進的隨機神經模型的有效性,本文在河南省焦作市某縣的電力市場數據上做了大量實驗。
神經網絡是模擬生物神經元的功能,很大程度的簡化生物神經網絡的功能,神經網絡由多層神經網路層組成,每一層有多個神經元,第一層稱為輸入層,最后一層為輸出層,中間為隱藏層,神經網絡中輸入層和輸出層只有一層,隱藏層的層數最少為一層;在BP神經網絡中,只有相鄰的神經網絡層之間的單元有傳遞,神經網絡的輸出層是沒有偏置,其他都有偏置調節。神經網絡結構如圖1所示。

圖1 神經網絡結構圖
整個基于神經網絡的短期負荷預測模型建立可以分為兩個步驟:1)向前傳播,計算當前神經網絡預測模型的預測結果;2)反向反饋,計算當前預測結果與實際值之間的損失函數,然后對各個參數求偏導數,求出的偏導數乘以一定的學習率與模型中各個參數和偏置相加,從而達到模型優化的效果。訓練神經網絡,實際就是尋找最優的權重和偏置,使得訓練數據損失函數最小。
對于一個三層的神經網絡模型,在時間為t(t=1,2,3,…,N-1,N)的時間序列中,輸入值為x(t),目標輸出值為輸入層和輸出層的節點數為1,M為隱藏層的節點數,b為輸入層的偏置和c為隱藏層偏置,U、V分別代表輸入層到隱藏層和隱藏層到輸出層的權重。




L記為訓練數據的損失函數,通過損失函數可以使用梯度下降算法或更加優秀的Adam優化算法更新模型參數。
一般情況下神經網絡的激活函數是Sigmoid,但是Sigmoid函數的中心不在0處,導致尋找最優的權重很費時,而且Sidmoid函數容易過飽和導致梯度消失,為了避免以上缺點采用tanh函數,tanh函數如圖2所示。

圖2 激活函數Tanh曲線
tanh激活函數是0均值,相比Sigmoid函數更具有優越性,Sigmoid函數在輸入處于[-1,1]之間時,函數值變化敏感,一旦接近或超出區間就失去敏感性,處于飽和狀態,影響神經網絡的精度值。而tanh的輸入和輸出能夠保持非線性單調上升和下降的關系,非常符合BP神經網絡的梯度求解,比Sigmoid延遲了飽和期[11]。
困擾深度學習算法的原因是深度學習往往需要大量的計算時間和計算資源,采用分布式并行訓練加快模型的學習沒有減少學習的資源。基于減少學習資源的想法提出Adam(A Method for Stochastic Optimization)算法。
Adam的優點主要在于經過偏置校正后,每一次迭代學習率都有個確定范圍,使得參數比較平穩。公式如下:

其中,mt,vt分別是對梯度的一階矩估計和二階矩估計;是對mt,vt的校正,這樣可以近似對期望的無偏估計。Adam算法β1默認值為0.9,β2的默認值為0.999,默認值為10-8。
Adam算法結合了適應性梯度算法(AdaGrad)為每個參數保留一個學習率以提升稀疏梯度上的性能和均方根傳播(RMSProp)基于權重梯度最近量級的均值為每個參數適應性地保留學習率的優勢。更多關于Adam算法請參考文獻[12]。
隨機神經網絡是在傳統神經網絡在的基礎上的一種改進網路結構,傳統神經網絡是一次計算全體訓練集的損失,利用梯度下降對神經網絡的參數進行優化,隨機神經網絡是對每一組訓練數據計算損失,模型是朝著這一組訓練數據的方向優化。隨機神經網絡也有自己的不足,與向全體數據優化的方向更新參數相比,隨機神經網絡訓練模型無疑是要多走彎路,但是最重要的一點,隨機神經網絡不會陷入局部最優。最后隨機神經網絡的參數始終是圍繞著全局最優附件徘徊,每次訓練都是參數修正,因此可能在就全體數據最優參數的情況下,下次數據訓練就改變參數,最后的模型不是最優模型。針對以上缺點,本文提出改進的隨機神經網絡模型。該模型是隨機神經網絡最后保存模型提出一個判斷條件,當訓練模型的損失小于一個我們設定的閾值時記錄最小的整個訓練數據集的損失min,每次隨機神經網絡的參數調整,都與最小的損失比較,保留最小的損失值和模型,具體過程如下:
Step1:數據預處理,在輸入模型進行訓練前歸一化處理,可以加快模型的學習,一般歸一化式(5)如下:

Step2:確定神經網絡模型隱藏層數、每層節點數、學習目標、訓練次數、學習速率,激活函數等。
Step3:確定隨機神經網絡模型batch大小,把Step1歸一化的數據輸入到Step2生成的神經網絡,計算神經網絡的輸出值。
Step4:計算神經網絡輸出y(t)與目標值y(t)target的損失函數L,并且采用Adam優化算法,對神經網絡模型參數更新。
Step5:計算全部訓練數據集在Step4參數更新后的損失函數。由于算法保存模型需要時間長,為了減少模型訓練時間,設定損失函數閾值,只有損失函數小于閾值,再與保存的最小損失函數相比,如果當前損失函數小于保存的最小損失函數,則說明模型參數更優,更新保存的模型和最小損失函數值,否則跳過Step5。
如圖3所示為具體的訓練模型流程圖。

圖3 改進的隨機神經網絡流程圖
設置閾值是為了減少程序運行時間,在模型訓練中,數據的讀寫特別占用時間,因此設置閾值。當整個訓練集的損失小于設置的閾值時開始保留模型,在模型優化的過程中,保證了當前的模型為訓練集整體損失最小的參數。
雖然有很多評價負荷預測準確度的指標,但是為了一個公平的對比,我們采用MAPE,MAE和RMSE作為評價標準,它們定義如下:

y(t)代表在t時刻的預測結果,y(t)target代表在t時刻真實情況下的負荷值,N代表預測范圍。
在本文中,我們進行短期負荷預測,負荷數據是2017年5月焦作市某縣的數據,數據的輸入為負荷時刻前三個小時的真實負荷和負荷時刻的溫度值如表1所示。

表1 模型輸入與輸出
表中第一行的數據分別為5月1號0時刻的負荷、1時的負荷和2時的負荷,3時的溫度,LF(Load forecasting)表示的預測的負荷值,深度學習模型每次的負荷預測都只能預測將來一小時的負荷,每次輸入都是真實的負荷數值。不使用負荷數據作為輸入值是因為負荷數據總是存在一定的誤差,如果以負荷預測數據作為輸入,依次循環預測的效果越來越偏離真實負荷數據[13]。
表2表示優化的模型預測數據:從上往下依次為一層采用梯度下降隨機神經網絡、采用Adam的隨機神經網絡、兩層采用梯度下降隨機神經網絡、采用Adam的隨機神經網絡和采用梯度下降的隨機神經網絡模型、采用梯度下降的深度學習和采用Adam的深度學習的負荷預測精度數據。評價結果由3個不同的評價標準:MAPE,MAE和RMSE。通過實驗結果表明采用Adam算法的兩層隨機神經網絡模型預測效果最佳。

表2 改善模型預測結果
從表中可以看出隨機神經網絡采用Adam算法比采用梯度下降的明顯優勢,MAPE從0.080降到了0.059,相當于35.59%的MAPE的降低。MAE也實現了29.64%的下降(從7.5178WH降到了5.289WH),RMSE實現了大約30.22%的降低;在深度學習中Adam算法也表現出明顯的優異性。MAPE、MAE和RMSE分別提高了23.94%、36.15%和33.90%。從BP神經網絡到深度學習,不管使用算法,可以看到深度學習展現了強大的學習能力。
為了可視化提出的采用Adam算法的隨機神經網絡組成的深度學習模型。本文選取2017年5月11號河南省焦作市某縣的的日負荷曲線和預測模型。為了體現提出模型的優越性同時探索最適合的神經網絡層數,分別畫出BP神經網絡預測與實際負荷的曲線圖如圖4所示、兩層神經網絡的模型與實際負荷的曲線圖如圖5所示,深度學習模型實際負荷的曲線圖如圖6所示。

圖4 一層神經元模型預測值與實際值對比圖

圖5 兩層模型預測值與實際值對比圖

圖6 深度學習模型預測與實際對比圖
從圖4~圖6中我們發現以下特點:在隨機神經中,隨著層數的遞增模型對數據的敏感性在下降,一層時過于敏感,兩層時模型表現最好與表的結果一直,三層時的模型對數據的特征表現不敏感;以負荷前3小時的負荷數據與負荷預測的溫度值作為輸入值,該時刻的負荷作為輸出值,輸入與輸出之間的關系使用兩層神經網絡模型能夠充分擬合,從圖5中可以看到實際的負荷曲線與預測負荷曲線非常接近,表現出較強的魯棒性。隨著層數的增加,深度學習的模型的預測曲線與實際的負荷曲線出現差距,表明模型的擬合能力有所下降。
本文提出一種改進的隨機神經網絡用于負荷預測的模型。針對神經網絡容易陷入局部最優問題,采用隨機神經網絡并對隨機神經網絡模型本身存在問題模型總是朝著部分訓練數據優化的方向更新參數提出改進,并探索適用于短期負荷預測的模型層數,實驗結果表明,兩層時的隨機神經網絡模型表現出較好的預測精度。