■朱志強
(深圳市市政設(shè)計研究院有限公司,深圳 518029)
機動車數(shù)量的不斷增加使得交通擁堵狀況日趨嚴重,為了緩解交通擁堵、實現(xiàn)車輛的高效率運行,在智能交通背景下的交通控制策略以及交通流智能化誘導(dǎo)顯得十分必要, 而交通流量的預(yù)測是智能交通控制環(huán)節(jié)中不可或缺的重要組成部分[1],因此,本文針對交通流量的預(yù)測問題進行研究。 以往文獻提出了眾多的交通流量預(yù)測方法[2],在這些方法中,BP 神經(jīng)網(wǎng)絡(luò)模型應(yīng)用較廣[3]。張軍[4]針對福泉高速公路車流量預(yù)測問題,應(yīng)用BP 神經(jīng)網(wǎng)絡(luò)模型進行了研究, 研究結(jié)果證實了BP 神經(jīng)網(wǎng)絡(luò)擁有較好的容錯性和魯棒性。景輝鑫等[5]為了進一步提高模型的預(yù)測精度,對BP 神經(jīng)網(wǎng)絡(luò)模型進行了改進,提出了灰色ELM 神經(jīng)網(wǎng)絡(luò)的短時交通流預(yù)測方法,并通過仿真實驗驗證了所提模型具備較高的預(yù)測精度。常峰等[6]考慮交通流的混沌特性, 應(yīng)用小波基函數(shù)對BP 神經(jīng)網(wǎng)絡(luò)模型的隱含層進行優(yōu)化,有效提高了模型的預(yù)測精度。 錢偉等[7]分析了交通流具有每周各天特性相似的特征, 提出了灰色模型與BP 神經(jīng)網(wǎng)絡(luò)模型相組合的交通流量預(yù)測模型,研究結(jié)果表明,組合模型能夠凸顯各子模型部分的階段性預(yù)測優(yōu)勢,從而提高模型預(yù)測精度。
可以看出,BP 神經(jīng)網(wǎng)絡(luò)模型雖然能夠較好地用于交通流量的預(yù)測研究中, 但BP 神經(jīng)網(wǎng)絡(luò)模型本身存在這模型預(yù)測精度不夠高的缺點。鑒于此,本文將Adaboost 算法融入傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型, 旨在進一步提高模型預(yù)測精度, 為智能交通控制系統(tǒng)中的交通流量預(yù)測提供參考。
BP 神經(jīng)網(wǎng)絡(luò)模型是一種常用的神經(jīng)網(wǎng)絡(luò)模型[8],在模型結(jié)構(gòu)上它一般分為三個部分,即輸入層、隱含層和輸出層,如圖1 所示。 在圖1 中,輸入層對應(yīng)的是數(shù)據(jù)的輸入,也稱為自變量,自變量經(jīng)過隱含層的數(shù)據(jù)訓(xùn)練,在輸出層輸出所預(yù)測的結(jié)果,即輸出層輸出的是因變量。輸入層節(jié)點數(shù)用n 表示,隱含層節(jié)點數(shù)用l 表示,同時輸出層節(jié)點數(shù)用m 表示, 則BP 神經(jīng)網(wǎng)絡(luò)模型通過隱含層的非線性函數(shù)關(guān)系,建立了從輸入層n 到輸出層m 的函數(shù)關(guān)系。
圖1 BP 神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)
BP 神經(jīng)網(wǎng)絡(luò)模型原理的核心在于數(shù)據(jù)的訓(xùn)練過程,其主要步驟如下:
步驟1:初始化神經(jīng)網(wǎng)絡(luò)
根據(jù)BP 神經(jīng)網(wǎng)絡(luò)模型的輸入與輸出數(shù)據(jù)矩陣計算n、l 和m 的值, 同時初始化各層神經(jīng)元之間的連接權(quán)重系數(shù)wij和wjk,隱含層與輸出層的范圍a 和b,同時,確定神經(jīng)元學(xué)習(xí)激勵函數(shù)等參數(shù)。
步驟2:確定隱含層輸出
應(yīng)用公式(1)計算隱含層的輸出:
其中,f 為激勵函數(shù)。
步驟3:確定輸出層輸出
應(yīng)用公式(2)計算輸出層輸出的預(yù)測結(jié)果Ok:
步驟4:分析誤差
計算模型的預(yù)測誤差如下:
其中,e 表示預(yù)測誤差,Y 表示期望值,O 表示預(yù)測值。
步驟5:更新權(quán)重
依據(jù)所計算的預(yù)測誤差e 的大小, 動態(tài)調(diào)節(jié)連接權(quán)重,計算公式如下:
其中,η 表示學(xué)習(xí)速率。
步驟6:更新范圍
分別應(yīng)用公式(5)和公式(6)更新,即:
步驟7:輸出最終預(yù)測結(jié)果
若誤差大于設(shè)定的誤差范圍,則返回步驟2,否則輸出預(yù)測結(jié)果。
將Adaboost 融入BP 神經(jīng)網(wǎng)絡(luò)模型中,構(gòu)建BP-Adaboost 預(yù)測模型, 提高原有BP 神經(jīng)網(wǎng)絡(luò)模型的預(yù)測精度。 Adaboost 算法本質(zhì)上是一種迭代算法[9],它的迭代過程是:首先,應(yīng)用次分層向量隨機訓(xùn)練樣本矩陣,并且確定訓(xùn)練因子為。 然后,以 為迭代次數(shù),并計算迭代解,同時根據(jù)迭代結(jié)果調(diào)整訓(xùn)練因子,增加其權(quán)重值,經(jīng)過一系列的多次迭代,得到弱預(yù)測器函數(shù),并將這些弱預(yù)測器函數(shù)進行整合, 形成具備高精度特性的強預(yù)測函數(shù)。 這樣,將Adaboost 算法融入至BP 神經(jīng)網(wǎng)絡(luò)模型中,得到的BP-Adaboost 預(yù)測模型結(jié)構(gòu)如圖2 所示,在圖2 中,BP 神經(jīng)網(wǎng)絡(luò)模型是所構(gòu)建BP-Adaboost 預(yù)測模型的基礎(chǔ),而Adaboost 算法是其中的關(guān)鍵組成部分。
圖2 BP-Adaboost 預(yù)測模型結(jié)構(gòu)流程
在圖2 中,Adaboost 迭代算法融入預(yù)測模型中的原理具體如下:
步驟1:選擇樣本矩陣以及初始化網(wǎng)絡(luò)模型
將樣本矩陣分成 組,則訓(xùn)練因子為,同時確定相關(guān)參數(shù)。
步驟2:次分層向量的訓(xùn)練
劃分次分層向量,記為,經(jīng)過訓(xùn)練計算出相應(yīng)的誤差率,計算公式為:
其中,g(t)表示預(yù)測結(jié)果,y 表示期望結(jié)果。
步驟3:調(diào)整測試數(shù)據(jù)權(quán)重
通過下式計算誤差率 的權(quán)重,如下:
步驟4:調(diào)整因子
調(diào)整因子的計算公式為:
步驟5:形成強預(yù)測器函數(shù)
經(jīng)過T 次迭代共產(chǎn)生T 個次級向量f(gt,at),將這些次級向量進行組合,以此形成強預(yù)測器函數(shù)h(x):
選擇合肥市某交叉口的某個進口道的交通流量數(shù)據(jù)作為本文交通量樣本數(shù)據(jù), 該樣本數(shù)據(jù)是由交叉口檢測器采集獲得, 數(shù)據(jù)采集間隔為5min。 該樣本數(shù)據(jù)包含了2018 年10 月份的15 個工作日的4530 個數(shù)據(jù)量,其中每個工作日均是全天候采集。 將樣本數(shù)據(jù)中的前14 天的數(shù)據(jù)作為訓(xùn)練樣本, 并將第15 天采集的數(shù)據(jù)作為測試樣本,訓(xùn)練樣本共有4228 組,測試樣本共有302 組。 同時,針對全天候24h 以及早高峰時段分別進行交通流量預(yù)測與分析,其中早高峰時段是指早上7:00-9:00。
為了表明所構(gòu)建的BP-Adaboost 預(yù)測模型在交通流量預(yù)測方面的優(yōu)勢, 將BP-Adaboost 預(yù)測模型與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型進行比較,在比較過程中,將測試樣本作為基準,如圖3 所示。其中,圖3(a)顯示的是全天候24h 的預(yù)測對比結(jié)果,而圖3(b)則為早上7:00-9:00 早高峰時段內(nèi)的預(yù)測對比結(jié)果。 由圖3 可以看出,BP-Adaboost 預(yù)測模型的預(yù)測結(jié)果與樣本數(shù)據(jù)的實際情況較吻合, 能夠精確描述交通量的變化趨勢,雖然傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型大體上也可以預(yù)測交通量的整體變化趨勢,但是可以看出,傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型的預(yù)測精度較低,造成的預(yù)測誤差較大,因此,圖3 的對比分析表明了所構(gòu)建的BP-Adaboost預(yù)測模型可以更好的應(yīng)用于交通量預(yù)測研究中。
圖3 預(yù)測結(jié)果對比分析
為了能夠量化對比分析BP-Adaboost 預(yù)測模型與傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型在預(yù)測精度上的差異, 應(yīng)用絕對誤差、相對誤差、均方根誤差以及平均誤差四種誤差評價指標,來評估兩種預(yù)測模型的預(yù)測精度。 這四種誤差指標分別記為ER、RER、RMSE 和ε,計算公式分別如下[10]:
在誤差計算公式中,x 表示實際交通量,xˉ表示實際交通量的均值,x~表示交通量的預(yù)測值,n 表示樣本數(shù)量。
應(yīng)用四種誤差評價指標計算得到的BP-Adaboost 預(yù)測模型與傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型在預(yù)測精度上的對比分析結(jié)果如表1 所示, 由表1 可知,BP-Adaboost 模型在全天候和早高峰的預(yù)測絕對誤差分別小于58 輛和12 輛,而傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型的絕對誤差則分別是121 輛和29 輛, 誤差較大。 對于相對誤差而言,BP-Adaboost 預(yù)測模型的全天候預(yù)測結(jié)果相對誤差小于27%, 早高峰的預(yù)測相對誤差小于14%,而傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型預(yù)測結(jié)果的相對誤差上限分別是71%和39%, 同樣具備較大的相對誤差。 均方根誤差可以反映預(yù)測結(jié)果的離散程度,從表1 中可以看出, 相比于傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型,BP-Adaboost 預(yù)測模型具有較低的均方根誤差,表明了BP-Adaboost 預(yù)測模型預(yù)測結(jié)果的精密度較好、波動較小。 從整體水平角度看, 平均誤差能夠反映出預(yù)測結(jié)果的平均精度水平,BP-Adaboost 預(yù)測模型的平均誤差控制在6%以內(nèi), 而傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型則具有較大的平均誤差,表明了BP-Adaboost 預(yù)測模型具備比傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型更高的預(yù)測精度。
表1 誤差分析結(jié)果
基于BP-Adaboost 模型對交通流量預(yù)測進行了研究,并通過交叉口15 個工作日的樣本數(shù)據(jù)進行了實例分析, 實例分析的研究結(jié)果表明,BP-Adaboost 預(yù)測模型比傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)模型在絕對誤差、相對誤差、均方根誤差以及平均誤差等方面均具有更優(yōu)的模型預(yù)測效果,證明了BP-Adaboost 預(yù)測模型在交叉口交通流量預(yù)測中的可行性, 可為智能交通系統(tǒng)中交通流量預(yù)測提供理論參考。