《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 改進(jìn)粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的旅游客流量預(yù)測
改進(jìn)粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的旅游客流量預(yù)測
2015年微型機(jī)與應(yīng)用第21期
于明濤1,葉曉彤2
(1.四川理工學(xué)院 自動(dòng)化與電子信息學(xué)院,四川 自貢 643000; 2.四川理工學(xué)院 網(wǎng)絡(luò)信息管理中心,四川 自貢 643000)
摘要: 旅游客流量受多種因素影響,傳統(tǒng)的時(shí)間序列預(yù)測模型無法描述預(yù)測對象的規(guī)律,人工智能方法如BP神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)的選擇過多依賴經(jīng)驗(yàn),基于此提出了利用改進(jìn)的粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),通過慣性因子的非線性遞減來改善粒子群的尋優(yōu)性能。將該預(yù)測模型應(yīng)用于自貢燈會(huì)的客流量進(jìn)行實(shí)際預(yù)測分析,通過對150組訓(xùn)練樣本和50組測試樣本的實(shí)驗(yàn)仿真,可知改進(jìn)后的方法提高了預(yù)測結(jié)果的準(zhǔn)確度,并且涉及參數(shù)少、簡單有效。
Abstract:
Key words :

  摘  要: 旅游客流量受多種因素影響,傳統(tǒng)的時(shí)間序列預(yù)測模型無法描述預(yù)測對象的規(guī)律,人工智能方法如BP神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)的選擇過多依賴經(jīng)驗(yàn),基于此提出了利用改進(jìn)的粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),通過慣性因子的非線性遞減來改善粒子群的尋優(yōu)性能。將該預(yù)測模型應(yīng)用于自貢燈會(huì)的客流量進(jìn)行實(shí)際預(yù)測分析,通過對150組訓(xùn)練樣本和50組測試樣本的實(shí)驗(yàn)仿真,可知改進(jìn)后的方法提高了預(yù)測結(jié)果的準(zhǔn)確度,并且涉及參數(shù)少、簡單有效。

  關(guān)鍵詞旅游客流量預(yù)測;BP神經(jīng)網(wǎng)絡(luò);粒子群算法;非線性遞減

0 引言

  隨著中國旅游日的設(shè)立和國民旅游意識的增強(qiáng),節(jié)假日旅游成了眾多人的選擇,但旅游目的地的接待能力有限,游客太多則旅游設(shè)施供不應(yīng)求,服務(wù)質(zhì)量下降,甚至出現(xiàn)游客擁堵、踩踏等安全事故。旅游景點(diǎn)游客量預(yù)測,一直是旅游研究中的熱點(diǎn),也是旅游學(xué)界面對的難點(diǎn)問題之一[1]。

  傳統(tǒng)的旅游需求預(yù)測,主要是定量與定性方面的研究,比如計(jì)量經(jīng)濟(jì)模型[2]、時(shí)間序列分析模型[3-4]、灰色預(yù)測模型[5]等方法。然而這些方法有一定的缺陷,或者是只分析單個(gè)影響因素,如客流量歷史數(shù)據(jù),認(rèn)為未來是過去和現(xiàn)在的延續(xù),或者是經(jīng)驗(yàn)對預(yù)測方法的過度干擾,缺少對歷史數(shù)據(jù)的學(xué)習(xí)過程。這些都會(huì)致使預(yù)測結(jié)果的不準(zhǔn)確。另外,旅游景區(qū)每日客流量容易受到多個(gè)外部因素的影響,如天氣、某些節(jié)假日等,具有較強(qiáng)的波動(dòng)性和非線性,使用計(jì)量統(tǒng)計(jì)思想建立的模型難以逼近其內(nèi)在變化機(jī)制。

  由于具有良好的自適應(yīng)性和強(qiáng)大的非線性映射能力,BP神經(jīng)網(wǎng)絡(luò)得到了廣泛的應(yīng)用,但其也存在著一些不足:一是網(wǎng)絡(luò)模型訓(xùn)練前BP網(wǎng)絡(luò)連接權(quán)值和閾值的隨機(jī)初始化賦值,使得網(wǎng)絡(luò)易陷入局部極值點(diǎn),影響非線性學(xué)習(xí)能力,也即預(yù)測的精度;二是BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的確定,隱含層節(jié)點(diǎn)數(shù)沒有確切的公式,選取不當(dāng)易發(fā)生過擬合或?qū)W習(xí)能力不足[6-7],影響網(wǎng)絡(luò)的泛化能力。近年來人工智能算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的方法在不同領(lǐng)域也有一些應(yīng)用,如宋國鋒等[8]在改進(jìn)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)作預(yù)測的研究中,利用改進(jìn)的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和初始權(quán)重,而遺傳算法有三個(gè)基本算子:選擇、交叉和變異(算法的編程實(shí)現(xiàn)比較復(fù)雜),這三個(gè)算子的參數(shù)選擇大部分依靠經(jīng)驗(yàn);程軍等[9]在粒子群優(yōu)化神經(jīng)網(wǎng)絡(luò)預(yù)測模型中,利用粒子群算法優(yōu)化BP網(wǎng)絡(luò)權(quán)重參數(shù),該方法改善了BP網(wǎng)絡(luò)易陷入局部極小值的不足,提高了收斂速度。粒子群算法具有遺傳算法的大部分優(yōu)點(diǎn),并且訓(xùn)練操作簡單,李雪等[10]通過粒子群算法的慣性權(quán)重和加速因子的線性遞減,實(shí)現(xiàn)粒子的全局搜索與局部搜索之間的平衡,提高了尋優(yōu)性能。

  針對以上不足,結(jié)合以前學(xué)者的不同研究成果,提出非線性調(diào)整粒子群速度更新公式中的慣性因子的方法,根據(jù)樣本數(shù)據(jù)源結(jié)構(gòu)確定粒子群參數(shù)的初始化,用得到的粒子群的最優(yōu)值初始化BP神經(jīng)網(wǎng)絡(luò)的權(quán)重,建立預(yù)測模型。

1 BP神經(jīng)網(wǎng)絡(luò)

  BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),包括輸入信號前向傳遞和誤差反向傳播兩個(gè)過程。在結(jié)構(gòu)上一般由輸入層、隱含層、輸出層三層構(gòu)成,每一層的神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài),它被廣泛應(yīng)用在各種預(yù)測模型中。在BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型中,網(wǎng)絡(luò)結(jié)構(gòu)一般只需單個(gè)隱含層就能以任意精度逼近任意有理函數(shù)。訓(xùn)練樣本的輸入、輸出向量的維數(shù)分別決定了網(wǎng)絡(luò)的輸入、輸出層神經(jīng)節(jié)點(diǎn)個(gè)數(shù),典型的只有單個(gè)隱含層、單個(gè)輸出的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

001.jpg

  圖1中,xi=(x1,x2,…,xn)為BP神經(jīng)網(wǎng)絡(luò)的一組輸入向量,y為網(wǎng)絡(luò)的目標(biāo)輸出值,wij為輸入層與隱含層之間的連接權(quán)值,wj1為隱含層與輸出層之間的連接權(quán)值,aj、b分別為隱含層和輸出層的節(jié)點(diǎn)閾值。若設(shè)隱含層節(jié)點(diǎn)個(gè)數(shù)為m,則j=1,2,…,m,在前向傳遞中,輸入信號向量xi從輸入層經(jīng)隱含層逐層傳輸,最后到輸出層,通過各層連接權(quán)值矢量、閾值矢量和每一層相應(yīng)的激勵(lì)函數(shù)進(jìn)行計(jì)算,得出輸出層的預(yù)測輸出值Y,若預(yù)測值Y與目標(biāo)值y之間有誤差,則誤差部分轉(zhuǎn)入反向逐層傳遞,沿誤差減小方向調(diào)整網(wǎng)絡(luò)各層連接的權(quán)值、閾值。反復(fù)執(zhí)行以上過程,使得BP神經(jīng)網(wǎng)絡(luò)的預(yù)測值不斷逼近實(shí)際輸出值。

2 粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò)

  2.1 基本PSO算法

  粒子群算法(Particle Swarm Optimization,PSO)是于1995年由Kennedy和Eberhart首次提出的一種群體智能優(yōu)化算法,該算法的實(shí)現(xiàn)方法簡單,被廣泛應(yīng)用在許多優(yōu)化問題中。

  假設(shè)粒子群規(guī)模為M,該種群在給定的一個(gè)N維的搜索空間中組成一個(gè)種群T=(X1,X2,…,XM),粒子i在N維空間中的位置可表示為Xi=(xi1,xi2,…,xiN),速度表示為Vi=(vi1,vi2,…,viN),其中i=1,2,…,M。粒子i在尋找最優(yōu)解的過程中第k次迭代時(shí)經(jīng)過的最好位置記為Pik,群體在k時(shí)刻經(jīng)過的最好位置記為Pgk,那么每次尋優(yōu)迭代過程中,粒子i按式(1)來更新自己的速度和位置:

  1.png

  式中,k是迭代次數(shù);c1為調(diào)節(jié)粒子向自身最優(yōu)位置方向移動(dòng)的步長,c2為調(diào)節(jié)粒子向全局最優(yōu)位置方向移動(dòng)的步長,它們是兩個(gè)非負(fù)加速因子;r1和r2為位于[0,1]之間的常數(shù)。在粒子群算法中,為了控制Vik和Xik的各個(gè)分量在合理區(qū)域內(nèi),指定Vmax、Xmax,則Vi∈[-Vmax,Vmax],Xi∈[-Xmax,Xmax],一般會(huì)對速度向量進(jìn)行最值限制,當(dāng)Vi≥Vmax時(shí),取Vi=Vmax;當(dāng)Vi≤-Vmax時(shí),取Vi=-Vmax。

  2.2 改進(jìn)PSO算法

  基本粒子群算法有容易陷入局部最優(yōu)和收斂精度差的不足,使得該算法的優(yōu)化效果無法達(dá)到最佳。研究表明粒子的慣性因子w對算法的性能影響很大,w較大時(shí)有利于算法的全局搜索,而w較小時(shí)有利于算法的局部搜索。因此,選擇一個(gè)合適的慣性權(quán)重很重要。有學(xué)者提出隨著算法的迭代,w線性減小的方法,其表達(dá)式為:

  w(k)=wmax-(wmax-wmin)(Tmax-k)/Tmax(2)

  式中wmin為最小慣性權(quán)重,wmax為最大慣性權(quán)重,Tmax為粒子的最大迭代次數(shù),k為當(dāng)前迭代次數(shù)。其中,      0.1≤wmin≤wmax≤0.9,一般情況下,wmin=0.4、wmax=0.9時(shí)算法性能最好。

  這種方法中w的變化與迭代次數(shù)是線性相關(guān)的,會(huì)使得算法不能很好地解決復(fù)雜的、非線性變化的優(yōu)化問題。通過分析基本粒子群算法知,若線性調(diào)整粒子群的慣性因子,粒子局部搜索和全局搜索性能將有所下降。為解決線性遞減方法調(diào)整的不足,這里采用非線性方法進(jìn)行調(diào)整,此時(shí)的慣性因子表達(dá)式為:

  w(k)=wmin+(wmax-wmin)exp(-25 k/Tmax)(3)

  2.3 改進(jìn)PSO-BP的算法實(shí)現(xiàn)

  粒子群優(yōu)化BP神經(jīng)網(wǎng)絡(luò),首先要確定網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),根據(jù)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)確定粒子的長度,即粒子搜索空間的維數(shù)。其次,BP網(wǎng)絡(luò)中權(quán)值和閾值的調(diào)整是以誤差均方值為基準(zhǔn)的,以粒子群優(yōu)化的適應(yīng)度函數(shù)作為BP網(wǎng)絡(luò)誤差的反傳函數(shù),建立誤差均方值與粒子群算法適應(yīng)度函數(shù)的對等關(guān)系,這樣目標(biāo)函數(shù)表達(dá)式:

  4.png

  式中,N表示訓(xùn)練樣本總數(shù),fi表示目標(biāo)函數(shù)的誤差平方和,y(k)、ym(k)分別表示目標(biāo)函數(shù)的目標(biāo)輸出值和實(shí)際輸出值。

  改進(jìn)粒子群算法的尋優(yōu),具體步驟如下:

 ?。?)初始化粒子群參數(shù):最大迭代次數(shù)Tmax、學(xué)習(xí)因子c1和c2、粒子群規(guī)模M、慣性權(quán)重wmax和wmin,在指定的位置與速度范圍內(nèi)隨機(jī)初始化位置向量和速度向量。

 ?。?)初始化BP神經(jīng)網(wǎng)絡(luò),根據(jù)實(shí)際預(yù)測的問題確定BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),建立網(wǎng)絡(luò)模型,并根據(jù)網(wǎng)絡(luò)的結(jié)構(gòu)確定粒子的維度。

 ?。?)輸入網(wǎng)絡(luò)的訓(xùn)練樣本,將初始化的位置向量作為當(dāng)前的全局最優(yōu)值映射到網(wǎng)絡(luò)的權(quán)值和閾值中,計(jì)算期望輸出與實(shí)際輸出的誤差均方,并把它作為粒子群的適應(yīng)度函數(shù)。

  (4)根據(jù)粒子群速度、位置和慣性因子的改進(jìn)公式,更新粒子的速度和位置。

 ?。?)迭代運(yùn)算,確定每個(gè)粒子的個(gè)體極值和全局極值:粒子i的適應(yīng)度值fi與個(gè)體最優(yōu)值pbest比較,如果小于pbest則取代它作為當(dāng)前的個(gè)體最優(yōu);適應(yīng)度值fi與全局極值gbest比較,如果小于gbest則取代它作為當(dāng)前的全局最優(yōu)。

 ?。?)算法迭代停止時(shí),將全局最優(yōu)粒子位置映射到BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值中,作為BP網(wǎng)絡(luò)權(quán)重值。

 ?。?)將樣本數(shù)據(jù)源中訓(xùn)練樣本輸入到已確定的網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練,用測試樣本作預(yù)測。

3 改進(jìn)的PSO-BP旅游客流量的預(yù)測

  實(shí)驗(yàn)在MATLAB R2010b平臺(tái)中編程實(shí)現(xiàn)。

  3.1 數(shù)據(jù)集選定及預(yù)處理

  實(shí)驗(yàn)數(shù)據(jù)為自貢燈會(huì)在每年的2~3月持續(xù)一個(gè)月左右的每日客流量及其他相關(guān)數(shù)據(jù)。通過燈會(huì)官方網(wǎng)站的電子商務(wù)訂票系統(tǒng)、景點(diǎn)入口的電子紅外掃描、窗口售票點(diǎn)、自貢氣象局等方式,獲取到的數(shù)據(jù)源參數(shù)有:昨日客流量x1、去年同期日客流量x2、窗口售票量x3、電子網(wǎng)站訂票數(shù)量x4,天氣信息w和周末假日h,通過這些參數(shù)預(yù)測目標(biāo)值當(dāng)日客流量y。

  鑒于神經(jīng)網(wǎng)絡(luò)只能處理表示數(shù)值的輸入數(shù)據(jù),天氣和周末假日是非數(shù)值量,并且其他影響因素不是同一量綱,在這里對不同天氣狀況和周末節(jié)假日等信息作如下變換:

 ?。?)經(jīng)分析在2~3月份燈會(huì)期間,自貢天氣以陰天、多云天氣為主,在此對天氣信息作如下變換:

  A2}S0E31_JI[79@C)S%6$XG.jpg

  (2)分析發(fā)現(xiàn),一周中周五、六、日三天觀展人數(shù)較其余四天多,而周一至周四的游客人數(shù)基本接近,波動(dòng)較小。周末假日信息作如下變換:

  SAH`}V(V2WW314[ZV54}R8S.jpg

  由于原始數(shù)據(jù)之間的數(shù)值相差較大,為了提高預(yù)測精確度,需要對原始數(shù)據(jù)進(jìn)行歸一化處理。歸一化的方法很多,這里通過式(5)來處理:

  5.png

  其中,i=1,2,3,4;xmax表示數(shù)據(jù)集里的最大值,xmin表示數(shù)據(jù)集里的最小值。

  3.2 實(shí)驗(yàn)仿真

  以自貢燈會(huì)2009~2013年2~3月份的150組數(shù)據(jù)為訓(xùn)練數(shù)據(jù)集,以2014年2~3月份的30組數(shù)據(jù)為測試集,分別用來訓(xùn)練和測試網(wǎng)絡(luò)模型,整個(gè)輸入向量為6×180的矩陣。

  改進(jìn)PSO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始參數(shù)確定:種群規(guī)模M=50,最大迭代次數(shù)G=200,輸入節(jié)點(diǎn)數(shù)為6,輸出節(jié)點(diǎn)數(shù)為1,隱含層節(jié)點(diǎn)個(gè)數(shù)取為15,共有6×15+15×1=105個(gè)權(quán)值,15+1=16個(gè)閾值,搜索空間維數(shù)N=105+16=121。建立6-15-1結(jié)構(gòu)的BP網(wǎng)絡(luò)。同時(shí)訓(xùn)練BP、PSO-BP預(yù)測模型,使用這三種模型對測試集進(jìn)行預(yù)測,對比預(yù)測結(jié)果并作性能分析。

  BP網(wǎng)絡(luò)使用最小梯度下降法作為訓(xùn)練函數(shù),目標(biāo)誤差精度為10-4;在標(biāo)準(zhǔn)PSO-BP中,加速因子選擇c1=c2=2.0,其他參數(shù)選擇與改進(jìn)的PSO-BP網(wǎng)絡(luò)的參數(shù)相同。圖2、3、4分別為BP、PSO-BP、IPSO-BP當(dāng)日預(yù)測客流量與實(shí)際人數(shù)的擬合圖,并給出了兩者的絕對誤差曲線,其中橫軸時(shí)間序列表示2~3月的時(shí)間量(每天),縱軸表示對應(yīng)每天的景區(qū)客流量人數(shù)。

  比較圖2、3、4可知,利用慣性因子的非線性遞減方法,預(yù)測曲線擬合度較高,預(yù)測的絕對誤差明顯減小。此時(shí)BP神經(jīng)網(wǎng)絡(luò)、PSO-BP神經(jīng)網(wǎng)絡(luò)和IPSO-BP神經(jīng)網(wǎng)絡(luò)的均方誤差分別是:mseBP=1.4×10-3,msePSO-BP=4.76×10-4,mseIPSO-BP=3.42×10-4,可以看出改進(jìn)后的預(yù)測精度有所提高。

4 結(jié)束語

  本文提出改進(jìn)的PSO-BP算法建立預(yù)測模型,并以自貢燈會(huì)客流量為例做預(yù)測分析。雖然選用的訓(xùn)練樣本數(shù)據(jù)并不多,但從仿真結(jié)果看,卻取得了較高精度的預(yù)測效果,說明粒子群算法無需過多原始數(shù)據(jù)也能得到理想的尋優(yōu)結(jié)果。改進(jìn)PSO和BP網(wǎng)絡(luò)組合的預(yù)測模型簡單有效,對自貢燈會(huì)的管理決策有較大的參考價(jià)值。如何進(jìn)一步提高算法在法定節(jié)假日、異常天氣情況下的客流量預(yù)測的泛化能力,是下一步研究的重點(diǎn)。

  參考文獻(xiàn)

  [1] 陶偉,倪明.中西方旅游需求預(yù)測對比研究:理論基礎(chǔ)與模型[J].旅游學(xué)刊,2010,25(8):12-17.

  [2] SMERAL E, WITT S F, WITT C A. Econometric forecasts: tourism trends to 2000[J]. Annals of Tourism Research,1992,19(3):450-466.

  [3] 陳萍萍.基于時(shí)間序列的旅游需求預(yù)測模型[J].統(tǒng)計(jì)與決策,2013(18):11-13.

  [4] 趙娟,江立輝.旅游客流量預(yù)測的模糊時(shí)間序列模型以黃山風(fēng)景區(qū)為例[J].合肥學(xué)院學(xué)報(bào)(自然科學(xué)版),2014,24(4):26-31.

  [5] ZENG Z L, ZHENG Y. The grey model and its application to forecast of inbound visitors from mainland China to Macau[C]. 3rd Intrmational Conference on Management Science and Engineering Management, 2009:48-54.

  [6] 李松,劉力軍,翟曼.改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的短時(shí)交通流預(yù)測[J].系統(tǒng)工程理論與實(shí)踐,2012,32(9):2045-2049.

  [7] 王德明,王莉,張廣明.基于遺傳BP神經(jīng)網(wǎng)絡(luò)的短期風(fēng)速預(yù)測模型[J].浙江大學(xué)學(xué)報(bào)(工學(xué)版),2012,46(5):837-841.

  [8] 宋國鋒,梁昌勇,梁焱,等.改進(jìn)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的旅游景區(qū)日客流量預(yù)測[J].小型微型計(jì)算機(jī)系統(tǒng),2014,35(9):2136-2141.

  [9] 程軍,李榮鈞.基于粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)預(yù)測模型[J].教學(xué)的實(shí)踐與認(rèn)識,2015,45(3):176-180.

  [10] 李雪,顧沈明,年浩.改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的糧食產(chǎn)量預(yù)測[J].漳州師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2014,27(1):56-61.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。