王 瑞,周晨曦,逯 靜
(1.河南理工大學(xué) 電氣工程與自動(dòng)化學(xué)院,焦作 454000;2.河南理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,焦作 454000)
BP神經(jīng)網(wǎng)絡(luò)有著較為良好的非線性映射能力、高度的自適應(yīng)自學(xué)習(xí)能力、良好的泛化能力,以及容錯(cuò)能力的優(yōu)點(diǎn)被應(yīng)用于電力負(fù)荷預(yù)測(cè)中[1,2],同時(shí)也存在著容易陷入局部極小值、收斂速度慢的缺點(diǎn),對(duì)BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)已經(jīng)成為學(xué)者們研究的熱點(diǎn),比如調(diào)整自適應(yīng)學(xué)習(xí)速率[3]、改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)[4]、引入優(yōu)化算法[5~7]等。利用粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)是一種較為常用的方法,利用粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò),可以有效防止BP神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu),并加快其收斂速度?;玖W尤核惴▽?yōu)速度較快、效率高、算法簡(jiǎn)單,但也存在自身的缺陷,當(dāng)算法迭代時(shí),所有粒子都向當(dāng)前自身最優(yōu)解、鄰域或群體最優(yōu)解移動(dòng),種群搜索空間不斷縮小,形成種群快速趨同效應(yīng),而此時(shí)的最優(yōu)位置可能只是某一局部搜索空間里的最優(yōu)位置,搜索陷入局部極值之中,導(dǎo)致早熟收斂,后期種群的多樣性難以維持。對(duì)此學(xué)者們也提出了很多改進(jìn)方法[8~11],在文獻(xiàn)[8]和文獻(xiàn)[9]中分別提出粒子群結(jié)合差分進(jìn)化算法、粒子群結(jié)合遺傳算法的方法,使粒子在搜索過(guò)程中,擁有交叉和變異功能,提高粒子種群的多樣性,避免陷入局部極優(yōu),但此種方式可能使優(yōu)良粒子也發(fā)生變異導(dǎo)致丟失優(yōu)越位置尋優(yōu)效率變差。文獻(xiàn)[10]提出粒子群結(jié)合萬(wàn)有引力搜索算法以提高算法的搜索能力,文獻(xiàn)[11]提出通過(guò)動(dòng)態(tài)改變慣性權(quán)重自適應(yīng)粒子群算法以平衡全局搜索和局部搜索的性能,但這兩種方式均未能改變種群粒子易喪失多樣性的缺點(diǎn)。
在本文中引入了平均適應(yīng)度值,在每次粒子群體迭代過(guò)程中,評(píng)價(jià)每一粒子適應(yīng)度值,求出群體適應(yīng)度平均值,對(duì)于每一粒子適應(yīng)度值與群體平均適應(yīng)度值相比較,當(dāng)粒子適應(yīng)度值劣于群體平均適應(yīng)度值時(shí),對(duì)其空間位置初始化處理,隨機(jī)生成新的位置,當(dāng)優(yōu)于或等于種群平均適應(yīng)度時(shí),保持位置不變,通過(guò)此種方式,不僅保留了種群中優(yōu)良粒子,而且增加了種群在空間中全局搜索能力,保持了種群多樣性,提升了粒子群搜索性能,可以有效提升BP神經(jīng)網(wǎng)絡(luò)短期電力負(fù)荷預(yù)測(cè)精度。
粒子群優(yōu)化算法是由Kennedy博士和Eberhart博士于1995年提出的基于仿生的集群優(yōu)化算法。其原理為:在粒子群算法中,每個(gè)優(yōu)化問(wèn)題的解都是搜索空間中的一個(gè)粒子,每個(gè)粒子都有自己的位置、速度和一個(gè)被優(yōu)化的函數(shù)決定的適應(yīng)值,這些粒子在解的空間中追隨當(dāng)前的最優(yōu)粒子進(jìn)行搜索。每次迭代中,每個(gè)粒子通過(guò)兩個(gè)最優(yōu)解更新自己的位置:一個(gè)是粒子本身所找到的最優(yōu)解,稱為個(gè)體極值,用pbest表示,另一個(gè)是當(dāng)前整個(gè)粒子群中的最優(yōu)解,即全局極值,用gbest表示。在多維空間中其維數(shù)由組成解的參數(shù)數(shù)量決定,BP神經(jīng)網(wǎng)絡(luò)中的參數(shù)數(shù)量即是粒子群空間維數(shù)。
粒子更新自身速度的公式為:
式中w表示慣性權(quán)重,c1和c2為學(xué)習(xí)因子,r1和r2表示在[0,1]之間的隨機(jī)常數(shù),vl+1id和xl+1id分別表示第i個(gè)粒子在第l+1次迭代中第d維的速度和位置;分別表示第i個(gè)粒子在第l次迭代中第d維的速度和位置;pbestid表示第i個(gè)粒子在第d維的個(gè)體極值;gbestd表示群體在第d維的全局極值。
BP神經(jīng)網(wǎng)絡(luò)為輸入層、隱含層、輸出層三層結(jié)構(gòu)。其結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)
在BP神經(jīng)網(wǎng)絡(luò)中,設(shè)輸入層節(jié)點(diǎn)數(shù)為M,輸出層節(jié)點(diǎn)數(shù)設(shè)為N,隱含層神經(jīng)節(jié)點(diǎn)由經(jīng)驗(yàn)公式確定[10],其形式如下:
其中P為[1,10]內(nèi)的任意值,L為隱含層節(jié)點(diǎn)數(shù)。
設(shè)ti為輸入層節(jié)點(diǎn)i的輸入變量;Wih表示輸入層節(jié)點(diǎn)i與隱含層節(jié)點(diǎn)h的連接權(quán)值;bh表示隱含層節(jié)點(diǎn)h的閾值;φ(x)表示隱含層激勵(lì)函數(shù);Who表示隱含層節(jié)點(diǎn)h與輸出層節(jié)點(diǎn)o的連接權(quán)值;BO表示輸出層節(jié)點(diǎn)o的閾值;ψ(x)表示輸出層激勵(lì)函數(shù);
隱含層節(jié)點(diǎn)h的輸入為:
隱含層激勵(lì)函數(shù)為Sigmoid函數(shù),隱含層節(jié)點(diǎn)h的輸出為:
輸出層激勵(lì)函數(shù)ψ(x)為純線性函數(shù),每一節(jié)點(diǎn)輸入和輸出相同:
YO為輸出層節(jié)點(diǎn)o預(yù)測(cè)輸出值。
用改進(jìn)的PSO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),其具體步驟如下:
Step1:對(duì)于BP神經(jīng)網(wǎng)絡(luò),確定BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、學(xué)習(xí)速率、目標(biāo)精度、訓(xùn)練次數(shù)。對(duì)于粒子群算法,確定種群規(guī)模、迭代次數(shù)、學(xué)習(xí)因子、慣性權(quán)值、位置和速度的限定空間、并依據(jù)BP神經(jīng)網(wǎng)絡(luò)參數(shù)個(gè)數(shù)確定粒子群的維數(shù)。
Step2:按照建立的BP神經(jīng)網(wǎng)絡(luò)模型,隨機(jī)生成粒子群Ti=(Wil,wi2,…,Win)T,i=1,2,…,m,作為神經(jīng)網(wǎng)絡(luò)參數(shù)初始值,其中:
n為粒子群搜索空間維數(shù),l為輸入層節(jié)點(diǎn)數(shù),f1為隱含層節(jié)點(diǎn)數(shù),f2為輸出層節(jié)點(diǎn)數(shù),m為種群粒子數(shù)目。
Step3:將Step2中粒子Ti,對(duì)BP神經(jīng)網(wǎng)絡(luò)各個(gè)參數(shù)賦值,之后利用訓(xùn)練樣本訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),達(dá)到設(shè)定精度后得到網(wǎng)絡(luò)中第K樣本節(jié)點(diǎn)o訓(xùn)練輸出值CO(k),則在種群T中個(gè)體Ti的適應(yīng)度 fi tnessi定義為:
其中,YO(k)第k樣本節(jié)點(diǎn)o實(shí)際輸出值,S為總體樣本數(shù),m為種群規(guī)模。
Step4:計(jì)算每一粒子Ti對(duì)應(yīng)的適應(yīng)度值,這里的適應(yīng)度值就是誤差值,適應(yīng)度值越小越好,確定初始種群的個(gè)體最優(yōu)值,全局最優(yōu)值。
Step5:計(jì)算種群平均適應(yīng)度值,對(duì)每一粒子適應(yīng)度值與種群平均適應(yīng)度值比較,如果粒子適應(yīng)度值小于或等于種群平均適應(yīng)度值則保持狀態(tài)不變,如果粒子適應(yīng)度值大于種群平均適應(yīng)度值則將粒子位置初始化。
Step6:計(jì)算新粒子的適應(yīng)度值,更新粒子群體個(gè)體極值與全局極值。
Step7:在每次迭代中先按照式(1)和式(2)更新粒子速度和位置,再計(jì)算適應(yīng)度值、新粒子個(gè)體極值、種群全局極值,然后按照Step5、Step6對(duì)粒子群更新,不斷循環(huán)迭代,直到滿足迭代次數(shù),將種群最優(yōu)粒子對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值與初始閾值賦值。
圖2所示為改進(jìn)粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)程序?qū)崿F(xiàn)流程圖。
圖2 改進(jìn)粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)流程圖
在對(duì)電力負(fù)荷預(yù)測(cè)時(shí),會(huì)受到多種因素的影響比如氣候、日期類型、市場(chǎng)、經(jīng)濟(jì)、政治、所在地區(qū)的地理位置等。對(duì)于不同的地區(qū)每一因素對(duì)于電力負(fù)荷的影響程度不同,本文是對(duì)河南省某地區(qū)的電力負(fù)荷預(yù)測(cè),綜合考慮該地區(qū)的特點(diǎn),得出對(duì)電力負(fù)荷影響程度明顯的因素為日最高氣溫、日最低氣溫、預(yù)測(cè)時(shí)刻氣溫、星期類型和節(jié)假日。從該地區(qū)電力公司采集2017年春季70天的負(fù)荷數(shù)據(jù),并獲取記錄的日最高氣溫與日最低氣溫,以及每一時(shí)刻氣溫。
對(duì)于影響電力負(fù)荷的因素,由于無(wú)法比較它們之間的差異度,需要把各個(gè)特征因素映射到特定的數(shù)值區(qū)間使各個(gè)量之間有了數(shù)值上的可比性[13,14],同時(shí)能夠在BP神經(jīng)網(wǎng)絡(luò)中訓(xùn)練以及預(yù)測(cè),在分析周日與節(jié)假日的映射值時(shí)將兩者劃歸為一類,映射關(guān)系如表1所示。
表1 特征量映射表
用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)前先對(duì)負(fù)荷數(shù)據(jù)進(jìn)行歸一化處理,對(duì)于24個(gè)時(shí)段每一時(shí)段為一類,對(duì)每一類數(shù)據(jù)都?xì)w一化[15],公式如下:
T*a為某一時(shí)段中的負(fù)荷Ta歸一化后的數(shù)據(jù),Tmin,Tmax表示此類負(fù)荷數(shù)據(jù)的最小值與最大值,得出預(yù)測(cè)值再逆還原。
對(duì)于預(yù)測(cè)日是對(duì)每一時(shí)刻的負(fù)荷預(yù)測(cè),按照每天24個(gè)時(shí)間段分為24個(gè)BP神經(jīng)網(wǎng)絡(luò)模型分別預(yù)測(cè)。BP神經(jīng)網(wǎng)絡(luò)負(fù)荷預(yù)測(cè)輸入與輸出節(jié)點(diǎn)描述如表2所示。
表2 BP神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)表述表
在表2中,Xn-1表示預(yù)測(cè)日前一天對(duì)應(yīng)時(shí)段的歸一化負(fù)荷數(shù)據(jù);Xn-2表示預(yù)測(cè)日前兩天對(duì)應(yīng)時(shí)段的歸一化負(fù)荷數(shù)據(jù);Xn-7表示預(yù)測(cè)日前一周對(duì)應(yīng)時(shí)段的歸一化負(fù)荷數(shù)據(jù);TDn表示預(yù)測(cè)日預(yù)測(cè)時(shí)刻氣溫映射值;TLn表示預(yù)測(cè)日當(dāng)天的最低氣溫映射值;THn表示預(yù)測(cè)日當(dāng)天的最高氣溫映射值;Wn表示星期類型映射值,其中國(guó)家法定節(jié)假日和周日為同一類作為休息日;Yn表示該時(shí)段實(shí)際輸出的歸一化負(fù)荷值。
對(duì)每一網(wǎng)絡(luò)參數(shù)設(shè)置:依照表2,BP神經(jīng)網(wǎng)絡(luò)輸入層有7個(gè)節(jié)點(diǎn),輸出層有1個(gè)節(jié)點(diǎn),依照經(jīng)驗(yàn)公式(1),可設(shè)隱含層有12個(gè)節(jié)點(diǎn)。對(duì)網(wǎng)絡(luò)參數(shù)值隨機(jī)設(shè)定[0,1]之間的任意值,神經(jīng)網(wǎng)絡(luò)訓(xùn)練次數(shù)為100,訓(xùn)練目標(biāo)精度為0.0001,學(xué)習(xí)速率設(shè)為0.05。
對(duì)于BP神經(jīng)網(wǎng)絡(luò)部分設(shè)置同上,對(duì)改進(jìn)PSO部分參數(shù)設(shè)置:種群規(guī)模為150,進(jìn)化次數(shù)為500,學(xué)習(xí)因子為C1=C2=1.459445,粒子位置限定范圍為[-1,1],速度限定范圍為[-0.1,0.1],慣性權(quán)重采用線性遞減策略,從0.9隨迭代次數(shù)依次遞減至0.4如下式所示:
wmax為最大權(quán)重,wmin為最小權(quán)重,kmax為最大迭代次數(shù)。
標(biāo)準(zhǔn)PSO-BP神經(jīng)網(wǎng)絡(luò)模型參數(shù)和改進(jìn)的PSO-BP神經(jīng)網(wǎng)絡(luò)模型參數(shù)一致。
預(yù)測(cè)性能指標(biāo)有三種,其一為最大絕對(duì)誤差(MAXAE),其二為平均絕對(duì)誤差(MAE),其三為平均相對(duì)誤差(MRE)。三種類型公式如下:
其中,yf為預(yù)測(cè)值,y為實(shí)際值,單點(diǎn)預(yù)測(cè)誤差為實(shí)際值減去預(yù)測(cè)值。
為了驗(yàn)證提出的改進(jìn)粒子群算法優(yōu)化 BP神經(jīng)網(wǎng)絡(luò)(IPSO-BP模型)的有效性,將其與基本粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型(PSO-BP模型)、BP神經(jīng)網(wǎng)絡(luò)模型(BP模型)用相同的數(shù)據(jù)訓(xùn)練,并對(duì)同一天電力負(fù)荷預(yù)測(cè),通過(guò)預(yù)測(cè)結(jié)果比較三種模型之間的優(yōu)劣。
三種預(yù)測(cè)模型均在Matlab R2014b平臺(tái)中程序?qū)崿F(xiàn),利用采集的前67天的負(fù)荷數(shù)據(jù)訓(xùn)練各個(gè)網(wǎng)絡(luò)模型,并對(duì)第69天的負(fù)荷預(yù)測(cè)。圖3為BP模型預(yù)測(cè)值與實(shí)際值對(duì)比圖,圖4為PSO-BP模型預(yù)測(cè)值與實(shí)際值對(duì)比圖,圖5為IPSO-BP模型預(yù)測(cè)值與實(shí)際值對(duì)比圖,圖6為三種模型預(yù)測(cè)誤差值對(duì)比圖。
圖3 BP模型預(yù)測(cè)值與實(shí)際值對(duì)比圖
圖4 PSO-BP模型預(yù)測(cè)值與實(shí)際值對(duì)比圖
圖5 IPSO-BP模型預(yù)測(cè)值與實(shí)際值對(duì)比圖
圖6 預(yù)測(cè)誤差對(duì)比圖
從圖3、圖4、圖5可以看出,三種預(yù)測(cè)模型都能夠較好的預(yù)測(cè)電力負(fù)荷。從圖6預(yù)測(cè)模型誤差對(duì)比圖可以看出,IPSO-BP模型相比于其他兩種模型整體各點(diǎn)誤差更接近0值。
表3 模型預(yù)測(cè)結(jié)果比較表
在表3中,結(jié)合最大絕對(duì)誤差,平均絕對(duì)誤差,平均相對(duì)誤差三種預(yù)測(cè)性能指標(biāo),可以看出IPSO-BP神經(jīng)網(wǎng)絡(luò)比其他兩種預(yù)測(cè)模型有著較好的預(yù)測(cè)性能,這是因?yàn)楦倪M(jìn)的粒子群在迭代過(guò)程中沒(méi)有形成快速的趨同效應(yīng),在迭代的后期依然保持種群多樣性的特征,避免陷入局部極優(yōu),擴(kuò)大了搜索空間,增加了尋得全局最優(yōu)值得概率,所以其預(yù)測(cè)精度高于PSO-BP模型和BP模型。
本文提出的改進(jìn)粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型,解決了BP神經(jīng)網(wǎng)絡(luò)模型收斂速度慢、迭代過(guò)程中易陷入局部極小值問(wèn)題,以及解決了基本粒子群算法易陷入局部極優(yōu)值的問(wèn)題。將其應(yīng)用于短期電力負(fù)荷預(yù)測(cè)中并與基本粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型和BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果相比較,結(jié)果表明:相對(duì)于基本粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型、BP神經(jīng)網(wǎng)絡(luò)模型該方法有著更高的預(yù)測(cè)精度。