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