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