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

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

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

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

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

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

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

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

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

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

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

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