郝菊香
(西安交通工程學(xué)院 交通運(yùn)輸學(xué)院,西安710000)
鐵路交通是國家交通運(yùn)輸最為重要的方式之一,隨著我國城市化建設(shè)速度的提升,鐵路客流量迅速增加,客流過飽和現(xiàn)象時常發(fā)生,對客流調(diào)度和控制提出了巨大挑戰(zhàn)。鐵路客流的準(zhǔn)確預(yù)測對制定科學(xué)客運(yùn)計劃和控制策略,提高客流調(diào)度效率具有重要意義,可為鐵路運(yùn)輸?shù)陌踩\(yùn)營、效率提升、降低成本提供有效的數(shù)據(jù)參考[1-4]。為實現(xiàn)鐵路客流的準(zhǔn)確預(yù)測,本文提出一種改進(jìn)型客流預(yù)測模型,對粒子群的慣性權(quán)重調(diào)整策略進(jìn)行了改進(jìn),提出一種自適應(yīng)慣性權(quán)重調(diào)整策略,同時引入擾動補(bǔ)償因子,防止粒子群收斂至局部最優(yōu),將改進(jìn)粒子群算法與BP 神經(jīng)網(wǎng)絡(luò)相結(jié)合,對BP 神經(jīng)網(wǎng)絡(luò)初始值和閾值進(jìn)行優(yōu)化,提升模型預(yù)測準(zhǔn)確性。
BP 神經(jīng)網(wǎng)絡(luò)屬于一種多層前饋神經(jīng)網(wǎng),其網(wǎng)絡(luò)結(jié)構(gòu)包含3 層,分別為輸入層、隱含層、輸出層。其中,每層網(wǎng)絡(luò)層中可包含若干個神經(jīng)元,輸入層中的神經(jīng)元個數(shù)決定了輸入向量的維數(shù),輸出層中的神經(jīng)元個數(shù)決定了輸出向量的維數(shù),隱含層對BP神經(jīng)網(wǎng)的結(jié)構(gòu)起決定性作用。隱含層可選擇單層結(jié)構(gòu)或多層結(jié)構(gòu),多數(shù)情況下選用單層結(jié)構(gòu)即可保證回歸預(yù)測的準(zhǔn)確度,選用單層隱含層的BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示[5]。
圖1 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of BP neural network
圖1 中X1,X2,…,Xn表示輸入向量;Y1,Y2,…,Yn表示輸出向量;Wij表示輸入層神經(jīng)元與隱含層神經(jīng)元之間的連接權(quán)重系數(shù);Vjk表示輸出層神經(jīng)元與隱含層神經(jīng)元之間的權(quán)重系數(shù);θj,μk分別表示隱含層和輸出層中的網(wǎng)絡(luò)節(jié)點(diǎn)閾值。
在BP 網(wǎng)絡(luò)的運(yùn)算過程中,存在兩個方面的信息傳播,一方面是輸入信息進(jìn)行正向的傳播,另一方面是誤差信息進(jìn)行反向的傳播。BP 網(wǎng)絡(luò)的主要運(yùn)算流程為:輸入信息通過輸入層流入網(wǎng)絡(luò),并沿著正向方向經(jīng)過隱含層運(yùn)算處理,最終通過輸出層實現(xiàn)網(wǎng)絡(luò)實際輸出;與此同時,將網(wǎng)絡(luò)的實際輸出與理想期望輸出進(jìn)行差值計算,得到誤差值,判斷誤差值是否在允許范圍內(nèi)。若誤差超出限制條件,則表示算法未收斂,則對網(wǎng)絡(luò)層中的連接權(quán)重系數(shù)進(jìn)行反向調(diào)整,通過多次的反復(fù)迭代調(diào)整,直至算法收斂,誤差在可接受范圍內(nèi),實現(xiàn)算法的收斂,BP 神經(jīng)網(wǎng)絡(luò)運(yùn)算結(jié)束[6-7]。
粒子群算法的主要原理:模擬鳥群的覓食行為,從而搜尋出最優(yōu)解,也稱為鳥群覓食算法。粒子群算法的運(yùn)算過程為:首先定義一個維度為D的搜索空間,構(gòu)建一個粒子群,粒子群的粒子個數(shù)定義為m,且為粒子賦予一個隨機(jī)初始值;然后根據(jù)粒子種群中的群體極值和個體極值,對粒子的位置和速度進(jìn)行調(diào)整;通過反復(fù)的迭代調(diào)整,最后收斂至最優(yōu)解。在粒子群迭代過程中,每次迭代的速度和位置更新公式的表達(dá)式為
典型BP 神經(jīng)網(wǎng)的初始權(quán)重一般選取隨機(jī)數(shù),選擇隨機(jī)數(shù)作為初始值會造成算法收斂速度慢,并且容易導(dǎo)致算法收斂至局部極值,無法實現(xiàn)最優(yōu)解。為了解決該問題,可將粒子群運(yùn)算出的最優(yōu)解作為BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)重值,從而提高網(wǎng)絡(luò)的迭代收斂速度和保證最優(yōu)解。為了提高粒子群算法的性能,這里對粒子群的慣性權(quán)重和迭代更新策略進(jìn)行一些改進(jìn)設(shè)計。
粒子群算法的性能具有重要影響作用的參數(shù)包括慣性權(quán)重參數(shù)、加速系數(shù)。其中,慣性權(quán)重對粒子群算法的全局搜索和局部開發(fā)的能力具有均衡作用,目前對于慣性權(quán)重參數(shù)的調(diào)整策略研究,主要集中在對該參數(shù)進(jìn)行動態(tài)調(diào)整,以自適應(yīng)粒子群算法的非線性運(yùn)動規(guī)則,其調(diào)整過程與算法迭代次數(shù)具有很強(qiáng)相關(guān)性。目前慣性權(quán)重參數(shù)調(diào)整存在一些不足:慣性權(quán)重參數(shù)僅隨著迭代次數(shù)的增加,進(jìn)行非線性遞減,在迭代的初期階段慣性權(quán)重系數(shù)的值最大,在迭代最后階段慣性權(quán)重系數(shù)達(dá)到最小值,在迭代過程中慣性權(quán)重系數(shù)進(jìn)行單方向的減小,無法表現(xiàn)出粒子的反復(fù)變動特性[9]。假如粒子在迭代的中期階段達(dá)到了最優(yōu)解范圍,但此時的慣性權(quán)重系數(shù)仍然處于較大值,未能達(dá)到預(yù)期的最小值,從而導(dǎo)致粒子偏離出最優(yōu)解的限制范圍,從而需要重新進(jìn)行搜索,增加了粒子的搜索時間,從而降低了粒子的收斂速度。另外,在一個迭代周期中,由于粒子的慣性權(quán)重值與迭代次數(shù)的相關(guān)性,使得在一次迭代周期中粒子個體均具有一個相同值的慣性權(quán)重,降低了粒子的多樣性,使得算法無法快速搜尋到最優(yōu)解。
為了彌補(bǔ)慣性權(quán)重參數(shù)調(diào)整策略的不足,本文對粒子的慣性權(quán)重進(jìn)行了改進(jìn),其表達(dá)式為
式中:wmax表示設(shè)定的慣性權(quán)重的上限值;wmin表示設(shè)定的慣性權(quán)重的下限值;f表示第i粒子的當(dāng)前適應(yīng)度值;表示種群粒子的平均適應(yīng)度值;fg表示當(dāng)前粒子的最優(yōu)適應(yīng)度值[10-11]。
本文提出的改進(jìn)型慣性權(quán)重方法主要利用了粒子適應(yīng)度值和最優(yōu)適應(yīng)度值的差值,根據(jù)差值進(jìn)行非線性調(diào)整,解決了慣性權(quán)重僅隨迭代次數(shù)進(jìn)行單向遞減的問題。另外,慣性權(quán)重可隨著適應(yīng)度差值的變化進(jìn)行增大或者減小,在適應(yīng)度差值達(dá)到很小時,表示粒子處于了最優(yōu)解范圍內(nèi),此時將慣性權(quán)重調(diào)整至很小值,以提高粒子局部尋優(yōu)特性,實現(xiàn)快速準(zhǔn)確的搜尋最優(yōu)范圍。同時,每個粒子均具有獨(dú)立的適應(yīng)度值,從而可使得在一個迭代周期中粒子會根據(jù)各自的適應(yīng)度值而具備不同的慣性權(quán)重,從而提升了粒子多樣性,有利于提高搜尋最優(yōu)解的效率。在粒子迭代后期,對于適應(yīng)度值較大而未能進(jìn)入最優(yōu)解范圍的粒子,改進(jìn)型慣性權(quán)重方法通過賦予較大的慣性權(quán)重值,可增加這些粒子的全局搜索能力,使得未進(jìn)入最優(yōu)范圍的粒子重新快速尋找最優(yōu)解,克服了傳統(tǒng)方法中迭代后期慣性權(quán)重較小的問題。
傳統(tǒng)粒子群算法容易發(fā)生收斂至局部最優(yōu)的現(xiàn)象,僅僅利用自適應(yīng)慣性權(quán)重調(diào)整很難較好地解決該問題。針對傳統(tǒng)粒子群算法存在的不足,為進(jìn)一步提升粒子群算法性能,在粒子群位置更新公式的基礎(chǔ)上,增減一個擾動補(bǔ)償因子,從而在粒子位置迭代更新的過程中,促使粒子能夠跳出局部最優(yōu),實現(xiàn)全局最優(yōu)搜索。引入擾動補(bǔ)償因子的位置更新公式為
式中:k代表當(dāng)前所處的迭代次數(shù);maxg代表算法進(jìn)行的最大迭代次數(shù)。
新的位置更新公式主要是在原有公式的基礎(chǔ)上增加了一個擾動項,促使粒子可以獲得更加廣泛的分布空間,使得粒子對全局空間的搜索更為充分。這里結(jié)合粒子迭代次數(shù)和適應(yīng)度值對粒子更新進(jìn)行影響,綜合二者的特性,從而使得粒子在每次迭代和適應(yīng)度值變化時均能實現(xiàn)位置更新,提高了種群的多樣性,有利于對搜索空間的全面搜索,避免陷入局部最優(yōu),對粒子搜索效率和準(zhǔn)確率具有明顯提升效果。
基于優(yōu)化粒子群算法的BP 預(yù)測模型的主要原理:首先利用改進(jìn)型的粒子群算法,引入粒子擾動補(bǔ)償因子和自適應(yīng)的慣性權(quán)重調(diào)整策略,實現(xiàn)快速準(zhǔn)確尋優(yōu);然后,將粒子群所得最優(yōu)解作為BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,從而提高BP 神經(jīng)網(wǎng)絡(luò)的搜索收斂效率和準(zhǔn)確性[12-13]。可將該預(yù)測方法分為6 個步驟,預(yù)測流程如圖2所示,步驟分別為:
圖2 預(yù)測流程Fig.2 Forecast flow chart
步驟1建立BP 網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)輸入輸出的因素建立輸入輸出層;
步驟2建立改進(jìn)型粒子群算法,確定粒子種群的規(guī)模、粒子迭代次數(shù)、學(xué)習(xí)因子參數(shù)、慣性權(quán)重參數(shù)的限制范圍、粒子的初始位置和速度等;
步驟3粒子適應(yīng)度更新。利用神經(jīng)網(wǎng)絡(luò)預(yù)測值與實際值的差值,獲取粒子適應(yīng)度,并將當(dāng)前適應(yīng)度與粒子之前的最優(yōu)適應(yīng)度比較,如果當(dāng)前適應(yīng)度比之前獲取的最優(yōu)適應(yīng)度高,則對該粒子的極值進(jìn)行更新,反之則保持粒子原有極值。完成適應(yīng)度更新后,并對全局最優(yōu)值進(jìn)行更新;
步驟4根據(jù)慣性權(quán)重公式和粒子速度、位置更新公式,對粒子速度和位置進(jìn)行計算和更新,如果更新后的粒子速度和位置超出了上限值,則取上限值作為更新值;反之,若更新后的粒子速度和位置超出了下限值,則取下限值作為更新值;
步驟5對迭代后的結(jié)果進(jìn)行判斷,若滿足終止條件,則將迭代結(jié)果作為最優(yōu)解,并跳轉(zhuǎn)至步驟6,否則為不滿足終止條件,跳轉(zhuǎn)至步驟5,繼續(xù)進(jìn)行迭代;
步驟6完成粒子群迭代,將獲取的全局最優(yōu)解作為BP 神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,并對BP 神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,最終將訓(xùn)練完成的模型用于客流量預(yù)測。
為對比測試本文預(yù)測模型性能,以某車站進(jìn)出口客流量為研究對象,連續(xù)3 個月對進(jìn)出口客流數(shù)量進(jìn)行記錄,并將數(shù)據(jù)作為訓(xùn)練集,并將第4 個月數(shù)據(jù)作為測試集。利用Matlab 軟件作為仿真平臺,將本文算法與GPSO-BP[14]、EDPSO-BP[15]算法進(jìn)行對比測試,分別測試3 種算法的預(yù)測結(jié)果。主要初始參數(shù)設(shè)定為:粒子規(guī)模數(shù)量為68,最大迭代次數(shù)為600,慣性權(quán)值的變化范圍設(shè)定為[0.2,0.9],學(xué)習(xí)因子設(shè)定為2。為歸一化測試條件和提高預(yù)測準(zhǔn)確度,在進(jìn)行模型訓(xùn)練前,對模型的輸入輸出變量進(jìn)行歸一化預(yù)處理,預(yù)處理公式為
式中:xi表示歸一化處理前的原始數(shù)據(jù);xmax,xmin表示原始數(shù)據(jù)中的極大值和極小值;z為歸一化之后的數(shù)據(jù)結(jié)果;zmax,zmin表示歸一化后的數(shù)據(jù)極大值和極小值。
通過多次反復(fù)訓(xùn)練與預(yù)測,3 種算法的平均預(yù)測誤差如表1所示。由統(tǒng)計結(jié)果可知,GPSO-BP 模型的預(yù)測誤差最大,主要是由于該模型的慣性權(quán)重值采用線性遞減策略,容易造成粒子迭代至局部最優(yōu),導(dǎo)致預(yù)測誤差增大;EDPSO-BP 模型選用了非線性遞減策略對慣性權(quán)重進(jìn)行調(diào)整,對較低預(yù)測誤差起到了一定的作用;本文算法通過改進(jìn)設(shè)計,引入自適應(yīng)慣性權(quán)重調(diào)整策略和擾動補(bǔ)償因子,在3 種算法中其預(yù)測誤差最小,驗證了該算法的有效性。
表1 三種模型的平均預(yù)測誤差統(tǒng)計Tab.1 Average prediction error statistics of three models
鐵路客流量準(zhǔn)確預(yù)測對鐵路運(yùn)行管理與控制具有重要意義,本文提出了一種基于改進(jìn)粒子群與神經(jīng)網(wǎng)絡(luò)的鐵路客流預(yù)測模型。針對目前已有預(yù)測模型存在的問題,對慣性權(quán)重值調(diào)整策略進(jìn)行優(yōu)化,并引入擾動補(bǔ)償因子,提升粒子群算法的迭代效率,提高粒子群多樣性。將改進(jìn)粒子群算法對BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行優(yōu)化,進(jìn)一步提升模型魯棒性和預(yù)測精度,實驗結(jié)果表明,該改進(jìn)型模型具有更高的預(yù)測精度。