余敬柳 陳 鵬 謝靜敏
(武漢理工大學交通學院1) 武漢 430063) (廣東華路交通科技有限公司2) 廣州 510550)
短時交通流預測主要是依據當前道路交通流量的變化規律以及特性進行準確和實時的預測,能夠合理的推斷出未來短時間內的交通狀況.近年來,采用機器學習方式預測短時交通流成為研究的熱點,神經網絡作為主要的機器學習算法越來越被研究人員所關注.
Chan等[1]應用小波理論建立的神經網絡模型預測短時交通流,相比傳統的BP神經網絡獲得更好的預測效果.Fusco等[2]將具體的貝葉斯網絡與人工神經網絡進行融合建模來預測短時交通流,并利用浮動車大樣本數據進行驗證.王體迎等[3]提出了一種基于門限遞歸單元循環神經網絡的短時交通流量預測方法,可有效的利用“序列信息”建模,同時進行了實例驗證.談苗苗[4]提出了一種基于LSTM循環神經網絡和灰色模型相結合的短時交通流預測模型.喬松林等[5]針對交通流的特點,提出了一種結合LSTM長短時記憶神經網絡與支持向量機結合的交通流預測模型.羅向龍等[6]提出了一種基于KNN-LSTM的短時交通流預測方法.劉念等[7]采用長短時記憶神經網絡模型進行交通流預測.王祥雪等[8]構建了一種基于LSTM-RNN的城市快速路短時交通流預測模型.LSTM神經網絡雖然能夠解決神經網絡典型的梯度消失或爆炸的問題,但是經典的LSTM神經網絡僅僅以時間信號的狀態向量為記憶元(memory cell)進行建模,而忽略了另一個重要維度頻率,針對LSTM的這種不足,研究者提出了一種基于狀態-頻率記憶神經網絡的預測方法.Hu等[9-10]提出了一種依據傅里葉變換的狀態-頻率記憶循環神經網絡.目前,狀態-頻率記憶神經網絡在交通領域應用較少,在已有的應用研究中,狀態-頻率記憶神經網絡用于預測時并沒有用到數據去噪方法對數據進行去噪處理,從而降低了預測的精度.
本文采用狀態頻率記憶神經網絡模型預測短時交通流,利用小波分析對交通流原始數據進行去噪處理,并以python2.7為開發平臺,通過OpenITS獲得合肥市某交叉口的歷史交通流數據并進行分析建模,驗證本文所提短時交通流預測模型的實用性.
狀態頻率記憶(state frequency memory,SFM)神經網絡具有一般循環神經網絡的優點,即在神經網絡結構中,其隱藏層之間的節點是有連接的,它能夠接受當前時間點輸入層輸入的信息也能夠接受上一時間點輸入層輸入的信息,同時SFM神經網絡具有輸入層、隱藏層、輸出層的結構;但是與一般循環神經網絡(recurrent neural network,RNN)不同的是,SFM神經網絡隱藏層不是以往神經網絡中的一個節點而是引入了一個狀態-頻率矩陣形成結合狀態與頻率的神經網絡記憶單元來保存信息,避免一般循環神經網絡會產生梯度消失或者爆炸的缺點.在記憶單元中有三個門單元,分別為遺忘門、輸入門,以及輸出門,其中遺忘門的作用為控制信息流入記憶單元、輸入門的作用為控制信息流入記憶單元、輸出門的作用為控制信息流出神經元.
SFM神經網絡結構見圖1.
圖1 SFM神經網絡結構
(1)
(2)
(3)
式中:Wste狀態遺忘門的權值;xt為輸入的序列數據;Uste為狀態遺忘門中隱藏層上一個時刻到當前時刻的權值;ht-1為t-1時刻隱藏層的輸出;bste狀態遺忘門的偏置項;Wfre頻率遺忘門的權值;Ufre為頻率遺忘門中隱藏層上一個時刻到當前時刻的權值;bfre為頻率遺忘門中的偏置項.
2) 輸入門的計算 輸入門決定了能夠在當前時刻保存多少輸入的信息到單元狀態,計算方法為
it=sigmoid(Wixt+Uiht-1+bi)
(4)
式中:it為t時刻輸入門的輸出值;Wi為輸入門的權值;Ui為輸入門中隱藏層上一個時刻到當前時刻的權值;bi為隱藏層的偏置項.
接下來計算描述當前輸入的單元狀態,計算方法為
(5)
ct=tanh (Atua+ba)
(6)
狀態-頻率矩陣St的幅度At的計算方法見式(7);相位∠St的計算方法見式(8).
(7)
(8)
狀態-頻率矩陣St可以分為實部IMSt和虛部RESt,其計算方法為
[sin(ω1t),…,sin(ωK)]
(9)
[cos(ω1t),…,cos(ωKt)]
(10)
3) 輸出門的計算 輸出門決定了在當前時刻能夠保存多少信息流出神經元,通過輸出門ot調節允許從記憶單元輸出的信息,計算方法為
ot=sigmoid(Woxt+Uoht-1+Voct+bo) (11)
ht=ot°ct
(12)
式中:ot為輸出門調節允許從存儲單元輸出的信息;ht為t時刻隱藏層的輸出值;Wo為輸出門的權重;Uo為輸出門中隱藏層上一個時刻到當前時刻的權重;bo為輸出門的偏置項.
4) 狀態-頻率矩陣更新 狀態-頻率矩陣的更新規則為
(13)
式中:[ejw1t,wjw2t,…,wjwkt]為狀態序列上的K個頻率分量的傅里葉基;輸入門it調節流入當前存儲單元的新信息量;St為t時刻的狀態-頻率矩陣;Ft為t時刻遺忘門的輸出值;St-1為t-1時刻的狀態-頻率矩陣.
5) 激活函數 在循環神經網絡中采用激活函數一般為sigmoid和tanh函數.激活函數sigmoid計算方法見式(14),sigmoid函數形如S形曲線,它的輸出映射在(0,1)之間;當輸入值趨于正無窮時,輸出值趨于1;當輸入值趨于負無窮時,輸出值趨于0;當輸入值為0.5時,輸出值為0.5.激活函數tanh計算方法見式(15),tanh函數輸出映射在(-1,1)之間;當輸入值為0時,輸出值也為0;當輸入值趨于正無窮時,輸出值趨于1;當輸入值趨于負無窮時,輸出值趨于-1.
(14)
(15)
本文采用SFM狀態-頻率記憶神經網絡對交叉口的短時交通流進行預測,主要包括以下步驟.
1) 得到時間間隔內歷史交通流數據 將預測的指定時間間隔內的多個歷史交通流數據按照一定時間間隔進行累加,得到匯總后歷史交通流數據,其中所述匯總后的歷史交通流數據Q為
(16)
Q=[Q1,Q2,…,Qn]
(17)
式中:i為時間間隔的序號;j為時間間隔內時間的序號;n為時間間隔的數量;m為時間間隔內時間的數量;Qi為匯總后的第i段時間間隔內的交通流量;gi,j為第i段時間間隔的第j-1至j段時間內的交通流量;Q為多段時間間隔的交通流量匯總后組成的時間序列;即匯總后的歷史交通流數據.
2) 預處理 首先采用小波分析[3]對匯總的歷史交通流數據進行數據去噪,然后將去噪的數據進行歸一化處理,其目的在于使處理之后的歷史交通流數據值域在區間[-1,1]內,具體的方法為
(18)
式中:Q′為歸一化處理之后的歷史交通流數據;Qmin為匯總去噪后的歷史交通流數據Q的最小值;Qmax為匯總去噪的歷史交通流數據Q的最大值;Qqz為匯總去噪后的歷史交通流數據.
3) 設置模型參數 合理的設定狀態-頻率記憶神經網絡預測模型的參數;包括設定輸入層節點數量為d1,隱藏層(的隱藏層節點數量為d2,輸出層節點數量為d3,頻率維為K,迭代次數為iter,學習率為lr,批量大小為batch_size,激活函數;損失函數loss;優化器參數.
4) 模型預測交通流 將歸一化預處理的歷史交通流數據劃分為訓練集數據Qtra、驗證集數據Qval以及測試集數據Qtest;利用訓練數據集,在根據步驟3設定合理參數的狀態-頻率記憶神經網絡的模型上進行訓練.將驗證集的數據輸入模型modz,并計算狀態-頻率記憶神經網絡模型在驗證集上的誤差,誤差式為
(19)
式中:M為模型輸出數據;Q′為輸入的驗證集數據.
選擇驗證集上誤差最小的狀態-頻率記憶神經網絡模型作為狀態-頻率記憶神經網絡交通流預測模型,其中誤差尋優方法為
MSE=min|MSEz|
(20)
5) 模型預測結果評估 利用最終確定的交通流預測模型預測指定時間間隔的交通流,對模型輸出的相應的輸出數據A進行逆歸一化處理,見式(21),并評估預測誤差.
式中:A′為逆歸一化之后的數據,即下一指定時間間隔交通流數據預測值;Qmin為匯總后的歷史交通流數據Q中的最小值;Qmax為匯總后的歷史交通流數據Q中的最大值;Q為匯總后的歷史交通流數據;A為已訓練的交通流預測模型對下一指定時間間隔交通流數據的歸一化預測值.
進行逆歸一化處理之后,通過計算預測交通流的平均相對誤差以及均方誤差,可以評價短時交通流預測的效果.平均相對誤差及均方誤差的計算方法為
(22)
(23)
以合肥市某交叉口為例,利用微波檢測器共獲得了30 d交叉口的交通流數據.同時,本文以5 min時間間隔為例,預測該交叉口的短時交通流.
1) 數據去噪 在matlab中采用小波分析的wavedec函數對交通流數據進行分解,同時采用db6函數對數據進行三層分解;采用軟閾值進行信噪分離;采用waverec函數重構信號,從而完成數據去噪.
2) 數據訓練集、驗證集和測試集的劃分 以30 d中前24 d的交通流數據作為模型的訓練集數據、以后續3 d的交通流數據為驗證集數據、以最后3 d的交通流數據作為模型的測試集數據.
建立具有三層結構的SFM模型,其隱藏層的神經元為一層,隱藏神經元的節點數為50.同時設定模型的迭代次數iter=1 200,設定模型的頻率維K=10,設定學習率lr=0.01,設置損失函數lose為MSE,`優化器參數為RMSprop,激活函數為sigmoid函數及tanh函數.
設定SFM狀態-頻率記憶神經網絡預測模型的參數之后,以5 min時間間隔為例,對該交叉口的交通流量進行預測,狀態-頻率記憶神經網絡預測模型所預測的交叉口交通流量的結果與交叉口實際交通流的對比分別見圖2.
圖2 5 min時間間隔預測結果
為了驗證本文所提狀態-頻率記憶神經網絡短時交通流預測方法的有效性,本文分別采用三次指數平滑法和BP神經網絡分別以5 min時間間隔時長對該交叉口進行短時交通流預測,并分別計算出其平均相對誤差以及均方誤差;同時與本文所提方法產生的均方差和平均相對誤差進行比較,對比的結果見表1.
表1 不同預測方法誤差對比
由表1可知,與三次指數平滑法以及BP神經網絡相比,本文所提SFM狀態頻率記憶神經網絡的短時交通流預測效果是最好的.采用SFM神經網絡預測短時交通流的平均相對誤差和均方差遠小于使用BP神經網絡和三次指數平滑法來預測短時交通流的誤差.因此,可以驗證SFM神經網絡預測交叉口的短時交通流具有較好的效果.
綜合考慮交通流信息的狀態以及頻率兩個維度,提出了基于SFM狀態頻率記憶神經網絡的短時交通流預測模型.通過獲取合肥市某交叉口的實際數據進行預測,并通過與指數平滑法以及BP神經網絡等方法進行對比,可以發現,SFM狀態-頻率記憶神經網絡預測交通流的誤差是最低的,驗證了該模型能夠提高短時交通流預測的精度,證明了該模型的有效性.同時,本文研究沒有考慮到天氣等影響因素,因此在未來的研究中如何考慮天氣等因素對短時交通流預測影響是很有必要的.