王 達,周雪峰,徐智浩,蔡奕松 ,陳 洲
1.沈陽工業大學 信息科學與工程學院,沈陽 110870
2.廣東省智能制造研究所 廣東省現代控制技術重點實驗室,廣州 510070
圖像識別與分類技術作為計算機視覺中的一個重要的研究領域,近些年廣泛應用于國防和民用的許多領域。但由于識別背景、環境及目標的復雜性,機器視覺圖像目標的高效、準確識別具有一定的困難。近些年計算機與互聯網技術的進步,使得以神經網絡為基礎的深度學習得到發展,運用深度學習的主要目的是建立多層神經網絡,從而實現模仿人腦機制來分析和解釋圖像[1-2]。深度學習通過組合淺層特征形成更加抽象的高層特征,以發現數據的更深層次分布式特征表示。目前應用在圖像識別、場景識別和物體追蹤等方面,并表現出極大的應用價值。但也存在以下問題:對于受到干擾的圖像信息,識別效果與精度達不到目標;需要處理大量的訓練樣本并提取高層次的特征,因此計算模型復雜,計算量極大[3-4];由于沒有捕捉到圖像中物體的特征信息,整體特征的突然變化對于圖像目標的識別非常不利。
針對圖像識別領域存在的問題,發展出如卷積神經網絡(Convolutional Neural Network,CNN)有效的方法,與普通的神經網絡相比,CNN的特點是增加了卷積層和池化層。其中,卷積層的特點提取相鄰像素之間的共同特性效果好,具有權值共享特性,能夠大量減少神經網絡訓練過程中的參數數量;池化層的特點則是可以保證位移不變[5-6]。CNN充分利用隱藏層逐層深入地學習圖像的抽象信息,更全面直接地獲取圖像特征,因數字圖像是以矩陣來描述,卷積神經網絡能更好地從局部信息塊出發,進而描述圖像的整體結構[7]。雖然CNN可以有效地處理信息,但由于真實數據存在許多干擾,其網絡模型通常缺少抗噪能力,魯棒性不強,且層數較多計算量大。
為應對各種受干擾的圖像分類問題,本文改進傳統自編碼方式與CNN模型,結合兩種改進方法,模擬人眼的雙目結構,提出一種雙并行交叉降噪卷積模型(Double Parallel Cross Denoising Convolution model,DPCDC),同時在該模型的訓練過程中討論不同激活函數以及處理數據的方法對其精度的影響。
自動編碼器是對原始信號進行編碼,同時解碼恢復數據,從而實現編碼解碼的整個過程[8],避免了傳統方法不加生成約束的情況下,容易形成直接將輸入向量復制到輸出向量,或者只作微小的改變以產生較小的重構誤差,使得模型表現效果不佳[9]。自動編碼器屬于多層前傳神經網絡是深度學習中常用的模型之一,基于人工神經網絡具有網絡層次結構的特點。主要由三個部分組成:編碼器、解碼器、隱含層。工作方式為:原始輸入x經過加權、映射之后得到y,再對y反向加權映射輸出z。通過反復迭代訓練兩組的w和b,使得誤差函數最小,即盡可能保證z近似x,完成對x的重構,具體公式如下:

其中w與w′為兩組權值,b與b′為兩組偏置,s()與s′()分別表示不同的激活函數,fθ()、gθ′()分別表示 x到 y與y到z的映射關系。
利用深度特征實現圖像的分類與識別,目前主要使用CNN模型。對于CNN的基本結構為:輸入層、卷積層、池化層、全連接層及輸出層構成。其中卷積層由多個特征面組成,每個特征面由多個神經元組成,它的每一個神經元通過卷積核與上一層特征面的局部區域相連,卷積核是一個權值矩陣(如對于二維而言可為3×3或5×5矩陣)[10]。CNN的卷積層通過卷積操作提取輸入的不同特征,設第l卷積層,第l-1層為池化層或者輸入層,則第l層的計算公式為:

池化層也稱為取樣層,緊跟在卷積層之后,同樣由多個特征面組成,它的每一個特征面唯一對應其上一層的一個特征面,不會改變特征面的個數取樣層旨在通過降低特征面的分辨率來獲得具有空間不變性的特征[11]。設第l為池化層,第l-1層為卷積層,則第l層的計算公式為:

其中down()為下采樣函數,可將n×n像素里的所有像素相加,下采樣作用于圖像不重合的區域,因此所得的特征圖大小為原來的1/n。β表示為權重,對于2×2的mean pooling而言,權值為1/4。
在CNN結構中,深度越深、特征面數目越多,網絡能夠表示的特征空間也就越大、網絡學習能力也越強,然而也會使網絡的計算更復雜,極易出現過擬合的現象。
在傳統的CNN中,激勵函數一般使用飽和非線性函數(saturating nonlinearity)如sigmoid函數、tanh函數等。激活函數,相比較于飽和非線性函數,不飽和非線性函數能夠解決梯度爆炸、梯度消失問題,同時其也能夠加快收斂速度[12]。Jarrett等人[13]探討了卷積網絡中使用糾正非線性函數,能夠顯著提升卷積網絡的性能,文獻[14]也驗證了這一結論。而在一般網絡結構中基本使用的不飽和非線性函數的激活函數為線性整流函數(Rectified Linear Unit,relu),又稱修正線性單元,是一種人工神經網絡中常用的激活函數,通常指代以斜坡函數及其變種為代表的非線性函數。relu函數的計算公式如下所示:

為應對各種大量受干擾的圖像分類問題,同時降低訓練模型的復雜程度,本文模擬人眼在觀察物體時,通過雙目和兩條視神經來進行的,兩條視神經所傳遞的視覺信息經過交叉傳導,形成交叉混合信息以供大腦分析的方法,對現有的自編碼方法和CNN模型進行改進,結合這兩種改進模型設計出了一種如圖1所示,優化的雙并行交叉降噪卷積模型,同時在模型訓練時,使用批量正則化和改變傳統激活函數的方法來提高效果避免過擬合的情況發生。

圖1 雙并行交叉降噪卷積框圖
該模型主要通過4個方面來分析受干擾數據,提升精度。第一,將改進的自編碼方式和并行交叉卷積神經網絡進行結合,形成雙并行交叉網絡結構的雙并行交叉降噪卷積模型;第二,傳入數據進行噪聲訓練,通過改進的降噪自編碼器處理圖片,使模型有較強的魯棒性,更好的泛化能力;第三,將數據通過并行交叉卷積神經網絡對圖片進行分類處理操作,提高提取特征的能力,使模型進而提高了識別精度;第四,在訓練該模型時,改變傳統的激活函數以及引入批量正則化的方法,從而進一步地提升該模型的收斂速度以及精度。最終形成的雙并行交叉降噪卷積模型具有模型泛化能力強,大幅度降低傳統深度學習的復雜度的特點。以下將具體介紹每一部分。
基于自編碼原理,設計一種結合卷積神經網絡改進式的并行交叉降噪自編碼器,如圖2所示。結合卷積神經網絡的特點,重復的卷積核能夠在檢測特征時可以不用考慮位置信息,并且共享權值可以極大地減少學習的自由參數個數。其中模型頂層和底層的2條線路用來提取輸入圖像的高級特征,中間一條執行線路,用來提取輸入圖像差異性特征信息,首先將數據進行不同破壞率的變化后傳入兩條并行交叉支路,分別通過一對卷積層處理后,再將數據傳輸給下一層的池化層,與此同時也將數據傳輸給交叉輸入鄰域層用來計算兩條線路上每個特征位置與鄰域的差異;通過圖中nn層改變圖片的尺寸,再將數據通過反向卷積處理傳到全連接層還原數據,獨立完成特征的提取和映射。其特點是融合卷積神經網絡既可極大地減少學習的自由參數個數,又可大幅降低深度神經網絡的復雜度,但是網絡識別精度卻沒有降低,提高學習效率與實驗效果,同時具有較強的魯棒性,從而增強模型的泛化能力。

圖2 并行交叉卷積降噪自編碼器
在模型中,交叉輸入鄰域層用來計算兩條線路上每個特征位置與鄰域的差異[15]。對于交叉層(cross-input)的計算,fi(x,y)和gi(x,y)分別為兩張輸入圖像的點p(x,y)在第i通道特征映射的值,通過一個n×n的塊大小來計算差異,如式(6):

其中,I(n,n)是單位矩陣,N(gi(x,y)表示 gi(x,y)的n×n鄰域。
通過交叉熵損失函數(Cross-entropy cost function)來衡量預測值與實際值。與二次代價函數相比,它能更有效地加速模型訓練。對于整個模型參數的更新,通過損失函數的值進行反向推導,從而改變模型的權值與偏置。在第L層的損失函數可表示為:

其中,原始輸入 xi破壞為和,設為兩個破壞量的平均值,向量yi為xi的有損壓縮量,zi為重構向量,其目標函數式:

其中,fθ與 gθ′是 xi到 yi,yi到 zi的映射關系。在目標函數最優解的過程中,通過使用目標函數不斷迭代更新使得誤差值最終達到收斂狀態。
本文設計了一種改進的共享并行交叉的卷積神經網絡,如圖3所示,在訓練過程中,并行交叉的卷積層同時對一個圖片不同的位置進行特征值提取,在模型網絡中有3條執行線路,頂層和底層的2條線路用來提取輸入圖像的高級特征,中間一條執行線路,用來提取輸入圖像差異性特征信息。

圖3 并行交叉卷積網絡
這種模型在相應層實現了參數共享,可有效減少整個網絡參數的個數,大幅降低深度神經網絡的復雜度,但是網絡識別精度卻沒有降低。因為圖像的空間聯系是局部的,每個神經元只需要感受局部的圖像區域,然后在最高層將這些感受到不同局部的神經元綜合起來就可以得到全局信息。不同的卷積核參數值不同,這樣就實現多種特征信息的提取,但是大幅降低了網絡總體的參數數量,能在網絡參數量減少的情況下,保證整個深度神經網絡的識別精度,同時這種模型也可以提高提取特征的能力。
設XL是前一層的輸出值,wL是權值矩陣,gL是變換函數(或激活函數),在前向傳播中,輸出函數可記為:

在模型中,交叉輸入鄰域層用來計算兩條線路上每個特征位置與鄰域的差異,通過公式(6)計算。
對于模型的損失,通過Log-loss誤差函數求出。對于整個模型參數的更新,通過損失函數的值進行反向推導,從而改變模型的權值與偏置。其在第L層的損失函數可表示為:

式中,xi為樣本,n為樣本總數,yi為樣本標簽值,采用L2正則化(l2-norm),λ為正則化項系數,用于抑制過擬合。可使用批量正則化,效果為減少參數的人為選擇,可以取消L2正則項參數,或者采取更小的L2正則項約束參數。整個網絡的目標函數為:

在求取目標函數最優解的過程中,輸出層通過式(11)進行更新(同理,可對偏置進行更新),即:

在求取目標函數最優解的過程中,通過不斷使用公式(12),本文使用梯度下降法進行迭代,使得誤差值最終達到收斂狀態。
為避免過擬合以及提高精度,本文使用批量正則化(batch normalization)方法,在數據進入激活函數之前,先對數據進行歸一化操作[16],再選取較好的激活函數進行計算。
對于批量正則化處理方法,所謂批量正則化中的批量是指隨機梯度下降中的批量樣本,正則化是指讓每一層激活值的每一維度的概率分布轉變為均值為0,方差為 1的穩定概率分布。通過數據進入激活函數之前,先對數據進行歸一化操作。其特點是可以把過大或過小的數據進行歸一化,可使整體使用一個較高的學習率,避免傳統方法需遷就小數據的維度;其次是歸一化后使得更多的權重分界面落在了數據中,降低了過擬合的可能性,因此使用一些防止過擬合但會降低速度的方法。
假設某一層的輸入為x=(x(1),x(2),…,x(k)),共k維,一批樣本集合為B={x1,x2,…,xm},批量正則化的公式如下:

其中,x(k)表示輸入x的第k維,uB表示對樣本集合B的期望,表示對樣本集合B的方差,表示輸入x的正則化結果,y(k)表示對x(k)批量正則化后的結果。r(k)、β(k)表示待學習的參數,通過訓練迭代求解,以增加輸出概率分布的穩定性。
對于激活函數,本文選取relu6、sigmoid、elu激活函數替代傳統激活函數relu進行對比實驗,經實驗驗證,基于本文方面relu6與elu相對于relu表現效果更好,收斂更快。relu6、sigmoid、elu函數計算公式如下所示:

結合以上各部分具體描述,以及兩個并行交叉網絡結構,形成圖4所示的雙并行交叉降噪卷積模型,該模型首先具有降噪能力強,魯棒性好,泛化能力強和準確率高的特點,其次避免過擬合,加快收斂速度。
對于整體的整體的損失計算如下:


圖4 雙并行交叉降噪卷積模型
其中,α,β為降噪和分類權重,loss為整體的損失。在目標函數(20)中,最優解的過程通過使用目標函數不斷迭代更新使得誤差值最終達到收斂狀態。

對于權值w和閾值b的更新使用公式(22)與(23),其中η為學習率。

其中,準確率的計算公式如公式(24):

其中,a為準確率,gZ為一批測試中識別正確的個數,g為一批測試總個數。
本文實驗使用Windows系統,基于tensorflow1.2機器學習框架通過spyder軟件進行實驗,其中圖5為軟件效果圖展示,使用的數據集為minst數據集,為手寫數字數據庫,訓練庫有55 000張手寫數字圖像,測試庫有10 000張,每個圖像784=28×28。其中表1、2為模型兩部分的各層參數,通過在圖片中人為加入噪聲模擬受損圖片。由于數據集是識別數字0~9的手寫圖片,所以解決的問題為圖片分類問題,需要分類數為10種類型。

圖5 軟件截圖效果顯示

表1 自編碼網絡
本文對于模型激勵函數的選取,通過在卷積層與全連接層進行實驗分析,選取激活函數為使用最廣泛的relu與relu6、sigmoid、elu進行4組對比實驗,圖6、7為在不同激活函數情況下準確率的變化。

表2 卷積分類網絡

圖6 卷積層不同激活函數準確率變化曲線

圖7 全連接層不同激活函數準確率變化曲線
根據實驗表明,對于本實驗,在卷積層進行不同激活函數實驗時,relu6雖然在準確率上與relu相似,但在收斂速度上relu6明顯優于relu;在全連接層進行不同激活函數實驗時,在最終準確率上elu的效果明顯優于relu的效果。經過實驗分析,模型在卷積層使用relu6激活函數,在全連接層處使用elu激活函數效果最佳。以此模型選取在卷積層使用relu6激活函數,全連接層使用elu激活函數。
如圖8、9所示,圖8為原始圖片加噪聲效果,圖9為傳統降噪方法與本文降噪效果對比展示。在圖8中顯示,原始圖的特征顯示為紅色部分。對比發現,傳統編碼降噪方法雖然可以去除圖片中的噪聲干擾,還原部分原始圖片中紅色部分,但效果不是特別明顯,改進的降噪自編碼器的效果明顯優于傳統自編碼器的效果,可以有效地處理圖片中的干擾,雖然無法全部排除干擾,但效果明顯優于傳統方法,對于傳統方法幾乎無法還原圖中數字3與4,改進的方法則可以相對地還原出原始效果。

圖8 原始圖片加噪聲效果

圖9 降噪效果對比展示
圖10 為數據集隨機中選出個體展示,圖11與圖12為三條線路上卷積后的部分可視化效果圖展示,圖13與圖14為三條線路上池化后的部分可視化效果圖展示。

圖10 數據集隨機選出個體

圖11 降噪階段卷積后部分效果
在不同情況下分別進行5組實驗取平均值,選取10個不同圖片損壞程度,當圖片損壞程度為10時,說明圖片幾乎無法分類。分別表示測試圖片集不同受損情況。建立表3至表5,選取BP與CNN與本文雙并行交叉降噪卷積模型(DPCDC)進行對比實驗,同時記錄不同迭代次數下準確率的情況。

圖12 分類階段卷積后部分效果

圖13 降噪階段池化后部分效果

圖14 分類階段池化后部分效果

表3 測試圖片無損失 %

表4 測試圖片損失率為2 %

表5 測試圖片損失率為5 %
實驗結果表明,對于圖片分類問題BP精度在任何情況下都無法達到CNN與DPCDC的精度。在圖片受到干擾時CNN模型精度明顯下降,當圖片受損率達到程度5時,分類圖片的精度與BP相差不大。而本文DPCDC模型當圖片無損失時,識別精度與CNN相似,當損失繼加大時,雖然精度開始下降,但效果明顯優于CNN模型,損率達到程度5時也可以滿足簡單的分類處理。
圖15為在損失率為程度5時,有無批量正則化對比實驗,當模型中不使用批量正則化時,5次實驗中有1次出現圖中紅色線無批量正則化的實驗結果。實驗結果說明當無批量正則化操作時,實驗結果容易陷入過擬合,影響準確率。

圖15 有無批量正則化對比實驗
為了應對各樣大量受干擾的圖像分類問題,改進傳統編碼方式與CNN模型,結合兩種改進的方法,提出了一種雙并行交叉降噪卷積模型。首先傳入數據進行噪聲訓練,通過改進的降噪自編碼器處理圖片,使模型具有較強的魯棒性,更好的泛化能力;再將數據通過并行交叉卷積神經網絡對圖片進行分類處理操作,提高提取特征的能力,使模型進而提高了識別精度。雙并行交叉降噪卷積模型優點在于增強模型的泛化能力,也可大幅度降低傳統深度學習的復雜度,對于受損圖片進行識別,效果明顯優于其他傳統方法。而在訓練該模型時,改變了傳統的激活函數以及引入了批量正則化的方法,從而進一步地提升了該模型的收斂速度以及精度。實驗結果證明了模型的合理以及有效性。