史亞星
(北方工業(yè)大學(xué)計(jì)算機(jī)學(xué)院 北京 100144)
交通流量預(yù)測對于智能交通的發(fā)展起著重要作用。精準(zhǔn)和實(shí)時(shí)的交通流量信息預(yù)測能夠用來分析道路規(guī)劃、減少意外事故、提供合理出行意見[1]。對城市道路車流量短時(shí)間段進(jìn)行預(yù)測,得到盡可能準(zhǔn)確的預(yù)測結(jié)果,為居民的出行提供及時(shí)的參考,緩解交通壓力,最大限度利用道路資源。
己經(jīng)有大量的方法被應(yīng)用到短時(shí)車流量預(yù)測,交通流量預(yù)測模型分為參數(shù)模型和非參數(shù)模型。參數(shù)模型包括自回歸移動平均模型[2](Autoregressive Integrated Moving Average,ARIMA)和卡爾曼濾波[3]等,非參數(shù)模型包括 KNN[4],SVR[5],人工神經(jīng)網(wǎng)絡(luò)[6]等,由于車流量與時(shí)間沒有簡單的線性關(guān)系,非參數(shù)方法可以在沒有先驗(yàn)知識情況下,映射非線性關(guān)系,獲得更好的預(yù)測效果[7]。
Hinton提出了訓(xùn)練過程中采用無監(jiān)督學(xué)習(xí)方式逐層初始化[8]。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的子領(lǐng)域,研究目的在于建立一個(gè)模擬人腦進(jìn)行分析學(xué)習(xí)的多層神經(jīng)網(wǎng)絡(luò)。深度學(xué)習(xí)利用多層非線性變換對數(shù)據(jù)信息進(jìn)行抽象,通過有監(jiān)督或者無監(jiān)督的特征提取和轉(zhuǎn)換、模式分析和分類,用來解釋如圖像、聲音、文本的數(shù)據(jù)[9~10]。深度網(wǎng)絡(luò)結(jié)構(gòu)由具有關(guān)聯(lián)關(guān)系的多個(gè)隱含層組成,使用神經(jīng)網(wǎng)絡(luò)的隱層參數(shù)作為深度網(wǎng)絡(luò)新頂層預(yù)訓(xùn)練初始化參數(shù),映射上一個(gè)圖層的輸出得到具加抽象的輸入表示[11]。深度學(xué)習(xí)模型如深信度網(wǎng)絡(luò)[12],堆疊自動編碼器[13],LSTM遞歸神經(jīng)網(wǎng)絡(luò)[14]已經(jīng)用于車流量預(yù)測。
自動編碼器可以提取隱含在交通數(shù)據(jù)中的靜態(tài)規(guī)則,LSTM遞歸神經(jīng)網(wǎng)絡(luò)具有記憶長期的信息,預(yù)測非線性交通時(shí)間序列數(shù)據(jù)特性,本文設(shè)計(jì)自動編碼器和LSTM遞歸神經(jīng)網(wǎng)絡(luò)混合模型預(yù)測交通流量,提高預(yù)測準(zhǔn)確率。首先將交通流量數(shù)據(jù)輸入到自動編碼器層,訓(xùn)練自動編碼器層參數(shù)進(jìn)行特征學(xué)習(xí),然后將自動編碼器編碼的特征輸入LSTM層,LSTM層的記憶單元根據(jù)訓(xùn)練狀態(tài)存儲交通信息,對短時(shí)交通車流量進(jìn)行預(yù)測。實(shí)驗(yàn)結(jié)果表明本文建立的模型具有較好的預(yù)測效果,并能更好地應(yīng)用到城市路口車流量預(yù)測。
自動編碼器是一種提取數(shù)據(jù)特征的有效方法,通過訓(xùn)練調(diào)整其參數(shù),使得輸入經(jīng)過特征編碼變換后仍然可以通過解碼變換的方式盡可能地恢復(fù)原來的特征,這些特征編碼變換后的數(shù)值就是所謂的表示特征。自動編碼器由編碼器、解碼器兩部分組成。
自動編碼器結(jié)構(gòu)如圖1所示,編碼器根據(jù)式(1)將輸入向量x映射為隱含表示h:
其中 f為編碼函數(shù),W是輸入層和隱含層之間權(quán)值矩陣,by是輸入層和隱含層之間偏置向量,解碼器按式(2)將隱含層數(shù)據(jù)h映射回重構(gòu)輸入向量z:
其中g(shù)為解碼函數(shù),W′是隱含層和輸出層之間權(quán)值矩陣,bg是隱含層和輸出層之間偏置向量,Sf和Sg為激活函數(shù),通過最小化重構(gòu)誤差得到模型參數(shù) θ={W ,by,bg},其中重構(gòu)誤差函數(shù)為式(3)。
經(jīng)過訓(xùn)練的自動編碼器可以表示輸入向量的特征,預(yù)訓(xùn)練深層網(wǎng)絡(luò)使用貪心算法以自底向上的方式進(jìn)行逐層學(xué)習(xí),堆疊自動編碼器將自動編碼器作為基本建模單元,可以通過逐層特征提取的方式獲得輸入特征的抽象表示。
長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)是一種特殊遞歸神經(jīng)網(wǎng)絡(luò),由LSTHochreiter和 Schmidhuber提出[15]。一個(gè)LSTM層由一組循環(huán)連接的記憶塊(memory blocks)組成。每一個(gè)記憶塊包括一個(gè)自連接的記憶單元(memory cell)和輸入門、遺忘門和輸出門,在LSTM中,信息在記憶單元中處理,在記憶單元中允許信息的存儲,寫或者讀操作。長時(shí)間依賴關(guān)系將被記憶塊處理,專門設(shè)計(jì)的記憶塊有助于克服梯度消失問題。
讓x1,x2,x3,…xn這個(gè)序列表示輸入向量,LSTM使用上述公式計(jì)算隱含層序列,xt表示t時(shí)間輸入到記憶單元的向量,it,ft,ct,ot對應(yīng)t時(shí)間輸入門,遺忘門,記憶單元和輸出門向量,權(quán)重矩陣定義為W ,如Wxi,Wxf,Wxc,Wxo分別表示輸入向量與輸入門,遺忘門,記憶單元,輸出門之間對應(yīng)的權(quán)重矩陣,b代表偏置向量,如bi為輸入門偏置向量。σ是Sigmoid激活函數(shù),tanh函數(shù)為雙曲正切函數(shù)。
本文設(shè)計(jì)一種深度學(xué)習(xí)混合模型預(yù)測車流量,模型包括一個(gè)自動編碼器層,一個(gè)LSTM層和一個(gè)輸出層。模型訓(xùn)練分為兩個(gè)階段:第一階段為無監(jiān)督的特征學(xué)習(xí)過程,這個(gè)階段是利用自動編碼器進(jìn)行無監(jiān)督的特征表示學(xué)習(xí),利用歸一化后的訓(xùn)練數(shù)據(jù)集作為輸入,訓(xùn)練第一層神經(jīng)網(wǎng)絡(luò)參數(shù),將其輸出復(fù)現(xiàn)原始輸入,最小化重構(gòu)差異,得到第一層自動編碼器模型參數(shù);第二階段為有監(jiān)督學(xué)習(xí),將自動編碼器編碼的特征輸入到LSTM層,輸出層是全連接的人工神經(jīng)網(wǎng)絡(luò),利用期望輸出和實(shí)際輸出誤差調(diào)整LSTM層和輸出層參數(shù),來最小化訓(xùn)練數(shù)據(jù)的預(yù)測誤差。
表1為系統(tǒng)采集到的交通路口數(shù)據(jù),包含編號、車牌號碼、時(shí)間和監(jiān)測點(diǎn)設(shè)備號(表中由于車牌號car_no涉及用戶隱私,此處都用“京---”代替),統(tǒng)計(jì)得到每1分鐘經(jīng)過路口車輛數(shù),實(shí)驗(yàn)選擇望京西路南湖中園口南向路口數(shù)據(jù),包含2015.02.03到2015.03.02共28天數(shù)據(jù),其中2 3數(shù)據(jù)作為訓(xùn)練集,1 3數(shù)據(jù)作為測試集。
表1 河蔭西路口東向部分?jǐn)?shù)據(jù)
圖2為望京西路南湖中園口南向2015年2月3日車流量隨時(shí)間變化圖,橫軸代表時(shí)間,縱軸代表車流量,從圖可以看出5:00之前路面車輛數(shù)量較小,實(shí)驗(yàn)選取的時(shí)間段為5:00~23:00。
圖2 車流量隨時(shí)間變化
在本文提出的基于自動編碼器和LSTM遞歸神經(jīng)網(wǎng)絡(luò)的交通流量預(yù)測模型中,使用前45min車流量數(shù)據(jù)預(yù)測接下來的15min車流量。預(yù)測的準(zhǔn)確性取決于數(shù)據(jù)粒度,更細(xì)的粒度可以提高模型的性能[16],由于城市路口交通數(shù)據(jù)的非線性變化特征,本文選取的時(shí)間粒度為1min,使用前45個(gè)1min交通流量數(shù)據(jù)作為模型輸入,模型預(yù)測接下來15min經(jīng)過該路口車流量,輸入模型的觀測點(diǎn)車流量使用min-max標(biāo)準(zhǔn)化,在實(shí)驗(yàn)中自動編碼器隱含層節(jié)點(diǎn)數(shù)目取值從20~40,間隔為5,用N1表示自動編碼器隱含層節(jié)點(diǎn)數(shù)目,LSTM層隱含層節(jié)點(diǎn)數(shù)目取值范圍從2~20,間隔為1。實(shí)驗(yàn)設(shè)置自動編碼器層迭代次數(shù)為20,LSTM層和輸出層迭代次數(shù)為200。程序基于神經(jīng)網(wǎng)絡(luò)框架keras實(shí)現(xiàn)。
采用以下標(biāo)準(zhǔn)來評價(jià)模型的預(yù)測效果,平均絕對誤差百分比MAPE(mean absolute percentage error)、均方根誤差RMSE(root mean square error)。
式(9)~(10)中xi表示觀測真實(shí)車流量,yi表示對應(yīng)時(shí)間預(yù)測值,計(jì)算得到的MAPE、RMSE值越小,說明模型擬合程度越好,預(yù)測準(zhǔn)確率(1-MAPE)越高。
圖3橫軸代表LSTM層隱含節(jié)點(diǎn)數(shù),縱軸代表平均絕對誤差百分比MAPE,表示選取不同的自動編碼器隱含層節(jié)點(diǎn)數(shù)和LSTM層隱含節(jié)點(diǎn)數(shù)時(shí),預(yù)測準(zhǔn)確率情況。當(dāng)自動編碼器隱含節(jié)點(diǎn)數(shù)為35,LSTM層隱含節(jié)點(diǎn)數(shù)目為19時(shí),MAPE最小,預(yù)測準(zhǔn)確率最高,為86.81%。當(dāng)自動編碼器隱含層節(jié)點(diǎn)數(shù)為20時(shí),隨LSTM層隱含節(jié)點(diǎn)數(shù)增加,MAPE值波動較大,且預(yù)測結(jié)果計(jì)算得到的MAPE值較大。
圖3 不同的參數(shù)設(shè)置下MAPE值
圖4 橫軸表示LSTM層隱含節(jié)點(diǎn)數(shù)目,縱軸表示RMSE,不同的顏色線表示不同自動編碼器隱含層節(jié)點(diǎn)數(shù)。在自動編碼器隱含層節(jié)點(diǎn)數(shù)目確定時(shí),隨著LSTM層隱含節(jié)點(diǎn)數(shù)目增加,RMSE值先顯著減少后逐漸平穩(wěn)。
圖4 參數(shù)設(shè)置和RMSE關(guān)系
比較本文方法和LSTM方法,SAE方法,SVR方法,對該路口交通數(shù)據(jù)進(jìn)行預(yù)測,準(zhǔn)確率結(jié)果如圖5所示,本文模型預(yù)測準(zhǔn)確率為86.81%,對比實(shí)驗(yàn)中LSTM方法和本文方法有相同的迭代次數(shù)和隱含層節(jié)點(diǎn)數(shù)目,LSTM方法準(zhǔn)確率為86.53%,實(shí)驗(yàn)設(shè)置SAE方法有兩個(gè)隱含層,每層隱含節(jié)點(diǎn)數(shù)為35,預(yù)訓(xùn)練和微調(diào)階段的迭代次數(shù)分別為20和200,SAE方法準(zhǔn)確率為86.20%,本文方法比SAE方法提高0.61%,SVR方法預(yù)測準(zhǔn)確率為85.81%,本文方法比SVR方法提高約1%,結(jié)果顯示本文預(yù)測模型能夠更好地反映交通流的非線性變化特征。
圖5 方法比較
本文對北京城市道路的路口交通數(shù)據(jù)進(jìn)行分析,建立了基于自動編碼器和LSTM遞歸神經(jīng)網(wǎng)絡(luò)的交通流量預(yù)測模型,該混合模型從可以非線性交通數(shù)據(jù)中提取特征,進(jìn)行路口車流量預(yù)測。預(yù)測交通路口的下一個(gè)15min時(shí)間段車流量,用兩種不同標(biāo)準(zhǔn)對模型進(jìn)行評價(jià),并與其他方法進(jìn)行比較。模型包含一個(gè)自動編碼器和一個(gè)LSTM層,在未來的工作中,添加自動編碼器層數(shù)和LSTM層數(shù),進(jìn)一步優(yōu)化相關(guān)參數(shù)的選取方法,不同的迭代次數(shù),隱含層節(jié)點(diǎn)數(shù)目,都會對模型準(zhǔn)確率產(chǎn)生影響。