基于ACO-BP的省級月售電量預(yù)測
掃描二維碼
隨時隨地手機(jī)看文章
引言
電量因不能大量儲存,生產(chǎn)和消耗幾乎同時進(jìn)行的特殊性,其消耗量常被視為表征社會經(jīng)濟(jì)生產(chǎn)穩(wěn)定的指標(biāo)。同時,為貫徹落實(shí)可持續(xù)發(fā)展戰(zhàn)略,順利開展售電規(guī)劃和發(fā)電計劃的合理設(shè)計等社會經(jīng)濟(jì)工作,提高售電量預(yù)測的準(zhǔn)確度成為電網(wǎng)企業(yè)長期面臨的重要課題之一。
國內(nèi)外對售電量的預(yù)測常采用與負(fù)荷預(yù)測相似的方法,因為兩者的波動特性相似。對于中長期的售電量預(yù)測,通常會建立灰色預(yù)測模型、ARIMA預(yù)測模型?;疑A(yù)測模型可以在數(shù)據(jù)量較小的情況下對呈指數(shù)增長的序列進(jìn)行較好的預(yù)測,ARIMA序列通過分析序列的非線性波動建立合適的預(yù)測模型,但對波動性較大、非線性較強(qiáng)的序列預(yù)測效果不佳。隨著機(jī)器學(xué)習(xí)的興起,越來越多的學(xué)者通過機(jī)器學(xué)習(xí)方法進(jìn)行建模預(yù)測,BP網(wǎng)絡(luò)因其優(yōu)越的性能,廣泛應(yīng)用于預(yù)測領(lǐng)域。宋建等人將BP網(wǎng)絡(luò)用于GM(1,1)預(yù)測優(yōu)化上,通過對GM(1,1)的預(yù)測誤差進(jìn)行修正,充分發(fā)揮BP和GM(1,1)的優(yōu)勢,提升預(yù)測精度。徐揚(yáng)等人用遺傳模擬退火算法對BP網(wǎng)絡(luò)的權(quán)重進(jìn)行修正,提升BP網(wǎng)絡(luò)的預(yù)測效果,改善網(wǎng)絡(luò)陷入局部最小值的問題。陳先飛等人通過構(gòu)建多變量灰色遺傳的中長期預(yù)測模型,顯著提升了預(yù)測準(zhǔn)確度。徐源等人基于數(shù)據(jù)的聚類法進(jìn)行預(yù)測,避免了復(fù)雜的調(diào)參過程,提升了預(yù)測的效率。吳耀武等人采用Dempster合成法與yager組合規(guī)則,提出了基于改進(jìn)證據(jù)理論的預(yù)測模型。
為了改進(jìn)BP網(wǎng)絡(luò)初始權(quán)重和閾值難以確定導(dǎo)致的模型預(yù)測精度較低的問題,可以采用蟻群算法(ACO)進(jìn)行尋優(yōu),但蟻群算法同樣可能由于信息素更新問題陷入局部最優(yōu)或訓(xùn)練時間過長。因此,本文將對ACO進(jìn)行信息素更新的改進(jìn),并利用改進(jìn)的ACO算法對BP網(wǎng)絡(luò)的權(quán)重和閾值進(jìn)行尋優(yōu),以提升BP網(wǎng)絡(luò)的預(yù)測精度和速度。
1預(yù)測模型
機(jī)器學(xué)習(xí)算法對訓(xùn)練樣本的依賴度高,數(shù)據(jù)樣本中所包含的信息量的多少將直接影響算法的訓(xùn)練效果。月售電量是非線性、非平穩(wěn)的時間序列,在對月度售電量進(jìn)行預(yù)測時,春節(jié)效應(yīng)對神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果的影響不可忽視。春節(jié)假期售電量較少,若預(yù)測春節(jié)假期在2月的某年各月的售電量,訓(xùn)練過程中采用的數(shù)據(jù)既有春節(jié)假期在1月的又有春節(jié)假期在2月的,月售電量預(yù)測結(jié)果將會偏大。
為了解決這一問題,本文利用EMD(EmpiricalModeDecomposition)分解法將月度售電量的殘余分量分離出來,并剔除春節(jié)假期與預(yù)測年春節(jié)假期不在同月的數(shù)據(jù),然后提取本征模態(tài)分量,對各個分量建立預(yù)測模型,將各個分量的預(yù)測結(jié)果相疊加得到月售電量。
1.1EMD分解
EMD分解,是一種能將時間序列x(t)分解為若干個本征模態(tài)函數(shù)(imfk)和一個殘余分量(rk)的函數(shù)。每個本征模態(tài)函數(shù)都將同時滿足以下兩個基本條件:
(1)整個時間范圍內(nèi)的函數(shù)極值點(diǎn)個數(shù)和過零點(diǎn)個數(shù)要求一致,最多不得大于一個:
(2)任意時間點(diǎn)上的局部最大、最小的包絡(luò)線均值必須是零。
給定一個信號x(t),對其進(jìn)行EMD分解,具體步驟如下:
(1)找出x(t)所有的極值點(diǎn)。
(2)通常采用三次樣條函數(shù)擬合出所有極小值點(diǎn)形成下包絡(luò)emin(t)和所有極大值點(diǎn)形成上包絡(luò)emax(t)。
(3)計算兩條包絡(luò)線的均值m(t):
(4)對原信號進(jìn)行分離得到新的信息序列xk(t),若能夠滿足判斷條件,則稱xk(t)為該信號的本征模態(tài)分量imfk。
其中:
判斷條件為
其中e為篩選閾值,一般取402.40+。
(5)分離出模態(tài)分量后,將原始信號x(t)減去本征模態(tài)分量imfk后得到殘余分量,記為ri(t)。
(6)對殘余分量重復(fù)步驟(1)~(5),直到殘余分量為常數(shù)或者單調(diào)信號。
綜上可知,原始信號可以表示為:
通過對時間序列進(jìn)行EMD分解,能夠得到時間序列的特征變化量,降低原始序列的波動性和復(fù)雜性。
1.2 ACO優(yōu)化BP算法
1.2.1 BP網(wǎng)絡(luò)
BP神經(jīng)網(wǎng)絡(luò)是多層感知器的一種,其加入了誤差逆向傳播環(huán)節(jié)的反饋機(jī)制,廣泛應(yīng)用于研究領(lǐng)域。BP神經(jīng)網(wǎng)絡(luò)的運(yùn)作核心是輸入量經(jīng)過隱藏層的正向傳播得到輸出量后,通過計算輸出量與期望輸出量之間的誤差,將該誤差反向傳播,并在反向傳播的過程中不斷修正連接權(quán)重和閾值,不斷減小網(wǎng)絡(luò)的誤差,直到誤差趨近于零。
BP算法有下列優(yōu)點(diǎn):(1)當(dāng)BP神經(jīng)網(wǎng)絡(luò)具有足夠多的隱藏層神經(jīng)元時,可以擬合任意非線性函數(shù):(2)BP神經(jīng)網(wǎng)絡(luò)是一種全局?jǐn)M合算法,具有較強(qiáng)的泛化能力。
BP網(wǎng)絡(luò)基本結(jié)構(gòu)如圖1所示,由i維的輸入層x、中間的j個神經(jīng)單元的單隱藏層J和m維的輸出層Y構(gòu)成。
隱藏層的神經(jīng)元個數(shù)常使用如下經(jīng)驗公式來確定,其中y為[l,l4]的常數(shù)。
隱藏神經(jīng)元的輸出為:
輸出層的輸出為:
其中f為激活函數(shù),常用的激活函數(shù)為sigmoid函數(shù)。
誤差函數(shù)可以表示如下,用于判斷網(wǎng)絡(luò)和修正網(wǎng)絡(luò)參數(shù)。
初始權(quán)重和閾值的選擇不當(dāng)將直接影響B(tài)P算法的效果,本文采用ACO算法先對初始權(quán)重和閾值進(jìn)行尋優(yōu)以改善陷入局部最優(yōu)、收斂速度慢的問題。
1.2.2 ACO-BP網(wǎng)絡(luò)
ACO優(yōu)化BP網(wǎng)絡(luò)的基本思路是用螞蟻尋找出BP所有的權(quán)重和閾值解空間,因信息素的揮發(fā)性,最短的路徑上將留下最高的信息素濃度。一段時間后,選擇最短路徑的螞蟻逐漸增多,最終將集中在最短路徑上,該路徑所確定的解就是最優(yōu)權(quán)重和閾值。流程圖如圖2所示。
具體步驟如下:
(1)初始化。首先判斷待優(yōu)化權(quán)重和閾值的維度i、權(quán)重和閾值的取值區(qū)間,將每個區(qū)間N等分,在各個子區(qū)間內(nèi)確定一個候選值,該區(qū)間內(nèi)的所有候選值構(gòu)成一個集合c,共有i個。N的個數(shù)不是越多越好,過多將會延長蟻群尋優(yōu)的過程,而且不能有效改善BP網(wǎng)絡(luò)局部最優(yōu)的問題。設(shè)置螞蟻的個數(shù)、網(wǎng)絡(luò)的預(yù)期誤差e*、最大迭代次數(shù)tmax、信息素常數(shù)O。
(2)各個螞蟻初始在候選值上,按照一定的概率進(jìn)行移動,選擇下一個集合的某個候選值,直到所有的螞蟻在i個集合中均完成候選值的選擇。選擇集合c中元素j的概率可以表示為:
式中:Tj為元素j上的信息素含量。
(3)在所有螞蟻都在集合c中根據(jù)上述公式選擇到候選值后,即可得到該迭代次數(shù)下的權(quán)重和閾值組合,將其賦予BP網(wǎng)絡(luò)計算BP誤差,將誤差從大到小排列,記錄本次的最優(yōu)解。
(4)判斷最小誤差與期望誤差e*,若最小誤差小于期望誤差,則轉(zhuǎn)至步驟(6),否則更新信息素。
式中:p為信息素留存系數(shù),取值區(qū)間為[0,1]。
為避免ACO過早陷入局部最優(yōu),可對p進(jìn)行改進(jìn),將其根據(jù)迭代次數(shù)的增加自適應(yīng)改變:
AT為上期循環(huán)后信息素的變化量,本次迭代中每只選擇j元素的螞蟻均會對j的信息素進(jìn)行更新,它是由信息素常數(shù)O和上期迭代的網(wǎng)絡(luò)誤差ek決定的。為了使蟻群的收斂速度加快,在更短的時間內(nèi)通過信息素的更新,更快地判斷候選值的優(yōu)劣,引入信息素增強(qiáng)調(diào)節(jié)因子入對信息素進(jìn)行更新,具體公式表示如下:
(5)迭代次數(shù)加1,判斷是否達(dá)到最大迭代次數(shù)1max,若達(dá)到則轉(zhuǎn)至步驟(6),否則轉(zhuǎn)至步驟(2)。
(6)跳出ACO循環(huán),將尋找到的權(quán)重和閾值賦予BP網(wǎng)絡(luò),進(jìn)行BP網(wǎng)絡(luò)的迭代。
采用均方根誤差RMsE(RootMeansquareError)、平均絕對誤差MAE(MeanAbsoluteError)和決定系數(shù)R2對擬合結(jié)果進(jìn)行評價,用相對誤差對預(yù)測結(jié)果進(jìn)行
對比。
式中:Yi為真實(shí)值:Yi'為預(yù)測值:為真實(shí)值的平均值。
RMSE和MAE的數(shù)值越小越好:R2的數(shù)值越大越好,取值范圍為[5,1]。
2實(shí)證分析
本文采用來自某省電網(wǎng)公司的歷年的月售電量數(shù)據(jù)進(jìn)行實(shí)例分析。首先,對月售電量的基本特性進(jìn)行分析。圖3(B)展示了2515、2510、251a年的月售電量,這三年的春節(jié)假期均在2月,且整體趨勢相差不大,2月的售電量最低:圖3(b)中2514年的春節(jié)假期位于1月,相較于其他兩年,售電低谷在1月。
利用已獲得的某省2515一2525年月售電量數(shù)據(jù),除去春節(jié)假期在1月的2512、2514、2517、2525年月售電量數(shù)據(jù),將剩下的月售電量數(shù)據(jù)進(jìn)行EMD分解,獲取到4個本征模態(tài)分量和1個表示整體趨勢的殘余分量,可以發(fā)現(xiàn)月售電量的整體趨勢是逐年增長的。EMD分量如圖4所示,其中(a)~(d)為高頻分量,最能表現(xiàn)出月售電量的波動趨勢。
利用這7年的EMD分解量分別用神經(jīng)網(wǎng)絡(luò)進(jìn)行81個周期的訓(xùn)練,然后對2021年的月售電量進(jìn)行預(yù)測。預(yù)測流程如圖5所示。
對于每個EMD分量,其輸入層的節(jié)點(diǎn)數(shù)為3,即每次預(yù)測需要讀取前3個時間點(diǎn)的數(shù)據(jù),最大訓(xùn)練次數(shù)為500,學(xué)習(xí)率為0.001,輸出層的節(jié)點(diǎn)數(shù)為1,對應(yīng)預(yù)測的EMD分量數(shù)值,可判斷出隱藏層的節(jié)點(diǎn)個數(shù)的取值范圍為[3,13]。對每個節(jié)點(diǎn)取值進(jìn)行10次BP神經(jīng)網(wǎng)絡(luò)試驗,用MsE衡量預(yù)測的優(yōu)劣,選擇對應(yīng)的MsE最低的隱藏層數(shù)。最終選擇各個分量在隱藏層的層數(shù)分別為6、13、15、3、4。
對于改進(jìn)的和未改進(jìn)的ACo-BP神經(jīng)網(wǎng)絡(luò),imf1待優(yōu)化的參數(shù)維度為31,取值的區(qū)間為[-2,2],將區(qū)間等分為100份,選擇螞蟻的個數(shù)為120,信息素的留存系數(shù)為0.8,信息素常數(shù)Q取20,最大迭代次數(shù)為1000,允許最大誤差e*為0.000l。BP網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)為3,輸出層節(jié)點(diǎn)數(shù)為l,隱藏層節(jié)點(diǎn)數(shù)為6,學(xué)習(xí)率為0.00l,最大迭代次數(shù)為l000,允許最大誤差e*為0.0002。圖6展示了改進(jìn)的ACo-BP對202l年EMD分量的預(yù)測結(jié)果。
從圖6可以觀察得出,本征分量的預(yù)測準(zhǔn)確率相對較低。這是由于本征分量為高頻分量,其變化規(guī)律較為復(fù)雜,學(xué)習(xí)較為困難。相反,殘余分量是長期變化的趨勢分量,曲線較為平緩,其預(yù)測值與真實(shí)值相差較小。將5個分量相疊加即可得到2021年月售電量的預(yù)測值,預(yù)測值與真實(shí)值對比如圖7所示。
同樣可以使用ACO-BP、BP網(wǎng)絡(luò)對EMD分量進(jìn)行學(xué)習(xí),將分量的預(yù)測結(jié)果疊加即可得到最終的預(yù)測結(jié)果。將BP、ACO-BP、改進(jìn)的ACO-BP的預(yù)測結(jié)果進(jìn)行對比,如圖8所示,3種預(yù)測模型均能很好地預(yù)測出月售電量的變化規(guī)律。
從表1的對比可以看出,改進(jìn)的ACO-BP預(yù)測精確度更高,決定系數(shù)R2最高為0.982186,均方根誤差RMSE和平均絕對誤差MAE最小。
表2對比了3種算法達(dá)到最大誤差時對應(yīng)的迭代次數(shù)。改進(jìn)的ACO-BP迭代次數(shù)最少,相較于ACO-BP和BP的迭代次數(shù)分別減少了32.3%和53.1%。
表3進(jìn)一步展示了3種預(yù)測模型的預(yù)測結(jié)果和相對誤差。通過對比可以發(fā)現(xiàn),改進(jìn)的ACO-BP最大相對誤差為7.91%,相較于ACO-BP和BP,最大相對誤差分別降低了4.92%和18.03%。
3結(jié)語
本文建立了基于ACO-BP的神經(jīng)網(wǎng)絡(luò)預(yù)測模型,通過對月售電量時間序列的分析和分解預(yù)測,消除由春節(jié)假期帶來的預(yù)測上的干擾。同時,對傳統(tǒng)的ACO優(yōu)化模型進(jìn)行了信息素增減量和留存系數(shù)更新的改進(jìn),該方法可以更大程度上發(fā)揮ACO全局尋優(yōu)和BP的泛化能力。對某省的月售電量進(jìn)行預(yù)測試驗,結(jié)果表明,改進(jìn)的ACO-BP模型精度更高,能夠有效進(jìn)行月售電量的預(yù)測。