王亞琴, 王耀力,王力波,常青
(太原理工大學(xué) 信息與工程學(xué)院,山西 晉中 030600 )
提高短期負(fù)荷預(yù)測精度可以為電力系統(tǒng)的運(yùn)行提供保障,也有助于高效的能源決策和能源管理,還可以減少系統(tǒng)的運(yùn)行成本[1]。然而,由于氣象和溫度等多重因素的影響,準(zhǔn)確的預(yù)測負(fù)荷是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。為了在負(fù)荷預(yù)測模型中能更好的結(jié)合各種影響因素,基于人工神經(jīng)網(wǎng)絡(luò)的預(yù)測模型得到了深入的研究。其中,BP神經(jīng)網(wǎng)絡(luò)由于不需要先驗(yàn)知識、具有自學(xué)習(xí)的非線性擬合能力,成為了公認(rèn)的有效的短期負(fù)荷預(yù)測模型[2-5]。但是傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)用于預(yù)測時(shí)存在很多不足,如收斂速度慢、初始參數(shù)的選取對網(wǎng)絡(luò)的訓(xùn)練速度影響較大、容易陷入局部最優(yōu)解和網(wǎng)絡(luò)泛化能力弱等。
為了提高負(fù)荷預(yù)測的精度,1991年T. M. PENG等學(xué)者從改進(jìn)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)方面入手提出了一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)算法[6],該算法在網(wǎng)絡(luò)結(jié)構(gòu)上表現(xiàn)為在BP神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上加入了從輸入層到輸出層的連接,形成了從輸入映射到輸出的線性和非線性的組合模型,該模型相比BP神經(jīng)網(wǎng)絡(luò)模型的性能有了很大的提高,但是該方法并沒有得到進(jìn)一步的研究與發(fā)展。Ren和Suganthan在2016年采用隨機(jī)向量法實(shí)現(xiàn)函數(shù)連接的(Random Vector Functional-link, RVFL)網(wǎng)絡(luò)對短期負(fù)荷預(yù)測進(jìn)行了研究,結(jié)果進(jìn)一步表明從輸入到輸出的連接對網(wǎng)絡(luò)預(yù)測性能起著非常重要的作用[7],不僅可以減少隱含層所需的神經(jīng)元個(gè)數(shù),降低網(wǎng)絡(luò)在訓(xùn)練過程中調(diào)整的參數(shù)個(gè)數(shù),還可以提高電力負(fù)荷的預(yù)測精度和網(wǎng)絡(luò)的泛化能力。此外,負(fù)荷預(yù)測模型的性能與網(wǎng)絡(luò)初始連接權(quán)值、閾值等參數(shù)密切相關(guān),因此要建立精確的短期負(fù)荷預(yù)測模型,首先要選擇合理的初始化參數(shù)。目前,隨著仿生學(xué)的發(fā)展,優(yōu)化網(wǎng)絡(luò)初始參數(shù)的方法有粒子群算法[8]、蟻群算法[9]和蜂群優(yōu)化算法[10]等,但這些算法均存在參數(shù)多、難于理解和尋找全局最優(yōu)解的過程較緩慢等不足,難以找到全局最優(yōu)的網(wǎng)絡(luò)初始參數(shù)。
2011年臺灣某學(xué)者通過模擬果蠅的覓食行為提出了一種果蠅優(yōu)化算法(Fruit fly Optimization Algorithm,F(xiàn)OA)[11],和上面幾種優(yōu)化算法相比,它具有參數(shù)少、程序簡單、易于理解和收斂速度快等優(yōu)點(diǎn),在短短的幾年時(shí)間內(nèi)獲得了很高的關(guān)注,如今已廣泛的應(yīng)用在數(shù)學(xué)函數(shù)優(yōu)化[12]、多維背包問題[13]、無等待流量流程調(diào)度[14]、電力負(fù)荷預(yù)測[15]等方面。FOA的性能主要取決于果蠅種群大小、迭代次數(shù)、初始位置和搜索步長的值。其中,搜索步長對果蠅群體的尋優(yōu)能力有很大的影響[16]。針對基本FOA中搜索步長是個(gè)定值,存在后期局部尋優(yōu)能力弱、收斂速度慢的不足,本文提出了一種改進(jìn)的果蠅優(yōu)化算法(Improved Fruit fly Optimization Algorithm,IFOA)用于優(yōu)化神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值,即通過引入動態(tài)衰減因子來動態(tài)調(diào)整搜索步長,以實(shí)現(xiàn)算法全局尋優(yōu)能力和局部尋優(yōu)能力之間的動態(tài)平衡。
因此,首先采用在BP神經(jīng)網(wǎng)絡(luò)中加入從輸入到輸出的連接的網(wǎng)絡(luò)(Back-Propagation Neural Network With Direct Input-to-Output Connections, BPNN-DIOC, 直連BP神經(jīng)網(wǎng)絡(luò)),減少隱含層所需的神經(jīng)元個(gè)數(shù),加快網(wǎng)絡(luò)訓(xùn)練速度。然后利用IFOA優(yōu)化神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值,以改善算法的尋優(yōu)能力。最后,綜合IFOA和BPNN-DIOC構(gòu)建了基于IFOA優(yōu)化BPNN-DIOC的負(fù)荷預(yù)測模型。
文獻(xiàn)[6-7]的結(jié)果表明在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中加入從輸入到輸出的連接對網(wǎng)絡(luò)的預(yù)測性能起著非常重要的作用。受上述工作的啟發(fā),本文采用BPNN-DIOC,即直連BP神經(jīng)網(wǎng)絡(luò)用于電力負(fù)荷預(yù)測。直連BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)圖如圖1所示,紅色箭頭表示從輸入神經(jīng)元到輸出神經(jīng)元的直接連接??梢钥闯觯摼W(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)的主要區(qū)別在于直連BP神經(jīng)網(wǎng)絡(luò)加入了從輸入到輸出的連接,形成了從輸入映射到輸出的線性和非線性的組合模型,從而使網(wǎng)絡(luò)具有了從輸入到輸出的線性映射能力。
圖1 直連BP網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)鋱D
直連BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程為:
隱含層輸出:
(1)
相應(yīng)的輸出層輸出為:
O=∑W21X+∑W22b+β
(2)
(3)
式中X表示訓(xùn)練樣本的輸入數(shù)據(jù);W1是輸入層到隱含層的連接權(quán)值;θ是隱含層閾值;f(·)是輸入層到隱含層的激勵(lì)函數(shù),文中采用logsig函數(shù),具體表達(dá)式為式(3)。W22是隱含層到輸出層的連接權(quán)值;β是輸出層閾值;b是隱含層輸出;W21是輸入層到輸出層的連接權(quán)值,和網(wǎng)絡(luò)其它連接權(quán)值一樣也是隨機(jī)生成的;O是輸出層輸出。
FOA是臺灣某學(xué)者于2011年提出的一種群體智能算法[11],是一種基于果蠅覓食行為的新的全局優(yōu)化方法。果蠅具有敏銳的嗅覺和視覺,剛開始,它通過嗅出漂浮在空氣中的各種氣味來檢測食物源,并飛向相應(yīng)的地方。然后,在接近食物源后,它可能會找到食物或者以其敏銳的視覺飛到其同伴的聚集地。
對于FOA,它主要包含兩個(gè)步驟。在利用嗅覺覓食階段,一群果蠅在群體位置周圍隨機(jī)搜尋食物。然后在視覺階段,利用敏銳的視覺飛向群體的最佳位置。重復(fù)這兩個(gè)步驟直到達(dá)到終止條件。該算法概述如下:
Step1: 初始化果蠅群體:種群大小sizepop,最大迭代次數(shù)maxgen,果蠅群體位置(X_axis,Y_axis);
Step2: 賦予果蠅個(gè)體利用嗅覺搜尋食物的隨機(jī)方向與距離的能力,L0為果蠅個(gè)體搜索步長。
Xi=X_axis+L0×(2×rand()-1)
(4)
Yi=Y_axis+L0×(2×rand()-1)
(5)
Step3: 由于最優(yōu)解的具體位置未知,因此先計(jì)算果蠅個(gè)體與原點(diǎn)間的距離Di,再計(jì)算味道濃度判定值Si,此值為距離的導(dǎo)數(shù)。
(6)
Si=1/Di
(7)
Step4: 把Si帶入設(shè)定的味道濃度判定函數(shù),求出該果蠅個(gè)體的味道濃度Smelli=F(Si);
Step5: 找出果蠅群體中味道濃度最低(最高)的果蠅:
[bestSmellbestindex]=min/max(Smell)
(8)
Step6: 保留最佳濃度值與x,y坐標(biāo),此時(shí)果蠅群體利用視覺飛往該位置。
(9)
Step7: 進(jìn)入迭代尋優(yōu),重復(fù)執(zhí)行步驟step2~step5。如果滿足條件,返回最優(yōu)果蠅個(gè)體。如果不滿足,則繼續(xù)迭代尋優(yōu)。
在FOA迭代尋優(yōu)的步驟2中,搜索步長L0為固定值,即每代果蠅群體的個(gè)體在利用嗅覺尋覓食物時(shí)都是以固定半徑L0向周圍隨機(jī)搜索的。顯然,在果蠅群體個(gè)數(shù)一定的情況下,步長越大,果蠅個(gè)體的搜索空間越大,全局搜索能力越強(qiáng),但其局部尋優(yōu)能力會降低;反之,若步長過小,則果蠅個(gè)體的搜索空間較小,增強(qiáng)局部尋優(yōu)能力的同時(shí)會削弱全局尋優(yōu)能力,且易造成果蠅個(gè)體陷入局部最優(yōu)??梢?,在FOA中,合適的步長直接影響算法的執(zhí)行效率。因此,在運(yùn)用果蠅算法解決實(shí)際問題時(shí),必須選擇合適的步長值,使之既有較強(qiáng)的全局搜索能力以免陷入局部最優(yōu),又具有較好的局部尋優(yōu)能力以提高搜索的精度。
許多學(xué)者針對基本FOA步長固定的缺點(diǎn)提出了改進(jìn)算法,某些學(xué)者提出了一種遞減步長果蠅優(yōu)化算法(Diminishing Step fruit Fly Optimization Algorithm, DS-FOA)[17],該算法隨著迭代次數(shù)的增加逐步減小其搜索步長,即將固定步長變?yōu)檫f減步長,式(10)為DS-FOA算法中搜索步長L0滿足的函數(shù)關(guān)系式。
(10)
式中L0為初始步長值;maxgen為設(shè)定的最大迭代次數(shù);gen為當(dāng)前迭代次數(shù)。
在DS-FOA中,搜索步長L對應(yīng)的衰減因子如圖2所示,可以看出,它并不能較好地保證算法的全局尋優(yōu)性能,在一定程度上降低了FOA算法的全局尋優(yōu)能力。因此,綜合考慮基本FOA算法、DS-FOA算法中存在的問題,通過動態(tài)改變衰減因子,從而動態(tài)改變果蠅群體搜索步長L,提出了采用動態(tài)搜索步長的改進(jìn)果蠅優(yōu)化算法IFOA。IFOA中衰減因子及搜索步長的表達(dá)式如式(8)、式(9)所示,且隨著迭代次數(shù)的變化趨勢如圖1所示。
圖2 衰減因子和迭代次數(shù)之間的關(guān)系
可以看出,當(dāng)k1=20,k2=4時(shí),本文提出的IFOA與DS-FOA、FOA相比,在迭代前期的全局搜索能力和后期的局部搜索能力可以達(dá)到較好的動態(tài)平衡,從而大大提高果蠅算法的尋優(yōu)能力。
(11)
L=L0×ω
(12)
由于神經(jīng)網(wǎng)絡(luò)隨機(jī)生成的初始連接權(quán)值和閾值對網(wǎng)絡(luò)性能有很大的影響,利用IFOA的尋優(yōu)能力用于優(yōu)化網(wǎng)絡(luò)的初始參數(shù),然后在網(wǎng)絡(luò)訓(xùn)練過程中采用LM算法不斷調(diào)整網(wǎng)絡(luò)的連接權(quán)值和閾值,直至達(dá)到訓(xùn)練停止條件。IFOA優(yōu)化神經(jīng)網(wǎng)絡(luò)的流程圖如圖3所示。
圖3 IFOA優(yōu)化神經(jīng)網(wǎng)絡(luò)的流程圖
且詳細(xì)步驟如下:
Step1: 確定神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);
Step2: 初始化種群大小、果蠅個(gè)體的位置以及最大迭代次數(shù)等參數(shù)。其中每個(gè)果蠅個(gè)體包含神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值;
Step3: 賦予果蠅個(gè)體利用嗅覺搜尋食物的隨機(jī)方向與距離的能力,L0為果蠅個(gè)體初始搜索步長。
(13)
Xi=X_axis+(2×rand()-1)×L0×w
(14)
Yi=Y_axis+(2×rand()-1)×L0×w
(15)
Step4: 先計(jì)算果蠅個(gè)體與原點(diǎn)間的距離Di,再計(jì)算味道濃度判定值Si。
(16)
Si=1/Di
(17)
Step5: 把Si帶入設(shè)定的適應(yīng)度函數(shù),即味道濃度判定函數(shù),求出果蠅個(gè)體的適應(yīng)度值。本文以預(yù)測結(jié)果的平均絕對誤差百分比(MAPE)作為果蠅個(gè)體的適應(yīng)度函數(shù),它定義為:
(18)
式中Yi是網(wǎng)絡(luò)輸出反歸一化后的負(fù)荷;Ti是原始負(fù)荷;n表示數(shù)據(jù)的個(gè)數(shù);
Step6: 找出果蠅群體中味道濃度最低的果蠅,也就是MAPE的最小值。
[bestSmellbestindex]=min(Smell)
(19)
Step7: 保留最佳濃度值與x,y坐標(biāo),此時(shí)果蠅群體利用視覺飛往該位置;
(20)
Step8: 進(jìn)入迭代尋優(yōu)過程,重復(fù)執(zhí)行步驟2~步驟6。判斷適應(yīng)度函數(shù)值是否低于上一次迭代的值,如果是,則執(zhí)行步驟7更新群體的最優(yōu)適應(yīng)度值并保留最佳位置;如果不是,則返回步驟2~步驟6繼續(xù)迭代尋優(yōu),直到達(dá)到結(jié)束條件為止;
Step9: 找到全局最優(yōu)個(gè)體后,將其解碼為神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值;
Step10: 采用LM算法對經(jīng)過IFOA優(yōu)化的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練及預(yù)測。
短期電力負(fù)荷受經(jīng)濟(jì)因素、時(shí)間因素、氣象因素和緊急事件等多種因素的影響,其中,氣象因素對電力負(fù)荷的影響尤為明顯。為了實(shí)現(xiàn)對不同類型的數(shù)據(jù)進(jìn)行統(tǒng)一分析以提高預(yù)測準(zhǔn)確性,首先需要將原始數(shù)據(jù)進(jìn)行歸一化處理。在文中,按式(21)將原始負(fù)荷數(shù)據(jù)歸一化到 [0,1],之后將預(yù)測輸出值按式(22)反歸一化為實(shí)際負(fù)荷。其中,T代表原始負(fù)荷,Tmax和Tmin是原始負(fù)荷的最大、最小值,y表示歸一化后的負(fù)荷,Y是反歸一化后的負(fù)荷。另外,式(21)、式(22)所示的歸一化方法很難描述溫度和日期類型等因素與電力負(fù)荷之間的關(guān)系,因此,對溫度進(jìn)行如表1所示的歸一化處理。
表1 溫度歸一化
對日期類型取工作日為0.1,休息日為0.9。
(21)
Yi=yi×(Tmax-Tmin)+Tmin
(22)
式中Ti代表原始負(fù)荷;Tmax和Tmin分別是原始負(fù)荷的最大、最小值;ti表示原始負(fù)荷歸一化后的負(fù)荷;yi為歸一化的網(wǎng)絡(luò)輸出負(fù)荷;Yi是網(wǎng)絡(luò)輸出反歸一化后的負(fù)荷。
本文以澳大利亞能源市場運(yùn)營商(Australian Energy Market Operator,AEMO)[18]新南威爾士州2015年9月份的數(shù)據(jù)為例構(gòu)建短期電力負(fù)荷預(yù)測模型。將預(yù)測日前兩天以及預(yù)測日前一周的電力負(fù)荷數(shù)據(jù)、溫度和日期類型作為構(gòu)建短期負(fù)荷預(yù)測模型的輸入因子,而將預(yù)測日某一時(shí)刻t的電力負(fù)荷作為網(wǎng)絡(luò)的輸出。選取的具體的輸入神經(jīng)元如表2所示。
表2 網(wǎng)絡(luò)的輸入變量(t表示預(yù)測時(shí)刻)
選取2015年9月1日~27日的數(shù)據(jù)作為訓(xùn)練樣本,分別構(gòu)建了BP神經(jīng)網(wǎng)絡(luò)(BPNN)、直連BP神經(jīng)網(wǎng)絡(luò)(BPNN-DIOC)、FOA優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)(FOA-BPNN)、DS-FOA優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)(DS-FOA-BPNN)、IFOA優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)(IFOA-BPNN)以及IFOA優(yōu)化的直連BP神經(jīng)網(wǎng)絡(luò)(IFOA-BPNN-DIOC)六個(gè)不同的網(wǎng)絡(luò)模型用于電力負(fù)荷預(yù)測。為了比較該六種模型在預(yù)測性能方面的好壞,采用預(yù)測輸出的平均絕對誤差百分比(Mean Absolute Percentage Error, MAPE)和均方根誤差(Root Mean Square Error, RMSE)作為模型的評價(jià)指標(biāo)。此外,將MAPE作為果蠅優(yōu)化算法的味道濃度判定函數(shù)(適應(yīng)度函數(shù)),找出果蠅群體中味道濃度最小的果蠅,即找出MAPE的最小值。MAPE和RMSE的定義如下:
(23)
(24)
式中Ti代表原始負(fù)荷;Yi是網(wǎng)絡(luò)輸出反歸一化后的負(fù)荷;n為數(shù)據(jù)的長度。
仿真平臺為MATLABR2012a,利用以上六種模型分別預(yù)測9月28日24小時(shí)內(nèi)的電力負(fù)荷需求。表3為在相同初始條件下六種模型的預(yù)測結(jié)果,從中可以得出以下結(jié)論:
(1)M3與M1相比、M6與M5相比,說明采用直連BP神經(jīng)網(wǎng)絡(luò)可以減少隱含層所需的神經(jīng)元個(gè)數(shù),降低網(wǎng)絡(luò)在訓(xùn)練過程中調(diào)整的參數(shù)個(gè)數(shù),加快網(wǎng)絡(luò)訓(xùn)練速度,從而提高電力負(fù)荷的預(yù)測精度及網(wǎng)絡(luò)的泛化能力;
(2)M2、M4、M5與M1相比,M6與M3相比,說明采用果蠅算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值可以改善網(wǎng)絡(luò)的全局尋優(yōu)能力,從而提高網(wǎng)絡(luò)的預(yù)測性能;
(3)M5、M4和M2三個(gè)模型相比,本文提出的IFOA方法可以改善基本FOA方法中因搜索步長固定造成的后期局部尋優(yōu)能力弱的缺點(diǎn),也可以改善DS-FOA方法中由于線性成比例遞減步長造成全局尋優(yōu)能力減弱的缺點(diǎn),從而使得算法在迭代前期具有很好的全局尋優(yōu)能力的同時(shí)又在迭代后期具有較好的局部尋優(yōu)能力;
(4)M6、M5與M1相比,說明本文構(gòu)建的IFOA-BPNN-DIOC模型與文中其它模型相比可以大大減少網(wǎng)絡(luò)在訓(xùn)練過程中調(diào)整的參數(shù)個(gè)數(shù),加快網(wǎng)絡(luò)的訓(xùn)練過程,提高網(wǎng)絡(luò)的預(yù)測能力和泛化能力,是一種高效的短期負(fù)荷預(yù)測模型。
表3 六種不同模型的預(yù)測結(jié)果
為了提高神經(jīng)網(wǎng)絡(luò)負(fù)荷預(yù)測模型的性能,提出了一種直連BP神經(jīng)網(wǎng)絡(luò)和改進(jìn)果蠅優(yōu)化算法的組合模型用于短期負(fù)荷預(yù)測。首先采用直連BP神經(jīng)網(wǎng)絡(luò)構(gòu)建負(fù)荷預(yù)測模型,以減少網(wǎng)絡(luò)訓(xùn)練過程中調(diào)整的參數(shù)個(gè)數(shù)以及提高網(wǎng)絡(luò)泛化能力。然后利用IFOA優(yōu)化神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值,以改善算法的全局尋優(yōu)能力。最后,構(gòu)建了一種IFOA優(yōu)化BPNN-DIOC的短期負(fù)荷預(yù)測模型。為了探究所提模型的有效性,分別構(gòu)建了BPNN、BPNN-DIOC、FOA-BPNN、DS-FOA-BPNN、IFOA-BPNN以及IFOA-BPNN-DIOC六個(gè)不同的網(wǎng)絡(luò)模型用于負(fù)荷預(yù)測。結(jié)果表明,采用直連BP神經(jīng)網(wǎng)絡(luò)負(fù)荷預(yù)測模型可以大大簡化網(wǎng)絡(luò)結(jié)構(gòu),提高網(wǎng)絡(luò)的預(yù)測精度。而所提出的改進(jìn)果蠅優(yōu)化算法相比基本既有較強(qiáng)的全局搜索能力以免陷入局部最優(yōu),又具有較好的局部尋優(yōu)能力以提高搜索的精度。因此,構(gòu)建的基于IFOA優(yōu)化BPNN-DIOC的負(fù)荷預(yù)測模型具有更高的預(yù)測精度和更好的泛化能力,能夠更加準(zhǔn)確地描述電力負(fù)荷的特性。
下一步可以擴(kuò)大該網(wǎng)絡(luò)模型的應(yīng)用范圍,如用于路徑規(guī)劃等優(yōu)化問題。