黃 勇 郭劍輝
(南京理工大學計算機科學與工程學院 南京 210094)
地形識別主要是通過對圖像進行有效的分類識別算法然后再進行一系列的研究。這些圖像大多通過移動機器人在野外通過傳感器進行圖像采集而得到,移動機器人完成任務(wù)的首要任務(wù)是能夠分辨出可以運動的路徑與不可運動的路徑。根據(jù)機器人在野外是否可通行,可將地形類別分為可通行和不可通行兩類[2],根據(jù)機器人能否正常行駛將圖像中的數(shù)據(jù)標出為可通行范圍與不可通行的范圍。本文主要研究可通行地形識別分類算法的研究。
分類算法中支持向量機(Support Vector Machine,SVM)在小樣本數(shù)據(jù)集中具有良好的表現(xiàn),故而常被用于地形識別領(lǐng)域[2]。但SVM 屬于淺層學習算法,當數(shù)據(jù)較為復(fù)雜,樣本數(shù)量較少的情況下對復(fù)雜函數(shù)的表示能力有限,復(fù)雜地形的數(shù)據(jù)的維度較大,其精度也會受到一定的影響。BP 算法是一種包含多層神經(jīng)網(wǎng)絡(luò)的算法,可能會有以下問題:因不合適的初始值造成局部最優(yōu)、梯度彌散、訓(xùn)練時間較長等。深度學習因具有多層神經(jīng)網(wǎng)絡(luò),可以在低維度的數(shù)據(jù)中,通過強大的學習調(diào)整能力,從低層數(shù)據(jù)特征抽離較高的數(shù)據(jù)特征。Hinton[3]等提出的深度信念網(wǎng)絡(luò)(Deep Belief Network,DBN)通過對數(shù)據(jù)進行貪心無監(jiān)督的學習解決了傳統(tǒng)BP因不合適的初始值造成局部最優(yōu)和梯度彌散以及訓(xùn)練時間過長的問題。通過將受限波爾茲曼機(Restricted Boltzmann Machines,RBM)進行有效的堆疊,而最后一層RBM 結(jié)構(gòu)隱含層輸出結(jié)果作為分類器的輸入數(shù)據(jù),這樣就構(gòu)成了一種常用的深度信念網(wǎng)絡(luò)(Deep Belief Network,DBN)。
本文研究了深度信念網(wǎng)絡(luò)(Deep Belief Network,DBN)與 支 持 向 量機(Support Vector Machine,SVM)的理論后,通過有效的結(jié)合進行地形識別研究。提前標注數(shù)據(jù)圖片中感興趣的部分并劃分得到兩組數(shù)據(jù)集,訓(xùn)練集作為輸入數(shù)據(jù)輸入到初始構(gòu)建的DBN 網(wǎng)絡(luò)結(jié)構(gòu)中進行多次訓(xùn)練,將得到的模型用測試集驗證。實驗結(jié)果表明,本文提出的算法較SVM、GEPSVM等算法有了較大的提升。
OUTEX[4]是地形識別算法中常用的標準地形數(shù)據(jù)集。OUTEX 數(shù)據(jù)集共有20 幅圖像,考慮到實驗對比參數(shù)的唯一性,將全部圖像調(diào)整大小為640*480,OUTEX 數(shù)據(jù)集較小故而僅采用2 折交叉驗證的方式驗證,選擇10副為訓(xùn)練樣本,10副為測試樣本[6]。圖片的整體數(shù)據(jù)量過于龐大,整張圖片的識別較難分類,為了進行有效的評估,可以使用圖像識別算法中的局域二值模式,局域二值模式(LBP)[7]在紋理特征上具有較強的穩(wěn)定性可以較好地應(yīng)對如光照、陰影的影響,而等價模式的LBP 算法運行復(fù)雜度并不高[8]。本文采用特征提取的方法是融合特征提取方法,將LBP與顏色直方圖進行組合獲取特征,紋理特征提取時通過小塊來獲取,本文將圖像劃分為10*10 的小塊,最后的訓(xùn)練樣本與測試樣本的塊數(shù)為6561 塊和10094 塊。通過觀察可得OUTEX 數(shù)據(jù)集大致有4 類,分別為草地、樹、天空、路面。在OUTEX 數(shù)據(jù)集上完成地形識別中可通行識別任務(wù)。圖1顯示了三幅圖像實例。
圖1 OUTEX數(shù)據(jù)集中的三幅圖像
GEPSVM 是支持向量機的一種改進分類算法,其中兩個數(shù)據(jù)集它們彼此不平行。通過算法生成兩個平面時,使分類面盡可能地接近兩個數(shù)據(jù)集中的一個,通過盡可能遠離另一個數(shù)據(jù)集[5]。
樣本為n維空間上的數(shù)據(jù)集,通過GEPSVM找到兩個非平行平面:
獲得的兩個非平行平面,其受約束的條件是盡可能地接近某類樣本同時遠離另一類樣本。為了得到第一個非平行平面,有如下的約束條件:
其中δ項為懲罰參數(shù):
則式(3)轉(zhuǎn)為
由于求解廣義Rayleigh 商問題較難,通過轉(zhuǎn)換可以轉(zhuǎn)變?yōu)榍蠼廨^容易的廣義特征值來求解得:
通過式(6)可以得到最優(yōu)解即為最小特征值和特征向量。
同樣對第二個平面有
則式(7)轉(zhuǎn)化為
從而
使用GEPSVM技術(shù),分類算法可以實現(xiàn)對地形識別的可通行處理。
GEPSVM 算法應(yīng)用于地形識別的算法流程如下:
1)樣本數(shù)據(jù)劃分為訓(xùn)練集和測試集,若樣本數(shù)量較少使用2折交叉驗證的方式。
2)在訓(xùn)練集中的少數(shù)類樣本集中,通過計算兩點的歐氏距離得到最近的k 個最近鄰點(一般k =5)。
3)通過多次迭代對算法進行優(yōu)化,最終得到最優(yōu)懲罰參數(shù)C。
4)將懲罰參數(shù)C 用于GEPSVM 算法中學習得到兩個非平行平面。
5)最后通過測試集進行分類器算法的驗證。
引入拉格朗日乘子后得:
將式(13)代入(12),即可將L(w,b,α)中的w和b消去,再考慮式(14)中的約束,就得到式(10)的對偶問題
深層信念網(wǎng)絡(luò)(Deep Belief Network,DBN)[3]是由多層受限波爾茲曼機(RBM)進行有效的組合,以及最后一層的分類器構(gòu)成,最后一層的RBM 作為分類器的輸入數(shù)據(jù),經(jīng)過了DBN 的網(wǎng)絡(luò)結(jié)構(gòu)可以提取到底層數(shù)據(jù)更高級的特征表達,進而得到的分類器分類效果更佳。DBN是為了解決傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的缺陷而提出的網(wǎng)絡(luò)結(jié)構(gòu),這種結(jié)構(gòu)可以組合成多種結(jié)構(gòu),是一種極其強大的深度學習思想應(yīng)用,故而被廣泛應(yīng)用,而地形識別的分類算法分類器也會因為較差的數(shù)據(jù)集導(dǎo)致分類效果不佳,所以可以將其應(yīng)用在地形識別領(lǐng)域。DBN 的主要訓(xùn)練流程有無監(jiān)督的預(yù)訓(xùn)練(pre-training)過程以及有監(jiān)督的微調(diào)(fine-tuning)過程。初始權(quán)值后通過預(yù)訓(xùn)練調(diào)整每層網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)值,上一層RBM 輸出的數(shù)據(jù)作為下一層輸入數(shù)據(jù),在預(yù)訓(xùn)練結(jié)束后,對最后一層的BP網(wǎng)絡(luò)進行有監(jiān)督的訓(xùn)練。通過設(shè)置好的誤差范圍對整個DBN進行微調(diào)。
玻爾茲曼機(Boltzmann Machine,BM)是由一層可視層與一層隱含層組合而成,是一個全連接的網(wǎng)絡(luò)結(jié)構(gòu),通過限制僅在層間連接形成受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)[14],RBM是一個兩層的有向無環(huán)圖,節(jié)點取值為0 或1 可以作為構(gòu)建深層結(jié)構(gòu)的基本單元[11]。由于BM 層內(nèi)連接層外全連接,使得其計算量倍增,而RBM 相較BM計算量大大減小。RBM的結(jié)構(gòu)如圖2。
圖2 RBM的結(jié)構(gòu)
可視層和隱含層組成的系統(tǒng)的能量公式如下:
可視層(變量為v,偏置量為a)、隱層(變量為h,偏置量為b),通過多次迭代可以求得最終的激活條件為
其中σ是sigmoid函數(shù)。σ(z)=1/(1+e-z)。
RBM參數(shù)更新公式如下(其中ε為學習率,l層表示為重構(gòu)層的數(shù)據(jù))[9]:
DBN-SVM分類算法流程如下:
1)設(shè)置初始化訓(xùn)練RBM 迭代次數(shù)gn,權(quán)值學習率,可視節(jié)點學習率,隱含結(jié)點學習率,權(quán)重衰減系數(shù)等。
2)進行歸一化處理,得到數(shù)據(jù)V[NI][NF],其中NI,NF 分別為輸入個數(shù)和特征個數(shù),轉(zhuǎn)換成DBN能夠處理的格式[10]。
3)對訓(xùn)練樣本構(gòu)造,分塊,批量。
4)初始化3層RBM,n=3 同時設(shè)置RBM各隱含層的節(jié)點數(shù),使用CD-K 算法訓(xùn)練RBM,第一次的RBM的可視層不是二值的,而隱含層是二值的。
5)初始化DBN網(wǎng)絡(luò)的權(quán)值W=[W1,W2,W3] 。
6)將通過RBM 結(jié)構(gòu)隱含層后的輸出數(shù)據(jù)作為下一個RBM的輸入數(shù)據(jù),下同。
7)將訓(xùn)練好的RBM 的權(quán)重和偏執(zhí)堆棧成DBN。
8)調(diào)用DBN 訓(xùn)練算法,DBN 是無監(jiān)督的算法用于提取特征,若需要得到較好魯棒性的網(wǎng)絡(luò)結(jié)構(gòu)需要加上有監(jiān)督的回調(diào)優(yōu)化權(quán)值。
9)通過有監(jiān)督的fine-tune 優(yōu)化權(quán)值W,DBN最后的分類器選擇SVM。
10)將測試數(shù)據(jù)集中的樣本通過調(diào)整后的網(wǎng)絡(luò)結(jié)構(gòu),并將DBN輸出的結(jié)果通過SVM進行分類。
在分類算法如果僅使用整體分類算法的精確度作為評價指標[12],若數(shù)據(jù)集包含兩類,一類占比99%,另一類占比1%,即使1%全部分類錯誤,整體仍然有極高的精確度,導(dǎo)致最終的分類器性能較差??梢钥紤]使用Recall、Accuracy、F-measure、G-mean 等指標,這些分類評價考慮了少數(shù)類的樣本分類性能,其中Recall用于評價少數(shù)樣本的正確率,G-mean可以對整體的數(shù)據(jù)分類性能進行評價,本文將采用Accuracy、Recall、G-mean 作為主要評價分類評價指標[13]。通過對OUTEX 數(shù)據(jù)集進行觀察發(fā)現(xiàn),假設(shè)可通行類為少數(shù)類是正樣本。則草和路為正樣本,樹和天空為負樣本。T 表示分類正確,F(xiàn) 表示分類錯誤,P 表示為正類,N 表示為負類。TP、TN、FN、FP 分別代表正確分類的正類數(shù)量,正確分類的負類數(shù)量,錯誤分類的負類數(shù)量和錯誤分類的正類數(shù)量。如表1 所示。
表1 分類算法混淆矩陣
評價指標中較為常見的即為準確率,準確率是指通過分類器預(yù)測的樣本示例正確分類的樣本占總體樣本的百分比,可由下式計算:
查準率Precision 的高低表示對于數(shù)據(jù)分類器分類效果的好壞。
召回率Recall是指分類正確的正類樣本TP占全部正類樣本TP+FN的百分比。
Kubat 等提出幾何平均準則(geometric means metric,G-mean)用于不平衡數(shù)據(jù)分類算法評價指標[15]。G-mean 是指真陽性(TP)樣本在正確分類樣本TP+FN的比率與真陰性(TN)在分類錯誤樣本TN+FP比率的乘積平方,G-mean 可以評價分類器性能以及各類別的準確率[13]。
實驗使用Matlab R2017a 進行仿真。實驗設(shè)備如 下:16GB 內(nèi) 存,處 理 器Intel(R)Core(TM)i5-9400F CPU @2.90GHz 2.90GHz,顯卡為NVIDIA GeForce GTX1660(6GB)。SVM 分 類 器 使 用 了LIBSVM 工具箱。DBN訓(xùn)練方法使用了DeepLearn-Toolbox 工具箱。由于地形識別領(lǐng)域暫時沒有通用的標準數(shù)據(jù)集,研究后多個地形數(shù)據(jù)集后,采用OUTEX 數(shù)據(jù)集對提出的算法進行實驗驗證。通過對比SVM、GEPSVM 以及DBN+SVM 等的算法。如圖3,4,5為實驗原圖以及對比實驗結(jié)果圖。
圖3 實驗原圖
圖4 GEPSVM算法處理結(jié)果
圖5 DBN-SVM算法處理結(jié)果
由前文的SVM 實驗可視化的結(jié)果圖可以發(fā)現(xiàn),DBN-SVM分類的清晰度明顯上升,層次化樹木都較為清晰。第一幅圖中天空、地面樹木、草地都是分布較為均衡,所以分類效果較好。同時可以發(fā)現(xiàn)陰影的一些不同,一些因為陽光導(dǎo)致路面上的陰影也沒能造成較大影響。第二幅圖片中樹木可以清晰分辨,同時天空因為交集較少所以分類很好而草地與陰影由于光照的影響,導(dǎo)致分類的結(jié)果有些偏差。第三幅圖片中樹的樣本比例最大,而天空較少,在光照陰影情況下造成了樹木之間有些差異,對算法的結(jié)果造成了一些影響。由于OUTEX 數(shù)據(jù)集樹木與草地,路面與草地之間交叉較多,同時光照和陰影使草地分類出現(xiàn)了一些偏差。樹枝與陰影的重疊,對于分類的結(jié)果也是有些影響的,通過與SVM 可視化效果圖對比,明顯發(fā)現(xiàn)通過DBN 與SVM 結(jié)合后形成的網(wǎng)絡(luò)結(jié)果對于可視化結(jié)果有極大的提高,但DBN 在特征相似的特征間學習能力還有一些欠缺,可能是參數(shù)學習的并不足夠,更有可能是樣本數(shù)量較少,訓(xùn)練得到的模型不夠完善,缺少了一些魯棒性。
表2~表4 為OUTEX 數(shù)據(jù)集下算法的Accuracy、Recall、G-mean,我們將其與SVM、GEPSVM 進行對比。通過比較發(fā)現(xiàn),在精確度,召回率以及幾何平均值上,DBN-SVM 在訓(xùn)練集上的明顯較高。但是在測試集上,發(fā)現(xiàn)訓(xùn)練的結(jié)果不如訓(xùn)練集效果好??赡苁且驗橛?xùn)練樣本較少,導(dǎo)致模型過擬合現(xiàn)象,不能適應(yīng)新的測試樣本數(shù)據(jù)集。
表2 OUTEX數(shù)據(jù)集下算法的Accuracy值
表3 OUTEX數(shù)據(jù)集下算法的Recall值
表4 OUTEX數(shù)據(jù)集下算法的G-mean值
針對地形識別領(lǐng)域,從分類算法的精度問題角度出發(fā),由于傳統(tǒng)的分類算法如SVM、GEPSVM 等淺層學習算法在復(fù)雜地形環(huán)境中的函數(shù)表征能力不足,而深度學習領(lǐng)域中對于復(fù)雜函數(shù)的表達能力較強,同時深度學習領(lǐng)域中的深度信念網(wǎng)絡(luò)具有多層RBM 可以從復(fù)雜的底層特征數(shù)據(jù)中進一步提取出較為高級的特征等。通過研究了深度信念網(wǎng)絡(luò)(DBN)與支持向量機(SVM),并將其進行結(jié)合后使用OUTEX 地形數(shù)據(jù)集對我們提出的算法進行了檢驗,實驗結(jié)果表明結(jié)合DBN-SVM 算法較其他分類算法有較好的性能。在訓(xùn)練集上較其他分類算法的Accuracy 和Recall 以及G-mean 等評價指標有了明顯的進步,但是在測試集的表現(xiàn)并不理想。有一些過擬合現(xiàn)象出現(xiàn)。深度學習往往建立在大數(shù)據(jù)、大樣本集的前提下進行研究的,而OUTEX 數(shù)據(jù)集較小可能造成模型過于契合訓(xùn)練集,也有可能是參數(shù)訓(xùn)練較差如迭代次數(shù)不足或迭代次數(shù)過多等等導(dǎo)致的問題,但是總體而言相對于淺層學習算法而言,DBN-SVM分類雖然效果不是特別的優(yōu)秀,但是在地形識別領(lǐng)域中的研究提供新的研究方向。