陳明揚,王 林,余曉曉
(華中科技大學管理學院,湖北 武漢 430074)
21世紀以來,旅游業迎來了快速發展的黃金周期,旅游業收入占GDP的比重從2007年的4.05%上升至2017年的6.53%,人均出游次數與單次消費保持高速增長,旅游人數的增長對旅游城市和景點的管理提出了更高的要求。旅游需求水平的相關信息對于商業機構和政府決策部門來說非常重要[1],而旅游產品具有易逝性,其需求受到季節、假期、天氣以及突發事件等多重因素的影響,提高預測精度是旅游需求預測問題的研究重點[2]。
諸多學者嘗試使用不同模型來提高需求預測精度與時效性[3],通常可以分為因果關系模型、時間序列模型和人工智能模型3類。如黃先開等[4]通過搜索關鍵詞建立多元線性回歸函數預測日游客量;Chu[5]使用單一變量自回歸滑動平均ARMA(AutoRegressive Moving Average)模型預測亞太地區9個國家的旅游需求;雷可為等[6]構建了自回歸移動平均模型與BP神經網絡的組合預測模型;Chen等[7]將支持向量回歸SVR(Support Vector Regression)模型應用于旅游需求預測,并與自回歸移動平均ARIMA(AutoRegressive Integrated Moving Average)模型等進行了對比;Palmer等[8]使用人工神經網絡模型預測巴利阿里群島的旅游需求;Zins等[9]采用基于神經網絡的模糊時間序列模型作為預測模型,對SARS期間的旅游需求進行預測;陳榮等[10]提出了一種將季節支持向量回歸模型與粒子群優化算法相結合的旅游流量預測SSVR-PSO(Seasonal Support Vector Regression Particle Swarm Optimization)模型,選取2008~2011年黃山景區月度數據集進行預測。相比前2類模型,人工智能模型在非線性擬合、自適應學習等方面表現出較大優勢,但傳統的人工神經網絡存在訓練過程復雜、耗時長等問題。因此,尋找高效和精確的新型神經網絡方法成為熱門研究方向。
Jaeger等[11]提出了回聲狀態神經網絡ESN(Echo State Network)。與傳統算法相比,回聲狀態網絡訓練過程簡單、高效,在一般條件下可以無限逼近動態系統,被廣泛應用于各類預測問題。雷苗等[12]使用ESN對移動通信流量進行預測;Maiorino等[13]利用ESN處理與太陽黑子某種特征值預測相關的時間序列問題。但是,ESN也存在著自身的不足和局限性,比如ESN的參數與連接權重隨機設定,而訓練過程中只調整輸出層權重,容易陷入局部最優解。目前所采用的常見方法是多次構建網絡選取最優輸出時的ESN模型,或根據經驗選取參數來構建模型[14 - 16]。對此,許多學者對ESN的結構進行優化。Shi 等[17]為ESN開發了幾種新的儲備池拓撲結構,并對辦公樓的能源消耗進行預測。姚為等[18]提出了一種具有分叉結構的回聲狀態網絡預測模型,提高了ESN的預測精度。也有學者使用啟發式算法對ESN進行參數優化,獲得了良好的實驗效果,例如Irani等[19]用遺傳算法優化前向反饋神經網絡的初始權值和閾值,但目前此類研究相對較少。Pan[20]提出的果蠅優化算法FOA(Fruit fly Optimization Algorithm)具有復雜度低、計算速度快、求解能力強等優點,已在許多組合優化和連續優化領域得到應用,如庫存問題[21]和調度問題[22]等。Li等[23]使用FOA優化人工神經網絡ANN(Artificial Neural Network)模型的結構參數,Zeng等[24]使用FOA優化了SVR的懲罰參數和換算系數,均取得了良好的實驗效果。FOA自身存在收斂精度低、容易陷入局部極值等缺點。對此,韓俊英等[25]提出了一種自適應變異果蠅優化算法,根據種群的適應度方差和當前最優值,在概率P下通過突變算子干擾復制,以繼續優化;Xu[26]通過增加慣量來改變非線性遞減特征以及個體與群體之間的關系,構建了改進的IFOA算法(Improved Fruit fly Optimization Algorithm)。
本文引入計算速度快、求解能力強的FOA算法優化ESN的關鍵參數,首先對標準FOA進行改進,提高了該算法的性能。接著與ESN相結合,構建一個兩階段組合預測模型AFOA-ESN(Adaptive Fruit fly Optimization Algorithm-Echo State Network),最后利用新模型解決旅游需求預測問題,獲得了較高的預測精度。旅游行業市場空間巨大,如中國文化和旅游部統計信息顯示,2018年國內旅游人數達55.39億人次,入出境旅游總人數達2.91億人次,全年旅游總收入5.97萬億元。因此,準確地預測旅游需求有利于提高旅游資產的運營效率,合理安排交通、住宿以及餐飲等相關產業的經營計劃,為經營決策提供一定的科學依據,具有重要的現實意義。本文為ESN在旅游需求預測上的應用提供了研究新思路,為相關經濟活動管理提供有益的管理借鑒,同時取得了預測方法上的創新。
果蠅優化算法(FOA)通過模擬果蠅覓食行為尋找目標函數最優解,屬于一種較為新穎的啟發式算法。FOA算法擁有很強的全局搜索能力和快速收斂性能,算法結構簡單、運行效率高。FOA算法主要包括種群初始化、隨機飛行、確定味道濃度判定值、確定味道濃度、位置標記5個步驟。FOA算法的邏輯結構如圖1所示。

Figure 1 Logic structure of FOA圖1 FOA算法邏輯結構
(1) 種群初始化。
首先對種群規模(Sizepop)、最大迭代次數(Maxgen)和搜索步長(S_length)進行定義,Xaxis和Yaxis代表隨機賦予果蠅群體的初始位置坐標值。
(2) 隨機飛行。
在初始位置賦予群體內的每只果蠅1個隨機飛行的方向,并記錄每只果蠅的位置信息Xi和Yi,果蠅群體將在搜索步長范圍內進行氣味搜索,位置更新公式如下所示:
Xi=Xaxis+S_length
(1)
Yi=Yaxis+S_length
(2)
(3) 計算味道濃度判定值Si。
部分函數中果蠅位置的橫坐標和縱坐標不能表達果蠅位置,因此用距離函數Dist求倒數后的值作為獲得的味道濃度判定值Si。
(3)
Si=1/Disti
(4)
(4) 確定味道濃度值Smell。
根據果蠅群體的味道濃度判定值,通過式(5)求得關于食物的味道濃度,通常假設味道濃度越高,果蠅距離食物越近。
Smelli=f(Si)
(5)
(5) 位置標記。
味道濃度值最大的位置將被選為果蠅群體共同飛向的位置,即下一迭代的起始位置。同時,如果當前迭代的最優值(bestSmell)好于之前的全局最優(bestSmell_global),則用當前迭代的bestSmell值更新bestSmell_global。
[bestSmell,bestindex]=max(Smelli)
(6)
bestSmell_global=bestSmell
(7)
Xaxis=X(bestindex)
(8)
Yaxis=Y(bestindex)
(9)
式(6)中bestindex表示最大味道濃度值位置的索引,bestSmell表示返回的當前迭代最優值;式(8)和式(9)為位置更新公式,X(bestindex)和Y(bestindex)表示返回的當前迭代最優值的位置。
FOA算法的迭代過程包括上述的(2)~(5),如果達到停止條件(即迭代次數累加達到最大迭代次數),則停止迭代,并提取當前bestSmell_global作為整個果蠅搜索過程中找到的最優解。
標準FOA算法中,種群規模與搜索步長固定,可能導致局部搜索能力不足和搜索效率較低等問題。因此,本文針對FOA算法進行了自適應改進,根據當前位置味道濃度值對種群規模和隨機搜索步長進行調整。
(1) 引入可變隨機搜索步長策略。
隨機搜索步長StepLength的調整因子為函數的當前值與目標值之比,調整因子乘以標準搜索步長StepLength_Standard后的值為下一迭代最大搜索步長。隨機步長的優勢在于,當前局部最優解f(t)較差時可以增加果蠅步長,快速跳出該范圍,當前局部最優解f(t)較好時可以縮小果蠅步長,增加該位置的局部搜索能力。本文中,f(t)為第t次迭代的平均絕對百分比誤差值,f_target為目標平均絕對百分比誤差值。
StepLength(t+1)=
(10)
(2) 引入可變果蠅種群規模策略。
種群規模的調整因子為函數的當前值與目標值之比,調整因子乘以標準種群規模Sizepop_standard后的值為下一迭代的種群規模Sizepop(t+1)。當前位置解較好的情況下,果蠅種群受到較高氣味濃度的刺激,搜索果實的果蠅數量增加;相反,當前位置解較差的情況下,氣味濃度值低,搜索果實的果蠅數量減少。該策略可增強果蠅種群在當前解較優的位置的搜索能力,解較差時在當前位置適當減弱搜索能力。
(11)
經過上述優化過程,AFOA算法可同時提高運算效率和尋優效果,AFOA算法的執行步驟如下所示:
(1) 初始化。設置果蠅種群規模(Sizepop)、標準最大搜索步長(StepLength_Standard)和最大迭代次數(Maxgen),確定信息果蠅的數量(Sizepop_Info)和最大搜索步長(StepLength_Info)。
(2) 確定初始位置與隨機位置。賦予信息果蠅初始位置(Xaxis,Yaxis),根據當前迭代的種群規模和最大搜索步長(第1次迭代為標準種群規模和最大搜索步長),隨機生成當前種群規模數量的隨機位置Xi和Yi,其中,隨機數Rand取值是[0,1]。
Xi=Xaxis+StepLength(t)*(Rand-0.5)
(12)
Yi=Yaxis+StepLength(t)*(Rand-0.5)
(13)
(3) 計算味道濃度值。部分函數中果蠅位置的橫坐標和縱坐標不能表達果蠅位置,因此用距離函數求倒數后的值作為獲得的味道濃度判定值Si。
(14)
Si=1/Disti
(15)
(4) 提取最佳味道濃度信息,包括種群最佳味道濃度和最佳味道濃度所在位置,并將本次迭代最優位置設置成下一迭代的初始位置。
Smelli=f(Si)
(16)
[bestSmell,bestindex]=max(Smelli)
(17)
Xaxis=X(bestindex)
(18)
Yaxis=Y(bestindex)
(19)
(5) 判斷是否為全局最優解。如果當前迭代的最佳味道濃度值低于上一代全局最優解,則將當前迭代的最佳味道濃度值賦給全局最優,同時記錄全局最優的位置Xbest和Ybest。
Xbest=X(bestindex)
(20)
Ybest=Y(bestindex)
(21)
bestSmell_global=bestSmell
(22)

Figure 2 Structure of ESN圖2 ESN結構示意圖
(6) 調整種群規模和搜索步長。根據當前迭代最優解,對下一迭代的種群規模Sizepop(t+1)和搜索步長StepLength(t+1)進行調整。
(23)
StepLength(t+1)=
(24)
(7) 終止條件判斷。未達到初始設置的最大迭代次數(Maxgen)時,重復(2)~(6),每次使迭代計數t增加1。迭代停止時,輸出全局最優解(bestSmell_global)和最優位置(Xbest和Ybest)。
回聲狀態神經網絡屬于遞歸神經網絡的一種,與傳統人工神經網絡相比,ESN的優勢在于學習過程簡單、收斂速度快、避免陷入局部最優、非線性處理能力強等。ESN在初始時刻隨機生成1個儲備池,構成動態、復雜的隱含層空間。在訓練過程中,輸入權重和儲備池權重的值不發生變化,輸出權重的大小通常根據ESN實際輸出值與目標值之間的誤差,通過最小二乘法等方法進行調整。
典型的ESN網絡包含輸入層、儲備池和輸出層。ESN的輸入層(Input Layer)有K個節點,用于將輸入信息轉換為初始激活信號。隱含層(即儲備池,Reservoir)中節點數為N,代表儲備池中神經元的個數。輸出層中有L個節點,負責將儲備池內部信息轉換為輸出層信息。輸入層、儲備池和輸出層的連接權重分別用Win、W和Wout表示,Wback代表輸出層對儲備池的反饋權重。網絡結構示意如圖2所示,其中實線為必要連接,虛線為可選擇連接。
ESN因其復雜的內部連接結構,具有遞歸神經網絡的非線性動力學特征。當前時刻的信息從輸入層輸入到儲備池,結合儲備池內各神經元上一時刻狀態和輸出層的反饋信息,通過一定的權重,共同構成神經元的輸入信號,再通過激活函數將輸入信號轉化為新一輪的狀態向量x(t+1),更新公式如式(25)所示:
x(t+1)=g(Win·u(t+1)+
W·x(t)+Wback·y(t))
(25)
其中,g代表激活函數,函數計算結果構成神經元的狀態向量x(t+1)。x(t)表示儲備池在上一步的狀態,0時刻的狀態向量x(0)可以隨機生成。u(t)表示第t步時的輸入向量,向量的長度取決于輸入信息的維度。y(t)表示第t步的輸出向量,y(t+1)表示下一步的輸出向量,由下一步的輸入向量u(t+1)、下一步的狀態向量x(t+1)和當前步的輸出向量y(t)共同決定。具體公式如下:
u(t)=[u1(t),u2(t),…,uK(t)]T
(26)
x(t)=[x1(t),x2(t),…,xN(t)]T
(27)
y(t)=[y1(t),y2(t),…,yL(t)]T
(28)
y(t+1)=fout(Wout·(u(t+1),x(t+1),y(t)))
(29)
其中,fout表示輸出層的激勵函數。
本文將改進的FOA算法與ESN相結合構建了一個新的組合預測模型AFOA-ESN。先對標準FOA算法進行改進,引入自適應調整的種群數量和搜索步長,再將改進后的FOA算法AFOA與ESN相結合,通過AFOA優化ESN并獲取其關鍵參數(包括譜半徑SR、輸入單元尺度IS和儲備池規模N),FOA算法的適應值為訓練集的預測誤差。最后將優化后的參數輸入ESN,形成最終的組合預測模型,通過測試數據集檢驗參數優化的效果。AFOA-ESN的執行步驟如下所示:
(1) 數據預處理。將數據輸入到組合預測模型中,為了防止輸入數據的大小對模型產生影響,通常要對輸入數據進行歸一化處理。
(2) 參數初始化。首先設定AFOA和ESN的基本參數,AFOA的基本參數包括標準種群規模、標準最大隨機步長、最大迭代次數等;ESN網絡的基本參數包括譜半徑大小、輸入節點數、輸出節點數、稀疏程度等。
(3) ESN參數尋優。用果蠅的位置表示被優化的參數,味道濃度表示目標值(預測誤差)。AFOA生成隨機位置后,果蠅利用嗅覺判斷該位置味道濃度的高低,進而決定果蠅種群下一次飛行方向。果蠅種群在迭代中不斷改變搜索位置與搜索范圍,實現參數尋優過程,達到最大迭代次數時停止飛行。
(4) ESN網絡預測。根據迭代過程中標記的最優預測誤差和最優位置,判斷AFOA的優化效果,最終找出ESN的最佳參數和實際預測值。
為了檢驗組合預測模型AFOA-ESN在旅游需求預測中的應用效果,本文選擇了2組真實的旅游需求數據。第1組為2011年1月~2017年4月北京游客的月度人數,為國內游客人數與國外入境游客人數之和,數據來自風力數據庫(http://www.wind.com.cn/),如圖3所示;第2組為2011年3月~2017年11月海南過夜游客的月度數據,數據來自陽光海南旅游統計網站(http://www.visithainan.gov.cn/government/),如圖4所示。這2組數據均有學者用來檢驗需求預測模型的效果[27,28],因此這些數據可用于AFOA-ESN預測效果的對比分析。

Figure 3 Trend of monthly Beijing tourist arrivals圖3 北京游客人數(萬人次)

Figure 4 Trend of monthly Hainan overnight tourist arrivals圖4 海南過夜游客人數(萬人次)
本文綜合運用多種誤差評價指標,包括平均絕對誤MAE(Mean Absolute Error)、平均平方差MSE(Mean Square Error)、方均根差RMSE(Root Mean Square Error)、歸一化方均根差NRMSE(Normalized Root Mean Square Error)以及平均絕對百分比誤差MAPE(Mean Absolute Percentage Error)5種,確保預測模型效果檢驗的全面性與客觀性。
(30)
(31)
(32)
(33)
(34)

4.1.1 實驗數據與數據集劃分
本組實驗使用的數據共76個,分成訓練集和測試集2個部分。和Sun等[27]的實驗數據劃分方法相同,并與文獻[27]中基于互聯網搜索指數(本文用到的是百度指數與谷歌指數)預測與無指數預測下的多種模型在相同數據集上進行比較,這些對比模型為多元時間序列分析ARIMAX(AutoRegressive Integrated Moving Average with Exogenous Variables)模型、人工神經網絡(ANN)模型、支持向量回歸(SVR)模型、最小二乘支持向量機LSSVR(Least Square Support Vector Regression)模型和基于多種核函數的核極限學習機KELM(Kernel Extreme Learning Machine)模型等。
本組實驗訓練集為2011年1月~2016年4月的月度數據,測試集為2016年5月~2017年4月的數據。本實驗采用一步預測法,訓練集中,用2012年5月~2015年4月的36個數據擬合2015年5月的旅游人數,2012年6月~2015年5月的36個數據擬合2015年6月的旅游人數,以此類推。AFOA從訓練集中獲取ESN的最優參數,作為測試集中ESN的參數,最后用2016年5月~2017年4月的12個數據的一步預測結果來計算平均預測誤差,對比檢驗模型的預測效果。為了保持一致的測試條件,本組實驗使用Lg(Q)函數對所有數據項進行預處理(Q表示月度游客人數,單位為萬人次)。
4.1.2 參數設置與實驗結果分析
實驗在Python 3.7的編程環境下實現,硬件為2014年生產的Macbook Pro,操作系統為Mac OS High Sierra 10.13.3,處理器為2.8 GHz Intel Core i5,內存為8 GB 1 600 MHz DDR3。算法參數設置方面,依據專家推薦的經驗[14,21,27,28]和多次實驗,ESN輸入層節點為36個,輸出層節點為1個,儲備池規模為50~500,譜半徑大小為1.0~2.0,激活函數使用tanh函數,激活狀態記憶參數a設置為0.20,在網絡訓練和測試過程中,除儲備池規模和譜半徑,其他參數保持不變;FOA算法種群規模為10,最大迭代次數為100,AFOA算法種群規模和搜索步長基于目標函數值自適應調整。文獻[27]指出ANN、基于不同核函數的KELM模型采用試錯法確定輸入層和隱含層的神經元節點數,LSSVR和SVR模型采用高斯核函數、ARIMA模型采用最小化SC與AIC準則獲取階層、差分次數、階數。因為文中并未給出具體的參數設置,故本文將FOA-ESN、AFOA-ESN得到的結果與文獻[27]得到的最佳結果進行對比。
FOA-ESN具有良好的預測精度和優化效果,MAPE為0.53%,NMSE為0.67%,2項指標均為最優。同時,FOA-ESN模型具有很強的魯棒性,每項數據的預測誤差(MAPE)控制在1.59%以內。FOA-ESN能夠使誤差梯度快速下降,證明該模型能夠有效解決旅游行業需求預測問題。
AFOA-ESN及對比模型的預測效果如圖5和表1所示,數據顯示AFOA-ESN的MAPE為0.41%,NMSE為0.67%,2項指標均為最優。表1中,KELM-lin、KELM-poly、KELM-rbf、KELM-wav分別表示基于線性核的、多項式核的、高斯徑向量核的、小波核的KELM模型。
AFOA-ESN和FOA-ESN的迭代過程如圖6所示。從圖6中可以看出,AFOA-ESN在迭代過程中的收斂速度比FOA-ESN更快,預測精度有顯著提升。
4.2.1 實驗數據與數據集劃分
本組實驗選取2011年3月~2017年11月海南過夜游客人數月度數據,將數據集分為優化集、訓練集和測試集3個部分,用于檢驗優化參數在預測效果上的穩定性。優化集用來得到擬合的輸出權重,訓練集通過AFOA優化集得到ESN的優化參數,并獲取輸出權重,測試集用于對比驗證模型的預測精度。數據集劃分方法和Li等[28]的實驗保持一致,對比模型包括整合移動自回歸(ARIMA)模型、向量自回歸VAR(Vector AutoRegression)模型、主成分分析向量自回歸(PCA-VAR)模型和主成分分析及自適應差分算法優化的后向神經網絡PCA-ADE-BPNN(Principal Component Analysis-Adaptive Difference Algorithm-Back Propagation Neural Network),具體數據集劃分如表2所示。

Table 1 Comparison of prediction accuracy among AFOA-ESN and other models表1 AFOA-ESN與其他模型預測精度對比

Figure 5 Experimental results of AFOA-ESN and FOA-ESN in Beijing tourist arrivals圖5 AFOA-ESN和FOA-ESN的北京游客人數預測

Figure 6 Iterative process of AFOA-ESN and FOA-ESN(Beijing)圖6 AFOA-ESN和FOA-ESN的迭代過程(北京)

Table 2 Dataset partition of Hainan overnight tourist arrivals表2 海南過夜游客人數預測數據集劃分
4.2.2 參數設置與實驗結果分析
本組實驗與第1組實驗的參數設置基本保持一致(ESN輸入層節點為12個,輸出層節點為1),實驗環境與第1組實驗相同,各種參數設置如表3所示。

Table 3 Parameter settings of AFOA-ESN and other models表3 AFOA-ESN與其他模型參數設置
實驗結果如表4和圖7所示,數據顯示AFOA-ESN的MAPE為1.56%,MSE為71.71,MAE為6.86,預測精度顯著高于對比模型。

Table 4 Comparison of prediction accuracy among AFOA-ESN and other models表4 AFOA-ESN與其他模型預測精度對比

Figure 7 Experimental results of AFOA-ESN and FOA-ESN in Hainan overnight tourist arrivals圖7 AFOA-ESN和FOA-ESN的海南過夜游客人數預測
AFOA-ESN和FOA-ESN的迭代過程如圖8所示。從圖8中可以看出,AFOA-ESN在收斂速度和預測精度方面均優于FOA-ESN,表明自適應因子的引入有效提高了FOA算法的尋優性能。

Figure 8 Iterative process of AFOA-ESN and FOA-ESN(Hainan)圖8 AFOA-ESN和FOA-ESN的迭代過程(海南)
本文提出了一種改進FOA自適應能力的改進算法AFOA,提高了標準算法的運行效率,并與ESN結合構建了新的兩階段組合預測模型AFOA-ESN,拓展了算法的應用領域,為ESN的應用提供了新的思路。用AFOA-ESN對北京游客人數和海南過夜游客人數進行預測,在北京游客人數預測實驗中,AFOA-ESN的MAPE為0.41%,NMSE為0.67%,2項指標優于ARIMAX、ANN、SVR、LSSVR和幾種KELM的組合模型的。在海南過夜游客人數預測實驗中,AFOA-ESN的MAPE為1.56%,MSE為71.71,MAE為6.86,在ARIMA、VAR、PCA-VAR、BPNN、PCA-BPNN和PCA-ADE-BPNN等模型中最佳。實驗結果表明,FOA能夠優化ESN的參數,提升預測精度,引入自適應因子的AFOA-ESN在收斂速度和預測精度上表現更優,驗證了模型設計的有效性。將來可拓展尋優參數的數量,檢驗AFOA-ESN模型在多參數優化方面的表現,并嘗試使用多種大數據手段(如網絡搜索指數)豐富輸入信息的多樣性,更恰當地甄選適合旅游行業的預測信息。