朱強,徐強,付立
(1.交通運輸部科學研究院,北京 100029;2.交科院公路工程科技(北京)有限公司,北京100013)3.山東高速青島發展有限公司,山東 青島 266114)
近年來極端氣候造成道路事故頻發、路網癱瘓的情況日益突出和嚴峻。冰雪會導致路面抗滑能力大幅降低,削弱了道路的通行能力,容易產生惡性交通事故,使人們的生活和生產無法正常進行。對道路結冰進行預測預警,提前采取處置措施是保障冬季道路安全的重要措施。
國內外學者對使用神經網絡算法預測是否達到結冰狀態做了廣泛研究。Kreutz 等基于SCADA系統采集的數據,使用神經網絡對北歐等寒冷地區的風力發電渦輪是否處于結冰狀態進行了預測[1]。He 等使用神經網絡預測輸電線路的結冰厚度,將結冰厚度分為多個層次,建立了卷積神經網絡模型[2]。邱欣等使用SVM 方法,結合降水條件對不同路域是否結冰進行了預測[3]。魏揚等使用神經網絡算法預測了飛機結冰[4]。賴軍杰等使用神經網絡對機場跑道是否處在結冰狀態進行了預測,將機場跑道劃分為結冰域、臨界域和非結冰域三部分[5],但并未預測跑道結冰的時間。池昊等基于SCADA 系統采集的風機葉片數據通過神經網絡進行結冰預測,根據葉片運行狀態判斷是否到達結冰狀態,準確率達到了95%[6]。楊鵬飛等采用粒子群算法、交叉驗證算法和遺傳算法對道路結冰進行了預測,經對比得出遺傳算法優化后預測模型的通用性和準確度更高[7]。劉洪蘭等通過BP 神經網絡模型對靜止水域和流動水域的結冰厚度進行預測,準確率達到80%左右[8]。李大中等使用優化的深度全連接神經網絡模型,通過小批量的梯度優化算法Adam 識別風機葉片是否處在結冰狀態[9]。熊竹等將降水量和溫度作為基本條件模擬結冰形成的速度和結冰量,并通過BP 神經網絡算法對結冰量進行了預測,但是沒有對距離結冰的時間進行預測[10]。舒斯等對湖北地區高速公路多個監控點近2 年的結冰數據進行建模,計算每個監控點的結冰拐點值,當溫度小于拐點值并發生降雨時,即認為路面已經結冰并進行報警[11]。綜上可以看出,目前的研究使用BP 神經網絡算法針對結冰預測開展了一些工作,說明BP 神經網絡在相關領域有了初步應用,但還缺乏使用BP 神經網絡對道路結冰時間的研究。事實上,基于道路的環境、地理因素和氣象數據變化特點,建立預測模型并使用自學習的方法不斷優化調整模型計算未來結冰時間,可在合適的時間采取措施避免結冰,不但能保障道路安全,還能節約人力、材料等養護成本,具有一定的經濟意義。
鑒于此,本文基于BP 神經網絡算法,將安裝在路面的傳感器每5min獲取的路面信息作為歷史數據,包括冰點溫度、滑濕系數、含冰比例、路面狀態、路面溫度、含鹽量、水膜厚度、時間等8 種特征信息。使用Pearson 方法對特征值進行特征選擇,將歷史數據分為兩部分,一部分用來進行模型訓練;另一部分作為驗證數據,在訓練完成后根據模型對訓練結果進行驗證和優化,并給出模型的測試效果。通過使用神經網絡算法,綜合運用多種氣象、路面數據,為準確預測結冰提供一定的支持。
近幾年我國高速公路氣象信息化越來越受到重視,多個地區的高速養護部門已經安裝了路面傳感器、路側氣象站等設備采集氣象信息。安裝在路面的傳感器(見圖1)可同時采集多種特征數據,包括:冰點溫度、滑濕系數、含冰比例、路面狀態、路面溫度、含鹽量、水膜厚度、采集時間、設備ID、地理坐標等(見表1)。其中“路面狀態”包含多種情況:結冰、積雪、干燥、潮濕等,可根據其值判斷當前道路為哪一種狀態、是否結冰。取監測點結冰前一段時間除設備ID、地理坐標以外的8 種特征數據進行神經網絡建模,以“路面狀態”首次出現結冰的時間為“結冰時間點”,輸入其他特征值進行模型訓練,計算其距離“結冰時間點”的時延。

表1 路面結冰預警數據字段說明

表1 (續)
冬季我國不同地區的道路結冰特點并不一致。北方地區冬季干燥、氣溫低,因此濕度成為結冰的關鍵因素;南方地區濕度大,路面氣溫是結冰的關鍵因素。本文以我國南方地區和北方地區多個監測點:青島膠州灣大橋、山東青蘭高速、內蒙古G6 高速、蘭州西固黃河大橋、南京寧杭高速、貴州觀風海大橋等安裝的路面傳感器近5 年采集的路面氣象數據作為依據,進行神經網絡模型訓練和驗證。
傳感器采集數據后上傳至系統存儲的過程中,存在系統存儲故障、數據傳輸失敗、數據傳輸異常等現象,從而導致原始數據中可能存在噪聲數據[12]。如果直接使用會造成計算結果偏差,因此需對原始數據進行預處理。本文主要采用剔除異常數據和均值插值的方法處理噪聲數據。
根據路面結冰時的數據采集時間,取出前5h之內該采集點的數據,對異常數據進行篩查。由于傳感器數據為時間序列變量,故以特征值某時點前后10min 的平均值作為基準數據,計算該時點數據與均值的偏差,偏差大于均值0.5 倍的數據會被剔除,然后采用均值插值。導致異常數據的原因主要有:采集數據缺失、路面狀態數據不準確、路面溫度變化異常。
(1)數據采集存在明顯缺失
傳感器每5min采集一次數據,當發現數據存在某段時間范圍內缺失或存儲時間不連續的情況,如圖2 中,從19:20 開始到19:50 存在數據缺失的情況,則需對該樣本數據進行處理。
(2)路面狀態數據不準確
根據路面傳感器采集的數據,路面狀態在一段時間內應該為干燥、潮濕、結冰、積雪中的一種,如果存在頻繁變化的情況,即認為該段時間的路面狀態數據不準確,可將此類數據剔除。
(3)路面溫度變化異常
路面溫度會隨著時間變化而變化,通常情況下中午路面溫度要比早晚溫度高,基本趨于線性變化的趨勢。如果某段時間溫度有忽上忽下的大范圍波動,可認為該段數據異常。如圖3 所示,19:40 和20:10 有兩次明顯的數據抖動,需進行均值插值處理。
通過對數據進行篩選,選取50個監測點2016—2022 年的數據,對數據進行統一分析處理。本文對數據的處理分兩步進行:第一步,進行特征選擇,剔除強相關的數據項,減少數據維度,為以后的神經網絡訓練降低計算復雜度,減少模型的訓練時間;第二步,進行歸一化處理,使用min-max 標準化方法,提升模型的收斂速度和精度。
采用過濾法(Filter)中的相關系數法進行特征選擇,本文采用Pearson相關系數法,該方法具有消減誤差比例的作用,是認可度最高的用于刻畫變量相關性系數的方法。Pearson 計算公式如下[13]:
式(1)中:r為相關系數;Xi,Yi為計算相關性的兩個樣本點,為樣本的平均值。計算8 個變量間的相關系數,見表2 。從表2 中可知,含鹽量與冰點溫度的Pearson 相關系數r為-0.951,故這兩項數據為強相關。

表2 數據項間相關系數計算結果
經Pearson相關性系數計算后,再對冰點溫度和含鹽量做散點圖進一步驗證其相關性(見圖4)。從圖4 可知,含鹽量與冰點溫度呈線性關系,進一步驗證了其強相關性,故舍棄冰點溫度這一特征,以降低神經網絡的復雜度,減少訓練時間。
將BP 神經網絡算法應用于凝冰預警中,需將凝冰數據作為算法輸入項。根據神經網絡算法的特點,若將其直接輸入網絡,則加權后通過累加,各種數據間的差別將變得非常大,從而導致網絡難以收斂。因此,為消除數據屬性值之間的差別,平滑數據樣本值,需對輸入的凝冰數據進行歸一化處理。目前主要使用min-max 標準化法,將數據按比例縮放,使之落入一個小的特定區間,如果直接用原始指標值進行分析,就會突出數值較高的指標在神經網絡模型中的作用,而削弱特征值水平較低指標的作用,因此將凝冰數據轉化為無量綱的純數值,便于不同單位量級的指標進行比較和加權。本文使用min-max 標準化法[9]對原始數據進行線性變換,使自變量映射到(0,1)之間,轉換公式如下:
式(2)中:x'為變換后的數據;x為樣本數據;xmin為樣本集最小值;xmax為樣本集最大值。以2022 年1 月17 日采集的一段結冰前的數據為例,路面初始數據和歸一化后數據如表3所示。

表3 路面溫度歸一化處理后數據
本文采用BP 神經網絡算法,其原理是輸入學習樣本,通過反向傳播算法對網絡的偏差和權值進行反復訓練,使最終得到的輸出值盡可能與期望值接近。首先構建神經網絡,設置輸入層和輸出層的數量,然后根據凝冰數據的特點選擇合理的激活函數和防止過擬合的方法,最后進行模型訓練。訓練數據選取2016—2022 年山東、內蒙古、貴州等多地30 個監測點的路面、氣象數據。該數據通過氣象站和路面傳感器每分鐘采集一次后存儲在云服務器中,包含本文第1 小節所列出的所有路面凝冰數據。
2.1.1 模型構建
模型構建第一步是確定神經網絡的拓撲結構。BP神經網絡包含三層:輸入層、隱藏層、輸出層。據上節可知本文凝冰特征變量有6 類,且都為時序變量,故選取tn-6,tn-5,tn-4,…,tn時刻的所有特征值作為輸入層,輸出層為距離凝冰的時間Y,則輸入層為36×1,輸出層為1×1。神經網絡結構如圖5所示。
建立模型時無法確定模型隱藏層的層數以及每層的神經元數,為此,采用網格搜索法(如圖6 所示),在所有候選的參數中,通過循環遍歷,嘗試每一種可能性,表現最好的參數就是最終的選擇結果。
2.1.2 激活函數選擇
目前激活函數的種類主要有Sigmoid、Tanh、Relu等[14]。Sigmoid 函數是將取值為(-∞,+∞)的數值映射到(0,1)之間。Sigmoid函數如下:
式(3)中:z為需要映射的值。
Sigmoid飽和區域較廣,容易出現梯度消失的問題。通過式(4)可知,當z非常大時,會導致該節點權重g(z)的梯度將接近于0,使得梯度更新十分緩慢,即梯度消失。
式(4)中:g'(z)為g(z)的求導,表示g(z)的梯度。
Tanh 函數相較于Sigmoid 函數要常見一些,該函數是將取值為(-∞,+∞)的數映射到(-1,1)之間,其公式如下:
Tanh 函數在0 附近很短一段區域內可看作為線性。由于Tanh 函數均值為0,因此彌補了Sigmoid 函數均值為0.5 的缺點,但是Tanh 函數和Sigmoid 一樣也容易出現梯度消失問題。當z很大或很小時,g'(z)接近于0,如式(6)所示,會導致梯度很小,權重更新非常緩慢,出現梯度消失問題。
Relu 是一種分段線性函數,彌補了Sigmoid函數以及Tanh函數的梯度消失問題。Relu函數的表達式如下:
式(7)中:x為樣本值。
Relu 沒有飽和區,不存在梯度消失問題(如圖7 所示)。
本文的數據多為正數,只有路面溫度可能為負數,輸入為正數的時候,不存在梯度消失問題。Relu 函數只有線性關系,計算簡單,而Sigmod 和Tanh要計算指數,計算速度較慢,因此Relu函數不管是前向傳播還是反向傳播,都比Sigmod 和Tanh快,故本文選擇使用Relu為激活函數。
2.1.3 防止過擬合
為防止模型訓練中的過擬合現象,本文采用在每一個全連接層后添加批歸一化BN(Batch Normalization)層或Dropout 層,或者在損失函數中添加正則化項等方法[15]。
Dropout通過在前向傳播時,讓某些神經元停止工作(如圖8所示),可以減少過擬合、提升模型的泛化能力。
如上所述,完成模型輸入輸出、激活函數選擇和防止過擬合等構建工作后,本節對神經網絡模型進行訓練,過程如下:
第一步:數據集劃分。本文將數據集按9∶1劃分為訓練集和驗證集。為防止模型訓練中的過擬合現象,采用在每一個全連接層后添加BN 層或Dropout 層,以及在Loss 函數中添加正則化項兩種方法。
第二步:前向傳播后計算輸出值y和真實值z之間的誤差δ=z-y,用誤差反向傳遞給前面的各層來調整網絡的參數,如圖9所示。
將要傳播的誤差δ返回分配給所有神經元,從而得到每個神經元的各自誤差δ5,δ4,…,δ1(如圖10所示)。
每個神經元的誤差都計算完后,其權重也會更新,如圖11展示了4號神經元的更新過程。
向前傳播更新權重的計算公式如下:
式(8):W46為上次的舊權重;為更新后的權重;η為學習率;為誤差梯度。訓練過程為:首先通過誤差反向傳播,獲得每個神經元的誤差值,再根據誤差值和激活函數的導數來更新權重,最終達到對整個網絡的修正。
第三步:模型訓練。采用交叉驗證法,一個單獨的子樣本被保留作為驗證模型的數據,其他K-1 個樣本用來訓練。交叉驗證重復K次,每個子樣本驗證一次,平均K次的結果或使用其他結合方式,最終得到一個單一估測集。交叉驗證法的優勢在于同時重復運用隨機產生的子樣本進行訓練和驗證,每次的結果驗證一次,10 折交叉驗證是最常用的[16]。
訓練集采用K折交叉驗證法,將數據集按9∶1 劃分為訓練集和測試集,輪流將其中9 份作訓練數據,將剩下的1 份作測試數據,10 次結果的均值作為對算法精度的估計。K折交叉驗證法如圖12所示。
第一個訓練集進行訓練得到的結果如圖13所示。從圖13 中可以看出,在距離結冰120min 內測試的30 組數據中,第0~5 和18~22 的數據區間預測值和實際值偏差較大。由于第一次訓練學習的數據比較少,模型的成熟度不夠,所以預測值與實際值差別比較大。
根據第一組的建模預測結果調整神經網絡內部各節點權值,繼續進行其余幾組數據的模型訓練。10 組全部訓練完畢后,將所有數據進行亂序,檢測模型的準確度。經10組數據訓練完畢后對預測結果進行對比(如圖14 所示)。預測結果在120min 內接近實際值,趨勢和真實結果基本吻合。
采用平均絕對誤差(Mean Absolute Error,MAE)、均方誤差(Mean Square Error,MSE)兩項評價指標對預測模型精度進行對比分析。平均絕對誤差是目標值與預測值之差絕對值的平均,表示預測值的平均誤差幅度,而不需要考慮誤差的方向。本文預測結冰的時間比實際結冰時間或大或小,綜合考慮時間的差距,使用MAE能反映預測時間的偏差程度。MAE計算方法如下:
式(9)中:h(xi)為預測的距離結冰的時間;yi為實際值;m為計算的數據集個數。
MSE 是反映估計量與被估計量之間差異程度的一種度量。t為根據算法預測的凝冰時間值,θ是實際凝冰時間值,(θ-t)2的數學期望稱為預測值t的均方誤差。MSE 能反映預測結冰時間與實際結冰時間之間的差異程度,差異越小越好,其計算方法如下:
為驗證模型的預測效果,本文使用預測模型對全國30 個監測站2019—2022 年的結冰時間進行了預測,并對預測結果進行對比分析和數據可視化。
使用貴州觀風海大橋2022年1月17日路面傳感器監測到的路面結冰時間數據,將預測時間與實際結冰時間對比,如圖15 所示。從圖15 可以看出,系統預測的時間在120min 前呈波動的狀態,與實際數據相差較大。該監測站點當天19:25—22:25 的監測數據如表4 所示,因采集數據量很大,本文中只展示每5min 的數據。從表4 中可以看出,該監測點22:25 產生結冰現象。在結冰前3h 即19:25—20:25 的時間段中,也就是預測時間相對不準確的范圍內,溫度在19:40—20:00 有多次下降、上升的情況。溫度上升意味著結冰的可能性減小,所以模型對該段時間的預測產生了偏差,結冰前120~180min的預測數據存在波動且與實際不符。隨著20:25 后各項數據表明趨向結冰狀態越來明確,模型調整了自己的預測時間并和實際結冰時間越來越吻合,結冰前0.5h 內預測時間基本與實際時間一致。由表4 可知,21:10 時溫度已經下降到0℃以下,路面存在積水(水膜厚度為199.7μm),已經到達結冰條件,但需要一定的時間才會有一定量的冰產生。1h 后,22:25 路面傳感器檢測到了結冰。本文的模型訓練過程中都是以路面傳感器第一次監測到路面有冰的狀態為路面結冰時間,而不是以路面溫度下降到0℃為結冰時間點。

表4 貴州觀風海大橋路面狀態變化情況(2022年1月17日)

表4 (續)
對所有結冰數據進行驗證,經計算平均絕對誤差(MAE)為9min,均方誤差(MSE)為174。并且2h之內預測模型對越接近結冰點的時間預測越準確,從統計結果可看出60min 之內的預測數據和實際數據幾乎完全一致,說明神經網絡計算模型對結冰前2h內的時間預測較準確,能反映出結冰時延。
本文提出了使用神經網絡進行道路結冰時間預測的方法,以膠州灣大橋、青蘭高速、內蒙古G6 等數個監測點5 年的道路氣象數據作為數據集進行預測模型訓練和驗證。首先選取結冰前一段時間的數據進行預處理并剔除相關性較強的特征數據,然后基于BP 神經網絡算法構建結冰預測模型,使用數據集進行模型訓練,經過訓練后對模型進行驗證。驗證結果表明距離結冰2h內的預測平均誤差為9min,使用BP 神經網絡算法能較準確預測距離結冰的時間。該方法豐富了目前預測結冰時延的手段,能為高速公路養護部門提前采取除冰措施提供參考。但因目前采集的路面傳感器數據只有近5 年的數據,如果能使用更大量的數據和更豐富的數據種類,預測的精準度將更高。本文在模型計算過程使用的激活函數和防止過擬合方法較單一,沒有對其他方法進行試驗,尚未考慮使用其他方法對準確性的影響,有待進一步深入研究。