王浩,郭瑞軍
(大連交通大學(xué) 交通運(yùn)輸工程學(xué)院,遼寧 大連 116028)
?
改進(jìn)PCA-BP神經(jīng)網(wǎng)絡(luò)模型在公路客運(yùn)量預(yù)測的應(yīng)用
王浩,郭瑞軍
(大連交通大學(xué) 交通運(yùn)輸工程學(xué)院,遼寧 大連 116028)
用PCA-BP神經(jīng)網(wǎng)絡(luò)模型對公路客運(yùn)量進(jìn)行預(yù)測,預(yù)測精度與收斂速度都不是很理想,為克服PCA-BP神經(jīng)網(wǎng)絡(luò)算法存在的非線性逼近、迭代次數(shù)過多,易陷入局部極值等不足,提出將PCA-BP神經(jīng)網(wǎng)絡(luò)模型與動態(tài)陡度因子、附加動量因子和動態(tài)調(diào)整學(xué)習(xí)率算法結(jié)合的方法,給出具體的網(wǎng)絡(luò)學(xué)習(xí)方法,并結(jié)合實(shí)際調(diào)查數(shù)據(jù)進(jìn)行對比測試,分析結(jié)果證明了改進(jìn)型PCA-BP神經(jīng)網(wǎng)絡(luò)模型對公路客運(yùn)量預(yù)測有效性.
PCA-BP神經(jīng)網(wǎng)絡(luò); 動態(tài)陡度因子; 動態(tài)調(diào)整學(xué)習(xí)率算法; 客運(yùn)量; 預(yù)測
公路客運(yùn)量預(yù)測屬于復(fù)雜非線性系統(tǒng)問題,早期的預(yù)測方法主要有多元線性回歸預(yù)測模型、自回歸模型、自回歸滑動平均模型、指數(shù)平滑預(yù)測模型等.Sherif Ishak等[1]應(yīng)用實(shí)時(shí)數(shù)據(jù)分析和評價(jià)了幾種交通客運(yùn)量預(yù)測模型的效果;孫煦、陸化普[2]等對公路客運(yùn)量預(yù)測難以建立精確預(yù)測模型的問題,引入基于蟻群優(yōu)化的支持向量機(jī)算法對公路客運(yùn)量進(jìn)行預(yù)測.這些方法可以實(shí)現(xiàn)交通客運(yùn)量的預(yù)測工作,但缺點(diǎn)是沒有擺脫建立精確數(shù)學(xué)模型的困擾,其預(yù)測效果很大程度上取決于參數(shù)的選取,并且非線性擬合能力不突出.Tung、Chrobok、Quek[3-5]等人采用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測,證明神經(jīng)網(wǎng)絡(luò)得到的結(jié)果的精確性較傳統(tǒng)預(yù)測模型高.董春嬌[6]等在傳統(tǒng)的BP(Back Propagation)神經(jīng)絡(luò)算法中有所改進(jìn),采用Elman神經(jīng)網(wǎng)絡(luò)的交通流短時(shí)預(yù)測,通過在前饋網(wǎng)絡(luò)的隱含層中增加一個(gè)承接層,作為延時(shí)算子使系統(tǒng)具有適應(yīng)時(shí)變特性的能力.在公路客運(yùn)量的預(yù)測方面,神經(jīng)網(wǎng)絡(luò)應(yīng)用較多,但傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)存在的非線性逼近、迭代次數(shù)過多,易陷入局部極值等不足,而且預(yù)測結(jié)果影響因素分析較少,對預(yù)測指標(biāo)的選取沒有進(jìn)行全面充分的系統(tǒng)考慮.
本文在PCA(Principle Component Analysis)與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合構(gòu)成PCA-BP網(wǎng)絡(luò)模型的基礎(chǔ)上,將動態(tài)陡度因子、附加動量因子和動態(tài)調(diào)整學(xué)習(xí)率等方法融入模型的運(yùn)作過程,進(jìn)一步完善算法,提出改進(jìn)PCA-BP神經(jīng)網(wǎng)絡(luò)模型,并將其運(yùn)用到公路客運(yùn)量的預(yù)測.
公路客運(yùn)量受人口總數(shù)、區(qū)域經(jīng)濟(jì)發(fā)展水平、居民消費(fèi)水平等多種因素影響.在用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行模擬預(yù)測時(shí),首先要確定對預(yù)測指標(biāo)有影響的主要因素(即系統(tǒng)輸入).運(yùn)用PCA-BP神經(jīng)網(wǎng)絡(luò)模型可以實(shí)現(xiàn)減少輸入變量個(gè)數(shù),達(dá)到降維目的,并使其包含原輸入變量群的絕大部分信息,從而提高神經(jīng)網(wǎng)絡(luò)的運(yùn)行效率和預(yù)測精度.PCA-BP神經(jīng)網(wǎng)絡(luò)模型流程見圖1.
1.1 PCA原理[7]
在所有的線性組合中選取方差最大的p1為第一主成分.若p1不足以代表原來的m個(gè)指標(biāo)的信息,則選取p2即第二個(gè)線性組合.為有效反映原來信息,p1已有信息不需出現(xiàn)在p2中,即Cov(p1,p2),則p2為第二主成分.以此類推,可構(gòu)造第三,第四,……,第n個(gè)主成分.
這m個(gè)變量中可找到n個(gè)變量(n 圖1 PCA-BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖 1.2 BP神經(jīng)網(wǎng)絡(luò)原理 模型拓?fù)浣Y(jié)構(gòu)有三層,即輸入層、隱含層和輸出層,同一層的節(jié)點(diǎn)之間相互不關(guān)聯(lián),異層的神經(jīng)元間前向連接.當(dāng)一對樣本學(xué)習(xí)模式提供網(wǎng)絡(luò)后,神經(jīng)元的激活值從輸入層經(jīng)中間層向輸出層傳播,在輸出層各神經(jīng)元獲得網(wǎng)絡(luò)的輸入響應(yīng).之后,按減少希望輸出與實(shí)際輸出誤差的方向,從輸出層經(jīng)各中間層逐層修正各連接權(quán),最后到輸入層. 假設(shè)三層BP網(wǎng)絡(luò),輸入層第i個(gè)節(jié)點(diǎn)的輸入為Xi,隱含層j個(gè)節(jié)點(diǎn)的輸入和輸出層分別為Sj和Hj,輸出層第k個(gè)節(jié)點(diǎn)的輸入和輸出分別為Ck與Ok,輸入層、隱含層、輸出層節(jié)點(diǎn)數(shù)為m,l,n.輸入層節(jié)點(diǎn)與隱含層將節(jié)點(diǎn)之間的聯(lián)接權(quán)值為wij,隱含層節(jié)點(diǎn)與輸出層節(jié)點(diǎn)之間的聯(lián)結(jié)權(quán)值為wjk,隱含層如輸出層各單元的輸出閥值分別為aj和bk,輸出層第k個(gè)節(jié)點(diǎn)的期望輸出為tk,激活函數(shù)為f(x),誤差函數(shù)為E.各函數(shù)分別為: 本文基于PCA-BP神經(jīng)網(wǎng)絡(luò)模型,采用動態(tài)陡度因子、附加動量因子和動態(tài)調(diào)整學(xué)習(xí)率算法,將網(wǎng)絡(luò)模型進(jìn)行優(yōu)化,最后將降維的樣本集合和優(yōu)化的權(quán)值代入網(wǎng)絡(luò),在經(jīng)過PCA-BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練之后,用檢驗(yàn)樣本集合對其進(jìn)行檢驗(yàn). 2.1 附加動量法 傳統(tǒng)BP 算法在調(diào)整權(quán)值時(shí), 只按照當(dāng)前時(shí)刻的負(fù)梯度方向調(diào)整,沒有考慮到以前各次運(yùn)算中的梯度方向, 導(dǎo)致新樣本對迭代過程的影響太大,會導(dǎo)致數(shù)據(jù)訓(xùn)練過程中調(diào)整方向發(fā)生振蕩,導(dǎo)致不穩(wěn)定和收斂速度慢.附加動量的BP 算法[10]考慮了以前時(shí)刻的貢獻(xiàn), 其權(quán)值迭代公式如下所示: 其中,D(n)和D(n-1))分別表示n時(shí)刻和n-1時(shí)刻的負(fù)梯度,η為學(xué)習(xí)率,α為動量因子.加入以前時(shí)刻梯度的貢獻(xiàn),使網(wǎng)絡(luò)忽略誤差曲面上的細(xì)節(jié)特征,減小學(xué)習(xí)過程的震蕩趨勢,避免網(wǎng)絡(luò)陷入局部極小點(diǎn)的問題. 2.2 動態(tài)調(diào)整學(xué)習(xí)率[8] 傳統(tǒng)BP模型中,學(xué)習(xí)率是固定的.學(xué)習(xí)率對模型運(yùn)算性能影響較大,動態(tài)的學(xué)習(xí)率可以改善訓(xùn)練算法的性能.學(xué)習(xí)率η與誤差函數(shù)相關(guān)聯(lián),在網(wǎng)絡(luò)的每一步學(xué)習(xí)過程中動態(tài)調(diào)整η的值,對不同的誤差質(zhì)的變化,每一步學(xué)習(xí)后學(xué)習(xí)率都進(jìn)行相應(yīng)的調(diào)整.調(diào)整公式為: 3.1 網(wǎng)絡(luò)初始化 對所得的社會經(jīng)濟(jì)指標(biāo)進(jìn)行主成分分析,得出輸入節(jié)點(diǎn)數(shù)與輸出節(jié)點(diǎn)數(shù)m,n;采用經(jīng)驗(yàn)公式確定節(jié)點(diǎn)數(shù)的上下限,隱節(jié)點(diǎn)數(shù)的上限作為初始隱節(jié)點(diǎn)數(shù)l.初始化輸入層、隱含層和輸出層各神經(jīng)元間權(quán)值wij,wjk.隱含層閾值a,輸出層閾值b;給定初始化的學(xué)習(xí)速率η;網(wǎng)絡(luò)輸入和輸出為(X,Y). 3.2 計(jì)算隱含層輸出 根據(jù)給定的輸入向量X,輸入層和隱含層間連接權(quán)值wij以及隱含層閥值a,計(jì)算隱含層輸出H. 式中,l代表隱含層節(jié)點(diǎn)數(shù),f代表隱含層神經(jīng)元刺激函數(shù). 神經(jīng)元刺激函數(shù)為: 具體表現(xiàn)是通過改變刺激函數(shù)中的陡度因子P[9-10].如圖2,當(dāng)P很大時(shí)S型線比較平坦,當(dāng)P很小時(shí),S型曲線比較陡峭,當(dāng)P趨近于0時(shí),S型曲線趨向階躍函數(shù). 圖2 激勵函數(shù)隨P變化圖 P的衰減方式?jīng)Q定著最終算法的速度和準(zhǔn)確性.采用下列指數(shù)方式對P的衰減進(jìn)行改進(jìn): P=qtP0 式中:P0>0是初始值,t是迭代次數(shù),而常數(shù)q∈(0,1),可以看出,P為q的單調(diào)遞減函數(shù),當(dāng)t減小時(shí),P的下降速度變快;當(dāng)t變大時(shí),P的下降速度變慢.這樣,通過恰當(dāng)?shù)剡x擇q的值,就可以控制P的下降速度. 3.3 計(jì)算輸出層輸出 根據(jù)隱含層輸出H,連接權(quán)值wjk和閥值b,計(jì)算網(wǎng)絡(luò)的預(yù)測輸出O,并計(jì)算預(yù)測誤差e. 3.4 學(xué)習(xí)速率的改變 根據(jù)迭代次數(shù),學(xué)習(xí)率不斷減小,計(jì)算當(dāng)前學(xué)習(xí)率. 式中,η為學(xué)習(xí)速率,ηmax為最大學(xué)習(xí)率,ηmin為最小學(xué)習(xí)率,tmax為最大迭代次數(shù),t為當(dāng)前迭代次數(shù). 3.5 附加動量的權(quán)值與閥值的更新 根據(jù)求得的網(wǎng)絡(luò)預(yù)測誤差,更新網(wǎng)絡(luò)權(quán)值wij和wjk,并且更新閥值a和b. 在上述式中,λ為動量因子,取λ=0.005. 3.6 進(jìn)行判斷 根據(jù)迭代次數(shù)判斷算法是否結(jié)束,若沒有結(jié)束,返回3.2處重新開始. 為驗(yàn)證模型預(yù)測效果,選取山東濰坊市1996年至2005年10個(gè)樣本為學(xué)習(xí)樣本,將2006至2012年7個(gè)樣本作為檢驗(yàn)樣本,數(shù)據(jù)見表1.利用SPSS統(tǒng)計(jì)工具,對數(shù)據(jù)進(jìn)行因子分析,根據(jù)實(shí)驗(yàn)和經(jīng)驗(yàn)[11],公式中的參數(shù)可以設(shè)定為a=1.05,b=0.7,ηmin=0.025; tmax=5000; q=0.85.選取特征值大于1的作為主成分,可以發(fā)現(xiàn)當(dāng)取到3個(gè)主成分,其累積貢獻(xiàn)率達(dá)86.26%>80%,滿足要求,即神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)為3個(gè).將各個(gè)參數(shù)代入模型之后可以得出:P0=90,Pmin=0.1.結(jié)果如表2、表3所示. 表1 某區(qū)域社會經(jīng)濟(jì)指標(biāo) 表2 因子載荷矩陣表 表3 主成分特征值和貢獻(xiàn)率 經(jīng)主成分分析,可以確定出神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)為3個(gè),即: 第一個(gè)主成分分?jǐn)?shù)=0.208×總?cè)丝跀?shù)-0.102×人均旅行次數(shù)-0.112×居民消費(fèi)指數(shù)+0.202×居民消費(fèi)水平+0.162×機(jī)動車保有量+0.212×地區(qū)生產(chǎn)總值+0.119×人口密度+0.217×消費(fèi)總額; 第二個(gè)主成分分?jǐn)?shù)=0.241×總?cè)丝跀?shù)+0.305×人均旅行次數(shù)+0.219×居民消費(fèi)指數(shù)-0.210×居民消費(fèi)水平-0.253×機(jī)動車保有量+0.249×地區(qū)生產(chǎn)總值-0.075×人口密度+0.253×消費(fèi)總額; 第三個(gè)主成分分?jǐn)?shù)=-0.160×總?cè)丝跀?shù)-0.090×人均旅行次數(shù)+0.840×居民消費(fèi)指數(shù)+0.222×居民消費(fèi)水平-0.097×機(jī)動車保有量-0.114×地區(qū)生產(chǎn)總值+0.651×人口密度-0.077×消費(fèi)總額; 運(yùn)用MATLAB等軟件分別對傳統(tǒng)PCA-BP神經(jīng)網(wǎng)絡(luò)以及改進(jìn)型PCA-BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行運(yùn)算.后七年的公路客運(yùn)量實(shí)際值與預(yù)測值數(shù)據(jù)比較見圖3. 圖3 預(yù)測值比較 從上述表格數(shù)據(jù)可知,改進(jìn)型PCA-BP模型的迭代次數(shù)2361次,準(zhǔn)確率為88.91%比傳統(tǒng)的PCA-BP模型更為理想,預(yù)測效果較好. 本文將傳統(tǒng)的PCA-BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行改進(jìn),將附加動量因子、動態(tài)陡度因子、動態(tài)調(diào)整學(xué)習(xí)率算法等方法加入模型,使改進(jìn)后模型不僅對預(yù)測指標(biāo)進(jìn)行全面充分的系統(tǒng)考慮,而且有效解決BP神經(jīng)網(wǎng)絡(luò)存在的非線性逼近、迭代次數(shù)過多,易陷入局部極值等缺點(diǎn),并把預(yù)測結(jié)果與傳統(tǒng)PCA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果相比較,從結(jié)果看出,不僅預(yù)測精度有了提高,而且收斂速度也得到加快.由此可見,改進(jìn)PCA-BP神經(jīng)網(wǎng)絡(luò)比傳統(tǒng)的PCA-BP模型更具優(yōu)越性,能較好的得到預(yù)測結(jié)果,可以為相關(guān)企業(yè)和部門的決策提供一定的技術(shù)支持. [1]SHREIF ISHAK, HAITHAM AI-DEEK. Performance Evaluation of Short-Term Time-Series Traffic Prediction Model [J]. Journal of Transportation Engineering, 2002, 128(6): 490-498. [2]孫煦,陸化普,吳娟. 基于蟻群優(yōu)化支持向量機(jī)模型的公路客運(yùn)量預(yù)測[J]. 合肥工業(yè)大學(xué),2012,35(1):124-129. [3]TUNG BUI, JINTAE LEE. An agent-based frame work for systems[J].Decision Support System,1999:225-237. [4]YIN HONGBIN, WONG S C, XU J IANMIN.Urban traffic flow prediction using a fuzzy-neural approach [J].Transportation Research Part C,2002,13(8):85-98. [5]QUCK C, SINGH A,POP-YAGE. A novel self-organizing fuzzy neural network based on the Yager inference[J]. Expert Systems with Application,2005,7(1):229-242. [6]董春嬌,邵春福. 基于Elman神經(jīng)網(wǎng)絡(luò)的道路網(wǎng)短時(shí)交通流預(yù)測方法[J].交通運(yùn)輸系統(tǒng)工程與信息,2010,10(1):145-151. [7]肖漢,曹軍. 基于PCA的BP神經(jīng)網(wǎng)絡(luò)模型在城市供水預(yù)測中的應(yīng)用[J]. 山東農(nóng)業(yè)大學(xué)學(xué)報(bào),2013,44(2):266-270. [8]BRIAN L. Comparison of Parametric and Nonparametric Models for Traffic Flow Forecasting [J].Transportation Research Part C: Emerging Technologies,2002,10(4):303 -321. [9]COOK D, RAGSDALE,MAJOR R I. Combining a neural network with a genetic algorithm for process parameter optimization[J].Engineering Application of Artificial Intelligence,2000(3):391-396. [10]蔡志雄. 基于神經(jīng)網(wǎng)絡(luò)的中心城市常規(guī)公交車客運(yùn)量預(yù)測研究[D].成都:西南交通大學(xué),2013:42. [11]朱英. 改進(jìn)BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型及其應(yīng)用[J].武漢理工大學(xué)學(xué)報(bào),2012,36(12):1252 -1255. Forecasting of Highway Passenger Transportation Volume based on Improved PCA-BP Neural Network Model WANG Hao, GUO Ruijun (School of Traffic and Transportation Engineering, Dalian Jiaotong University, Dalian 116028, China) In order to overcome the defects of nonlinear approximation, too much iterations and easy to fall into local minimum of the PCA-BP neural network , an improved PCA-BP neural network forecasting model was proposed, which combined steepness factor, the method of momentum item addition and the learning algorithm of variable learning rate. This forecasting model is constructed based on the PCA-BP neural network by detailed learning algorithm. Comparative test and analysis show that the PCA-BP neural model is valid for highway passenger transportation volume forecasting. PCA-BP neural model; steepness factor; learning algorithm of variable learning rate; Matlab 1673- 9590(2016)02- 0001- 05 2014-11-04 王浩(1990-),男,碩士研究生;郭瑞軍(1977-),男,副教授,博士,從事道路通行能力的研究E- mail:858911569@qq.com. A2 改進(jìn)PCA-BP神經(jīng)網(wǎng)絡(luò)模型的思想
3 改進(jìn)PCA-BP模型的預(yù)測流程
4 改進(jìn)PCA-BP模型在城市交通流預(yù)測中的實(shí)際應(yīng)用
5 結(jié)論