劉慶華 馬 煥
(1.江蘇科技大學計算機科學與技術學院 鎮江 212003)(2.江蘇科技大學電子信息學院 鎮江 212003)
隨著道路數量的不斷增加,路面不平度[1]逐漸成為評價路面特征的重要指標之一,不平整的路面嚴重影響著道路的使用性能、壽命和駕駛的舒適度[2],故路面不平整時,如果不及時檢測,容易造成車輛顛簸和財產損失[3],因此,對道路不平度的有效檢測對提高車輛運行質量、延長道路的使用壽命具有重大的經濟效益和社會效益。
迄今為止,隨著對路面檢測精度的不斷提高,國內外也提出了多種分類算法。在國外,Jian[4]等提出基于優化離散神經網絡的嵌入式路面識別系統,該路面識別系統通過一種優化的離散神經網絡對采集到的路面譜數據進行分類和識別;Yok[5]等提出自然環境中道路標志的檢測與分類原理,通過神經網絡對道路進行檢測與分類。在國內,劉慶華[6]等提出基于優化模糊C均值聚類算法的路面不平度識別,通過優化的模糊C均值聚類算法對路面不平度進行識別與分類;張好杰[7]等提出了基于最小二乘法的BP神經網絡算法對路面數據進行標定,與真實數據進行比較,實現路面平整度的檢測。
針對BP神經網絡的性能易受權值和閾值的影響的缺點,本文提出了一種根據深度學習的基于棧式自動編碼器[8]對路面不平度進行檢測的方法,深度學習可以自動地學習非標簽數據的特征,并根據這些提取出來的特征進行分類,自從Hinton等提出深度算法以來,深度學習被廣泛應用于圖像分類[9]、故障診斷[10]、語音識別[11]等各個領域。本文采用SDAE進行提取數據特征,并引用BP神經網絡對降噪自動編碼器進行微調,與傳統的支持向量機(SVM)和BP神經網絡算法相比,基于SDAE的路面不平度檢測方法能夠取得更好的分類效果。
DAE是一種由編碼器和解碼器組成的非監督式神經網絡,其進行預訓練過程包括:將輸入數據根據編碼函數進行編碼,編碼后的數據通過解碼器重現輸入數據,最后通過比較輸入數據和解碼器解碼后的數據之間的差異進行修改相關參數。包含一個隱層的自動編碼器的基本結構如圖1所示[12],其中編碼器由輸入層和隱層組成,解碼器由隱層和輸出層組成。

圖1 包含一個隱層的自動編碼器
首先輸入數據經過編碼器操作,可得到在隱層的數據特征,即:

其中,x為輸入向量,b(1)為輸入層的偏置向量,W(1)為編碼層的權值矩陣,θ=(W(1),b(1))為網絡參數,s(x)為激活函數,通常為sigmoid函數或tanh函數,即:s(x)=1/(1+ex)和s(x)=(ex-e-x)/(ex+e-x)。
然后經過解碼器操作,隱藏層的表達z映射回原始輸入x,即:

其中W(2)為解碼層的權值矩陣,b(2)為偏置向量,θ'=(W(2),b(2))為網絡參數。
自動編碼器是為了最小化平均重構誤差,其中每個數據的重構誤差為

本文采用交叉熵代價函數作為誤差函數,相比于平方差代價函數,交叉熵代價函數要更優越,其表達式為

其中,x(i)表示自動編碼器的第i個樣本輸入,表示第l層第i個單元與第l+1層第j+1單元之間的連接權重,n表示樣本個數,nl表示網絡層數,sl表示第l層的神經元數,λ是為了減小權重幅度,防止過度擬合的正則化系數。
通過批量梯度下降算法和誤差反向傳播算法可得到該模型的最優解W和b[13],將最優解帶入公式(4)即可得到最小代價函數,此時隱層的輸出可認為是輸入的最佳特征表達,為了進一步提高自編碼器的特征表達能力,在自編碼器的基礎上,對輸入數據加入噪聲,并使自動編碼器學習去除噪聲,這樣即使輸入數據受損,自動編碼器也能找到更有效的特征,這些有效的特征構成的對輸入數據更高級的表示,進而增強了模型的魯棒性,降噪自動編碼器原理如圖2所示。

圖2 降噪自動編碼器原理圖
其中x表示原始輸入數據,x?表示經過噪聲處理的受損數據,對數據進行加噪處理的方法有兩種,即:添加高斯噪聲和以二項分布隨機處理數據,并將輸入數據以一定概率置0,y表示對x?進行編碼后得到新的特征,z表示對y進行解碼后的輸出。
BP神經網絡是一種信號前向傳播、誤差反向傳播的多層前饋神經網絡[14],利用BP神經網絡對降噪自動編碼器學習到的特征進行監督分類,并根據誤差反向傳播的方法對降噪自動編碼器進行微調。但傳統的BP神經網絡權值和閾值一般是隨機初始化為某個區間的隨機數,因此無法準確獲得,所以本文提出一種利用遺傳算法[15]優化BP神經網絡初始權值和閾值的方法,用遺傳算法優化BP網絡對降噪自動編碼器進行微調的過程如下:
1)在信號正向傳播過程中
(1)對每個個體進行實數編碼,根據個體編碼得到BP網絡的初始權值和閾值,并把經過訓練樣本訓練BP網絡后的預測輸出和期望輸出的誤差絕對值和作為個體適應度值,即:

式中,n表示網絡輸出節點數,yi和oi分別表示BP網絡第i個節點的期望輸出和預測輸出,M為系數。
(2)基于適應度比例進行輪盤賭選擇方法,即:

式中,pi表示每個節點的選擇概率,Fi表示節點i的適應度值,Q為系數,N表示種群數目。
(3)對第s個染色體as和第l個染色體al在j位進行交叉操作,即:

式中,b為隨機數,取值范圍為(0,1)。
(4)選取第i個個體的第j個基因aij進行變異。
2)誤差反向傳播過程中
(1)計算輸出層的每個輸出單元i的校正誤差,即:

式中,ai表示第i個單元實際輸出值,yi表示期望輸出值。
(2)計算隱層各單元的校正誤差,即:

式中,l表示第l層網絡,Sl+1表示第l+1層網絡神經元的總數,ai
l表示第l層第i個單元的輸出值。
(3)對降噪自動編碼器各層參數進行微調,即:

式中,α為調整系數。
SDAE是一個由多層降噪自動編碼器及一層有監督的BP網絡組成的網絡結構。在訓練時,為了獲得輸入數據更深層次的特征表示,將前一層網絡的輸出作為后一層網絡的輸入,并進行逐層貪婪訓練。首先,將經過加噪處理后的輸入數據輸入第一層降噪自動編碼器并進行無監督訓練,得到輸入數據的一階特征表示,在之后的每一步中,把訓練好的前n-1層特征表示作為第n層的輸入進行訓練,從而得到n階特征表示,然后,使用BP神經網絡利用有標簽數據進行有監督學習,在得到最后一層關聯特征與類別參數的同時,通過誤差反向傳播對整個網絡進行微調,算法步驟總結如下:
1)采用大量無標簽數據作為輸入,訓練第一層降噪自動編碼器,并得到輸入數據的一階特征表示。
2)把第一層的輸出作為第二層網絡的輸入,訓練第二層降噪自動編碼器,并得到第二層的二階特征表示。
3)類比步驟2),可得到第三層的三階特征表示。
4)將步驟1)-3)的輸出數據作為分類模板數據。
5)利用有標簽數據對BP網絡進行有監督學習,得到最后一層關聯特征與類別的參數,并通過誤差反向傳播對整個網絡進行微調,使用SDAE進行檢測分類的完整過程如圖3所示。

圖3 使用優化SDAE進行檢測分類的完整過程圖
為了測試本文優化SDAE對特征提取及分類的準確度,用MNIST數據集作為測試樣本集來驗證本文提出的算法的有效性,MNIST數據集是一種基本的手寫數字識別數據庫,被廣泛應用于深度學習架構,MNIST數據集分成兩部分:60000行的訓練數據集和10000行的測試數據集。在MNIST數據樣本上,對優化前后的SDAE進行了對比試驗,試驗結果如表1所示。
為了更好地對試驗結果進行分析,本文引入了檢測率、誤報率和平均檢測時間這3個概念,檢測率表示試驗數據集被正確分類的數據對象占數據集中所有對象的比例,誤報率表示試驗數據集被錯誤分類的數據對象占數據集中所有對象的比例,平均檢測時間表示檢測數據集中所有對象所用平均時間。

表1 優化前后的SDAE在MNIST數據集上的測試結果
以某B級路面,車速50km/h為例,將本課題自主研發的道路譜采集系統采集的三軸加速度和角加速度數據,通過ADAMS的車輛仿真得到的車身質心垂直加速度功率譜密度如圖4所示,俯仰角加速度功率譜密度如圖5所示。

圖4 汽車質心垂直加速度功率譜曲線

圖5 汽車質心俯仰角加速度功率譜曲線
本文選取車身質心垂直加速度功率譜密度和俯仰角加速度功率譜密度的共5000組數據,其中3000組數據作為訓練樣本數據,2000組數據作為測試數據,經過該訓練樣本訓練的優化前后的SDAE比較如表2所示。

表2 優化前后的SDAE算法試驗結果比較
為了驗證SDAE根據提取的特征進行分類的性能,用MNIST數據集對優化前后的SDAE進行了對比試驗,證實了SDAE的有效性,由表1可見,本文算法比傳統的BP神經網絡算法更優越,BP神經網絡的初始權值是隨機分配的,本文算法的初始權值是通過逐層貪婪訓練得到的,而不是隨機初始化,將本文算法與優化前的SDAE相比,本文算法在微調過程中,用遺傳算法優化BP網絡權值,最終使網絡收斂到理想值。
此外,在本文選取的測試樣本數據中,結果只有86組與期望值不一樣,其余1914組與期望值輸出結果相同,證明本文算法的檢測率高達95.7%,由表2可見,BP神經網絡算法的檢測率只有91.5%,SDAE的檢測率為93.6%。在誤報率上,三種算法的差距也相當明顯。
提出了優化的SDAE算法檢測路面平整度,通過降噪自動編碼器完成預訓練,并初始化樣本權重,再通過基于遺傳算法的BP神經網絡算法對整個網絡進行微調,然后在MNIST數據集上驗證算法的有效性,最后根據ADAMS車輛仿真模型,得到車身質心垂直加速度功率譜密度和俯仰角加速度功率譜密度曲線,并進行性能驗證,試驗結果表明,改進后的算法具有更強的優化能力,提高了檢測率,并能更有效地進行路面平整度的檢測。