宋永朝,王 翠
(重慶交通大學 交通運輸學院,重慶 400074)
隨著智能檢測設備的普及,城市道路存在大量固定檢測器,由于環境異常、突發事件、設備故障、通信網絡故障等原因,其采集的動態交通狀態參數存在丟失、冗余、異常、噪聲污染及漂移現象[1],直接使用原始數據計算會降低數據質量,影響交通流預測及狀態判別精度。因此,進行有效的交通故障數據識別、異常數據修復,可以得到可靠的動態交通參數,為解決城市交通問題提供支持。
在交通故障數據識別方面,YIN Chunyong等[2]提出了基于邊緣計算感知數據流的異常檢測算法, 利用區間差對異常數據識別;陸百川等[3]考慮交通流數據時空特性結合馬氏距離,構建了故障數據識別模型;陸化普等[4]根據S-G濾波法和數據驅動方法,提出一套城市道路交通流檢測數據故障識別算法。在故障數據修復方面,苗旭等[5]考慮檢測器采集數據的周期性與時間變化特性,提出了基于時空相關性的異常數據修復方法;YE Miao等[6]提出了一種基于再生碼和混合遺傳算法的故障數據修復方法,減少了數據傳輸量,提高了修復效率;王薇等[7]考慮交通流數據的時空相關性,提出了基于3D形函數的時空插值修復方法,有效修復了高速路網交通流故障數據。目前,對各類檢測傳感器數據中所存在的故障數據識別、異常數據修復問題,研究主要考慮如何準確修復時間序列數據、如何挖掘利用數據的時空相關特性、如何提高模型算法的性能以及精度等。針對海量的城市動態交通參數,為滿足城市管理系統的數據要求,需要交通故障數據識別與修復需模型算法效率更快、精度更高。
筆者以動態交通參數中常見的基本參數為例(如流量、速度)。首先采用閾值結合交通流機理進行淺層次異常數據識別,并利用時序數據間的相關聯性,結合離群距離篩選出相對離群距離較大的異常數據,進行深層次異常數據識別;其次,提出改進DE-LSTM數據修復模型,通過改進DE算法優化LSTM中隱含層和學習率,提高數據修復精度和降低模型時間成本;最后,采用實際道路固定檢測器采集數據進行案例分析,檢驗模型實際效果。
根據交通流合理取值范圍,設置閾值區間,若交通流數據不在此區間范圍內,則判定該條交通流數據為故障數據[8]。固定檢測器采集的動態交通基礎參數中,交通流3參數流量q、速度v、占有率o的閾值取值范圍如式(1):
(1)
式中:fc、fv分別為流量、速度修正系數,取值范圍為[1.3,1.5][9];C為路段通行能力,pcu/h;T為檢測器數據采集時間間隔,min;vh為道路限速,km/h。
當交通流參數值不為0時,閾值法可初步識別交通故障數據;交通參數值為0時,無法判斷該采集數據是無車輛通過檢測器還是檢測器受到干擾,此時需要結合交通流機理進行規則識別,如表1。

表1 交通流機理識別規則
由表1可得到:①無車輛通行時:q=0、v=0、o=0;②車輛正常通行時:q>0、v>0、o>0;③車輛處于擁堵占據檢測器時:q=0、v=0、o=(95,100]。當交通流3參數屬于以上3種情況,即為正常數據,反之為異常數據。
運用閾值結合交通流機理法初步識別出明顯不合理數據或不符合交通基本理論的數據,對明顯不合理數據或缺失數據用歷史數據和采集時刻前后相關數據進行補齊,將初步識別后的數據作為數據輸入,進一步異常數據識別及修復,提高數據質量。
固定檢測器所收集到的動態交通數據,在采集時間段內有嚴格的時間順序,對于時間序列異常數據常用的檢測方法有:直接檢測、間接檢測、時間跨度檢測、序列跨度檢測[10]。交通流動態故障識別定位,即為針對點位異常數據檢測,進行直接離群點位定位。筆者采用基于距離檢測的異常數據檢測算法來篩選更為隱含的錯誤數據,利用邊緣計算的思想提高數據處理效率,高效識別異常數據。
對于單個固定檢測器,其采集到的時序數據,按采集時間表達如式(2):
Xi={x1,x2,…,xm,…,xn},1≤m≤n
(2)
式中:Xi為第i天交通流時間序列數據樣本集;xm為某個采集具體時刻tm的數據值;n為數據長度。
對于交通流數據集合Xi,引入用來存放Xi部分數據的滑動窗口SW(slide window),其長度為LSW,滑動窗口長度一般與檢測器采集數據時間間隔相關。進行長度計算時,只考慮時序數據在采集時刻的具體數據值,忽略時間標簽,將滑動窗口中時序數據簡化表達如式(3):
XSW={s1,s2,…,sr,…,sn},1≤r≤n=LSW
(3)

(4)

(5)
更新中心子序列Xcentre,如式(6):
Xcentre=(sr-Lmove-1,sr-Lmove,…,sr,…,sr+Lmove)
(6)
其中滑動窗口、子序列最小長度和橫向移動距離與故障數據在相同時間段的歷史數據高度相關,考慮到歷史數據與當前數據間,在滑動窗口內存在著基本相關,根據Pearson相關系數,可求出歷史數據與當前數據的線性相關系數R,如式(7):
(7)
采用最小二乘法求解線性逼近函數y=kx+b,其系數計算如式(8)、式(9):
(8)
(9)
利用式(7)驗證兩個數據之間的相關性,利用式(8) 、式(9)對滑動窗口內的數據依次進行相對離群距離計算,則基于相對離群距離和數據間相關性的異常數據檢測步驟如下:
Step1基礎參數設置
設置固定滑動窗口長度LSW、子序列最小長度Lmin、子序列橫向移動距離Lmove、點位相對離群距離最小值εdis。
Step2計算相對離群距離


隨著多源信息技術快速發展,傳統數據驅動模型難以滿足實時性、準確性等要求,長短期記憶神經網絡(LSTM)模型具有實現簡單,長期記憶功能突出,模型泛化能力好的特點,常用于處理與時間序列相關性特別高的問題[11-12]。但由于LSTM在訓練過程中,學習率和隱含層需要依據經驗不斷嘗試,會耗費大量時間。差分進化算法(DE)在處理非線性問題有較強穩定性,且算法收斂速度快、魯棒性強,因此筆者提出改進DE-LSTM故障數據修復模型。
差分進化算法是一種基于種群的全局優化算法,常被應用在神經網絡、數據挖掘、多源信息處理等領域[13]。其算法步驟主要包括初始化種群、變異、交叉和選擇,由于種群的更新策略以及交叉選擇的不同,算法存在著前期求解非全局最優,后期在最優解附近震蕩、搜索停滯等問題,針對DE算法存在的主要問題,對下一代最優種群的選取和變異交叉因子動態調整進行改進,改進差分進化算法步驟如下:
Step1初始化
固定檢測器采集數據種群初始化,維數D,種群數量N,初始化操作如式(10):
xi,g={xi,1,xi,2,…,xi,D},i=1,2,…,N
(10)
Step2變異
DE算法的變異策略是采用種群中兩個不同個體向量來干擾一個現有個體向量,進行差分操作實現子代變異,傳統DE算法變異如式(11):
vi,g=xr1(g)+F×[(xr2(g)-xr3(g))]
(11)
式中:r1,r2,r3為3個相異個體且取值為[1,N];F為變異因子;g為當前進化代數。
對變異因子進行改進,在傳統固定因子的基礎上,設置一個動態變異因子,使得變異因子隨著迭代過程而動態變化,在算法初期提高種群的搜索能力,后期提高尋優能力。采用自適應變異因子[14],改進具體如式(12):
(12)
式中:F′為改進變異因子;G為最大進化代數;g′為當前進化代數。
算法運行初期,變異因子取值較大,以保持種群多樣性,擴大搜索空間;隨著進化次數逐漸增大,變異因子逐漸減小,以保持種群中的優秀個體,當變異因子維持0.5時,算法整體性能最佳,提高了算法運行效率。改進后變異操作如式(13):
vi,g=xr1(g)+F′×[(xr2(g)-xr3(g))]
(13)
Step3交叉
差分進化算法對于每個個體和它所生成的子代變異個體進行交叉,即對每個個體分量按照一定概率的交叉因子P選擇子代變異個體(否則就是原個體)來進行種群的交叉進化,形成一個新的個體,操作如式(14):
(14)
交叉因子P影響DE算法的局部搜索能力及全局搜索平衡性,交叉因子取較大值時,利于局部尋優并提升算法運算效率;交叉因子取較小值時,利于全局并行搜索并維持種群的多樣性[15]。采用自適應控制策略,對傳統交叉因子具體改進操作如式(15)、式(16):
Pi,g=N(μi,g,0.1)
(15)
(16)
式中:Pi,g為當前個體xi,g的交叉概率;a為常數,a∈[0,0.5];μi,g為更新交叉概率的高斯分布均值,初始值為0.5。
Step4選擇
差分進化算法采用貪婪算法,根據子代和父代的適應度函數值對比,選擇更優秀的個體作為下一代。具體操作如式(17):
(17)
處理有嚴格時間序列的檢測器采集數據時,常選用循環神經網絡(recurrent neural networks),但其只有短期記憶,因而存在下降梯度消失的問題,長短期記憶神經網絡(long short-term memory)中新的記憶細胞可有效解決該問題。因此, LSTM的隱藏計算模塊在RNN基礎上引入一個新的內部狀態:記憶細胞(memory cell),記憶細胞在3個控制傳遞的邏輯門(輸入門、遺忘門、輸出門)之間進行信息傳輸。LSTM采用一定的方法將短期記憶與長期記憶相結合,克服了時序過長時,RNN容易忘記前較久遠時間段的信息,越近的時間點對此刻的輸入影響越大。常見LSTM結構如圖1。

圖1 LSTM數據傳輸結構Fig. 1 LSTM data transmission structure diagram

ft=σ(Wf·[ht-1,xt]+bf)
(18)
it=σ(Wi·[ht-1,xt]+bi)
(19)
ct=tanh(Wc·[ht-1,xt]+bc)
(20)
(21)
ot=σ(Wo·[ht-1,xt]+bo)
(22)
ht=ot×tanh(Ct)
(23)
(24)
(25)
式中:帶下標的W、b均為參數矩陣;xt為輸入值;ht為t時刻輸出值;Ct為t時刻時,記憶細胞狀態參數;σ為s型激活函數。
通過改進差分進化算法優化長短期記憶神經網絡,對神經網絡中學習率、隱含層節點進行自動尋優,提高了模型計算效率且避免了陷入局部最優,使得提出的改進DE-LSTM模型對交通時序故障數據有較好的修復能力及較高的精度。改進DE-LSTM的故障數據修復模型流程如圖2。

圖2 基于改進DE-LSTM的故障數據修復流程Fig. 2 Fault data repair process based on improved DE-LSTM
改進DE-LSTM的故障數據修復步驟如下:
Step1導入固定檢測器采集的交通流時序數據,對工作日內處理后的采集數據劃分訓練集、測試集,并對不同源數據進行歸一化。
Step2建立長短期記憶網絡訓練模型,設置輸入層節點數3,輸出層節點數1,最大迭代次數50次,將神經網絡模型中的學習率及隱含層節點數定為尋優參數。
Step3對差分進化算法中的參數進行初始化賦值,設置最大迭代次數為50、縮放因子及交叉因子按式(12)、式(15)取值,并對檢測器時間序列數據種群初始化。
Step4根據改進差分進化算法,對交通流信息數據按設置好的基礎參數進行變異、交叉、選擇產生下一代個體。
Step5判斷是否達到迭代終止條件,即當前進化代數是否為預設最大迭代次數G=50,若進化代數達到50次則輸出當前種群,否則轉Step4。
Step6重復執行Step4、Step5,得到最優的下一代種群。
Step7對輸出的種群進行適應度評價,最小適應度值所對應的子個體即為算法最優解,將得到的最優參數作為LSTM輸入。
Step8將優化后學習率和隱含層節點數輸入LSTM中,構建改進DE-LSTM故障數據修復模型。
Step9根據評價指標進行分析總結,選取修復精度最高的模型進行交通時序故障數據修復。
選取某交通示范區實際交通路段所采集交通數據,進行固定檢測器動態交通數據故障識別及修復模型驗證,該交通路段地理位置如圖3。以固定檢測數據采集時間間隔5 min為例,考慮到交通流的時空相關性,同一路段在工作日和周末交通狀態差異較明顯,因此選取同一微波檢測器所采集周一至周五(以2016年7月11日—7月15日為例)的1 440個交通數據為研究對象,部分采集數據集如表2。

圖3 實際路網及檢測器布設位置Fig. 3 Actual road network and detector layout

表2 微波采集部分數據
為更好模擬故障異常數據的出現,以7月12日數據為研究對象,人為設置流量異常數據34個、速度異常數據32個,采用閾值結合交通流機理進行初步識別,其中修正系數fc=1.4。
利用閾值結合交通流機理診斷結果如圖4。

圖4 基于閾值結合交通流機理的異常數據識別Fig. 4 Abnormal data recognition based on threshold combined with traffic flow mechanism
利用閾值結合交通流機理的方法能夠初步識別明顯的異常數據,對明顯超過閾值或數據為0時的異常數據識別率較高,對隱含在數據中更加深層次的異常數據識別率較低。識別出的流量及速度異常數據個數均為16個。
利用距離檢測算法進行深層次異常數據識別,診斷結果如圖5。

圖5 基于離群距離檢測算法的異常數據識別Fig. 5 Abnormal data identification based on outlier distance detection algorithm
利用距離檢測算法進一步進行異常數據識別,除去可以明顯識別超過閾值和不符合交通流運行規律數據之外,更進一步地識別出數據中的深層次異常數據,對于異常數據識別個數的結果為:流量異常數據識別30個、速度異常數據31個,較閾值結合交通流機理法準確率提升41.2%和46.8%。
對識別出的異常故障數據進行剔除,通過改進DE-LSTM算法對數據進行補齊;將2016年7月11日—7月14日速度數據作為歷史數據輸入,對模型訓練,修改的2016年7月15日速度數據作為模型測試集,并將通過模型修復后的數據與7月15日原始速度數據做對比(假定7月15日原始數據不存在數據故障問題,修復性能對比為模型修復后的數據與當天完整原始數據之間的對比),并采用平均均方誤差和相對精度對模型進行準確性評價。設定LSTM訓練過程采用adam優化器進行優化[16],適應度函數為LSTM訓練集、測試集均方誤差,利用差分進化算法對LSTM學習率、隱含層節點數進行動態尋優。
為驗證改進差分進化算法能夠優化基于長短期記憶神經網絡算法,先采用LSTM算法對數據進行預測修復,以7月11—7月14日速度數據作為歷史數據輸入,7月15日數據為預測集,設定輸入層為3、輸出層為1、隱含層為6、初始學習率為0.01、迭代次數88次,基于LSTM的數據預測修復模型結果如圖6。

圖6 基于LSTM算法的數據預測修復Fig. 6 Data prediction repair based on LSTM algorithm
LSTM模型中的學習率以及隱含層節點數設置通常都是根據文獻及經驗直接給出,未考慮數據情況,數據訓練預測精度與參數設定高度相關,因此引入DE算法對種群自動尋優,得到最優的學習率及隱含層節點數,提高LSTM算法效率。
采用傳統差分進化算法對數據進行訓練,取F=0.5、P=0.6、最大進化代數為50,得到基于差分進化算法優化的超參數為:神經元個數35、學習率0.024 8。通過傳統DE優化LSTM算法對數據預測修復過程及結果如圖7。

圖7 基于DE-LSTM算法的數據預測修復Fig. 7 Data prediction repair based on DE-LSTM algorithm
通過差分進化算法優化長短期記憶神經網絡,算法迭代收斂運行效率提高,避免了陷入局部最優,并在傳統固定因子的基礎上,設置一個動態變異因子和交叉因子,增強迭代初期算法尋優能力,提高迭代后期算法計算效率,基于改進DE-LSTM算法對數據修復補齊過程及結果如圖8。

圖8 基于改進DE-LSTM算法的數據預測修復Fig. 8 Data prediction repair based on improved DE-LSTM algorithm
由圖7、圖8可知:改進后的DE算法迭代收斂過程更快,尋優能力更強,較傳統DE算法收斂速度提升較大,提高算法運行效率,改進DE尋優超參數結果為:神經元個數12、學習率0.048 7。
通過LSTM、DE-LSTM、改進DE-LSTM分別對交通速度數據進行訓練、測試,3種算法結果對比如圖9,算法性能對比如表3。

圖9 算法對比Fig. 9 Comparison of algorithms

表3 指標對比
由平均均方誤差可以看出,LSTM算法均方誤差較大、DE-LSTM算法次之、改進DE-LSTM算法均方誤差最小,通過訓練后的速度曲線都較為接近原始數據曲線,DE-LSTM算法和改進DE-LSTM算法對數據預測效果都較LSTM更為接近理想目標,預測效果較好,但改進DE-LSTM算法通過對交叉因子、變異因子的改進,使得算法尋優訓練時間大幅減小,改進DE-LSTM較于LSTM網絡運行時間更長,但是對數據預測修復精度更好。
1) 根據固定檢測器采集的動態交通參數存在的故障問題,利用交通流時序數據的自身連續性,提出了基于離群距離檢測的故障數據識別算法,在算例驗證過程中,比較固定閾值結合交通流機理法,準確率提升41.2%和46.8%,故障數據識更為高效。
2) 提出了基于改進差分進化算法優化長短期記憶神經網絡的數據修復模型,算例驗證過程中的LSTM、DE-LSTM及改進DE-LSTM模型的相關系數分別為0.802 1、0.867 6、0.918 7,表明改進的DE-LSTM模型精度更高、性能更優。