李 磊,王 云,鄧洪波,梁志明
(華南理工大學電子與信息學院,廣州 510641)
電力工業是關乎國家經濟發展和人民生活質量的重要基礎,如何能合理的規劃和開展安全的電力傳輸成為提高電力服務質量的重要因素[1]。而電力負荷預測是電力系統有效規劃和安遠運行決策制度的重要數據依據之一。電網負荷預測不僅影響電網電力傳輸調度的決策,使得電力供給能夠提前進行調度,提高電力傳輸的有效性和經濟性,同時提高了對電力系統的裝置的優化利用、減少發電備用、提高經濟調度、確保系統可靠性和可維護性[2-3]。目前已有很多的預測方法,如楊中華[4]提出了—元線性回歸模型在電力系統負荷預測中的應用,該方法證明了線性回歸模型對于電力負載預測的有效性;張宗華等[5]提出了BP 神經網絡的電力負載算法,該算法利用全連接神經網絡獲得比線性回歸更加精確的預測結果;程子華[6]提出了一種基于支持向量機的電力負載預測算法,該算法利用支持向量預測方法對電力的負載數據進行處理,獲得優于神經網絡的處理效果。然而,傳統的預測模型參數難以同時滿足不同情況下復雜時變的電力負載預測,從而獲得更高預測精度,其電力負載數據吞吐量極大,單臺計算服務器的算力無法保證對電力負載數據的處理。因此,需要基于大數據云平臺架構設計一種新的電力負載預測模型。
本文針對上述問題,提出了一種多模型的自適應神經網絡預測算法,可根據不同電力負載的變化將數據調度到相對應的神經網絡模型中進行處理,從而提高對復雜多變電力負載的預測精度;同時,基于Spark云計算架構對提出的模型算法進行實現,以證明云平臺對電力負載處理性能的優勢。
電力負載數據是一種典型的時序數據,即按照時間先后順序記錄的數據信息,因此,對于電力負載預測模型其本質是建立歷史的數據之間的關系,利用這種關系估計未來的輸出數值,即預測下一個時刻的數值,可表示為
式中:tn為時間t中第n個時刻,tn-m為時間t第n-m個時刻,即距第n個時刻tn過去的第m個時刻;g*(t)n+1)為時間t中第n+1 個時刻的負載預測數值;g(tn),g(tn-1),…,g(tn-m)為時間t中n到n-m個時刻的負載真實數值;f(·)為預測數值與歷史數值之間的關系函數。
人工神經網絡也已經被成功用于處理各類的數據處理。本文采用人工神經網絡作為電力負荷的預測模型,其用于數據預測的人工神經網絡結構模型(回歸神經網絡)如圖1 所示。該神經網絡分為3 層結構,輸入層由歸一化后前幾個時刻的電力負荷數據構成;隱藏層由多個神經元通過權重值與輸入層進行全連接,每個神經元的輸出可表達為

圖1 回歸神經網絡結構示意
式中:j為輸入層神經元總的個數;k代表隱藏層中第k個神經元為輸入層神經元與隱藏層神經元對應的連接權重值;xi為輸入層第i個神經元輸入的數值;σ(·)為對應神經網絡的激活函數,一般為Sigmoid或者ReLU函數。輸出層為線性輸出,可表示為
如圖1 所示,本文采用的神經網絡模型j=5,l=8。此外,輸出層需進行輸入反歸一化運算后可得到實際電力負載預測數值。
電力負荷數據的變化的規律受多種因素影響,如作息時間、節假日、社會活動等,因此,電力負荷并不是恒定不變的,會呈現周期性,甚至是突變性的,如圖2所示為0.5 h采集一次的電力負載變化示意圖。
從圖2 中可知,電力負荷數據具有明顯周期性和突變型,而單一的人工神經網絡難以處理如此復雜的數據。因此,為了提高電力負荷的預測精度,本文分析了電力負荷變化的特點,將電力負荷分為上升和下降2 種類型分別進行處理,如圖3 所示。

圖3 電力負荷變化分類示意
基于上述思路,本文提出了一種自適應分類電力負荷分類預測神經網絡(Adaptive Classification Neural Network for Power Workload,ACNN-PW),其結構如圖4所示,自適應的分類電力負荷分類預測神經網絡工作流程:①電力負荷數據輸入到分類神經網絡中,由分類神經網絡對數據的數據進行分類,判斷該數據是爬升還是下降類型;②根據分類神經網絡的輸出結果觸發對應類型的預測神經網絡;③將電力負荷數據調度輸入到觸發的預測神經網絡中進行預測處理。

圖4 自適應的分類電力負荷分類預測神經網絡結構示意
在訓練分類神經網絡和預測神經網絡時,電力負荷數據采集時間點和其自身的電力負荷值難以將電力負荷數據有效地分為爬升和下降2 種類型。為避免分類數據產生的人工成本問題,本文使用非監督機器學習算法(即K-Means算法[7]),并結合電力負荷變化特征,將電力負荷自適應劃分至對應的類別中。其中一階梯度特征能有效地表征電力負荷變化,如圖5 所示其可表示電力如何變化趨勢,其表達式為

圖5 一階梯度特征電力負荷變化表征示意
式中:?為一階梯度值;y(ti)為第ti時刻電力負載值。
圖6 所示為基于一階梯度特征的自適應分類電力負荷分類預測神經網絡訓練流程。

圖6 自適應的分類電力負荷分類預測神經網絡訓練流程
由圖6 可知,自適應的分類電力負荷分類預測神經網絡訓練流程:①從電力負荷訓練數據集提取一階梯度特征;②根據一階梯度特征,K-Means 算法將電力負荷數據集分為爬升和下降訓練數據集;③將爬升和下降數據集以及K-Means算法對2 個數據集進行標簽訓練分類神經網絡以及爬升和下降預測神經網絡模型。預測神經網絡采用平方差損失函數,即:
式中,N為模型訓練中采集數據時刻的總數。
如圖7 所示Sprak RDD 結構示意圖,核心是建立在統一的抽象彈性分布式數據集(Resilient Distributed Datasets,RDD)之上,是基于RDD 進行內存算法的分布式和迭代實現[8]。其中,RDD包括了基本的數據分發和數據匯聚,其中每次運算都會轉換為一個新的RDD對象,其速度明顯快于傳統的Hadoop 框架[9-10]。該結構可以同時啟動多個RDD 對象對神經網絡進行并行化訓練,利用Spark 的Manager Node 結構實現類似Boosting 并行化訓練方式,可加速神經網絡的迭代訓練速度,將每個Work Node 都運行一個獨立ACCNPW,然后將數據分配到各個Work Node 進行獨立訓練,Manager Node負責將梯度進行收集并收集然后進行分發,以更新各個Work Node 節點模型的梯度。同時。在完成模型的訓練后,可以利用Spark 的Streaming框架,即Spark的實時數據流處理模式,實現高吞吐量的電力負荷處理處理。

圖7 Spark RDD結構示意
本文采用6 臺配置為2 個E5-2630CPU、96GB 內存的服務器進行Spark 集群的搭建,其中1 臺作為Spark的管理節點Manager Node,5 臺作為計算節點服務,每臺服務器采用Docker 進行資源的整合和管理,Spark架構如圖8 所示。

圖8 Spark集群架構示意
測試采用1997、1998 年度的電力負載測試數據,數據記錄了0.5 h為周期的電力負荷數值。本文將該數據集70%用作訓練,30%用作測試,同時與線性回歸(Linear Regression,LR)、支持向量(Support Vector Regression,SVR)、人工神經網絡(Artificial Neural Network,ANN)進行比較。采用方均根偏移(Root-Mean-Squra Deviation,RMSD)[11]、平均絕對百分比誤差(Mean-Absolute-Percentage-Error,MAPE)[12]、R2[13]評測指標對預測模型的精度評價:
(1)RMSD指標
(2)MAPE指標
該指標數值越低,說明預測精度越高。
(3)R2指標
(1)預測分析。本文隨機選取了150 個電力負荷數據在不同模型下的預測結果和真實數據進行對比,結果如圖9 所示,各模型的預測指標見表1 所列。

表1 不同預測模型的測評指標對比

圖9 不同模型的電力負荷預測結果對比
由圖9 可知,各模型均能對電力負荷變化進行有效的預測;由表1可見,所提出的ACNN-PW預測模型在RMSD和MAPE指標上均低于其他模型的值,并且其R2=0.9582,相比與其他模型的指標值更加接近于1,說明本文提出的ACNN-PW 模型相比于ANN、SVR和LR 預測模型能獲得更高的預測精度。本文將ACNN-PW模型自適應分類的數據進行可視化,如圖10 所示。圖中,ACNN-PW 模型對爬升和下降類型數據分類準確。因此模型在預測時能很好地將2 類數據調度到對應的預測神經網絡中進行處理。

圖10 ACNN-PW模型自適應分類的數據可視化示意
(2)有效性分析。為進一步驗證一階梯度特征的有效性,本文隨機提取了ACNN-PW 模型在預測過程中分類神經網絡的分類結果(見圖10),Spark 并行處理(10 000 個數據點)的指標對比結果見表2 所列。由圖10 可知,一階梯度可以有效利用一階梯度特征引導基于Spark的無監督機器學習K-Means算法[14]對訓練數據集進行分類學和標注,表明對分類神經網絡和預測神經進行訓練的有效,因此,分類神經網絡對輸入的電力負荷數據能有效進行分類,驗證了本文的理論的設計部分;由表2 可見,采用單一服務算力對于海量電力負載數據進行預測,處理時間為2 s,而采用Spark云平臺進行處理,處理時間隨著計算節點的增多而減少,即提高了數據數據處理的吞吐量。由此,當電力負載數據進一步增加時,單計算服務器難以保證對電力負載預測處理的算力要求,而Spark 云平臺可靈活更加電力負載數據的容量進行彈性伸縮,從而保證算力的需求。

表2 Spark并行處理的指標對比(10 000 個數據點)
本文針對電力負荷,在Spark 云平臺上提出了一種自適應分類電力負荷分類預測神經網絡模型,該模型可以自適應的將電力負荷分為爬升和下降2 種類型,并將對應的類型的電力負荷數據送入到相應的人工神經網絡預測模型進行預測以提高預測精度。同時,為了避免訓練過程中對于訓練數據人工按照爬升和下降類型分類造成成本問題,本文采用一階梯度特征和無監督K-Means機器學習算法能自動地完成對訓練數據的分類和標注。最后,實驗結果表明,本文提出的電力負荷預測模型能相比于其他的預測,能進一步提高預測精度。