(中國科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230022)
交通誘導(dǎo)系統(tǒng)和交通控制系統(tǒng)是智能交通系統(tǒng)的兩大核心子系統(tǒng)[1],交通流預(yù)測的好壞直接關(guān)系到交通誘導(dǎo)和交通控制的效果。根據(jù)預(yù)測的時間長度,交通流預(yù)測分為短時交通流預(yù)測和長時交通流預(yù)測[2]。長時交通流預(yù)測一般以時、天或者月為單位,受到影響因素多,導(dǎo)致預(yù)測精確難以提高,因此實(shí)用性較弱。相對來說,短時交通流預(yù)測的實(shí)用性更強(qiáng),一般認(rèn)為短時交通流預(yù)測是指預(yù)測的時間跨度不超過15 min[3]。
已有的短時交通流預(yù)測模型主要有非參數(shù)預(yù)測模型、統(tǒng)計學(xué)模型、概率圖模型和混合模型等[4]。Kumar等人[5]利用改進(jìn)的自回歸整數(shù)移動平均模型建立預(yù)測模型能達(dá)到一定的精度,但是只適用于平穩(wěn)的交通流狀態(tài)。Sun和Zhang[6]使用貝葉斯網(wǎng)絡(luò)解決短時交通流預(yù)測,對北京市交通路段進(jìn)行實(shí)驗(yàn),取得了一定的精度。隨著大數(shù)據(jù)時代的到來,以機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等以數(shù)據(jù)驅(qū)動的技術(shù),成為近些年來研究的熱點(diǎn),并成功地在交通領(lǐng)域解決了不少問題。Yang等人[7]將GBDT(Gradient Boosting Decision Tree)模型[8]用于短時交通流預(yù)測,但是該方法過度依賴于人工構(gòu)造特征的好壞。Zhao等人[9]運(yùn)用長短期記憶模型對不同時間跨度的交通流進(jìn)行預(yù)測,但是并沒有考慮交通流的空間特征。Wu等人[10]用一維卷積神經(jīng)網(wǎng)絡(luò)挖掘出交通流空間特征,再結(jié)合兩個長短期記憶模型挖掘交通流短時周期性特征,該方法雖然考慮了空間特征,但是由于使用的是一維卷積神經(jīng)網(wǎng)絡(luò),所以空間特征的挖掘能力有限。Wang等人[11]提出了帶誤差反饋的卷積神經(jīng)網(wǎng)絡(luò)模型對交通流進(jìn)行預(yù)測。在組合模型方面,雷斌和溫樂等人[12]提出組合模型來提升預(yù)測精度,其組合模型包括改進(jìn)的K近鄰非參數(shù)回歸和小波神經(jīng)網(wǎng)絡(luò),該組合模型對于非平穩(wěn)的輸入也能表現(xiàn)出良好的變焦能力,同時在短時交通流預(yù)測精度也有明顯提升。
以上模型雖然將深度學(xué)習(xí)運(yùn)用到了交通流預(yù)測領(lǐng)域,并且取得了不錯的效果,但是,交通流的時間和空間特征并沒有被深入挖掘。同時,傳統(tǒng)的機(jī)器學(xué)習(xí)方法在交通流預(yù)測方面的劣勢在于需要人工構(gòu)造、過濾特征等。本文結(jié)合這兩類方法的優(yōu)勢,利用卷積神經(jīng)網(wǎng)絡(luò)自動特征提取和特征選擇等特點(diǎn),有效地提取出交通流的時空特征,抽象出交通流的本質(zhì)特性,將其作為輸入向量,輸入到XGBoost模型進(jìn)行交通流預(yù)測,避免了人工構(gòu)造、過濾特征,同時保證了模型的預(yù)測精度。
CNN(Convolutional Neural Network,卷積神經(jīng)網(wǎng)絡(luò))是一種包含卷積層的深度神經(jīng)網(wǎng)絡(luò)模型,近年來在圖像任務(wù)上取得了不錯的效果,通過局部連接、權(quán)值共享以及下采樣等[13]解決了全連接神經(jīng)網(wǎng)絡(luò)參數(shù)過多等問題。從結(jié)構(gòu)上看,CNN是一個多層的神經(jīng)網(wǎng)絡(luò),主要由卷積層、下采樣層和全連接層構(gòu)成??紤]通道唯一的情況,CNN第l層輸入記為xl∈RHl×Wl,xl經(jīng)過第l層的操作后得到輸出xl+1∈RHl+1×Wl+1。
1.1.1 卷積層的構(gòu)造
卷積層主要是使用卷積核來提取輸入的不同特征,CNN層數(shù)越深,所需的卷積核個數(shù)一般越多,卷積操作可表示為
(1)
式中,(il+1,jl+1)為卷積結(jié)果的位置坐標(biāo),并且滿足:
0≤il+1 (2) 其中,wi,j為卷積核學(xué)習(xí)到的權(quán)重;H和W為卷積核尺寸。 1.1.2 下采樣層的構(gòu)造 下采樣層具有特征不變性、特征降維和防止過擬合等作用,常用的下采樣有最大池化和平均池化。平均池化為 (3) 最大池化為 (4) 1.1.3 全連接層的構(gòu)造 全連接層功能是將提取到的特征表示映射到樣本標(biāo)記空間,該層是一個普通前饋神經(jīng)網(wǎng)絡(luò),則有: xl+1=f(wxl+b) (5) 式中,w為權(quán)重矩陣;b為偏置矩陣;f為激活函數(shù),可以選擇Relu函數(shù)或者Sigmoid函數(shù)等。 (6) 式中,F(xiàn)={f(x)=wq(x)}(q:Rm→T,w∈RT),F(xiàn)表示回歸樹空間;w為回歸樹葉子節(jié)點(diǎn)權(quán)重;q為回歸樹的結(jié)構(gòu),把每個樣本節(jié)點(diǎn)映射到對應(yīng)葉子節(jié)點(diǎn)索引;T為葉子節(jié)點(diǎn)個數(shù)。為了學(xué)習(xí)到該模型的參數(shù),需要最小化目標(biāo)函數(shù): (7) 式中,l為損失函數(shù);Ω為對模型復(fù)雜度的懲罰。XGBoost算法屬于前向分步算法,即在第t輪迭代的時候,加入新的模型ft,需要最小化下面的目標(biāo)函數(shù): (8) XGBoost算法使用二階泰勒展開進(jìn)行優(yōu)化,二階泰勒展開后得到: (9) 去掉常數(shù)項后,目標(biāo)函數(shù)簡化為 (10) 令I(lǐng)j={i|q(xi)=j}為葉子節(jié)點(diǎn)j包含的所有樣本,則目標(biāo)函數(shù)可改寫為 (11) (12) 式(12)可以用于評估樹結(jié)構(gòu)q的質(zhì)量,由于枚舉所有可能的樹結(jié)構(gòu)的時間復(fù)雜度太高,因此一般使用貪心算法來確定樹結(jié)構(gòu),即遍歷所有可能的特征,選取特征的值作為分割點(diǎn),計算劃分前后的增益來確定劃分方式。記I為分裂前樣本集合,則I=IL∪IR,其中IL和IR為分裂后左葉子節(jié)點(diǎn)樣本集合和右葉子節(jié)點(diǎn)樣本集合,則增益計算公式為 (13) 考慮到傳統(tǒng)機(jī)器學(xué)習(xí)方法需要人工對交通流提取特征,因此人工構(gòu)造特征的好壞直接決定了模型性能的上限,而CNN模型可以實(shí)現(xiàn)端到端的學(xué)習(xí),中間的特征可以通過模型自動學(xué)習(xí)得到。XGBoost模型是一系列分類回歸樹的組合,優(yōu)勢在于不容易過擬合、訓(xùn)練速度快和可解釋性強(qiáng)。結(jié)合二者的優(yōu)點(diǎn),提出了CNN-XGBoost模型,使用CNN模型自動提取不同層次的特征,然后將得到的特征向量作為輸入給XGBoost模型進(jìn)行交通流預(yù)測。其中CNN模型由兩個卷積層和一個全連接層組成,模型具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。 圖1 CNN-XGBoost模型結(jié)構(gòu)圖 要預(yù)測監(jiān)測點(diǎn)P在時刻t的交通流量,可以從時間和空間兩個角度考慮。在時間上,短期內(nèi)交通流量不會產(chǎn)生突變的情況,下一時刻交通流可以認(rèn)為是上一個或者多個時刻交通流量的延續(xù)。在空間上,監(jiān)測點(diǎn)P的交通流量必然會受到上下游交通流量的影響。綜合考慮這兩個角度的影響因素,把原始交通流量數(shù)據(jù)轉(zhuǎn)化為一種包含時間信息和空間信息的二維特征矩陣。該特征矩陣的縱軸方向是按照檢測器空間位置先后順序排序,在橫軸方向則是檢測器監(jiān)測的數(shù)據(jù)按照時間先后順序排序,記xp,t為檢測器P在t時刻的交通流量,則對應(yīng)的輸入矩陣為 (14) 式中,U為上游檢測器個數(shù);D為下游檢測器個數(shù);T為時間間隔長度。 CNN-XGBoost混合模型的訓(xùn)練過程分為兩個過程。首先是CNN模型的訓(xùn)練,該過程主要是網(wǎng)絡(luò)的前向傳播和反向傳播,前向傳播主要體現(xiàn)了特征信息的傳遞,而反向傳播則是通過誤差信息對模型的參數(shù)進(jìn)行矯正,經(jīng)過若干次訓(xùn)練,直到模型收斂。然后通過得到的模型對輸入的樣本集合自動提取特征,作為XGBoost模型的輸入,一旦XGBoost模型訓(xùn)練完成,則整個模型訓(xùn)練完畢。在CNN模型上采用MAPE(Mean Absolute Percent Error)作為損失函數(shù),訓(xùn)練過程中的優(yōu)化算法采用RMSprop(Root Mean Square Prop)算法,在XGBoost模型中采用平方損失函數(shù)。模型的訓(xùn)練過程如圖2所示。 圖2 模型訓(xùn)練過程 本文實(shí)驗(yàn)數(shù)據(jù)來源于美國加利福尼亞運(yùn)輸部的性能測量系(PeMS)數(shù)據(jù)庫。為了驗(yàn)證本文模型的預(yù)測效果,使用了Los Angeles County內(nèi)高速公路標(biāo)號為I10-E的13個線圈檢測器的交通流量數(shù)據(jù),數(shù)據(jù)的采樣間隔時間為5 min,數(shù)據(jù)的時間跨度為2017年4月1日到2017年10月27日。其中預(yù)測點(diǎn)檢測器的編號為P(718415),上游檢測器編號為U1(717022)、U2(717020)、U3(717016)、U4(717014)、U5(716036)、U6(717011),下游檢測器編號為D1(763963)、D2(764249)、D3(717028)、D4(716047)、D5(716050)、D6(717032),時間間隔長度T為12。訓(xùn)練數(shù)據(jù)集為2017年4月1日到2017年10月16日,測試數(shù)據(jù)集為2017年10月17日到2017年10月27日,總共有57241個訓(xùn)練樣本和2951個測試樣本。 本文中CNN-XGBoost模型的參數(shù)大多為經(jīng)驗(yàn)數(shù)據(jù),其中CNN模型中卷積層個數(shù)為2,卷積核大小均為3×3,卷積核個數(shù)分別為64和128;全連接層的神經(jīng)元個數(shù)為512,激活函數(shù)為Sigmoid函數(shù)。為防止過擬合,引入dropout層,參數(shù)設(shè)置為0.2;batch-size設(shè)置為64;XGBoost模型中學(xué)習(xí)率為0.1,最大樹深為8,其他參數(shù)采用默認(rèn)值。為了驗(yàn)證本文模型的有效性,選取CNN模型、XGBoost模型和CNN-XGBoost模型互相做比較,3種模型的參數(shù)設(shè)定保持一致。為了比較不同模型的預(yù)測結(jié)果以及定量評價模型的預(yù)測性能,采用如下4個評價指標(biāo):平均絕對差值(Mean Absolute Error,MAE)、平均絕對百分比誤差(Mean Absolute Percent Error,MAPE)、均方根誤差(Root Mean Square error,RMSE)和擬合度R2,定義分別如下: (15) (16) (17) (18) 表1 交通流預(yù)測性能指標(biāo) 圖3 CNN模型的預(yù)測結(jié)果 圖4 XGBoost模型的預(yù)測結(jié)果 圖5 CNN-XGBoost模型的預(yù)測結(jié)果 智能交通系統(tǒng)中,準(zhǔn)確預(yù)測交通流對交通控制和誘導(dǎo)具有重要意義,針對短時交通流預(yù)測問題,提出一種應(yīng)用CNN模型結(jié)合XGBoost模型的短時交通流預(yù)測方法。設(shè)計了兩層卷積層CNN模型加XGBoost模型混合模型,并將原始交通流數(shù)據(jù)轉(zhuǎn)化為帶有時空信息的二維數(shù)據(jù)作為卷積神經(jīng)網(wǎng)絡(luò)輸入。最后利用PeMS高速公路標(biāo)號為I10-E的路段進(jìn)行模型性能分析,實(shí)驗(yàn)表明,該模型比CNN模型和XGBoost模型具有更高預(yù)測精度,是一種有效的短時交通流預(yù)測方法。 本文實(shí)驗(yàn)選取的數(shù)據(jù)來自高速路段,未考慮城市路段的復(fù)雜性,下一步將結(jié)合城市路段進(jìn)行研究分析,使模型具有更強(qiáng)的泛化能力,提高本文模型的普適性。1.2 XGBoost模型
2 本文模型(CNN-XGBoost)
2.1 模型的網(wǎng)絡(luò)結(jié)構(gòu)
2.2 基于時空特征的輸入矩陣
2.3 模型的訓(xùn)練過程
3 案例分析
3.1 數(shù)據(jù)描述
3.2 模型參數(shù)設(shè)定和實(shí)驗(yàn)結(jié)果
4 結(jié)束語