摘 要: 旅游客流量受多種因素影響,傳統的時間序列預測模型無法描述預測對象的規律,人工智能方法如BP神經網絡,其結構的選擇過多依賴經驗,基于此提出了利用改進的粒子群算法優化BP神經網絡,通過慣性因子的非線性遞減來改善粒子群的尋優性能。將該預測模型應用于自貢燈會的客流量進行實際預測分析,通過對150組訓練樣本和50組測試樣本的實驗仿真,可知改進后的方法提高了預測結果的準確度,并且涉及參數少、簡單有效。
關鍵詞: 旅游客流量預測;BP神經網絡;粒子群算法;非線性遞減
0 引言
隨著中國旅游日的設立和國民旅游意識的增強,節假日旅游成了眾多人的選擇,但旅游目的地的接待能力有限,游客太多則旅游設施供不應求,服務質量下降,甚至出現游客擁堵、踩踏等安全事故。旅游景點游客量預測,一直是旅游研究中的熱點,也是旅游學界面對的難點問題之一[1]。
傳統的旅游需求預測,主要是定量與定性方面的研究,比如計量經濟模型[2]、時間序列分析模型[3-4]、灰色預測模型[5]等方法。然而這些方法有一定的缺陷,或者是只分析單個影響因素,如客流量歷史數據,認為未來是過去和現在的延續,或者是經驗對預測方法的過度干擾,缺少對歷史數據的學習過程。這些都會致使預測結果的不準確。另外,旅游景區每日客流量容易受到多個外部因素的影響,如天氣、某些節假日等,具有較強的波動性和非線性,使用計量統計思想建立的模型難以逼近其內在變化機制。
由于具有良好的自適應性和強大的非線性映射能力,BP神經網絡得到了廣泛的應用,但其也存在著一些不足:一是網絡模型訓練前BP網絡連接權值和閾值的隨機初始化賦值,使得網絡易陷入局部極值點,影響非線性學習能力,也即預測的精度;二是BP神經網絡結構的確定,隱含層節點數沒有確切的公式,選取不當易發生過擬合或學習能力不足[6-7],影響網絡的泛化能力。近年來人工智能算法優化BP神經網絡的方法在不同領域也有一些應用,如宋國鋒等[8]在改進遺傳算法優化BP神經網絡作預測的研究中,利用改進的遺傳算法優化BP神經網絡的結構和初始權重,而遺傳算法有三個基本算子:選擇、交叉和變異(算法的編程實現比較復雜),這三個算子的參數選擇大部分依靠經驗;程軍等[9]在粒子群優化神經網絡預測模型中,利用粒子群算法優化BP網絡權重參數,該方法改善了BP網絡易陷入局部極小值的不足,提高了收斂速度。粒子群算法具有遺傳算法的大部分優點,并且訓練操作簡單,李雪等[10]通過粒子群算法的慣性權重和加速因子的線性遞減,實現粒子的全局搜索與局部搜索之間的平衡,提高了尋優性能。
針對以上不足,結合以前學者的不同研究成果,提出非線性調整粒子群速度更新公式中的慣性因子的方法,根據樣本數據源結構確定粒子群參數的初始化,用得到的粒子群的最優值初始化BP神經網絡的權重,建立預測模型。
1 BP神經網絡
BP神經網絡是一種多層前饋神經網絡,包括輸入信號前向傳遞和誤差反向傳播兩個過程。在結構上一般由輸入層、隱含層、輸出層三層構成,每一層的神經元狀態只影響下一層神經元狀態,它被廣泛應用在各種預測模型中。在BP神經網絡預測模型中,網絡結構一般只需單個隱含層就能以任意精度逼近任意有理函數。訓練樣本的輸入、輸出向量的維數分別決定了網絡的輸入、輸出層神經節點個數,典型的只有單個隱含層、單個輸出的BP神經網絡結構如圖1所示。
圖1中,xi=(x1,x2,…,xn)為BP神經網絡的一組輸入向量,y為網絡的目標輸出值,wij為輸入層與隱含層之間的連接權值,wj1為隱含層與輸出層之間的連接權值,aj、b分別為隱含層和輸出層的節點閾值。若設隱含層節點個數為m,則j=1,2,…,m,在前向傳遞中,輸入信號向量xi從輸入層經隱含層逐層傳輸,最后到輸出層,通過各層連接權值矢量、閾值矢量和每一層相應的激勵函數進行計算,得出輸出層的預測輸出值Y,若預測值Y與目標值y之間有誤差,則誤差部分轉入反向逐層傳遞,沿誤差減小方向調整網絡各層連接的權值、閾值。反復執行以上過程,使得BP神經網絡的預測值不斷逼近實際輸出值。
2 粒子群優化BP神經網絡
2.1 基本PSO算法
粒子群算法(Particle Swarm Optimization,PSO)是于1995年由Kennedy和Eberhart首次提出的一種群體智能優化算法,該算法的實現方法簡單,被廣泛應用在許多優化問題中。
假設粒子群規模為M,該種群在給定的一個N維的搜索空間中組成一個種群T=(X1,X2,…,XM),粒子i在N維空間中的位置可表示為Xi=(xi1,xi2,…,xiN),速度表示為Vi=(vi1,vi2,…,viN),其中i=1,2,…,M。粒子i在尋找最優解的過程中第k次迭代時經過的最好位置記為Pik,群體在k時刻經過的最好位置記為Pgk,那么每次尋優迭代過程中,粒子i按式(1)來更新自己的速度和位置:
式中,k是迭代次數;c1為調節粒子向自身最優位置方向移動的步長,c2為調節粒子向全局最優位置方向移動的步長,它們是兩個非負加速因子;r1和r2為位于[0,1]之間的常數。在粒子群算法中,為了控制Vik和Xik的各個分量在合理區域內,指定Vmax、Xmax,則Vi∈[-Vmax,Vmax],Xi∈[-Xmax,Xmax],一般會對速度向量進行最值限制,當Vi≥Vmax時,取Vi=Vmax;當Vi≤-Vmax時,取Vi=-Vmax。
2.2 改進PSO算法
基本粒子群算法有容易陷入局部最優和收斂精度差的不足,使得該算法的優化效果無法達到最佳。研究表明粒子的慣性因子w對算法的性能影響很大,w較大時有利于算法的全局搜索,而w較小時有利于算法的局部搜索。因此,選擇一個合適的慣性權重很重要。有學者提出隨著算法的迭代,w線性減小的方法,其表達式為:
w(k)=wmax-(wmax-wmin)(Tmax-k)/Tmax(2)
式中wmin為最小慣性權重,wmax為最大慣性權重,Tmax為粒子的最大迭代次數,k為當前迭代次數。其中, 0.1≤wmin≤wmax≤0.9,一般情況下,wmin=0.4、wmax=0.9時算法性能最好。
這種方法中w的變化與迭代次數是線性相關的,會使得算法不能很好地解決復雜的、非線性變化的優化問題。通過分析基本粒子群算法知,若線性調整粒子群的慣性因子,粒子局部搜索和全局搜索性能將有所下降。為解決線性遞減方法調整的不足,這里采用非線性方法進行調整,此時的慣性因子表達式為:
w(k)=wmin+(wmax-wmin)exp(-25 k/Tmax)(3)
2.3 改進PSO-BP的算法實現
粒子群優化BP神經網絡,首先要確定網絡的拓撲結構,根據網絡的拓撲結構確定粒子的長度,即粒子搜索空間的維數。其次,BP網絡中權值和閾值的調整是以誤差均方值為基準的,以粒子群優化的適應度函數作為BP網絡誤差的反傳函數,建立誤差均方值與粒子群算法適應度函數的對等關系,這樣目標函數表達式:
式中,N表示訓練樣本總數,fi表示目標函數的誤差平方和,y(k)、ym(k)分別表示目標函數的目標輸出值和實際輸出值。
改進粒子群算法的尋優,具體步驟如下:
(1)初始化粒子群參數:最大迭代次數Tmax、學習因子c1和c2、粒子群規模M、慣性權重wmax和wmin,在指定的位置與速度范圍內隨機初始化位置向量和速度向量。
(2)初始化BP神經網絡,根據實際預測的問題確定BP神經網絡的拓撲結構,建立網絡模型,并根據網絡的結構確定粒子的維度。
(3)輸入網絡的訓練樣本,將初始化的位置向量作為當前的全局最優值映射到網絡的權值和閾值中,計算期望輸出與實際輸出的誤差均方,并把它作為粒子群的適應度函數。
(4)根據粒子群速度、位置和慣性因子的改進公式,更新粒子的速度和位置。
(5)迭代運算,確定每個粒子的個體極值和全局極值:粒子i的適應度值fi與個體最優值pbest比較,如果小于pbest則取代它作為當前的個體最優;適應度值fi與全局極值gbest比較,如果小于gbest則取代它作為當前的全局最優。
(6)算法迭代停止時,將全局最優粒子位置映射到BP神經網絡的權值和閾值中,作為BP網絡權重值。
(7)將樣本數據源中訓練樣本輸入到已確定的網絡模型中進行訓練,用測試樣本作預測。
3 改進的PSO-BP旅游客流量的預測
實驗在MATLAB R2010b平臺中編程實現。
3.1 數據集選定及預處理
實驗數據為自貢燈會在每年的2~3月持續一個月左右的每日客流量及其他相關數據。通過燈會官方網站的電子商務訂票系統、景點入口的電子紅外掃描、窗口售票點、自貢氣象局等方式,獲取到的數據源參數有:昨日客流量x1、去年同期日客流量x2、窗口售票量x3、電子網站訂票數量x4,天氣信息w和周末假日h,通過這些參數預測目標值當日客流量y。
鑒于神經網絡只能處理表示數值的輸入數據,天氣和周末假日是非數值量,并且其他影響因素不是同一量綱,在這里對不同天氣狀況和周末節假日等信息作如下變換:
(1)經分析在2~3月份燈會期間,自貢天氣以陰天、多云天氣為主,在此對天氣信息作如下變換:
(2)分析發現,一周中周五、六、日三天觀展人數較其余四天多,而周一至周四的游客人數基本接近,波動較小。周末假日信息作如下變換:
由于原始數據之間的數值相差較大,為了提高預測精確度,需要對原始數據進行歸一化處理。歸一化的方法很多,這里通過式(5)來處理:
其中,i=1,2,3,4;xmax表示數據集里的最大值,xmin表示數據集里的最小值。
3.2 實驗仿真
以自貢燈會2009~2013年2~3月份的150組數據為訓練數據集,以2014年2~3月份的30組數據為測試集,分別用來訓練和測試網絡模型,整個輸入向量為6×180的矩陣。
改進PSO優化BP神經網絡的初始參數確定:種群規模M=50,最大迭代次數G=200,輸入節點數為6,輸出節點數為1,隱含層節點個數取為15,共有6×15+15×1=105個權值,15+1=16個閾值,搜索空間維數N=105+16=121。建立6-15-1結構的BP網絡。同時訓練BP、PSO-BP預測模型,使用這三種模型對測試集進行預測,對比預測結果并作性能分析。
BP網絡使用最小梯度下降法作為訓練函數,目標誤差精度為10-4;在標準PSO-BP中,加速因子選擇c1=c2=2.0,其他參數選擇與改進的PSO-BP網絡的參數相同。圖2、3、4分別為BP、PSO-BP、IPSO-BP當日預測客流量與實際人數的擬合圖,并給出了兩者的絕對誤差曲線,其中橫軸時間序列表示2~3月的時間量(每天),縱軸表示對應每天的景區客流量人數。
比較圖2、3、4可知,利用慣性因子的非線性遞減方法,預測曲線擬合度較高,預測的絕對誤差明顯減小。此時BP神經網絡、PSO-BP神經網絡和IPSO-BP神經網絡的均方誤差分別是:mseBP=1.4×10-3,msePSO-BP=4.76×10-4,mseIPSO-BP=3.42×10-4,可以看出改進后的預測精度有所提高。
4 結束語
本文提出改進的PSO-BP算法建立預測模型,并以自貢燈會客流量為例做預測分析。雖然選用的訓練樣本數據并不多,但從仿真結果看,卻取得了較高精度的預測效果,說明粒子群算法無需過多原始數據也能得到理想的尋優結果。改進PSO和BP網絡組合的預測模型簡單有效,對自貢燈會的管理決策有較大的參考價值。如何進一步提高算法在法定節假日、異常天氣情況下的客流量預測的泛化能力,是下一步研究的重點。
參考文獻
[1] 陶偉,倪明.中西方旅游需求預測對比研究:理論基礎與模型[J].旅游學刊,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] 陳萍萍.基于時間序列的旅游需求預測模型[J].統計與決策,2013(18):11-13.
[4] 趙娟,江立輝.旅游客流量預測的模糊時間序列模型以黃山風景區為例[J].合肥學院學報(自然科學版),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] 李松,劉力軍,翟曼.改進粒子群算法優化BP神經網絡的短時交通流預測[J].系統工程理論與實踐,2012,32(9):2045-2049.
[7] 王德明,王莉,張廣明.基于遺傳BP神經網絡的短期風速預測模型[J].浙江大學學報(工學版),2012,46(5):837-841.
[8] 宋國鋒,梁昌勇,梁焱,等.改進遺傳算法優化BP神經網絡的旅游景區日客流量預測[J].小型微型計算機系統,2014,35(9):2136-2141.
[9] 程軍,李榮鈞.基于粒子群優化的神經網絡預測模型[J].教學的實踐與認識,2015,45(3):176-180.
[10] 李雪,顧沈明,年浩.改進粒子群算法優化BP神經網絡的糧食產量預測[J].漳州師范學院學報(自然科學版),2014,27(1):56-61.