劉 路
(桂林航天工業(yè)學院,廣西桂林 541004)
近年來,智能識別和人工神經(jīng)網(wǎng)絡一直都是熱門的研究方向,先后有谷歌、百度、華為和阿里巴巴等知名企業(yè)加入到其研發(fā)的隊伍行列中。人工神經(jīng)網(wǎng)絡的研究涉及多學科多領域,應用范圍也非常廣泛,并在不斷地擴展變寬,包括智能識別、模型構建、序列分析和生產(chǎn)控制等。在人工神經(jīng)網(wǎng)絡的研究領域,最熱門的研究對象當屬神經(jīng)網(wǎng)絡的學習算法,其中,對前饋神經(jīng)網(wǎng)絡學習算法的研究尤為深入,而BP神經(jīng)網(wǎng)絡是前饋神經(jīng)網(wǎng)絡中最具代表性的網(wǎng)絡,對其改進優(yōu)化的研究也是當今的熱點之一。
目前,遙感圖像下車輛目標的模式識別系統(tǒng)多數(shù)采用的是傳統(tǒng)BP神經(jīng)網(wǎng)絡,傳統(tǒng)的BP神經(jīng)網(wǎng)絡算法是基于梯度的最速下降法,因而存在固有的缺陷,如網(wǎng)絡訓練易陷入局部極小值、學習過程收斂速度緩慢、網(wǎng)絡的結構難以確定、所設計網(wǎng)絡泛化能力不能保證等,這些缺陷一定程度上影響了車輛目標模式識別系統(tǒng)的識別效率和準確度。李友[1]提出將含有車輛的道路從衛(wèi)星圖像中截取出來,結合灰度等紋理特征和BP神經(jīng)網(wǎng)絡的方法檢測車輛目標。陳雪云[2]針對傳統(tǒng)BP神經(jīng)網(wǎng)絡學習效率低下的問題,提出采用單純性體積紋理算子優(yōu)化訓練樣本,減少訓練成本。本文提出采用隨機梯度下降法和深層滑動神經(jīng)網(wǎng)絡算法對傳統(tǒng)BP神經(jīng)網(wǎng)絡進行改進,能有效提高車輛目標識別系統(tǒng)的識別速度和精度。
傳統(tǒng)的BP神經(jīng)網(wǎng)絡算法聚焦的對象是其網(wǎng)絡閉值和權值的學習[3],概括來說BP神經(jīng)網(wǎng)絡的學習過程主要是由信號正傳播和誤差反傳播這兩個過程構成。信號正傳播過程,首先是輸入信號從輸入層經(jīng)隱含層,傳遞至輸出層,從而在網(wǎng)絡輸出端產(chǎn)生關聯(lián)信號,若在輸出端所產(chǎn)生的關聯(lián)信號與期望相差過大,則進入到誤差信號反傳播過程;誤差信號反傳播過程,與信號正傳播過程相反,誤差信號由輸出端開始反向逐層回傳,回傳過程中每層網(wǎng)絡的權值由誤差信號進行修正,使輸出端的實際輸出信號在通過對網(wǎng)絡權值的多次修正后更接近期望值。BP算法的步驟如下。
(1)初始化權值:對權值矩陣賦隨機數(shù)。
(2)假設當前計劃輸入為p個樣本,從1號樣本開始,逐個輸入學習樣本至P號。
(3)按從輸入層到輸出層的先后順序,計算網(wǎng)絡各層的輸出信號。
(4)求各層的反傳播誤差信號:
(5)記錄已學習過的樣本數(shù)p。如果p<P,轉(zhuǎn)到第二步繼續(xù)計算;如果p=P,轉(zhuǎn)到步驟(6)。
(6)按權值修正公式修正各層的權值和閾值。
深層滑動神經(jīng)網(wǎng)絡是一種新穎的深度學習方法[2],其聚焦于若干局部關鍵區(qū)域,通過局部識別整體,因此不需要做全域的卷積,從而降低了計算量。深層滑動神經(jīng)網(wǎng)絡包括2個部分:特征提取部分和1個分類器部分。其特征分類器部分和傳統(tǒng)的BP神經(jīng)網(wǎng)絡一樣,都是由感知器構成;特征提取部分由2種網(wǎng)絡層交替組成:候選窗定位層、特征提取層、候選窗定位層、特征提取層……,每2層循環(huán)1次。
深層滑動神經(jīng)網(wǎng)絡與BP神經(jīng)網(wǎng)絡除結構外最大的不同是輸入對象的不同。深層神經(jīng)滑動網(wǎng)絡特征提取部分是用候選窗提取出的目標特征[4],并作為分類器輸入。分類器就是BP神經(jīng)網(wǎng)絡,是利用隨機梯度下降法改進BP神經(jīng)網(wǎng)絡,BP算法的改進過程如下。
傳統(tǒng)BP算法在調(diào)整權值時候,訓練易陷入局部極小值,學習過程收斂緩慢,時常出現(xiàn)訓練過程發(fā)生震蕩的情況。為了提高網(wǎng)絡的訓練速度,可以從權值調(diào)整這一環(huán)節(jié)出發(fā),引入誤差函數(shù):
調(diào)整θ值,使得誤差函數(shù)最小化。誤差函數(shù)J(θ)構成一個曲面或者曲線,目的是找到該群面的最低點。隨機梯度下降法的內(nèi)核在于可以假設站在誤差曲面上的隨機一點,若要想以最快的速度從該點達到誤差曲面的最低點,則要沿著坡度最大、最陡的路線行進,即梯度的反方向,本質(zhì)上就是一個求偏導數(shù)的過程:
參數(shù)θ的更新過程可以描述為:
上述過程和傳統(tǒng)BP神經(jīng)網(wǎng)絡所使用的最大梯度下降法[5]相同,但在輸入樣本這一環(huán)節(jié)隨機梯度下降法和最大梯度下降法有所不同,最大梯度下降法輸入樣本采用的是順序輸入樣本的方式;隨機梯度下降法采用的是隨機選取樣本的方式[6],把原樣本排序充分打亂后隨機挑選樣本作為輸入,這也充分體現(xiàn)了該算法的隨機性。改進后的BP神經(jīng)網(wǎng)絡運算流程如圖1所示。
圖1 隨機梯度下降法流程
利用隨機梯度下降法改進后的BP算法的運算步驟分成以下幾步。
(1)初始化權值矩陣。
(2)對權值矩陣賦予權值調(diào)整量ΔW。
(3)隨機選擇樣本的局部特征作為輸入。設置樣本計數(shù)器p。
(4)計算隱層、輸出層各單元輸出。
(5)計算目標值和實際值的平方誤差。
(6)若ΔEi減小,則計算各層權值調(diào)整量并調(diào)整權值;否則,返回步驟(2)賦予新權值調(diào)整量-ΔW。
(7)記錄已學習過的樣本數(shù)p。如果p<P,轉(zhuǎn)到步驟(2)繼續(xù)計算;如果p=P,轉(zhuǎn)到步驟(6)。
基于改進的BP神經(jīng)網(wǎng)絡的車輛目標識別算法,主要技術手段是運用候選窗特征提取算法提取出目標車輛局部特征值,輸入到采用隨機梯度下降法改進后的BP神經(jīng)網(wǎng)絡進行訓練,從而達到通過車輛局部特征識別整體的目的。
(1)確定候選窗口的尺寸
用于對改進后的BP神經(jīng)網(wǎng)絡進行訓練的圖樣尺寸為21×21像素,所以候選窗口的尺寸大小和圖樣大小保持一致,也為21×21像素。
(2)定義初始變量
讀取圖樣,確定其大小為m×n后,定義行變量i和列變量j,初始值都為1。
(3)候選窗的循環(huán)檢測
候選窗的檢測順序遵循從上至下、從左到右的原則進行逐個檢測,循環(huán)往復。檢測過程中,依據(jù)候選窗的識別定位結果,若識別為車輛目標,則候選窗對該圖樣進行記錄;若識別為非車輛目標,則越過該圖樣繼續(xù)檢測下一圖樣,直到所識別的圖樣為車輛目標后,對圖樣進行記錄。
在定位好的候選窗中,選取像素點(X,Y)作為圓心,設置采樣圓半徑R,一般選取候選窗中心像素點為圓心。以圓心作為頂點,連接任意2個采樣點(2個采樣點與圓心不能構成直徑)圍成三角形,共有個三角形,利用秦九韶海倫公式計算所圍成的各三角形面積和圓域內(nèi)所有三角形區(qū)域內(nèi)灰度變化,找出差值最大的點,置該點對應位置為1,否則置0。統(tǒng)計區(qū)域內(nèi)灰度變化差值最大點的數(shù)目,得出直方圖特征。
把候選窗提取出的局部紋理特征送入改進的BP神經(jīng)網(wǎng)絡進行訓練,通過隨機梯度下降法觀察誤差減小曲線,也可以通過調(diào)整圖像尺度,隱含層數(shù),隱含層節(jié)點數(shù)和學習速率,使得網(wǎng)絡具有獲得較高精度的識別能力。
樣本數(shù)量對神經(jīng)網(wǎng)絡的訓練效果有較大程度的影響,若訓練樣本數(shù)量的選取過少,會導致網(wǎng)絡處于欠學習的狀態(tài),影響神經(jīng)網(wǎng)絡的識別能力;反之,若樣本數(shù)量選取過多,不僅會增加訓練成本,還會網(wǎng)絡發(fā)生過學習現(xiàn)象[7]。因此,訓練樣本選取的關鍵在于盡可能挑選最具有代表性的樣本,以避免欠學習和過學習現(xiàn)象的發(fā)生,也可以節(jié)約訓練成本。
本文所采用自行建立的車輛目標數(shù)據(jù)庫為包括63張像素大小為1 368×972的照片,包含6 771輛汽車,所有的照片都具有相同的分辨率,均采自谷歌地球的美國舊金山市區(qū)。圖像中各車輛車身的長度約為42~58個像素,寬度約為30~40個像素。由于圖片中的車輛目標都是由一系列的像素點集組成,因此車輛周邊環(huán)境對檢測結果的準確性具有一定程度上影響。對此,樣本的采集需要包含多種車輛情況,例如單一車輛、屋檐下的車輛、道路旁的車輛和被樹木和其他建筑陰影遮擋的車輛等,所選取的圖樣需要包含車輛識別中絕大多數(shù)典型的車輛環(huán)境情況。采集的圖片如圖2所示。
圖2 采集的遙感路面
采集好圖片后,對圖片里同一目標和非同一目標進行雙點標定處理。對同一目標的標定,采取首尾標定的方式,即在頭和尾處各點一點進行連線;對非車輛樣本,采取垂直均勻標定的方式,標定的兩點以兩目標之間最明顯的特征邊界為中心,在特征邊界中心點兩旁取距離相等的兩點進行標定,同時標定的兩點必須要在不同目標上。具體做法如圖3~4所示。
圖3 同一目標的標定
圖4 非同一目標的標定
標定完成之后,選取3 000個標定好的同一目標樣本作為正樣本,建立正樣本數(shù)據(jù)庫。選取3 000個標定好的非同一目標樣本作為反樣本,建立反樣本數(shù)據(jù)庫,生成樣本數(shù)據(jù)庫庫的圖像大小為21×21。
由于實驗設備的限制,本次實驗是從之前建立好的樣本庫中隨機選取200個正樣本和200個負樣本作為訓練樣本,選20個正樣本和20個負樣本作為測試樣本,圖像尺度均為21×21,每次輸入圖像個數(shù)設為1,核函數(shù)選tanh核,隱含層數(shù)設為3,隱含層節(jié)點數(shù)為5,初始化步長為0.05,學習速率為0.02,迭代次數(shù)為4 000次。分別采用傳統(tǒng)的BP神網(wǎng)絡和改進后的BP神經(jīng)網(wǎng)絡進行實驗,計算各自的識別精度,繪制出誤差曲線,如圖5~6所示。圖5顯示測試誤差為11,識別精度為72.5%。圖6顯示測試誤差為6,識別精度為85%。由此可見,隨機梯度下降法改進后的BP神經(jīng)網(wǎng)絡具有更加理想的精度和識別能力[8]。
圖5 傳統(tǒng)BP神經(jīng)網(wǎng)絡的實驗誤差曲線
圖6 改進的BP神經(jīng)網(wǎng)絡的實驗誤差曲線
本文針對傳統(tǒng)BP神經(jīng)網(wǎng)絡所表現(xiàn)出的缺陷,如易成局部極小而得不到全局最優(yōu)、訓練次數(shù)多、學習效率低、收斂速度慢,提出用隨機梯度下降法改良傳統(tǒng)BP算法。中心思想是對誤差函數(shù)求偏導,把該偏導作為權值更新量生成新權值。本文所提出的改進的BP神經(jīng)網(wǎng)絡的車輛目標識別算法,經(jīng)實驗證明,由該算法訓練所得的BP神經(jīng)網(wǎng)絡相比于傳統(tǒng)的BP神經(jīng)網(wǎng)絡,前者具有更高的識別精度,計算速度明顯高于傳統(tǒng)的BP算法,而且訓練過程不會發(fā)生大幅度振蕩,不會影響到收斂速度。