劉忠偉,李 萍,周 盛,閆豆豆,李 穎,安毅生
(1. 云基智慧工程有限公司,廣東 深圳 518000;2. 長安大學(xué) 信息工程學(xué)院,西安 710064)
隨著城市機(jī)動(dòng)車保有量的不斷增加,城市道路日益擁擠。為改善這一狀況,交通管理部門提出了利用智能交通系統(tǒng)(ITS,intelligent transportation system)緩解擁堵問題。其中,交通流預(yù)測(cè)是智能交通系統(tǒng)的核心之一。通過收集歷史數(shù)據(jù),可以預(yù)測(cè)未來某個(gè)時(shí)間段內(nèi)的交通狀況,包括速度、流量和占有率等。根據(jù)預(yù)測(cè)時(shí)長[1],交通流預(yù)測(cè)可分為短期預(yù)測(cè)(5~30 min)和中長期預(yù)測(cè)(超過30 min)。交通流具有明顯的時(shí)空特性,不同道路之間復(fù)雜的空間相關(guān)性和時(shí)間依賴性給交通流預(yù)測(cè)帶來了挑戰(zhàn)。為了解決這些挑戰(zhàn),過去幾十年中涌現(xiàn)了許多交通流預(yù)測(cè)方法。最初,線性回歸等統(tǒng)計(jì)分析模型被廣泛應(yīng)用,但是統(tǒng)計(jì)理論模型屬于線性模型,在解決非線性問題時(shí)存在不足。受限于統(tǒng)計(jì)分析模型的不足,機(jī)器學(xué)習(xí)的發(fā)展促使研究者探索支持向量機(jī)(SVM,support vector machine)、K最近鄰(K-Nearest Neighbors)等基于數(shù)據(jù)驅(qū)動(dòng)的方法進(jìn)行交通預(yù)測(cè)。
近年來,國內(nèi)外對(duì)于交通流預(yù)測(cè)的方法大致可分為3大類:統(tǒng)計(jì)分析模型、機(jī)器學(xué)習(xí)模型和深度學(xué)習(xí)模型。
1)基于統(tǒng)計(jì)分析的預(yù)測(cè)模型:統(tǒng)計(jì)分析模型利用概率論和數(shù)理統(tǒng)計(jì)等相關(guān)數(shù)學(xué)理論建模,主要有歷史平均模型(HA,historical average)[2]、差分整合移動(dòng)平均自回歸模型(ARIMA,autoregressive integrated moving average model)[3]、卡爾曼濾波器(Kalman filtering)[4]等。歷史平均模型計(jì)算過程簡單、速度快,但是模型是靜態(tài)的,預(yù)測(cè)的準(zhǔn)確性較低。ARIMA模型的主要目標(biāo)是將時(shí)間序列數(shù)據(jù)轉(zhuǎn)換為平穩(wěn)序列,以便進(jìn)行數(shù)學(xué)建模和預(yù)測(cè),因此它對(duì)數(shù)據(jù)平穩(wěn)性要求較高,主要適用于線性序列預(yù)測(cè),但是交通流數(shù)據(jù)的不平穩(wěn)性和多種非線性因素可能會(huì)降低ARIMA的預(yù)測(cè)性能?;诮y(tǒng)計(jì)分析的模型在早期的交通流預(yù)測(cè)中表現(xiàn)較好,但它們假設(shè)交通流是靜止的,屬于線性預(yù)測(cè),僅從概率的角度考慮空間依賴性,實(shí)際的交通流受多種因素影響,具有明顯的非線性和復(fù)雜的時(shí)空依賴性。
2)基于機(jī)器學(xué)習(xí)的預(yù)測(cè)模型:隨著交通數(shù)據(jù)量的急劇增長以及人工神經(jīng)網(wǎng)絡(luò)的發(fā)展,研究者們開始使用機(jī)器學(xué)習(xí)進(jìn)行交通流預(yù)測(cè),相比于統(tǒng)計(jì)分析模型需要手工調(diào)參,機(jī)器學(xué)習(xí)模型比較靈活,可以在遍歷數(shù)據(jù)集時(shí)可以自動(dòng)調(diào)整參數(shù)。常見的機(jī)器學(xué)習(xí)預(yù)測(cè)模型有:K近鄰(KNN,K-nearest neighbors)和支持向量回歸(SVR,support vector regression)等。K最近鄰算法是選取目標(biāo)樣本所在特征空間K個(gè)最近的樣本,所選取K個(gè)樣本數(shù)中所占數(shù)量最大的類別即為目標(biāo)樣本所屬類別。Zheng等人[5]提出了一種改進(jìn)的KNN模型,在選擇K近鄰時(shí)引入了時(shí)間約束窗口并且對(duì)狀態(tài)向量之間距離的局部極小值進(jìn)行排序,為控制極值的影響,文章在主成分分析基礎(chǔ)上,還提出了一種新的分析特征的算法,利用該模型來預(yù)測(cè)交通流。Hou等人[6]引入了兩層KNN算法模型對(duì)模式匹配過程做了改進(jìn),增加了狀態(tài)模式匹配使得當(dāng)前狀態(tài)向量與歷史樣本趨勢(shì)和最小。支持向量機(jī)是一種二分類算法,算法思想是求解凸二次規(guī)劃的最優(yōu)化。Wu等人[7]應(yīng)用SVR預(yù)測(cè)旅行時(shí)間,與其他預(yù)測(cè)模型相比,SVR可以提升預(yù)測(cè)性能。
3)基于深度學(xué)習(xí)的預(yù)測(cè)模型:相比于機(jī)器學(xué)習(xí),深度學(xué)習(xí)模型可以更好地挖掘數(shù)據(jù)隱藏的特性,處理復(fù)雜的非線性問題,目前,隨著人工神經(jīng)網(wǎng)絡(luò)以及深度學(xué)習(xí)的快速發(fā)展,越來越多的研究者將其應(yīng)用到交通鄰域,以其強(qiáng)大的學(xué)習(xí)能力去提取交通大數(shù)據(jù)隱藏的時(shí)空特性,可以較為準(zhǔn)確地預(yù)測(cè)未來時(shí)刻的交通狀況。
在提取時(shí)間特征方面,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,recurrent neural network)具有較好的性能。Ma等人[8]在真實(shí)數(shù)據(jù)集上利用RNN進(jìn)行擁堵預(yù)測(cè),但是RNN在建模較長序列時(shí)會(huì)產(chǎn)生梯度爆炸等一系列問題。Qu等人[9]將特征注入RNN,形成Feature Injected RNN (FI-RNNS),用堆疊的RNN去提取交通數(shù)據(jù)的序列特征,并將其與上下文因素結(jié)合,進(jìn)一步挖掘交通數(shù)據(jù)潛在的時(shí)間特性。RNN的變體長短期記憶(LSTM,long-short term memory)和門控循環(huán)單元(GRU,recurrent neural network)可以有效解決模型訓(xùn)練過程中梯度爆炸等問題,閻嘉琳等人[10]提出基于LSTM的城市交通道路預(yù)測(cè)模型,并在出租車GPS軌跡數(shù)據(jù)集上進(jìn)行驗(yàn)證。Zhang等人[11]考慮了天氣因素的影響,使用GRU進(jìn)行城市交通流預(yù)測(cè)。
在提取空間特征方面,卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolution neural network) 具有強(qiáng)大的特征提取能力。Ma等人[12]提出了一種基于圖像的交通速度預(yù)測(cè)模型,將GPS軌跡數(shù)據(jù)作為輸入,通過矩陣變換將交通路網(wǎng)轉(zhuǎn)化為具有時(shí)空信息的圖像,圖像的兩個(gè)維度分別表示路網(wǎng)的時(shí)間維度和空間維度,然后使用CNN提取圖像特征進(jìn)行交通流預(yù)測(cè)。Liu等人[13]提出了Conv-LSTM,將卷積和LSTM組合形成一種端到端的結(jié)構(gòu)提取交通流的時(shí)空特征,然后使用雙向LSTM(Bi-LSTM)提取交通流的周期性特征。但是交通路網(wǎng)是一種典型的拓?fù)浣Y(jié)構(gòu)數(shù)據(jù),將其處理為網(wǎng)格數(shù)據(jù)后使用CNN,忽略了路網(wǎng)本身的特征,因此研究者們嘗試將CNN泛化到圖域,形成圖卷積神經(jīng)網(wǎng)絡(luò)GCN來處理交通路網(wǎng)、社交網(wǎng)絡(luò)等拓?fù)浣Y(jié)構(gòu)數(shù)據(jù)。Li等人[14]提出了一種擴(kuò)散卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(DCRNN,diffusion convolutional recurrent neural network),使用GCN和GRU共同提取交通流的時(shí)空相關(guān)性,首先在圖上使用雙向隨機(jī)游走捕獲空間依賴性,然后使用GRU提取時(shí)間特征。Yu等人[15]提出了時(shí)空卷積網(wǎng)絡(luò)(STGCN,spatio-temporal graph convolutional networks),該模型由時(shí)空卷積塊堆疊而成,利用門控時(shí)間卷積和空間卷積提取出最基本的時(shí)間特征以及最相關(guān)的空間特征。由于GCN強(qiáng)大的空間特征提取能力,研究者們還嘗試將注意力機(jī)制和Transformer等神經(jīng)網(wǎng)絡(luò)與GCN結(jié)合來預(yù)測(cè)交通流。Zheng等人[16]提出了一種圖上的多注意網(wǎng)絡(luò)(GMAN,graph multi-attention network),由多個(gè)注意力模塊堆疊而成,包括對(duì)空間特性建模的空間注意力模塊、對(duì)時(shí)間特性建模的時(shí)間注意力模塊以及自適應(yīng)融合時(shí)空特征的門控融合機(jī)制??臻g注意力機(jī)制根據(jù)鄰近節(jié)點(diǎn)對(duì)目標(biāo)節(jié)點(diǎn)影響的大小分配不同的權(quán)值,時(shí)間注意力機(jī)制根據(jù)預(yù)測(cè)點(diǎn)歷史時(shí)刻的影響不同分配不同的權(quán)值。Tian等人[17]提出了一種包含時(shí)間注意力機(jī)制的深度學(xué)習(xí)網(wǎng)絡(luò)框架解決城市交通事故預(yù)測(cè)問題,實(shí)現(xiàn)了較好的預(yù)測(cè)性能。此外,Cai等人[18]將Transformer應(yīng)用到圖上來建模時(shí)間相關(guān)性,并且設(shè)計(jì)了4種新的位置編碼策略編碼時(shí)間序列的連續(xù)性和周期性。Li等人[19]使用多目標(biāo)粒子群優(yōu)化算法優(yōu)化深度信念網(wǎng)絡(luò)的一些參數(shù),增強(qiáng)了交通流的多步預(yù)測(cè)能力。
知識(shí)蒸餾是一種有效的模型壓縮方法,其核心思想是將來自復(fù)雜教師模型的知識(shí)遷移到簡單的學(xué)生模型上,從而提高學(xué)生模型的泛化能力。教師模型通常擁有較強(qiáng)的預(yù)測(cè)精度,但其訓(xùn)練過程比較復(fù)雜;相反,學(xué)生模型參數(shù)較少,訓(xùn)練過程較為簡單,但其預(yù)測(cè)能力相對(duì)較弱。因此,知識(shí)蒸餾技術(shù)可以通過教師網(wǎng)絡(luò)輸出的軟標(biāo)簽來監(jiān)督學(xué)生網(wǎng)絡(luò)的學(xué)習(xí),從而提升學(xué)生模型的預(yù)測(cè)性能。根據(jù)蒸餾的方式和知識(shí)類型,知識(shí)蒸餾可分為離線蒸餾、在線蒸餾以及自蒸餾。在離線蒸餾中,教師模型經(jīng)過預(yù)先訓(xùn)練,并生成軟標(biāo)簽供學(xué)生模型使用?;陧憫?yīng)的知識(shí)蒸餾、基于特征的知識(shí)蒸餾以及基于關(guān)系的知識(shí)蒸餾則是離線蒸餾中按知識(shí)類型劃分的3種主要方法。其中,基于響應(yīng)的知識(shí)蒸餾主要側(cè)重于對(duì)教師網(wǎng)絡(luò)最后一層的邏輯輸出進(jìn)行處理,讓學(xué)生網(wǎng)絡(luò)去模仿教師網(wǎng)絡(luò)的輸出。2014年Hithon[20]首次提出了基于響應(yīng)的知識(shí)蒸餾,同時(shí)也提出了蒸餾溫度T的概念,在高溫T下,學(xué)生網(wǎng)絡(luò)模仿教師網(wǎng)絡(luò)的輸出,蒸餾溫度則是用來軟化教師網(wǎng)絡(luò)的軟目標(biāo)輸出,當(dāng)溫度系數(shù)值不斷增大,得到的輸出標(biāo)簽更加平滑?;谔卣鞯闹R(shí)蒸餾,其核心思想是學(xué)習(xí)教師網(wǎng)絡(luò)層與層之間的關(guān)系,從而提升學(xué)生網(wǎng)絡(luò)的性能,Romero等人[21]提出的FitNets表示學(xué)生能夠直接模仿教師網(wǎng)絡(luò)的特征激活值。基于特征的知識(shí)蒸餾可以在學(xué)生網(wǎng)絡(luò)學(xué)習(xí)時(shí)提供更多的信息,但是由于教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)中間層存在維度差異,以及在兩個(gè)網(wǎng)絡(luò)上如何選取對(duì)應(yīng)中間層操作較為困難。Park等人[22]提出了基于關(guān)系的知識(shí)蒸餾,重點(diǎn)關(guān)注模型內(nèi)部特征之間的關(guān)系,而不僅僅是模型輸出。這種蒸餾方法方法認(rèn)為捕捉和模仿教師模型內(nèi)部特征之間的相互作用和依賴關(guān)系,可以幫助學(xué)生模型更全面地理解任務(wù),從而學(xué)到更豐富的知識(shí)。
傳統(tǒng)的離線蒸餾存在局限性,需要提前訓(xùn)練一個(gè)復(fù)雜的教師網(wǎng)絡(luò),會(huì)耗費(fèi)大量的時(shí)間和計(jì)算資源,且學(xué)生網(wǎng)絡(luò)不能學(xué)習(xí)教師網(wǎng)絡(luò)所蘊(yùn)含的所有知識(shí),為了解決這些問題,研究者們?cè)趥鹘y(tǒng)知識(shí)蒸餾的基礎(chǔ)上提出了在線知識(shí)蒸餾,即無需提取訓(xùn)練復(fù)雜的教師模型,教師模型和學(xué)生模型在學(xué)習(xí)過程中互相更新。其中以Zhang等人[23]提出的深度相互學(xué)習(xí)策略(DML,deep mutual learning)為代表,兩個(gè)或多個(gè)學(xué)生模型可以在訓(xùn)練過程中互相學(xué)習(xí),互相監(jiān)督,打破了傳統(tǒng)的知識(shí)蒸餾預(yù)先設(shè)定好的強(qiáng)弱關(guān)系,無需提前訓(xùn)練復(fù)雜的教師模型,將傳統(tǒng)的單向知識(shí)遷移更新為雙向遷移,即訓(xùn)練過程中兩個(gè)或多個(gè)模型互為教師,互為學(xué)生。Zhai等人[24]將相互學(xué)習(xí)策略泛化到圖上,提出了圖相互學(xué)習(xí)模型(MGL,mutual graph learning) 將相互學(xué)習(xí)由規(guī)則網(wǎng)格推廣到圖域。
自蒸餾是一種特殊的在線蒸餾,指在沒有新增復(fù)雜模型的情況下找到一個(gè)教師模型,同樣可以提供有效增益給學(xué)生模型,意味著教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)應(yīng)用同一個(gè)主體網(wǎng)絡(luò),或者直接將自身的信息作為蒸餾損失的監(jiān)督,是模型內(nèi)部的知識(shí)遷移。2019年,Zhang等人[25]提出了一種自蒸餾的方式,用模型的深層部分蒸餾和監(jiān)督淺層部分。2021年,Kim[26]等人提出了漸近式自蒸餾(PS-KD,progressive self-knowledge distillation),用前邊幾輪的模型去蒸餾后邊幾輪模型訓(xùn)練。
綜上所述,知識(shí)蒸餾是一種通過知識(shí)遷移和蒸餾損失來提高模型預(yù)測(cè)精度的方法。這種方法可以滿足交通流預(yù)測(cè)對(duì)于精準(zhǔn)性的高要求。因此,在本文中,采用知識(shí)蒸餾技術(shù)對(duì)交通流預(yù)測(cè)模型進(jìn)行了優(yōu)化。
交通流預(yù)測(cè)是根據(jù)部署在道路上N個(gè)檢測(cè)器預(yù)先收集到的數(shù)據(jù)來預(yù)測(cè)未來時(shí)刻的交通狀況[27]。交通路網(wǎng)可以定義為G=(V,E,W),其中V為節(jié)點(diǎn)的集合,E為兩個(gè)節(jié)點(diǎn)之間邊的集合,W∈RNⅹN對(duì)應(yīng)圖G的鄰接矩陣。實(shí)際應(yīng)用中,節(jié)點(diǎn)即為部署在道路上的檢測(cè)器,收集到的交通信息包括速度、流量、占有率等。對(duì)于一個(gè)交通網(wǎng)絡(luò),Xt∈RNⅹC表示在t時(shí)間步交通網(wǎng)絡(luò)中所有節(jié)點(diǎn)的特征的集合,C表示特征的數(shù)目。通過給定M0個(gè)歷史時(shí)刻的交通數(shù)據(jù)去測(cè)未來M個(gè)時(shí)刻內(nèi)所有節(jié)點(diǎn)的交通特征,即交通流預(yù)測(cè)問題可定義為:
(1)
其中:f(·)是一個(gè)經(jīng)過訓(xùn)練的可學(xué)習(xí)的函數(shù),可以將歷史時(shí)刻的交通數(shù)據(jù)映射到未來時(shí)刻。
本文以DCRNN作為基準(zhǔn)模型,將交通流建模為有向圖上的擴(kuò)散過程,通過圖上的隨機(jī)游走捕捉交通流的空間特征,使用門控單元GRU提取時(shí)間特征,將序列到序列框架和預(yù)定采樣相結(jié)合進(jìn)行交通流預(yù)測(cè)。圖1即為DCRNN的網(wǎng)絡(luò)架構(gòu),是一種編碼器-解碼器結(jié)構(gòu),其中編碼器的功能是將一個(gè)長度不固定的輸入序列轉(zhuǎn)化成一個(gè)固定長度的上下文變量,在該變量中編碼輸入序列信息;解碼器將該變量中的信息進(jìn)行解碼生成一個(gè)輸出序列。
圖1 DCRNN模型圖
首先對(duì)歷史交通流數(shù)據(jù)集按照時(shí)間步長進(jìn)行劃分,將路網(wǎng)建模為有向圖,圖中節(jié)點(diǎn)表示部署在道路上的檢測(cè)器。然后將經(jīng)過劃分處理后的數(shù)據(jù)作為解碼器的輸入,解碼器由擴(kuò)散卷積層堆疊而成,以此來提取圖中各個(gè)節(jié)點(diǎn)之間隱藏的空間相關(guān)性。使用門控循環(huán)單元GRU提取時(shí)間依賴性,這是一種具有強(qiáng)大功能的循環(huán)神經(jīng)網(wǎng)絡(luò)RNN的變體,用擴(kuò)散卷積代替GRU中的矩陣相乘,產(chǎn)生了擴(kuò)散卷積門控循環(huán)單元DCGRU。編碼器的最終輸出作為解碼器的輸入,解碼器的結(jié)構(gòu)與編碼器類似,進(jìn)行最終的預(yù)測(cè)輸出。為了解決訓(xùn)練過程和測(cè)試過程中輸入數(shù)據(jù)分布不一致的問題,DCRNN在訓(xùn)練過程中采用計(jì)劃采樣,網(wǎng)絡(luò)將以概率p選擇真實(shí)值作為下一步的輸入,以1-p的概率選擇模型自身的輸出作為下一步的輸入。
DCRNN模型能夠有效地提取交通數(shù)據(jù)中隱藏的時(shí)空相關(guān)性,并預(yù)測(cè)未來交通狀況。然而,該模型在自身特征感知和提取方面存在一定的局限性。本文受到知識(shí)蒸餾中相互學(xué)習(xí)策略的啟發(fā),對(duì)DCRNN進(jìn)行了優(yōu)化。利用兩個(gè)或多個(gè)網(wǎng)絡(luò)在訓(xùn)練過程中相互學(xué)習(xí),相互協(xié)同完成知識(shí)的傳遞,并在不增加模型復(fù)雜度的前提下優(yōu)化模型的預(yù)測(cè)性能。為了降低訓(xùn)練過程中的參數(shù)量,只使用兩個(gè)未經(jīng)訓(xùn)練的DCRNN模型構(gòu)建基于相互學(xué)習(xí)的預(yù)測(cè)模型。首先將處理后的數(shù)據(jù)輸入兩個(gè)模型,分別經(jīng)過兩個(gè)模型的softmax層輸出預(yù)測(cè)值,使用KL(Kullback-Leibler Divergence,用于計(jì)算不同概率分布之間的差異)散度衡量兩個(gè)網(wǎng)絡(luò)預(yù)測(cè)值的匹配度,KL值越小,則表示兩個(gè)網(wǎng)絡(luò)之間的匹配度越高。除KL值之外,使用交叉熵?fù)p失(CE,cross entropy)來衡量每個(gè)模型的預(yù)測(cè)值與真實(shí)值的差異。綜上,在搭建的預(yù)測(cè)模型中,每個(gè)學(xué)生網(wǎng)絡(luò)的損失由兩部分組成:傳統(tǒng)的監(jiān)督損失CE以及與同伴網(wǎng)絡(luò)的匹配損失KL。圖2是優(yōu)化模型DMCRNN(Diffusion Mutual Convolutional Recurrent Neural Network)的結(jié)構(gòu),其中P1和P2分別表示兩個(gè)網(wǎng)絡(luò)在訓(xùn)練過程中輸出的預(yù)測(cè)概率,利用KL(P2||P1)計(jì)算兩個(gè)網(wǎng)絡(luò)預(yù)測(cè)概率之間的差異,KL值越小,表示兩個(gè)預(yù)測(cè)值之間的差異越小。P1與P2之間KL散度計(jì)算公式如下:
(2)
圖2 基于相互學(xué)習(xí)的預(yù)測(cè)模型
即網(wǎng)絡(luò)1的損失為相互學(xué)習(xí)損失以及自身損失以權(quán)值系數(shù)進(jìn)行疊加,可表示為:
L1=LC1+DKL(P2||P1)
(3)
同理可得網(wǎng)絡(luò)2的損失:
L2=LC2+DKL(P1||P2)
(4)
模型在每一次迭代過程中均采用相互學(xué)習(xí)算法,對(duì)DCRNN模型進(jìn)行優(yōu)化,兩個(gè)網(wǎng)絡(luò)分別利用對(duì)方的預(yù)測(cè)值去更新各自的參數(shù),直至收斂。不同于傳統(tǒng)的知識(shí)蒸餾為單向蒸餾,即知識(shí)僅從教師網(wǎng)絡(luò)遷移到學(xué)術(shù)網(wǎng)絡(luò),而相互學(xué)習(xí)是一種雙向蒸餾,兩個(gè)網(wǎng)絡(luò)在訓(xùn)練過程中不斷更新優(yōu)化,直到參數(shù)收斂。基于相互學(xué)習(xí)的DCRNN模型優(yōu)化算法框架如表1所示,經(jīng)過優(yōu)化后可以提升DCRNN模型的預(yù)測(cè)性能。
表1 數(shù)據(jù)集基本信息
為了驗(yàn)證基于相互學(xué)習(xí)算法預(yù)測(cè)模型的有效性,該研究在兩個(gè)真實(shí)數(shù)據(jù)集(METR-LA和PEMS-BAY)上進(jìn)行實(shí)驗(yàn)并與其他幾種基準(zhǔn)模型進(jìn)行對(duì)比。
算法:基于相互學(xué)習(xí)的交通流預(yù)測(cè)算法
輸入:訓(xùn)練數(shù)據(jù),學(xué)習(xí)率r
初始化:DCRNN網(wǎng)絡(luò)Net1和DCRNN網(wǎng)絡(luò)Net2
t=0
do:t=t+1隨機(jī)抽取數(shù)據(jù):
從Net1中計(jì)算預(yù)測(cè)值y1和真實(shí)值ytrue;
從Net2中計(jì)算預(yù)測(cè)值y2和真實(shí)值ytrue;
計(jì)算Net1的隨機(jī)梯度并更新網(wǎng)絡(luò)參數(shù):
a.計(jì)算誤差E1=(y1-ytrue)2;
b.計(jì)算Net1的梯度dE1/dw1;
c.更新Net1的參數(shù)w1_new=w1-r*dE1/dw1;
更新Net1的預(yù)測(cè)值y1;
計(jì)算Net2的隨機(jī)梯度并更新網(wǎng)絡(luò)參數(shù):
a.計(jì)算誤差E2= (y2-yt rue)2;
b.計(jì)算Net2的梯度dE2/dw2;
c.更新Net2的參數(shù)w2_new=w2-r*dE2/dw2;
更新Net2的預(yù)測(cè)值y2
While:目標(biāo)函數(shù)未收斂
METR-LA:該數(shù)據(jù)集采樣于美國洛杉磯高速公路上的207個(gè)傳感器,其中包含2012年3月1日到2012年6月7日所收集到的交通速度等信息。數(shù)據(jù)采集頻率為5 min一次,包含34 272條交通數(shù)據(jù)。
PEMS-BAY:該數(shù)據(jù)集來源于加州高速公路,包含灣區(qū)325個(gè)檢測(cè)器,數(shù)據(jù)采集頻率為每五分鐘一次,包含從2017年1月1日到2017年5月31日所收集到的流量、速度等信息,總共有52 116條交通數(shù)據(jù)。
如表1所示,本文主要使用兩個(gè)數(shù)據(jù)集中的速度信息,按照7∶2∶1的比例劃分?jǐn)?shù)據(jù)集,其中訓(xùn)練集占70%,測(cè)試集占20%,驗(yàn)證集占10%。為了提高模型在梯度下降時(shí)收斂速度,對(duì)數(shù)據(jù)集采用Z-Score來標(biāo)準(zhǔn)化:
(5)
其中:z表示歸一化后的數(shù)據(jù),x表示原始輸入數(shù)據(jù),μ,σ分別表示均值和方差。
構(gòu)建圖的鄰接矩陣是交通流預(yù)測(cè)模型提取空間相關(guān)性的關(guān)鍵,DCRNN模型采用基于距離的方法建立圖的鄰接矩陣,利用交通路網(wǎng)上檢測(cè)器之間的距離來計(jì)算節(jié)點(diǎn)之間的緊密程度,加權(quán)鄰接矩陣計(jì)算公式為:
(6)
其中:dist(vi,vj)≤κ,Wij表示兩個(gè)檢測(cè)器vi和vj所連接的邊的權(quán)值,dist(vi,vj)表示vi和vj在路網(wǎng)上的距離,σ表示距離的標(biāo)準(zhǔn)差,k表示閾值。
基于Pytorch框架訓(xùn)練DMCRNN模型,訓(xùn)練時(shí)采用內(nèi)含4張型號(hào)為GeForceRTX 3090顯卡的服務(wù)器,具體的環(huán)境配置以及參數(shù)設(shè)置如表2、表3所示。
表2 硬件條件
表3 實(shí)驗(yàn)參數(shù)設(shè)置
實(shí)驗(yàn)過程中利用1小時(shí)的歷史數(shù)據(jù)去預(yù)測(cè)未來1小時(shí)內(nèi)的交通狀況。并且訓(xùn)練過程中利用dropout和early stopping機(jī)制防止模型過擬合,隨機(jī)擴(kuò)散時(shí)最大擴(kuò)散步長為2。
在評(píng)估優(yōu)化后的模型預(yù)測(cè)性能時(shí),采用如下3個(gè)指標(biāo)評(píng)估真實(shí)值與預(yù)測(cè)值之間的差異:
1)平均絕對(duì)誤差(MAE,mean absolute error),可以直觀顯示出真實(shí)值與預(yù)測(cè)值之間的偏差,直觀反映模型的預(yù)測(cè)結(jié)果,計(jì)算公式如下:
(7)
2)平均絕對(duì)百分比誤差(MAPE,mean absolute percentage error),可以評(píng)價(jià)真實(shí)值與預(yù)測(cè)值之間的符合程度,反映模型預(yù)測(cè)的準(zhǔn)確程度,計(jì)算公式如下:
(8)
3)均方根誤差(RMSE,root mean square deviation),可以反映出真實(shí)值與預(yù)測(cè)值差值的變化,反映模型預(yù)測(cè)的精確程度。計(jì)算公式如下:
(9)
其中:n為時(shí)間步長,yi和f(xi)分別表示第i個(gè)時(shí)間步的真實(shí)值和預(yù)測(cè)值,3個(gè)指標(biāo)的數(shù)值越小,表示模型的預(yù)測(cè)精度越高。
為驗(yàn)證優(yōu)化算法的有效性,我們?cè)趦蓚€(gè)真實(shí)的數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),并將實(shí)驗(yàn)結(jié)果與目前具有代表性的7種模型進(jìn)行了比較。
HA[2]:歷史平均模型,即計(jì)算歷史數(shù)據(jù)的平均值。
ARIMA[3]:差分整合移動(dòng)平均自回歸模型,一種預(yù)測(cè)未來值的時(shí)間序列分析方法。
VAR[28]:向量自回歸模型,可以捕獲交通流序列之間的成對(duì)關(guān)系,是一種更先進(jìn)的時(shí)間序列模型。
SVR[7]:支持向量機(jī)模型,利用支持向量機(jī)來解決回歸問題,是一種線性模型。
FNN[29]:前饋神經(jīng)網(wǎng)絡(luò)模型,其中包含多個(gè)隱藏層。
LSTM[10]:長短期記憶網(wǎng)絡(luò),屬于RNN的變體,在長時(shí)間序列問題上表現(xiàn)較好。
DCRNN[14]:擴(kuò)散卷積遞歸神經(jīng)網(wǎng)絡(luò),利用擴(kuò)散卷積網(wǎng)絡(luò)和GRU分別提取空間特征和時(shí)間特征。
我們?cè)趦蓚€(gè)真實(shí)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),根據(jù)預(yù)測(cè)結(jié)果,利用上述3個(gè)評(píng)估指標(biāo)對(duì)預(yù)測(cè)性能進(jìn)行分析。表4和表5分別展示了DCMRNN模型與其他基準(zhǔn)模型在兩個(gè)數(shù)據(jù)集上的性能比較,我們選取了15 min,30 min和1 h這3個(gè)時(shí)間步長進(jìn)行比較。從表中可以看出本文提出的模型在兩個(gè)數(shù)據(jù)集上的3種誤差均是最低的,即預(yù)測(cè)結(jié)果更加接近真實(shí)值。尤其是隨著時(shí)間步長的增加,其預(yù)測(cè)效果更好。從表3和表4中可以看出隨著預(yù)測(cè)時(shí)間步長的增加,DMCRNN模型與其他模型三項(xiàng)指標(biāo)之間的差值越大,表明了該模型在較長時(shí)間步預(yù)測(cè)時(shí)仍具有較好的性能,模型具有魯棒性。在METR-LA數(shù)據(jù)集上MAE值相較于DCRNN下降了0.15,MAPE下降了0.4%,RMSE下降了0.55;在PEMS-BAY數(shù)據(jù)集上MAE值相較于DCRNN下降了0.12,MAPE下降了0.2%,RMSE下降了0.31,表明增加相互學(xué)習(xí)算法后的模型優(yōu)化效果顯著。
表5 DCMRNN與基準(zhǔn)模型在PEMS-BAY數(shù)據(jù)集上的性能比較
為了進(jìn)一步比較DMCRNN模型與基準(zhǔn)模型DCRNN,
圖3、4和5展示了兩個(gè)模型在METR-LA數(shù)據(jù)集的3種評(píng)價(jià)指標(biāo)以及損失可視化。圖3、4和5中灰色線條表示基準(zhǔn)模型DCRNN在驗(yàn)證過程中的指標(biāo)變化,黑色線條表示我們的模型DMCRNN的指標(biāo)變化,可以看出我們的模型相比于DCRNN,誤差可以收斂到更低。圖6為兩個(gè)模型訓(xùn)練過程中損失曲線可視化圖,其中我們提出的模型DMCRNN收斂速度更快。圖7是兩個(gè)模型在測(cè)試集上RMSE的比較,橫坐標(biāo)表示時(shí)間步長,縱坐標(biāo)表示RMSE,可以看出隨著預(yù)測(cè)時(shí)間步長的增加,兩個(gè)模型之間的差異變大,即我們提出的模型在較長時(shí)間步時(shí)表現(xiàn)較好。
圖3 驗(yàn)證集MAE可視化曲線圖
圖4 驗(yàn)證集MAPE可視化曲線
圖5 驗(yàn)證集RMSE可視化曲線圖
圖6 訓(xùn)練集損失可視化
圖7 兩個(gè)模型在不同時(shí)間步長上的RMSE比較
基于相互學(xué)習(xí)優(yōu)化過程中有兩個(gè)重要的超參數(shù),第一個(gè)是不同溫度系數(shù)對(duì)蒸餾結(jié)果的影響,第二個(gè)是不同的權(quán)重系數(shù)對(duì)兩部分損失函數(shù)的影響。這兩個(gè)參數(shù)都來源于損失函數(shù),損失函數(shù)是模型性能的關(guān)鍵之一,溫度T表示蒸餾溫度,來源于KL散度的計(jì)算過程中,會(huì)對(duì)網(wǎng)絡(luò)的性能產(chǎn)生影響;而參數(shù)α表示兩種損失在總損失中的比重。
實(shí)驗(yàn)過程中觀察到T=8時(shí)驗(yàn)證集上MAE以及損失曲線最終收斂的值比其他溫度更低,因此選用T=8作為基準(zhǔn)蒸餾溫度;將α系數(shù)設(shè)置為[0.1,0.3,0.5,0.7,0.9,0.99]進(jìn)行實(shí)驗(yàn),結(jié)果顯示當(dāng)α等于0.9或者0.1時(shí),效果最差。α=0.9表示相互學(xué)習(xí)損失權(quán)重過大,網(wǎng)絡(luò)自身的損失權(quán)重過低,極大影響了模型的預(yù)測(cè)性能。α=0.1表示相互學(xué)習(xí)損失權(quán)重過低,網(wǎng)絡(luò)之間相互學(xué)習(xí)能力變?nèi)?,同樣影響了預(yù)測(cè)性能。其他3個(gè)不同的權(quán)重系數(shù)對(duì)模型的影響整體相差不大,其中α=0.5在驗(yàn)證集上MAE以及損失曲線最終收斂的值較其他兩個(gè)權(quán)重系數(shù)的曲線收斂結(jié)果更低一點(diǎn)。最終選取α=0.5作為最佳權(quán)重系數(shù)。
為了驗(yàn)證相互學(xué)習(xí)算法的普適性,實(shí)驗(yàn)中選取了Shang等人[30]提出的(GTS,graph for time series)模型進(jìn)行驗(yàn)證,GTS是一種新的圖優(yōu)化方法,當(dāng)圖未知的時(shí)候,該方法可學(xué)習(xí)圖結(jié)構(gòu)以增強(qiáng)對(duì)多個(gè)多元時(shí)間序列的預(yù)測(cè)。GTS也是以DCRNN為基準(zhǔn)模型,通過優(yōu)化圖結(jié)構(gòu)從而大幅度提升了預(yù)測(cè)性能。因此將GTS作為基準(zhǔn)模型,增加相互學(xué)習(xí)算法,使兩個(gè)GTS網(wǎng)絡(luò)作為學(xué)生模型互相學(xué)習(xí)。同樣在METR-LA和PEMS-BAY兩個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),表7選取了1小時(shí)的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果可以看出,在增加相互學(xué)習(xí)算法的GTS模型預(yù)測(cè)誤差相比于原來均有所降低,尤其是在METR-LA數(shù)據(jù)集上,再次證明了相互學(xué)習(xí)算法的有效性。
表7 擴(kuò)展實(shí)驗(yàn)結(jié)果
本文提出了一種基于相互學(xué)習(xí)策略的交通流預(yù)測(cè)優(yōu)化模型(DMCRNN)。該模型以DCRNN為基準(zhǔn)模型,引入相互學(xué)習(xí)算法,并在兩個(gè)真實(shí)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),取得了較好的結(jié)果。與其他基準(zhǔn)模型進(jìn)行對(duì)比證明了相互學(xué)習(xí)策略可以有效提高模型的預(yù)測(cè)性能。同時(shí),設(shè)計(jì)了擴(kuò)展性實(shí)驗(yàn)驗(yàn)證相互學(xué)習(xí)在其他模型上的效果,證明了相互學(xué)習(xí)的普適性??傊?,優(yōu)化后的模型表現(xiàn)良好,但訓(xùn)練過程中會(huì)生成兩個(gè)模型,并聯(lián)運(yùn)算,導(dǎo)致訓(xùn)練時(shí)間相比基準(zhǔn)模型較長,并且會(huì)生成兩份優(yōu)化參數(shù)。然而,在實(shí)際應(yīng)用中只需要其中一個(gè)模型的優(yōu)化參數(shù)。因此,未來工作可以考慮通過優(yōu)化模型之間的并聯(lián)方式來減少訓(xùn)練時(shí)間。