一種短程行駛時(shí)間預(yù)測(cè)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于智能交通系統(tǒng)領(lǐng)域,特別涉及一種短程行駛時(shí)間預(yù)測(cè)方法。
【背景技術(shù)】
[0002] 在公交信號(hào)優(yōu)先(TransitSignalPriority,TSP)系統(tǒng)中,往往需要在路口前一 定距離處檢測(cè)公交車的到達(dá),并預(yù)測(cè)公交車行至路口的時(shí)間,以便給予及時(shí)、準(zhǔn)確的信號(hào)優(yōu) 先控制。許多研宄者和工程師都認(rèn)識(shí)到,精確的行駛時(shí)間預(yù)測(cè)是成功實(shí)施公交信號(hào)優(yōu)先的 關(guān)鍵。
[0003] 現(xiàn)有的車輛行駛時(shí)間預(yù)測(cè)模型主要有四類,分別是樸素模型、基于交通理論的模 型、基于數(shù)據(jù)的模型和混合模型。樸素模型不需要任何訓(xùn)練和參數(shù)估計(jì),只是簡單地將最 近發(fā)生的行駛時(shí)間作為下一預(yù)測(cè)值,或者對(duì)歷史行駛時(shí)間進(jìn)行簡單的篩選和加權(quán)作為預(yù)測(cè) 值,或者二者的結(jié)合;這種方法不能適應(yīng)復(fù)雜多變的交通環(huán)境?;诮煌ɡ碚摰哪P驮噲D在 每一個(gè)時(shí)間步里重建交通狀態(tài),然后從狀態(tài)變量推測(cè)行駛時(shí)間,這類模型通常在各類交通 仿真軟件里面實(shí)現(xiàn),例如CORSM、PARAMICS和DynaMIT等,它們可以詳盡地描述交通狀態(tài) 的細(xì)節(jié),但是建立這類模型往往需要大量的專業(yè)知識(shí)。這類模型的預(yù)測(cè)精度取決于重建的 和實(shí)際的交通狀態(tài)之間的相似性,但是由于現(xiàn)實(shí)世界的復(fù)雜性,這種相似性往往不能保證。 得益于統(tǒng)計(jì)和機(jī)器學(xué)習(xí)方法的發(fā)展,涌現(xiàn)出許多基于數(shù)據(jù)的預(yù)測(cè)模型并得到廣泛應(yīng)用,這 類模型的目的是找到一種恰當(dāng)?shù)臄?shù)據(jù)解釋函數(shù)f?及其參數(shù),以最小的誤差將輸入映射到輸 出,其中人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetwork,ANN)模型具有強(qiáng)大的表述數(shù)據(jù)中非 線性關(guān)系的能力,得到了廣泛的研宄,并衍化出多種變體。而混合模型一般將兩種或多種不 同類型的模型組合,集取各自的優(yōu)勢(shì)以進(jìn)一步提高預(yù)測(cè)性能,例如將季節(jié)性自回歸移動(dòng)平 均模型和自適應(yīng)卡爾曼濾波結(jié)合構(gòu)成多步預(yù)測(cè)器,利用貝葉斯規(guī)則解釋多個(gè)ANN模型輸出 的混合ANN模型等。涉及混合模型的研宄相對(duì)較少,此類模型的預(yù)測(cè)性能還有待進(jìn)一步驗(yàn) 證。
[0004]ANN模型自從被提出以來就在預(yù)測(cè)領(lǐng)域得到重視和快速發(fā)展,因?yàn)榻⑦@類模型 不需要太多領(lǐng)域相關(guān)專業(yè)知識(shí),而且預(yù)測(cè)性能一直在不斷提高。傳統(tǒng)的淺層ANN模型需要 大量的訓(xùn)練數(shù)據(jù)以提高精度,然而數(shù)據(jù)量過大又容易陷入過擬合。增加網(wǎng)絡(luò)層次可以解決 這個(gè)問題,但是傳統(tǒng)的訓(xùn)練方法面對(duì)深層網(wǎng)絡(luò)收斂速度緩慢。最近幾年深度學(xué)習(xí)網(wǎng)絡(luò)研宄 的突破解決了這一矛盾,它被證明能夠有效地解決預(yù)測(cè)和其它許多問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明針對(duì)短程行駛時(shí)間預(yù)測(cè)的實(shí)際應(yīng)用需求,提出一種短程行駛時(shí)間預(yù)測(cè)方 法,能夠深度挖掘輸入變量之間的非線性關(guān)系和其它內(nèi)在特征,預(yù)測(cè)精度高,魯棒性好。
[0006] 本發(fā)明提出的一種短程行駛時(shí)間預(yù)測(cè)方法,包括以下步驟:
[0007] 步驟S1 :利用交通數(shù)據(jù)采集裝置進(jìn)行數(shù)據(jù)采集并對(duì)采集的數(shù)據(jù)采用歸一化方法 進(jìn)行預(yù)處理;
[0008] 步驟S2 :應(yīng)用預(yù)處理好的數(shù)據(jù),訓(xùn)練堆疊自編碼器深度網(wǎng)絡(luò),得到最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu) 和對(duì)應(yīng)參數(shù),生成最優(yōu)堆疊自編碼器深度網(wǎng)絡(luò);
[0009] 步驟S3 :調(diào)用訓(xùn)練好的最優(yōu)堆疊自編碼器深度網(wǎng)絡(luò)預(yù)測(cè)車輛短程行駛時(shí)間。
[0010] 優(yōu)選的,步驟S1所采集的數(shù)據(jù)包括車輛行駛速度、交通流量、交通流密度或車道 平均車輛數(shù)、信號(hào)時(shí)間以及車輛在預(yù)測(cè)起止點(diǎn)之間的實(shí)際行駛時(shí)間。
[0011] 優(yōu)選的,步驟S1對(duì)采集的數(shù)據(jù)采用歸一化方法進(jìn)行預(yù)處理的具體方法為:選取待 歸一化變量的最小值vmin和最大值Vmax,對(duì)[vmin,vmax]之間的任意值V,其歸一化后的值VnS
[0013] 優(yōu)選的,步驟S2生成最優(yōu)堆疊自編碼器深度網(wǎng)絡(luò)的步驟包括:
[0014] 步驟S21 :將歸一化處理后的數(shù)據(jù)按比例分為訓(xùn)練集和測(cè)試集;
[0015] 步驟S22 :設(shè)置堆疊自編碼器深度網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu):包括組成堆疊自編碼器的自 編碼器個(gè)數(shù)L,以及每一個(gè)自編碼器隱藏層節(jié)點(diǎn)個(gè)數(shù)n1;
[0016] 步驟S23 :利用訓(xùn)練數(shù)據(jù)集,非監(jiān)督地逐層訓(xùn)練每個(gè)自編碼器的參數(shù);
[0017] 步驟S24 :將步驟S23中訓(xùn)練好的自編碼器堆疊起來,并在頂層加入預(yù)測(cè)器,再次 利用訓(xùn)練數(shù)據(jù),有監(jiān)督地微調(diào)深度網(wǎng)絡(luò)各層參數(shù);
[0018] 步驟S25 :利用測(cè)試數(shù)據(jù)集,在訓(xùn)練好的深度網(wǎng)絡(luò)上進(jìn)行前向計(jì)算,得到測(cè)試集上 的平均絕對(duì)預(yù)測(cè)誤差;
[0019] 步驟S26 :改變自編碼器個(gè)數(shù)L以及每一個(gè)自編碼器隱藏層節(jié)點(diǎn)個(gè)數(shù)ni的數(shù)值,重 復(fù)步驟S22~S25 ;選取最小誤差對(duì)應(yīng)的網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)作為堆疊自編碼器深度網(wǎng)絡(luò)的最 優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)。
[0020] 優(yōu)選的,所述步驟S3進(jìn)一步包括以下步驟:
[0021] 步驟S31 :當(dāng)新的車輛到達(dá)時(shí),采集需要的輸入數(shù)據(jù)并以同樣的參數(shù)做歸一化處 理;
[0022] 步驟S32 :將歸一化后的輸入數(shù)據(jù)帶入訓(xùn)練好的深度網(wǎng)絡(luò)進(jìn)行前向計(jì)算,得到對(duì) 應(yīng)的歸一化預(yù)測(cè)值;
[0023] 步驟S33 :將步驟S32得到的歸一化預(yù)測(cè)值反歸一化,得到車輛在預(yù)測(cè)起止點(diǎn)之間 的預(yù)測(cè)行駛時(shí)間。
[0024] 本發(fā)明通過構(gòu)造基于堆疊自編碼器的深度網(wǎng)絡(luò)預(yù)測(cè)模型,充分利用實(shí)際產(chǎn)生的大 量交通數(shù)據(jù)訓(xùn)練模型,可以自動(dòng)地深度挖掘輸入變量之間的非線性關(guān)系和其它內(nèi)在特征。 本發(fā)明具有通用性,能夠輕易部署在不同的預(yù)測(cè)地點(diǎn),并且具有秒級(jí)的預(yù)測(cè)精度和較高的 魯棒性。
【附圖說明】
[0025] 圖1是本發(fā)明短程行駛時(shí)間預(yù)測(cè)方法框架示意圖;
[0026] 圖2是本發(fā)明生成最優(yōu)堆疊自編碼器深度網(wǎng)絡(luò)的流程示意圖;
[0027] 圖3是單隱藏層自編碼器結(jié)構(gòu)示意圖;
[0028] 圖4是本發(fā)明用于預(yù)測(cè)的深度網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0029] 下面將結(jié)合附圖對(duì)本發(fā)明加以詳細(xì)說明,應(yīng)指出的是,所描述的實(shí)施例僅旨在便 于對(duì)本發(fā)明的理解,而對(duì)其不起任何限定作用。
[0030] 如圖1所示,本發(fā)明的一種短程行駛時(shí)間預(yù)測(cè)方法具體地包括以下步驟:
[0031] 步驟S1 :利用交通數(shù)據(jù)采集裝置進(jìn)行數(shù)據(jù)采集并對(duì)采集的數(shù)據(jù)采用歸一化方法 進(jìn)行預(yù)處理。
[0032] 本方法訓(xùn)練階段需要采集的數(shù)據(jù)包括車輛行駛速度、交通流量、交通流密度或車 道平均車輛數(shù)、信號(hào)時(shí)間以及車輛在預(yù)測(cè)起止點(diǎn)之間的實(shí)際行駛時(shí)間。其中車輛行駛速度 和交通流量可以通過環(huán)形線圈檢測(cè)器直接得到。交通流密度或車道平均車輛數(shù)可以通過在 預(yù)測(cè)起止點(diǎn)處分別設(shè)置環(huán)形線圈檢測(cè)器,然后統(tǒng)計(jì)經(jīng)過兩個(gè)檢測(cè)器的車輛數(shù)之差得到(車 道數(shù)為已知常量)。信號(hào)時(shí)間可以通過連接路口信號(hào)控制器得到。預(yù)測(cè)起止點(diǎn)之間的實(shí)際 行駛時(shí)間可以通過檢測(cè)器時(shí)間戳信息得到。除了環(huán)形線圈檢測(cè)器外,還可以采用更高級(jí)的 檢測(cè)器取得以上數(shù)據(jù),例如視頻檢測(cè)器、GPS裝置和AVL裝置等。
[0033] 接下來對(duì)采集的數(shù)據(jù)進(jìn)行預(yù)處理,采用歸一化方法。對(duì)于某個(gè)待歸一化的變量,取 其最小值Vmin和最大值vmax,則對(duì)[vmin,vmax]之間的任意值V,其歸一化后的值vn如公式(1) 所示。
[0035] 對(duì)所有變量(包括輸出變量)做以上歸一化處理得到歸一化后的數(shù)據(jù)集。
[0036] 步驟S2:應(yīng)用預(yù)處理好的數(shù)據(jù),訓(xùn)練堆疊自編碼器深度網(wǎng)絡(luò),得到最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu) 和對(duì)應(yīng)參數(shù),生成最優(yōu)堆疊自編碼器深度網(wǎng)絡(luò)。該過程流程圖如圖2所示,其中AE表示自 動(dòng)編碼器(Auto-Encoders),具體包含以下步驟:
[0037] 步驟S21,將歸一化處理后的數(shù)據(jù)分為訓(xùn)練集和測(cè)試集。
[0038] 如果數(shù)據(jù)量足夠大,可以取80%的數(shù)據(jù)為訓(xùn)練集,20%的數(shù)據(jù)為測(cè)試集。這里的 20%、80%劃分只是推薦值,實(shí)際應(yīng)用時(shí)應(yīng)該根據(jù)具體情況采取合適的劃分。如果數(shù)據(jù)量太 少,可以采用N折交叉驗(yàn)證方法劃分訓(xùn)練集和測(cè)試集以充分利用數(shù)據(jù)。
[0039] 步驟S22,設(shè)置堆疊自編碼器深度網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu):包括組成堆疊自編碼器的自 編碼器個(gè)數(shù)L,以及每一個(gè)自編碼器隱藏層節(jié)點(diǎn)個(gè)數(shù)ni。
[0040] 步驟S23,利用訓(xùn)練數(shù)據(jù)集,非監(jiān)督地逐層訓(xùn)練每個(gè)自編碼器的參數(shù);"逐層"意味 著將前一個(gè)自編碼器的編碼輸出用作后一個(gè)自編碼器的輸入,第一個(gè)自編碼器的輸入來自 訓(xùn)練集數(shù)據(jù)。
[0041]自編碼器是一種輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)個(gè)數(shù)相同的神經(jīng)網(wǎng)絡(luò),最簡單的自編碼器只 有一個(gè)隱藏層,它的結(jié)構(gòu)如圖3所示。第k層的直接輸入z(k)(加粗體表示向量或矩陣,下 同)通過函數(shù)f(0變換為激活值a(k),k= 1,2,3。其中第一層即輸入層不需要激活變換, 且z(1)等于輸入X,因此x=z(1)=a(1)。函數(shù)f( ?)稱為激活函數(shù),取sigmoid函數(shù),如公 式⑵所示。
[0043] -個(gè)向量的函數(shù)f(z)仍為一個(gè)向量,它表示對(duì)向量的每