黃 勇 郭劍輝
(南京理工大學計算機科學與工程學院 南京 210094)
地形識別主要是通過對圖像進行有效的分類識別算法然后再進行一系列的研究。這些圖像大多通過移動機器人在野外通過傳感器進行圖像采集而得到,移動機器人完成任務的首要任務是能夠分辨出可以運動的路徑與不可運動的路徑。根據機器人在野外是否可通行,可將地形類別分為可通行和不可通行兩類[2],根據機器人能否正常行駛將圖像中的數據標出為可通行范圍與不可通行的范圍。本文主要研究可通行地形識別分類算法的研究。
分類算法中支持向量機(Support Vector Machine,SVM)在小樣本數據集中具有良好的表現,故而常被用于地形識別領域[2]。但SVM 屬于淺層學習算法,當數據較為復雜,樣本數量較少的情況下對復雜函數的表示能力有限,復雜地形的數據的維度較大,其精度也會受到一定的影響。BP 算法是一種包含多層神經網絡的算法,可能會有以下問題:因不合適的初始值造成局部最優、梯度彌散、訓練時間較長等。深度學習因具有多層神經網絡,可以在低維度的數據中,通過強大的學習調整能力,從低層數據特征抽離較高的數據特征。Hinton[3]等提出的深度信念網絡(Deep Belief Network,DBN)通過對數據進行貪心無監督的學習解決了傳統BP因不合適的初始值造成局部最優和梯度彌散以及訓練時間過長的問題。通過將受限波爾茲曼機(Restricted Boltzmann Machines,RBM)進行有效的堆疊,而最后一層RBM 結構隱含層輸出結果作為分類器的輸入數據,這樣就構成了一種常用的深度信念網絡(Deep Belief Network,DBN)。
本文研究了深度信念網絡(Deep Belief Network,DBN)與 支 持 向 量機(Support Vector Machine,SVM)的理論后,通過有效的結合進行地形識別研究。提前標注數據圖片中感興趣的部分并劃分得到兩組數據集,訓練集作為輸入數據輸入到初始構建的DBN 網絡結構中進行多次訓練,將得到的模型用測試集驗證。實驗結果表明,本文提出的算法較SVM、GEPSVM等算法有了較大的提升。
OUTEX[4]是地形識別算法中常用的標準地形數據集。OUTEX 數據集共有20 幅圖像,考慮到實驗對比參數的唯一性,將全部圖像調整大小為640*480,OUTEX 數據集較小故而僅采用2 折交叉驗證的方式驗證,選擇10副為訓練樣本,10副為測試樣本[6]。圖片的整體數據量過于龐大,整張圖片的識別較難分類,為了進行有效的評估,可以使用圖像識別算法中的局域二值模式,局域二值模式(LBP)[7]在紋理特征上具有較強的穩定性可以較好地應對如光照、陰影的影響,而等價模式的LBP 算法運行復雜度并不高[8]。本文采用特征提取的方法是融合特征提取方法,將LBP與顏色直方圖進行組合獲取特征,紋理特征提取時通過小塊來獲取,本文將圖像劃分為10*10 的小塊,最后的訓練樣本與測試樣本的塊數為6561 塊和10094 塊。通過觀察可得OUTEX 數據集大致有4 類,分別為草地、樹、天空、路面。在OUTEX 數據集上完成地形識別中可通行識別任務。圖1顯示了三幅圖像實例。

圖1 OUTEX數據集中的三幅圖像
GEPSVM 是支持向量機的一種改進分類算法,其中兩個數據集它們彼此不平行。通過算法生成兩個平面時,使分類面盡可能地接近兩個數據集中的一個,通過盡可能遠離另一個數據集[5]。
樣本為n維空間上的數據集,通過GEPSVM找到兩個非平行平面:

獲得的兩個非平行平面,其受約束的條件是盡可能地接近某類樣本同時遠離另一類樣本。為了得到第一個非平行平面,有如下的約束條件:

其中δ項為懲罰參數:

則式(3)轉為

由于求解廣義Rayleigh 商問題較難,通過轉換可以轉變為求解較容易的廣義特征值來求解得:

通過式(6)可以得到最優解即為最小特征值和特征向量。
同樣對第二個平面有

則式(7)轉化為

從而

使用GEPSVM技術,分類算法可以實現對地形識別的可通行處理。
GEPSVM 算法應用于地形識別的算法流程如下:
1)樣本數據劃分為訓練集和測試集,若樣本數量較少使用2折交叉驗證的方式。
2)在訓練集中的少數類樣本集中,通過計算兩點的歐氏距離得到最近的k 個最近鄰點(一般k =5)。
3)通過多次迭代對算法進行優化,最終得到最優懲罰參數C。
4)將懲罰參數C 用于GEPSVM 算法中學習得到兩個非平行平面。
5)最后通過測試集進行分類器算法的驗證。

引入拉格朗日乘子后得:


將式(13)代入(12),即可將L(w,b,α)中的w和b消去,再考慮式(14)中的約束,就得到式(10)的對偶問題

深層信念網絡(Deep Belief Network,DBN)[3]是由多層受限波爾茲曼機(RBM)進行有效的組合,以及最后一層的分類器構成,最后一層的RBM 作為分類器的輸入數據,經過了DBN 的網絡結構可以提取到底層數據更高級的特征表達,進而得到的分類器分類效果更佳。DBN是為了解決傳統BP神經網絡的缺陷而提出的網絡結構,這種結構可以組合成多種結構,是一種極其強大的深度學習思想應用,故而被廣泛應用,而地形識別的分類算法分類器也會因為較差的數據集導致分類效果不佳,所以可以將其應用在地形識別領域。DBN 的主要訓練流程有無監督的預訓練(pre-training)過程以及有監督的微調(fine-tuning)過程。初始權值后通過預訓練調整每層網絡結構的權值,上一層RBM 輸出的數據作為下一層輸入數據,在預訓練結束后,對最后一層的BP網絡進行有監督的訓練。通過設置好的誤差范圍對整個DBN進行微調。
玻爾茲曼機(Boltzmann Machine,BM)是由一層可視層與一層隱含層組合而成,是一個全連接的網絡結構,通過限制僅在層間連接形成受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)[14],RBM是一個兩層的有向無環圖,節點取值為0 或1 可以作為構建深層結構的基本單元[11]。由于BM 層內連接層外全連接,使得其計算量倍增,而RBM 相較BM計算量大大減小。RBM的結構如圖2。

圖2 RBM的結構
可視層和隱含層組成的系統的能量公式如下:

可視層(變量為v,偏置量為a)、隱層(變量為h,偏置量為b),通過多次迭代可以求得最終的激活條件為

其中σ是sigmoid函數。σ(z)=1/(1+e-z)。
RBM參數更新公式如下(其中ε為學習率,l層表示為重構層的數據)[9]:

DBN-SVM分類算法流程如下:
1)設置初始化訓練RBM 迭代次數gn,權值學習率,可視節點學習率,隱含結點學習率,權重衰減系數等。
2)進行歸一化處理,得到數據V[NI][NF],其中NI,NF 分別為輸入個數和特征個數,轉換成DBN能夠處理的格式[10]。
3)對訓練樣本構造,分塊,批量。
4)初始化3層RBM,n=3 同時設置RBM各隱含層的節點數,使用CD-K 算法訓練RBM,第一次的RBM的可視層不是二值的,而隱含層是二值的。
5)初始化DBN網絡的權值W=[W1,W2,W3] 。
6)將通過RBM 結構隱含層后的輸出數據作為下一個RBM的輸入數據,下同。
7)將訓練好的RBM 的權重和偏執堆棧成DBN。
8)調用DBN 訓練算法,DBN 是無監督的算法用于提取特征,若需要得到較好魯棒性的網絡結構需要加上有監督的回調優化權值。
9)通過有監督的fine-tune 優化權值W,DBN最后的分類器選擇SVM。
10)將測試數據集中的樣本通過調整后的網絡結構,并將DBN輸出的結果通過SVM進行分類。
在分類算法如果僅使用整體分類算法的精確度作為評價指標[12],若數據集包含兩類,一類占比99%,另一類占比1%,即使1%全部分類錯誤,整體仍然有極高的精確度,導致最終的分類器性能較差。可以考慮使用Recall、Accuracy、F-measure、G-mean 等指標,這些分類評價考慮了少數類的樣本分類性能,其中Recall用于評價少數樣本的正確率,G-mean可以對整體的數據分類性能進行評價,本文將采用Accuracy、Recall、G-mean 作為主要評價分類評價指標[13]。通過對OUTEX 數據集進行觀察發現,假設可通行類為少數類是正樣本。則草和路為正樣本,樹和天空為負樣本。T 表示分類正確,F 表示分類錯誤,P 表示為正類,N 表示為負類。TP、TN、FN、FP 分別代表正確分類的正類數量,正確分類的負類數量,錯誤分類的負類數量和錯誤分類的正類數量。如表1 所示。

表1 分類算法混淆矩陣
評價指標中較為常見的即為準確率,準確率是指通過分類器預測的樣本示例正確分類的樣本占總體樣本的百分比,可由下式計算:

查準率Precision 的高低表示對于數據分類器分類效果的好壞。

召回率Recall是指分類正確的正類樣本TP占全部正類樣本TP+FN的百分比。

Kubat 等提出幾何平均準則(geometric means metric,G-mean)用于不平衡數據分類算法評價指標[15]。G-mean 是指真陽性(TP)樣本在正確分類樣本TP+FN的比率與真陰性(TN)在分類錯誤樣本TN+FP比率的乘積平方,G-mean 可以評價分類器性能以及各類別的準確率[13]。

實驗使用Matlab R2017a 進行仿真。實驗設備如 下:16GB 內 存,處 理 器Intel(R)Core(TM)i5-9400F CPU @2.90GHz 2.90GHz,顯卡為NVIDIA GeForce GTX1660(6GB)。SVM 分 類 器 使 用 了LIBSVM 工具箱。DBN訓練方法使用了DeepLearn-Toolbox 工具箱。由于地形識別領域暫時沒有通用的標準數據集,研究后多個地形數據集后,采用OUTEX 數據集對提出的算法進行實驗驗證。通過對比SVM、GEPSVM 以及DBN+SVM 等的算法。如圖3,4,5為實驗原圖以及對比實驗結果圖。

圖3 實驗原圖

圖4 GEPSVM算法處理結果

圖5 DBN-SVM算法處理結果
由前文的SVM 實驗可視化的結果圖可以發現,DBN-SVM分類的清晰度明顯上升,層次化樹木都較為清晰。第一幅圖中天空、地面樹木、草地都是分布較為均衡,所以分類效果較好。同時可以發現陰影的一些不同,一些因為陽光導致路面上的陰影也沒能造成較大影響。第二幅圖片中樹木可以清晰分辨,同時天空因為交集較少所以分類很好而草地與陰影由于光照的影響,導致分類的結果有些偏差。第三幅圖片中樹的樣本比例最大,而天空較少,在光照陰影情況下造成了樹木之間有些差異,對算法的結果造成了一些影響。由于OUTEX 數據集樹木與草地,路面與草地之間交叉較多,同時光照和陰影使草地分類出現了一些偏差。樹枝與陰影的重疊,對于分類的結果也是有些影響的,通過與SVM 可視化效果圖對比,明顯發現通過DBN 與SVM 結合后形成的網絡結果對于可視化結果有極大的提高,但DBN 在特征相似的特征間學習能力還有一些欠缺,可能是參數學習的并不足夠,更有可能是樣本數量較少,訓練得到的模型不夠完善,缺少了一些魯棒性。
表2~表4 為OUTEX 數據集下算法的Accuracy、Recall、G-mean,我們將其與SVM、GEPSVM 進行對比。通過比較發現,在精確度,召回率以及幾何平均值上,DBN-SVM 在訓練集上的明顯較高。但是在測試集上,發現訓練的結果不如訓練集效果好。可能是因為訓練樣本較少,導致模型過擬合現象,不能適應新的測試樣本數據集。

表2 OUTEX數據集下算法的Accuracy值

表3 OUTEX數據集下算法的Recall值

表4 OUTEX數據集下算法的G-mean值
針對地形識別領域,從分類算法的精度問題角度出發,由于傳統的分類算法如SVM、GEPSVM 等淺層學習算法在復雜地形環境中的函數表征能力不足,而深度學習領域中對于復雜函數的表達能力較強,同時深度學習領域中的深度信念網絡具有多層RBM 可以從復雜的底層特征數據中進一步提取出較為高級的特征等。通過研究了深度信念網絡(DBN)與支持向量機(SVM),并將其進行結合后使用OUTEX 地形數據集對我們提出的算法進行了檢驗,實驗結果表明結合DBN-SVM 算法較其他分類算法有較好的性能。在訓練集上較其他分類算法的Accuracy 和Recall 以及G-mean 等評價指標有了明顯的進步,但是在測試集的表現并不理想。有一些過擬合現象出現。深度學習往往建立在大數據、大樣本集的前提下進行研究的,而OUTEX 數據集較小可能造成模型過于契合訓練集,也有可能是參數訓練較差如迭代次數不足或迭代次數過多等等導致的問題,但是總體而言相對于淺層學習算法而言,DBN-SVM分類雖然效果不是特別的優秀,但是在地形識別領域中的研究提供新的研究方向。