趙明姣, 張榮芬, 劉宇紅
(貴州大學 大數據與信息工程學院, 貴陽550025)
隨著我國經濟不斷發展,城市化建設進步越來越明顯,與此同時城市交通擁堵也日益嚴重。 城市交通系統是一個開放、實時、復雜的系統,具有不確定性及非線性等特點,單純的地依靠擴寬、新建道路和限行是無法解決由交通需求和交通供給之間的矛盾引起的交通擁堵難題。 高效、可靠的交通流量預測方法可以為交通車輛優化調度和出行提供有效依據,改善交通擁堵狀況[1]。
國內外學者提出了很多交通流量預測方法。 例如: ARMA 模型[2]與卡爾曼濾波模型[3]的組合模型,相對于ARMA 模型及卡爾曼濾波模型單獨預測該組合模型具有更高的預測精確度;結合深度信念網絡模型(DBN)與支持向量機(SVM),對交通流量進行預測,用DBN 對交通流量進行學習并提取數據特征值,用支持向量機模型對交通流量進行預測;狀態向量和距離度量相結合的方法,形成K-最近鄰預測模型,該預測模型比只考慮時間維度的k 鄰近模型更準確的反映了交通流量的變化;基于粒子群算法的小波神經網絡預測算法,用可變加速度因子使粒子群算法收斂于全局最優,再去優化小波神經網絡的各項參數,構建了PSO-WNN 預測模型;遺傳算法優化小波神經網絡預測模型,利用遺傳算法的全局尋優及自適應隨機搜索等特點,優化WNN 的各項參數;谷鳥搜索算法,優化BP 神經網絡預測算法,將交通流序列進行相空間重構后進行網絡學習,再用CS 算法搜索BP 神經網絡的最優參數進行交通流量預測,預測結果較為準確反映了交通流量的變化趨勢。
本文在CS-WNN 短時交通流預測模型基礎上,提出一種改進的布谷鳥搜索算法優化小波神經網絡預測模型。 布谷鳥搜索算法到后期會有搜索速度慢及預測精度不高的缺點[4],根據迭代次數和適應度動態調整布谷鳥算法的步長α 和發現概率Pa來優化基本的布谷鳥算法。 用改進的CS 算法初始化小波神經網絡的各項參數,并添加神經網絡動量項預防收斂抖動、加快網絡收斂速度,從而構建預測模型進行交通流量的預測。 仿真結果驗證了本文提出的預測模型與幾種較為流行的交通流量預測模型相比,具有較好的擬合度和較高的精確度。
設備采集信號的過程中都會不同程度的受到噪聲的污染,噪聲的存在往往會掩蓋信號本身所要表現的信息[5],信號去噪的目的在于突出信號本身,而抑制噪聲對信號本身的影響。 本文采用小波變換對原始交通流量數據樣本進行數據降噪[6],小波去噪分為3 個步驟:(1)對原始信號進行小波分解,得到信號的高頻部分和低頻部分;(2)對高頻部分的噪聲進行閾值處理;(3)用處理后的小波系數進行小波重構,得到去噪后的信號。 本文采用啟發式小波閾值去噪,使用小波工具箱中的sym3 小波,分解層數為2 層的小波變換對交通流量數據進行降噪,原始數據與降噪后的交通流量數據如圖1 所示。

圖1 原始數據與降噪后的數據Fig.1 Original data and denoised data
交通數據采集裝置采集到的交通數據樣本數量龐大而且大小不一,為了更加容易地正確收斂到最優解,需要對數據集進行歸一化處理。 本文使用mapminmax 函數[7]對原始數據進行歸一化處理。 數據經過歸一化處理后,能提高模型收斂速度和最終的模型精度[8]。 Mapminmax 默認歸一化到區間[-1,1],計算公式(1)為:

其中,y 是歸一化處理后的數據,ymax=1;ymin=- 1;x 為當前需要歸一化的原始數據;xmax和xmin分別為數據樣本中需要處理的原數據中的最大值與最小值。
處理過的數據經過網絡訓練以及預測模型后,用mapminmax( ′reverse′, ′y′, ′ps′ )函數將預測結果進行反歸一化處理,根據已有給定的數據標準化處理映射ps,將給定的標準化數據y 反標準化,即可得到正常真實的交通流量預測數據。
小波神經網絡是指沿用了神經網絡的結構,并將網絡中的激活函數替換成小波函數的一種有機結合[9],即以BP 神經網絡拓撲結構為基礎,把小波基函數作為隱含層節點的傳遞函數,信號前向傳播的同時誤差反向傳播的一種神經網絡。 小波變換具有時頻局部特性,而神經網絡具有自學習、自適應、魯棒性、容錯性和推廣能力[10],怎樣結合兩者的優勢一直都是學者們關注的熱點。 相對傳統的神經網絡來說,小波神經網絡避免了在結構設計上的盲目性,它具有更強的學習能力、更快的收斂速度和更高的預測精度[11]。 小波神經網絡(WNN)結構圖如圖2所示。

圖2 小波神經網絡結構圖Fig.2 Structure of Wavelet Neural Network
WNN 結構分為3 層:輸入層、隱藏層和輸出層,設輸入層有M 個節點,隱藏層有n 個節點,輸出層有N 個節點。 到目前為止,隱藏層的節點個數n 沒有科學和普遍的確定公式,只有根據試湊法來確定,試湊法公式(2) 如下:

其中,a 的取值范圍為1 到10 之間的整數,本文輸入層節點M =4,輸出層節點N =1。 由公式(2)可知,隱藏層節點個數在3 到12 之間,具體的數值需要進行網絡訓練對比來確定,經網絡訓練測試比較,隱藏層節點個數n =6 時,預測效果最好。
圖2 中Wij表示輸入層到隱含層之間的連接權值,Wjk表示隱含層到輸出層之間的連接權值,Φ(x)為小波函數。 本文選取的神經元激勵函數為Morlet小波,其數學表達式為公式(3):

小波神經網絡隱含層輸出公式(4):

其中,P(j) 是隱藏層第j 個輸出;Φ() 是公式(3) 中的小波基函數;aj是小波基函數的伸縮因子;bj是小波基函數的平移因子。
小波神經網絡輸出層的輸出Yp(k),公式(5)為:

小波神經網絡采用梯度下降法對小波基函數系數和網絡連接權值進行優化修正[12],其修正過程如下:
(a)小波神經網絡輸出預測值Yp(k) 和實際結果Yr(k) 之間的誤差為公式(6):

(b)根據預測誤差ek調整輸入層-隱含層之間連接的權值Wij、隱含層- 輸出層之間的連接權值Wjk、小波函數的伸縮因子aj和小波函數的平移因子bj,公式(7) ~公式(10):

在公式(7)~(10)中,上標為d 的項表示第d 次訓練的連接權值或者小波基函數的系數;上標帶有(d +1)的項代表第d +1 次訓練的連接權值或者小波基函數系數;表示第d +1 次訓練輸入層與隱藏層之間的連接權值修正項;△Wjk(d +1)表示第d +1 次訓練隱藏層和輸出層之間連接權值修正項;表示第d +1 次訓練小波函數的伸縮因子修正項;表示第d +1 次訓練小波函數的平移因子修正項。 各修正項是根據網絡誤差ek計算的,公式(11) ~公式(14) 如下,公式中η 是學習速率:

考慮第d - 1 次權重對第d 次權重的影響,在神經網絡中加入動量項,有效地抑制網絡陷于局部極小值。 加入動量項后,首次迭代訓練網絡中的各項連接權值及小波函數系數的計算公式仍使用公式(11) ~(14),當訓練次數大于等于2 時,各網絡連接權值和小波基函數系數采用公式(15) - (18) 進行計算:
2.2.1 CS 算法
布谷鳥搜索算法是一種通過模擬某些種屬布谷鳥的寄生育雛,有效地求解最優化問題的算法[13]。布谷鳥搜索算法需要設定3 個理想狀態:
(1)每次每只布谷鳥只下一個布谷鳥蛋,并將蛋隨機地放在一個鳥巢中;
(2)布谷鳥蛋最好的那個鳥巢會被保留到下一代;
(3)鳥巢的數量是固定的,鳥巢中布谷鳥蛋被發現的概率是Pa,取值范圍為(0,1)。
可理解為:鳥窩=卵蛋=解,布谷鳥尋找鳥窩產蛋的過程就是搜索解的過程,鳥窩的質量代表著解的好壞。
同時,布谷鳥搜索算法位置更新采用相關的Levy 飛行隨機路徑機制[14],Levy 飛行生成隨機數應包含兩個步驟:隨機方向的選擇和服從萊維分布的步長生成,方向的隨機分布應該服從均勻分布,生成步長最有效且直接的方法是使用Mantegna 算法來實現對稱的levy 穩定分布。 萊維飛行更新鳥窩位置的公式(19)定義為:
其中,Xt表示第t 代的鳥巢位置;Xt+1表示第t +1 代的鳥巢位置;α 表示步長縮放因子;Levy(β)表示萊維隨機路徑,萊維隨機路徑與時間t 的關系服從萊維分布,公式(20):

另外, 一部分宿主鳥以概率Pa發現布谷鳥蛋后,棄巢新建窩的位置路徑選用偏好隨機游動的方式,其計算公式(21) 為:

根據布谷鳥搜索算法設定的3 個理想狀態,布谷鳥搜索算法流程圖如圖3 所示;

圖3 布谷鳥搜索算法流程圖Fig.3 Flow chart of Cuckoo Search Algorithm
2.2.2 ICS-WNN 算法
基本的布谷鳥搜索算法在前期的全局搜索能力很強,但卻削弱了局部搜索能力,在后期又容易收斂于局部極值[15],導致搜索速度變慢和預測精度不高。 為了提高預測精度,本文動態調整步長和發現概率,步長和發現概率隨著算法迭代次數變化而變化[16]。 采用式(22)~式(24)對發現概率和步長進行更新:


其中,Pa,i(t)表示第t 代第i 個鳥巢被發現的概率,最大發現概率Pamax、 最小發現概率Pamin, 令Pamax=1,Pamin=0.005;T 表示最大迭代次數,t 是當前迭代次數,n 是鳥巢數量;αi(t) 是第t 代第i 個鳥巢位置更新步長,αmax和αmax分別為最大步長和最小步長,令αmax=0.05,αmax=0.5;fi是第i 個鳥巢的適應值,fj是任意一個鳥巢的適應值。
ICS-WNN 算法的基本步驟如下:
(1)導入原始交通流量數據進行預處理,將處理過的數據拆分為訓練數據和測試數據;
(2)初始化小波神經網絡的各項參數,進行多次神經網絡訓練,最終確定各項參數值并設神經網絡最大迭代次數為500 次;
(3)初始化鳥巢數Nnest、Pa采用指數遞減方式動態調整、最大迭代次數Tmax設為150 次,每個鳥巢位置Wi都有l(l =M × n +N × n +n +n,M 為輸入層節點個數,n 為隱含層節點個數,N 為輸出層節點個數) 個參數。 采用線性遞減的步長策略對位置和路徑進行更新,根據各參數的初始值進行訓練,計算每個鳥巢的預測值和預測誤差,找到Nnest個鳥巢中預測誤差最小的鳥巢位置,標記為最佳鳥巢Wbest并保留到下一代;
(4) 在下一次訓練中,對3) 中除了最佳鳥巢Wbest以外的鳥巢進行位置和路徑更新。 通過小波神經網絡計算鳥巢位置預測值和實際值之間的誤差ek+1,與上次訓練結果中其他鳥巢的預測誤差ek對比,如果ek+1大于ek,則保留第k 次的鳥巢位置;若ek+1小于ek,則保留第k +1 次訓練的鳥巢位置,從而尋到當代最佳鳥巢位置Wnew;
(5) 若隨機數r >Pa,則舍棄這組鳥巢的位置,建造新鳥巢的位置和路徑,更新方式采用偏好隨機游動方式。 通過小波神經網絡計算預測誤差,與第4) 步中較佳鳥巢位置Wnew中的各預測誤差進行對比,預測誤差較小的鳥巢位置則代替預測誤差較大的鳥巢位置,從而得到當代更優鳥巢位置W′new;
(6)W′new中的最優鳥巢位置標記為Wbest,若沒有達到迭代次數或者預測精度,則返回第4) 步繼續尋優,反之輸出當前Wbest;
(7) 將最終確定的Wbest分別拆分為各連接權值、小波基函數的伸縮因子和平移因子。 將處理過的數據導入小波神經網絡并進行網絡訓練,當滿足條件時,停止網絡訓練,保存此時的各項參數值。 訓練結束的條件為:達到最大迭代次數或達到預測精度;
(8) 輸入測試數據,進行實際交通流量預測。將預測的交通流量結果與實際交通流量進行對比,計算各評價指標值。
實驗硬件平臺為四核第七代酷睿i7 處理器,8GB DDR4 內存,軟件環境為MATLAB R2014b。 實驗數據選用美國加利福利亞州圣華金縣斯托克頓某車道車流量數據,記錄時間為2011 年4 月4 日至2011 年4 月15 日共10 個工作日、時間間隔為15 分鐘一組的交通流數據集。
在預測模型中各項連接權值學習速率為0.01、小波函數的平移因子和伸縮因子學習速率為0.0015、動量因子為0.4、鳥巢數為20、Pa 采用指數遞減的方式動態調整、步長采用線性遞減的策略。
為了分析本文提出的預測模型,選用4 種評價指標對預測結果進行分析,分別為平均絕對百分比誤差(MAPE)、平均絕對誤差(MAE)、均等系數(EC)和均方根誤差(RMSE)。
平均絕對百分比誤差(MAPE)計算公式(25):

平均絕對誤差計(MAE)算公式(26):

均等系數(EC)計算公式(27):

均方根誤差(RMSE)計算公式(28):

公式(25)~(28)中,Yp(t)表示t 時刻網絡預測值,Yr(t) 表示t 時刻實際交通流量值, N 表示預測數據樣本數量組數。 為了驗證本文提出算法的預測效果,選用PSO-WNN 算法、GA-WNN 算法、CSBPNN 算法、CS-WNN 算法和本文提出的算法進行交通流量預測結果比較,結果如表1 所示。
由表1 可知,本文提出算法的MAPE 為5.7737%,平均絕對誤差MAE 為10.5213,均方根誤差RMSE 為12.8466,這3 個評價指標值均低于CSWNN 算法、PSO-WNN 算法、GA-WNN 算法和CSBPNN 算法所對應的各項評價指標值。 因此,本文提出的模型具有更高的預測精度。

表1 不同模型評價指標比較Tab.1 Comparison of evaluation indexes of different models
表中幾種算法的均等系數(擬合度)都在0.95以上,擬合度越高表示預測效果越好,因此利用這幾種算法預測結果都是比較有意義的。 本文提出算法的擬合度為0.97386,在幾種預測算法中擬合度值最高,說明本文提出的算法預測效果優于其他幾種主流預測算法。
圖4 和圖5 為幾種模型交通流量預測結果比較圖,其中,圖5 是圖4 仿真結果的局部放大圖。 由圖4、圖5 可以看出,本文提出預測模型的預測結果相對于另外4 種模型的預測結果來說,偏離程度較小。結合表1、圖4 和圖5 來看,本文提出的預測算法具有更高的精確度和擬合度。

圖4 各模型交通流量預測結果圖Fig.4 Traffic flow prediction results of various models
圖6 為CS-WNN 算法和ICS-WNN 算法預測結果對比圖,從圖中可以看出ICS-WNN 算法預測結果和CS-WNN 算法的預測結果走勢相似,但整體上ICS- WNN 的預測更貼近實際車流量走勢。 從表1中也可以看出,相對于CS-WNN 算法,ICS-WNN 算法的平均絕對百分比誤差降低了0.824 8%,平均絕對誤差降低了0.680 4,均方根誤差降低了1.61。 結合表1 與圖6 來看,本文提出的算法優于CS-WNN算法。

圖5 各模型交通流量預測結果局部圖Fig.5 Partial graphs of traffic flow prediction results of various models

圖6 CS-WNN 和ICS-WNN 預測結果圖Fig.6 CS-WNN and ICS-WNN prediction results
圖7 是實際交通流量與本文提出的預測模型預測的交通流量結果圖,從圖中可以看出,除個別時間點外,本文提出的模型預測結果比較貼近實際交通車流量走勢。

圖7 實際車流量與ICS-WNN 預測結果圖Fig.7 Actual traffic flow and ICS-WNN prediction results
利用自調整步長和發現概率優化布谷鳥搜索算法,克服了布谷鳥搜索算法在后期精度不高和搜索速度慢等缺點;再利用改進的CS 算法初始化小波神經網絡的各連接權值與小波函數的伸縮因子和平移因子,使神經網絡不容易陷入局部極小值;其次在小波神經網絡訓練的時候,加入動量因子避免網絡訓練時發生震蕩,從而構建了ICS-WNN 預測模型。對比幾種預測算法的各項評價指標值,驗證了本文提出的預測模型具有更高的預測精度和更好的擬合能力。 交通流量特別容易受到外界環境的影響,下一步工作將考慮更多輸入參數的預測算法研究,進一步提高交通流量的預測精度。