韓紅衛(wèi), 劉一峰, 龐濤, 王勇, 于昌海, 劉佳名
(1.國(guó)網(wǎng)寧夏電力有限公司, 寧夏 銀川 750001; 2.南瑞集團(tuán)有限公司, 江蘇 南京 211106;3.國(guó)電南瑞科技股份有限公司, 江蘇 南京 211106)
短期負(fù)荷預(yù)測(cè)(STLF)是智能電網(wǎng)的關(guān)鍵技術(shù)[1-2],是一個(gè)復(fù)雜的非線性問(wèn)題,通常涉及天氣、地理位置、社會(huì)和經(jīng)濟(jì)因素[3-4]。由于電力行業(yè)收集的直接和間接數(shù)據(jù)越來(lái)越多,從數(shù)據(jù)挖掘的角度來(lái)看,電力負(fù)荷預(yù)測(cè)可以獲得更好的精度。雖然現(xiàn)有的基于深度學(xué)習(xí)的研究促進(jìn)了短期負(fù)荷預(yù)測(cè)的發(fā)展,但一個(gè)主要挑戰(zhàn)是如何利用現(xiàn)有的大負(fù)荷數(shù)據(jù)提高新社區(qū)的預(yù)測(cè)性能。例如,當(dāng)使用從新社區(qū)收集的小數(shù)據(jù)構(gòu)建預(yù)測(cè)模型時(shí),數(shù)據(jù)大小可能不夠大。雖然存在大量的大負(fù)荷數(shù)據(jù)集,但如何利用新收集的數(shù)據(jù)一起使用這些現(xiàn)有的大數(shù)據(jù)集來(lái)提高預(yù)測(cè)性能尚不清楚。將現(xiàn)有的大數(shù)據(jù)集直接與新收集的數(shù)據(jù)合并可能導(dǎo)致弱預(yù)測(cè)模型,因?yàn)檫@些數(shù)據(jù)集的噪聲和數(shù)據(jù)分布可能是不同的。所以,本文提出了一種基于CNN的Bagging模型方法來(lái)解決這一難題。
在本節(jié)中,本文提出了一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的Bagging學(xué)習(xí)模型來(lái)預(yù)測(cè)大負(fù)荷數(shù)據(jù)下的每小時(shí)負(fù)荷。CNN是一種前饋人工神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)是在視覺(jué)神經(jīng)元組織的啟發(fā)下在人工神經(jīng)元之間形成的[5-6]。多層CNN主要用于解決圖像和視頻識(shí)別問(wèn)題[7-9]。
擬議程序分為三個(gè)階段。在第一階段,先收集在線負(fù)載數(shù)據(jù)構(gòu)成大負(fù)荷數(shù)據(jù)集,然后對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,接著構(gòu)建一個(gè)CNN模型,并在現(xiàn)有的大數(shù)據(jù)集上訓(xùn)練基于公開(kāi)的預(yù)測(cè)模型。在第二階段,在預(yù)處理完數(shù)據(jù)集后,構(gòu)建了基于CNN的Bagging學(xué)習(xí)模型,利用從山東國(guó)網(wǎng)收集的最新真實(shí)數(shù)據(jù)生成多個(gè)子模型。在第三階段,對(duì)子模型進(jìn)行組裝,然后用組裝完的模型對(duì)結(jié)果進(jìn)行預(yù)測(cè),并使用各種度量來(lái)評(píng)估所提出的模型。方法體系結(jié)構(gòu)如圖1所示。

圖1 構(gòu)建模型的3個(gè)步驟的框架
在第一階段,通過(guò)收集到的數(shù)據(jù),構(gòu)建包含超過(guò)200萬(wàn)條負(fù)荷記錄的大負(fù)荷數(shù)據(jù)集。然后,對(duì)數(shù)據(jù)集進(jìn)行數(shù)值處理,通過(guò)計(jì)算負(fù)荷的對(duì)數(shù)來(lái)縮小荷載值的區(qū)域,從而減小了大負(fù)荷值在建模過(guò)程中的影響。具體來(lái)說(shuō),通過(guò)考慮負(fù)荷特征與圖像中像素的關(guān)系之間的相似性,將負(fù)荷樣本重組為圖像,如圖2所示。

圖2 將圖像與加載樣本進(jìn)行比較
在左子圖和右子圖中,分別顯示圖像和負(fù)荷示例的示例。在左圖中,ci表示圖像的列,ri表示圖像的行。根據(jù)圖像的特點(diǎn),可以根據(jù)像素的大小來(lái)確定左子圖中的像素p9。同理,在右圖中,當(dāng)根據(jù)時(shí)間序列負(fù)載構(gòu)建負(fù)載樣本時(shí),負(fù)載l9也可以基于周圍負(fù)載來(lái)確定,其中di表示天,ti表示小時(shí)。例如,如果假設(shè)l2,l9和l6表示不同天晚上7點(diǎn)的負(fù)荷,它們將是相似的,因?yàn)槿藗冇邢嗨频男袨橛绊戨娏κ褂谩4送猓砩?點(diǎn)的負(fù)荷由下午6點(diǎn)和晚上8點(diǎn)的負(fù)荷決定,這意味著負(fù)荷l9可以由負(fù)荷l2和l6估計(jì)。考慮到圖像與負(fù)荷樣本的相似性,將負(fù)荷預(yù)測(cè)作為圖像處理,利用CNN建立預(yù)測(cè)模型。
與基于序列分析的遞歸神經(jīng)網(wǎng)絡(luò)(RNN)預(yù)測(cè)模型相比,該方法能從序列中提取出更豐富的關(guān)系作為特征進(jìn)行預(yù)測(cè),有4個(gè)歷史記錄作為預(yù)測(cè)未來(lái)記錄的輸入,如圖3所示。

圖3 輸入間關(guān)系提取過(guò)程的比較
左邊部分顯示了RNN如何構(gòu)建輸入之間的關(guān)系,而右邊部分則顯示了通過(guò)重新組織輸入而構(gòu)建的從“圖像”中獲得的關(guān)系。RNN可能無(wú)法通過(guò)構(gòu)造x1和x3之間的直接關(guān)系來(lái)進(jìn)行預(yù)測(cè)。然而,如果使用CNN處理“圖像”,可以使用如圖所示的特殊過(guò)濾器來(lái)建立直接關(guān)系。如果本文獲得的序列中元素之間的關(guān)系越多,則可以獲得的特征越多,這將導(dǎo)致特定領(lǐng)域應(yīng)用的更高預(yù)測(cè)性能。
在第二階段,首先對(duì)工業(yè)負(fù)荷數(shù)據(jù)集執(zhí)行相同的預(yù)處理。然后,通過(guò)對(duì)工業(yè)負(fù)荷數(shù)據(jù)集進(jìn)行細(xì)分,對(duì)小數(shù)據(jù)集模型進(jìn)行微調(diào),將CNN預(yù)測(cè)模型轉(zhuǎn)換到這一階段。該模型是通過(guò)對(duì)行業(yè)負(fù)荷數(shù)據(jù)集進(jìn)行分段來(lái)實(shí)現(xiàn)的。通過(guò)用CNN預(yù)測(cè)模型處理每一子段數(shù)據(jù)集,對(duì)其進(jìn)行預(yù)測(cè),構(gòu)成子集,并將子集組合,最后得到結(jié)果,具體見(jiàn)算法1。

算法1: 基于CNN的Bagging算法Require:Training set C={(xt,yt)}T1Ensure: Bagging Learning; Initialize M that is the number of sub-models;forall m: 1…M do Randomly select k samples to make up a subset cm from C;Fine-tuning the CNN forecasting model on cm and generate the weak forecasting sub-model m; end for Collect all weak forecasting sub-models generated in the loop to compose a Bagging model;
算法1中,xt表示加載特性;而yt表示目標(biāo)加載。T是樣本數(shù),k比T小得多,M是抽樣次數(shù)。為了微調(diào)CNN預(yù)測(cè)模型,需要在子集上重新加載并重新訓(xùn)練模型。學(xué)習(xí)過(guò)程是在Spark上實(shí)現(xiàn)的。首先設(shè)置M的值。然后在Spark上建立M個(gè)樣本子集,并將這些子集分布在不同的節(jié)點(diǎn)上。最后,在這些節(jié)點(diǎn)上同時(shí)重新加載和訓(xùn)練CNN預(yù)測(cè)模型,生成周預(yù)測(cè)子模型。
在最后階段,將這些弱預(yù)測(cè)子模型組合起來(lái),以進(jìn)行強(qiáng)預(yù)測(cè)模型,并使用該模型預(yù)測(cè)小時(shí)負(fù)荷,如圖4所示。

圖4 基于Bagging模型的預(yù)測(cè)流程
利用這些弱預(yù)測(cè)子模型對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),得到M個(gè)預(yù)測(cè)負(fù)荷。最終預(yù)測(cè)負(fù)荷是由M個(gè)預(yù)測(cè)負(fù)荷的平均值產(chǎn)生的。
考慮到輸入維度的局限性,CNN的結(jié)構(gòu)不應(yīng)太深,因?yàn)楹喜⒉僮鳒p少了輸入維度。因此,應(yīng)用架構(gòu)來(lái)完成本文中的模型構(gòu)建如圖5所示。

圖5 CNN架構(gòu)
整個(gè)結(jié)構(gòu)共有5部分組成,分別為:2個(gè)3×3卷積層,2個(gè)2×2池化層,以及1個(gè)全連接層。其中在全連接層一共可以得到1 024個(gè)特征。
收集了2012-2014年電力行業(yè)的大負(fù)荷數(shù)據(jù)集,包含140多萬(wàn)條電力負(fù)荷記錄,以驗(yàn)證所提出模型的有效性。此外,本文從NYIOS加載數(shù)據(jù)和ERCOT加載數(shù)據(jù)中收集大負(fù)載數(shù)據(jù)集,構(gòu)建了兩個(gè)大負(fù)載數(shù)據(jù)集,即NY數(shù)據(jù)集和ER數(shù)據(jù)集,分別包含905 057個(gè)加載記錄和1 014 336個(gè)加載記錄。因此,在我們的實(shí)驗(yàn)中,來(lái)自三個(gè)數(shù)據(jù)集的加載記錄數(shù)大于300萬(wàn)條。設(shè)計(jì)了基于時(shí)間序列信息的特征模板,從這些記錄中提取特征來(lái)構(gòu)建樣本,其中特征由分布在前7天的84個(gè)過(guò)去加載記錄組成。此外,樣本可以重組為7×12像素的圖像樣本。我們?cè)?012-2013年的大工業(yè)負(fù)荷數(shù)據(jù)集中使用了1 003 716個(gè)樣本來(lái)構(gòu)建Bagging學(xué)習(xí)模型。并選取2014年1月、4月、7月、10月四個(gè)季節(jié)性月份的樣本對(duì)該方法進(jìn)行評(píng)價(jià)。
選擇線性回歸(LR)、神經(jīng)網(wǎng)絡(luò)(NN)和支持向量回歸(SVR)作為基線模型,與本文的方法進(jìn)行比較,NN方法由一個(gè)輸入層、一個(gè)隱藏層和一個(gè)輸出層組成。并利用Tensorflow3提供的CNN構(gòu)造了該模型。CNN的關(guān)鍵參數(shù)包括過(guò)濾層:3×3,池化層:2×2,層數(shù):2,參數(shù)估計(jì)算法采用Adam優(yōu)化。本文采用均方誤差作為目標(biāo)函數(shù)。學(xué)習(xí)迭代次數(shù)20 000次,學(xué)習(xí)速率10-4,小批量大小50。
此外,利用Keras4提供的LSTM-RNN與我們的方法進(jìn)行比較,以驗(yàn)證提出方法的有效性,因?yàn)镽NN在執(zhí)行序列分析(如手寫(xiě)識(shí)別[10-11]或語(yǔ)音識(shí)別[12])方面顯示出強(qiáng)大的能力。均方誤差是目標(biāo)函數(shù)。Adam優(yōu)化是一種估計(jì)算法。學(xué)習(xí)迭代次數(shù)設(shè)置為10 000,小批量大小為100。
與文獻(xiàn)[13]相比,本文有一組更大的特征(一共84個(gè)特征)。因此,不同于文獻(xiàn)[13],本文的負(fù)荷矩陣更為稀疏。此外,二維濾波器用于構(gòu)建CNN,而文獻(xiàn)[13]采用的是一維濾波器。這些差異導(dǎo)致了不同的預(yù)測(cè)性能。
平均絕對(duì)百分比誤差(MAPE)、均方根誤差(RMSE)、標(biāo)準(zhǔn)化平均絕對(duì)誤差(NMAE)和標(biāo)準(zhǔn)化均方根誤差(NRMSE)構(gòu)成了衡量模型性能的評(píng)估指標(biāo)。作為統(tǒng)計(jì)中預(yù)測(cè)準(zhǔn)確性的一種度量,MAPE將準(zhǔn)確性定義為百分比,如式(1)。
(1)

RMSE計(jì)算式,它具體指是預(yù)測(cè)值和目標(biāo)值之間差異的度量,如式(2)。
(2)
RMSE表示預(yù)測(cè)值和觀測(cè)值之間差異的樣本標(biāo)準(zhǔn)差。RMSE是一種可行的精度度量方法,但它僅是比較特定變量而不是變量之間的不同模型的預(yù)測(cè)誤差,因?yàn)樗c比例有關(guān)。
此外,本文使用NMAE和NRMSE,從規(guī)范化的角度評(píng)估和比較不同的方法,如式(3)、式(4)。
(3)
(4)
本文選取4個(gè)月的負(fù)荷來(lái)驗(yàn)證所提方法的有效性。具體結(jié)果如表1和表2所示。

表1 對(duì)一月和四月的預(yù)測(cè)結(jié)果

表2 對(duì)七月和十月的預(yù)測(cè)結(jié)果
在這兩個(gè)表中,“CNN+Bagging”表示基于CNN的Bagging學(xué)習(xí)模型。“CNN+OP”和“CNN+SG”分別表示在公開(kāi)數(shù)據(jù)集和國(guó)網(wǎng)實(shí)際數(shù)據(jù)集上訓(xùn)練并直接在行業(yè)負(fù)載數(shù)據(jù)集上微調(diào)的模型。類似地,“CNN+Bagging+OP”和CNN+Bagging+SG”表示分別在公開(kāi)數(shù)據(jù)集和國(guó)網(wǎng)實(shí)際數(shù)據(jù)集上訓(xùn)練的模型,并通過(guò)Bagging學(xué)習(xí)對(duì)行業(yè)負(fù)載數(shù)據(jù)集進(jìn)行微調(diào)。
根據(jù)這兩個(gè)表的結(jié)果,發(fā)現(xiàn)基于CNN的模型比基線模型表現(xiàn)更好,這意味著將負(fù)荷樣本重組為圖像是預(yù)測(cè)負(fù)荷的一種可行方法。此外,“CNN+OP”和“CNN+SG”在MAPE結(jié)果方面比LR和NN高出3%到10%。同時(shí),根據(jù)RMSE、NMAE和NRMSE的評(píng)價(jià)結(jié)果,這些模型具有較好的預(yù)測(cè)能力。從4月和7月的結(jié)果來(lái)看,這些模型的性能仍然優(yōu)于基于SVR的預(yù)測(cè)模型。這些結(jié)果表明,微調(diào)CNN模型對(duì)提高預(yù)測(cè)性能是有效的。考慮到“CNN+Bagging”的結(jié)果,CNN和Bagging學(xué)習(xí)相結(jié)合,在大多數(shù)情況下可以將預(yù)測(cè)性能提高3%左右。此外,當(dāng)將微調(diào)技術(shù)和Bagging學(xué)習(xí)技術(shù)相結(jié)合時(shí),“CNN+Bagging+OP”和“CNN+Bagging+SG”模型能夠?qū)APE性能提高3%-5%。
特別是,通過(guò)比較CNN和LSTM-RNN的性能,發(fā)現(xiàn)將負(fù)荷預(yù)測(cè)作為CNN求解的圖像處理是一種可行的小時(shí)負(fù)荷預(yù)測(cè)方法,因?yàn)閮煞N方法具有相似的性能。例如,1月和10月的預(yù)測(cè)表現(xiàn)差異不大。此外,CNN在4月份的預(yù)測(cè)性能比LSTMRNN高8%以上,說(shuō)明將負(fù)荷樣本重組為圖像是短期負(fù)荷時(shí)間序列預(yù)測(cè)的有效方法。
本文提出了一種基于CNN的智能電網(wǎng)小時(shí)負(fù)荷預(yù)測(cè)方法。先在經(jīng)驗(yàn)大負(fù)荷數(shù)據(jù)集上訓(xùn)練CNN預(yù)測(cè)模型,然后利用最近獲得的小數(shù)據(jù)集對(duì)模型進(jìn)行微調(diào),對(duì)模型進(jìn)行增強(qiáng),并構(gòu)造了許多弱預(yù)測(cè)子模型。通過(guò)對(duì)這些弱子模型的組合,得到了一個(gè)強(qiáng)預(yù)測(cè)模型。實(shí)驗(yàn)結(jié)果表明,該方法能提高預(yù)測(cè)性能。