?

基于局部調節卷積神經網絡的圖像識別方法

2019-01-02 03:44吳祿慎常參參王曉輝陳華偉
計算機工程 2018年12期
關鍵詞:訓練樣本識別率卷積

吳祿慎,常參參,王曉輝,陳華偉

(南昌大學 機電工程學院,南昌 330031)

0 概述

近年來隨著深度學習(Deep Learning,DL)的發展,卷積神經網絡(Convolutional Neural Network,CNN)以其高效準確的分類能力和直接處理原始圖像等優點,在圖像的識別領域獲得高度的關注[1]。2012年,文獻[2]提出的8層深度卷積神經網絡AlexNet,在大規模視覺識別挑戰[3](Large Scale Visual Recognition Challenge,ILSVRC)中以準確度超越第2名11%的優勢贏得冠軍,掀起了卷積神經網絡在圖像識別領域的研究高潮。

雖然卷積神經網絡在圖像識別領域展現了極大優勢,但是大多深度模型需要上千次的迭代、數以萬計的訓練樣本以及高效的圖像處理設備才能滿足網絡訓練的要求。這些限制使深度卷積網絡只能停留在實驗室階段,限制了其應用范圍。對此,國內外很多專家和學者在對傳統深度卷積網絡算法研究的基礎上,提出一些改進的方法。文獻[4]提出遞歸卷積神經網絡(Recurrent Convolutional Neural Network,RCNN)模型將循環并入每個卷積層,隨著時間的推移,每個輸入的神經元都會受到相鄰神經元的影響,增強了模型整合上下文的能力,在小訓練樣本量的圖像識別上獲得極大的成功。文獻[5]提出一種基于超參數和靜態向量的CNN,通過微調學習任務的特征向量進一步提高網絡的速度。文獻[6]針對訓練樣本少的問題,設計了訓練數據擴增技術,提高卷積神經網絡的應用范圍。文獻[7]對比了不同池化模型對卷機網絡的影響,設計出動態自適應池化(Dynamic Adaptive Pooling,DAP)模型,改進卷積神經網絡的池化層,取得比較好的效果,提高了收斂速度和準確率。文獻[8]提出一種展開式的卷積神經網絡(Unfolded Convolutional Neural Network,UCNN)把卷積層和全連接層展開成矩陣相乘的形式,大大減少網絡運算量,節省了網絡的運算時間。文獻[9]提出了一種基于時域抽取方法的分裂基-2-2a一維FFT快速方法(簡稱S_2a_FFT),利用卷積定理在頻域中實現空域線性卷積的方式,實現了網絡的加速,且精度并沒有損失。

雖然專家學者對卷積神經網絡算法做了大量的改進,取得了很大成功,但是這些改進主要集中在優化網絡結構和增加前期處理方面,在參數的調節方面仍然是全局參數同時修正,調節幅度小,網絡必須經過大量的迭代才能收斂。

針對上述問題,本文提出局部調節卷積神經網絡(Locally Adjusted Convolutional Neural Network,LACNN),通過比較實際輸出與理想輸出的差異,根據對分類殘差的影響把差異分成關鍵部分和非關鍵部分,舍棄差異性小的神經元參數,對差異性大的參數設置動態學習率,突破固定步長對參數調節的限制,擴展調節的幅度,從而加快網絡的收斂速度。

1 卷積神經網絡

卷積神經網絡是眾多深度學習算法中的一種,是深度學習算法和神經網絡的結合,在機器視覺[10-11]和信號識別[12]方面有著廣泛的應用。卷積神經網絡由3個部分組成,分別是輸入層、隱含層與輸出層。其中,輸入層和輸出層分別對應著輸入的圖像和輸出的結果,而隱含層包含了多個卷積和池化層交替的非線性結構的神經元層,在最后一層的池化操作后還有一個全連接層,目的是獲得高維的空間表達。卷積神經網絡本質上是一個特征提取器和分類器的綜合,通過對輸入的圖像不斷地進行特征學習得到一組最接近圖像含義的特征元素組,然后輸入尾部的分類器,進行數據的分類識別。

1.1 LeNet-5網絡結構

LeNet-5[13]作為經典的卷積神經網絡,為卷積神經網絡提供了框架,后來的卷積網絡基本上由此擴展而來。其網絡結構如圖1所示,它的輸入Input是一個未經處理或者僅經過簡單處理的圖像,卷積層是CNN的核心部分,通過不同的卷積核來獲取圖片的特征。卷積核相當于一個濾波器,不同的濾波器提取不同特征。卷積層C1一般選取多個隨機的卷積核對圖像進行卷積。緊隨著卷積層的是池化層S2(也稱為降采樣層或者子采樣層)。幾乎每個卷積操作后都會接一個池化操作,池化分為均值池化和最大池化,目的是為了降低卷積后特征圖像的維度。一般選擇2×2的池化尺寸,可以將卷積層的輸出矩陣的尺寸變為原來的1/4,簡化后面的運算。池化操作增加了系統的魯棒性,把原來的準確描述變為了概略描述。卷積層C3和池化層S4與卷積層C1層池化層S2類似,一個卷積層和一個池化層形成一個組合結構,卷積神經網絡的隱含層中這種組合結構重復出現,它的多少決定了卷積神經網絡的深度。把最后一層池化得到的特征圖展開成形一個一維的矩陣(全連接層),被稱為單層感知機。輸出層Output與一維矩陣進行全連接,然后經過分類器進行分類識別。在傳統的卷積神經網絡中用到的分類器是Softmax。

圖1 卷積神經網絡結構

1.2 卷積過程

輸入的圖像經過卷積核進行卷積得到特征圖像,加上偏置然后,傳入一個非線性函數sigmoid進行激活[14]。假設L(0≤L≤5)層有N個特征圖,卷積層的輸入是m×m的矩陣Xj,卷積核是n×n的矩陣kij,使用卷積核對輸入矩陣Xj的感受野進行步長為1的順序卷積,卷積計算公式為:

0≤L≤5,1≤j≤N

(1)

其中,XjL+1是卷積層的輸出的特征圖的矩陣,它是一個(m-n+1)×(m-n+1)的矩陣,Mj表示輸入的特征圖矩陣集合,bjL+1是卷積后所加偏置,f是一個非線性函數,一般為sigmoid函數。卷積過程的輸入可以是原始的圖像,也可以是經過池化產生的特征圖像。

1.3 降采樣過程

對于降采樣層來說,輸入多少個特征圖就會輸出多少特征圖,只是每個輸入的特征圖的尺寸變小。一般的來說,輸出的特征圖大小都是成倍的減少。假設有N個特征圖,降采樣層的計算公式為:

1≤L≤5,1≤j≤N

(2)

其中,XjL是經過降采操作的輸出特征圖,βjL是特征圖特有的乘性偏置,down(.)表示降采樣函數,f是一個非線性函數。

1.4 卷積神經網絡的訓練過程

卷積神經網絡每次訓練包括2個過程,分別是前向傳播過程和反向傳播過程。前向傳播是在初始的各種參數下對圖像進行卷積和池化操作,組成全連接得出訓練的結果。反向傳播是通過求訓練結果與標簽值之間的分類殘差(即代價函數),鏈式求導得到各神經元的敏感度,反向計算得出卷積核與權重的下降梯度,梯度與學習率相結合,從而得出權重修改量,更新各層的權重,確定新的網絡。

2 局部調節卷積神經網絡

2.1 局部調節卷積神經網絡算法思想

傳統卷積神經網絡的缺點是參數的調節幅度小,收斂速度慢,其原因主要是由于各層神經元靈敏度和學習率的限制所導致的。針對該問題,本文提出局部調節卷積神經網絡,改善參數調節的幅度,減少迭代次數。局部調節模型的思路是:按照對代價函數的貢獻把差異矩陣E中的元素分成關鍵元素和非關鍵元素,剔除非關鍵元素獲得矩陣E*,并根據E*設置動態學習率ξ。然后,逆向更新各層輸出Xl,確定需要大幅調節的神經元參數,迭代時參數調節只發生在需要調節的局部神經元參數中。動態學習率和局部參數調節使網絡中的參數很快收斂。當大差異參數足夠小時,差異函數中的部分非關鍵因素和關鍵因素角色發生變化,繼續對相對差異性大的參數進行調節。局部調節卷積神經網絡的參數調節過程如圖2所示。其中,黑點表示調節部分,白點表示非調節部分。

圖2 LACNN調節過程示意圖

局部參數調節使網絡的殘差快速下降到一個很小的值,能夠滿足傳統CNN對識別精度的要求。然而,在不改變Epoch的情況下,LACNN會繼續迭代,每一次參數的更新都會使網絡的實際輸出與理想輸出更接近。局部調節使整個網絡不斷向收斂的方向靠近,最終停留在一個比全局調節更接近極限收斂的位置,從而使整個網絡的識別精度有所提升,因此,局部參數調節卷積神經網絡不僅可以節省網絡的收斂時間,而且對網絡的識別精度也有一定的提高。

2.2 局部調節卷積神經網絡算法原理

H=sigmoid(Xi×Wi+bi),1≤i≤n

(3)

(4)

式(4)中差異矩陣E是網絡實際輸出與期望輸出之間的差值,矩陣的元素值越大代表相應的特征點的實際輸出與期望輸出差異越大,說明特征提取的效果越不理想。差異矩陣E中的元素分布并不均勻,其中少數大元素值組成了代價函數的主要部分,其他多數元素對代價函數的影響很小。這些元素在參數調節時發揮的作用也不同,小的元素對應的神經元的參數需要的修正量很小,而其他的參數需要的修正量很大。但是為了避免代價函數的逆增長,只能選擇一個較小的學習率對參數進行修正。這種全局參數同時調節的方法限制了網絡在大差異性參數上的調節能力。本文根據差異矩陣中的元素對代價函數的影響不同,將其分成關鍵元素和非關鍵元素進行局部參數調節。首先對差異矩陣變形,設置元素閾值K,剔除非關鍵因素。假設差異矩陣為:

則:

1≤i≤m,1≤j≤n

(5)

式(5)中閾值的功能是保留差異矩陣E中大于K的元素值,所有不大于K值的元素全部設置為零。經過閾值過濾后的矩陣E*中所有的元素值都大于K。矩陣E*中的元素與分類殘差直接相關,其大小反映了識別的準確程度。以矩陣E*為基礎,設置動態學習率ξ:

(6)

其中,к表示學習率變化權重,可以根據需要設置,經實驗測試一般選在2~5較合適,p為aij(1≤i≤m,1≤j≤n)中所有不為零元素的個數。由式(6)可知,動態學習率的值總是和差異矩陣中元素值較大的那部分元素有關,保證其盡可能大地調節參數。而且動態學習率是根據分類的差異性自動生成的,它并不是一成不變的,會隨著迭代的增加而變小,在迭代的后期學習率會以很小的變化調節參數,防止代價函數出現反向增長的現象,因此相比設置較小的固定學習率,動態學習率更適應自動調節的需求。

在進行參數調節時,為避免前面各層神經元節點對應參數修正過度,造成代價函數無法收斂或者震蕩收斂的現象,需要對各層輸出進行替換,假設有s層網絡,第s層的輸出H由變形矩陣E*與期望輸出y相加所得:

H=E*+y

(7)

其他層輸出Xl(1≤l≤s)通過下式獲得:

Xl=Z(sigmoid-1(Xl+1))-1,1≤l≤s

(8)

式(8)中Xl是l層輸出的集合(當l=s時,Xl+1=H),Z是中間函數(Z=(Xl×Wl+bl))。這時輸出Xl中對識別殘差影響較大的神經元得到強化,其他的被弱化或者剔除。輸出的更新確定了參數的修正需求,接著需要確定參數的修正量。確定修正量需要代價函數:

(9)

J(W,b,x)是網絡輸出與期望輸出差值的平方,與權重和偏置的調節息息相關。根據J(W,b,x)用鏈式求導法則求偏置b和權重W的偏導,得出b和W的梯度下降方向:

1≤l≤s

(10)

1≤l≤s

(11)

(12)

(13)

注意,由于xl經過強化或者弱化處理,這時的W和b并不都存在修正量,部分ΔW、Δb的值為0或者很小的值,只有調節需求較高的參數保持大的修正量。最后,對所有需要調節的參數進行更新:

Wl+1=Wl-ΔW

(14)

bl+1=bl-Δb

(15)

其中,Wl+1、bl+1表示迭代后的權重和偏置。至此,參數調節一次,迭代過程結束。局部調節卷積神經網絡流程如圖3所示。

圖3 分步式動態卷積神經網絡流程

在圖3中,Maxloop、Maxtrain分別表示最大迭代次數和樣本的最大批量,ζ是代價函數的閾值。局部調節卷積神經網絡突破了固定步長的限制,運用動態學習率和局部神經元參數更新,可以加快代價函數的收斂,在迭代前期就能達到其他深度網絡迭代后期才能達到的效果,變相減少了網絡訓練時間。

3 實驗與結果分析

本文實驗在Matlab R2014a進行,計算機型號為Intel(R)Core(TM)i7-3610M 3.8 GHz,內存8 GB。實驗選擇手寫數據集mnist數據庫、人臉數據集ORL和LFW、圖像分類集CIFAR-10上進行本文方法的驗證。

3.1 在手寫數據集mnist上的實驗與分析

手寫數據集mnist包含70 000個手寫數字的圖像數據,其中60 000個訓練樣本集和10 000個測試樣本集,每個圖像集都有對應的標簽,用以表示圖像所對應的數字。為了驗證改進算法的效果,選擇近年來幾種比較成功的改進CNN算法進行對照實驗,包括DAP、UCNN、S_2a_FFT,實驗中的各種CNN,統一設置成6C-2S-12C-2S的網絡結構,卷積核的大小為5×5和3×3,激勵函數選擇sigmoid,輸出層使用softmax函數把結果歸一為0~1。實驗將mnist數據集的訓練樣本集分成幾種不同的規模(10 000、30 000、50 000、60 000),以50個樣本為一個batch,參數沖量為0.9,對不同規模的訓練樣本所得的結果作對比。

圖4是不同的改進CNN在訓練中對代價函數變化的影響。根據圖4可以得出:本文算法對于代價函數的收斂改進較大,在迭代300次以后就能達到DAP在600次所達到的結果,且其圖線比UCNN和S_2a_FFT陡,說明改進以后的算法在代價函數上收斂更快。本文算法代價函數的收斂值比DAP、UCNN和S_2a_FFT代價函數圖像的收斂值更低,說明在其他算法收斂時,本文算法仍可以繼續對參數進行調節。

圖4 mnist數據集上的代價函數變化曲線

表1是各算法在不同訓練樣本量的手寫數字集下的測試識別率和時間的關系。從表1可知,本文的局部調節卷積神經網絡在訓練樣本量為10 000時,識別率為46.74%,比DAP、UCNN和S_2a_FFT分別高13.62%、26.24%和27.49%,在訓練樣本量為60 000時識別率達到93.63%,比最高的DAP高出0.76%。雖然在處理速度上不如加速網絡結構收斂快,但是其在識別率上的提升彌補這一不足。而且在訓練樣本量少的情況下,本文算法在識別率上的提升極為顯著。

表1 不同算法在mnist數據集上的測試識別率和識別時間

圖5和圖6表明了在達到同樣測試識別率的情況下,各算法對訓練樣本量和和時間的要求。如圖5所示,局部調節卷積神經網絡在識別率上的收斂效果要比其他改進CNN更加明顯。在識別率為80%時算法所需最少訓練樣本量實驗中,局部調節卷積神經網絡要比UCNN和S_2a_FFT少12 000個訓練樣本左右,在識別率為88%時可以節省20 000個訓練樣本左右。說明在同樣的識別要求下,局部調節卷積神經網絡需要的訓練樣本更少,因此,可以減少網絡的運算量,節省時間。圖6表示在相同的識別率下不同算法所需要的最少時間。從圖6可知,本文算法在進行識別時達到相應的識別率所用的時間比另外3種改進方案明顯減少。

圖5 訓練樣本量和識別率關系

圖6 識別率和耗時關系

3.2 在人臉識別數據集ORL上的實驗與分析

人臉識別數據集是由劍橋大學拍攝的由一系列人臉圖像組成的數據集合,共有400幅人臉圖像,包括40位不同年齡和種族的人,每人10幅,大小為112×92像素。ORL是目前人臉識別中使用最廣泛的人臉數據集之一,其大多數圖像的光照方向和強度相差不大,只有少許的表情姿勢伸縮的變化。ORL人臉庫的部分圖像如圖7所示。

圖7 ORL人臉數據集的部分面部圖像

將ORL數據庫中40人的圖像每人抽出5幅作為訓練集,5幅作為測試集,這樣就會有200張訓練樣本和200張測試樣本。實驗時需要對人臉圖像額外增加相應的標簽矩陣用以表明圖像的類別。實驗中把數據集中的人臉圖像縮小成48×48像素大小的矩陣,輸入卷積神經網絡。由于人臉的復雜度比手寫數字要高,所有參與實驗的CNN網絡結構均為10C-2S-25C-2S-40C-2S,10個樣本為一個batch,參數沖量為0.9。實驗結果如圖8所示。

圖8 ORL數據集上的代價函數變化曲線

圖8表示不同的算法在ORL上訓練時代價函數變化情況,它反映了各種算法在參數調節時對代價函數的改變過程。從圖8可知,與S_2a_FFT、DAP和CCNN相比,本文算法代價函數的收斂值依然保持最小,而且相對于迭代后期,本文算法在樣本量較少時對代價函數收斂性的提升更加明顯。

為了進一步探究幾種算法在人臉數據庫上有關識別率和相應耗時的關系,對算法進行不同Epoch下的識別率和耗時實驗。

由表2可知,隨著迭代次數的增加,4種算法的識別率都有不同層次的增加,本文的局部調節卷積神經網絡在Epoch為10時識別率已達到89.16%,比其他算法達到相同識別率所需要的Epoch更少,說明其收斂的速度比其他網絡更快。在Epoch為100時,本文算法的識別率在4種算法中僅比CCNN少,相差0.12%。但從耗時上來看,局部調節卷積神經網絡比CCNN節省60.97 s,相當于節省23.55%。S_2a_FFT在運算時間上有所改進,但是其識別率在相同的條件下是最低的。DAP兼顧耗時和識別率,取S_2a_FFT和CCNN的折中,但是和本文算法相比仍有差距。

表2 不同算法在ORL數據集上的識別率和識別時間

3.3 在其他數據集上的實驗與分析

為了證明算法的適用性,本文又選擇2種比較常見的圖像數據集CIFAR-10和LFW對算法進行實驗。CIFAR-10包含10種物體的60 000幅圖像,其中,50 000幅訓練數據,10 000幅測試數據。LFW包含5 749人的13 233幅帶標簽的人臉圖像。CIFAR-10和LFW都是圖像識別中最常用的幾個數據集,作為實驗數據很有必要。CIFAR-10和LFW數據集中的圖像都是彩色的,實驗時要先轉化成灰度圖像。為了驗證算法在相同識別率下耗時上的優勢,統計算法在達到相同訓練識別率的基礎上,所需最少樣本的訓練時間,即在CIFAR-10上所有算法達到識別率接近90.00%(±0.05%)的最少時間和在LFW上達到87.00%(±0.05%)的時間。

從表3和表4中可知,在CIFAR-10識別率達到90.00%(±0.05%)時,本文算法所用最短時間為343.57 s,分別比Bocw-Net、CCNN和RCNN少247.08 s、130.39 s和129.26 s,相比于Bocw-Net節省了41.83%的時間。同樣地在LFW上識別率達到87.00%(±0.05%)時,本文算法用時也是最少的,分別比Bocw-Net、CCNN和RCNN少77.96 s、59.58 s和24.39 s。由實驗可知,局部調節卷積神經網絡主要是通過調節參數更新時的修正量,使參數能夠快速收斂,在少量的迭代下就能達到多次迭代的效果,變相地節省了訓練的運算時間。

表3 各算法在CIFAR-10和LFW上的識別率 %

表4各算法在CIFAR-10上達到90%(±0.05%)和LFW上達到87%(±0.05%)的最短時間s

數據集Bocw-Net算法CCNN算法RCNN算法本文算法CIFAR-10590.65473.96472.83343.57LFW287.73269.35234.16209.77

4 結束語

本文通過分析傳統改進卷積神經網絡在圖像分類識別中參數調節慢、迭代次數多、訓練時間長等問題,提出一種能夠提高參數調節幅度、加快網絡收斂的改進卷積神經網絡方法。通過設置動態學習率和局部參數調節等方式實現了參數的快速調節。在mnist、ORL、CIFAR-10和LFW上的實驗結果證明,局部調節卷積神經網絡可以快速地降低網絡的殘差值,在達到相同的訓練識別率時所需的迭代次數更少,節省了訓練時間。

猜你喜歡
訓練樣本識別率卷積
基于3D-Winograd的快速卷積算法設計及FPGA實現
基于類圖像處理與向量化的大數據腳本攻擊智能檢測
人工智能
卷積神經網絡的分析與設計
從濾波器理解卷積
基于真耳分析的助聽器配戴者言語可懂度指數與言語識別率的關系
提升高速公路MTC二次抓拍車牌識別率方案研究
基于傅里葉域卷積表示的目標跟蹤算法
寬帶光譜成像系統最優訓練樣本選擇方法研究
基于稀疏重構的機載雷達訓練樣本挑選方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合