沈 銳,陳亞軍
(西華師范大學 計算機學院,四川 南充 637009)
圖像分類是指根據圖像信息中存在的不同特征,把不同類別的目標進行分類的圖像處理方法.[1]卷積神經網絡(Convolutional Neural Networks)作為深度學習的一個分支,近幾年來發(fā)展迅速,受到了越來越多的關注,在大規(guī)模圖像識別中,研究者們相繼提出了AlexNet、[2]ZFNet、[3]ResNet[4]和SENet[5]等模型.與傳統(tǒng)的KNN(k-NearestNeighbor)、SVM(Support Vector Machine)和ANN(Artificial Neural Network)模型相比,CNN更善于挖掘數(shù)據中深層的、抽象的特征.[6]張婷等[7]參考DeepId思想,提出了跨連卷積神經網絡,在性別的分類中表現(xiàn)不錯;李勇等[8]使用跨連將池化層的輸出與全連接層融合,在表情識別中的效果比傳統(tǒng)神經網絡好;劉金利等[1]將跨連思想和InceptionV1模塊相結合,對多類別的圖像識別中效果好于傳統(tǒng)LeNet網絡,但沒有考慮增加網絡結構,并將多層特征連接,這樣會使得網絡結構復雜,增加訓練時間,降低網絡學習效率.本文針對以上缺點提出LeNet網絡改進方法,使用批量歸一化、Dropout、全局平均池化等方法簡化可訓練參數(shù),優(yōu)化網絡結構,在縮短訓練時間的同時,保證訓練精度穩(wěn)定提升.
LeNet是由Yann LeCun提出的第一個成功應用于手寫數(shù)字識別的神經網絡.但由于受芯片計算能力和數(shù)據量的制約,卷積神經網絡的運行效率并不如傳統(tǒng)方法,因此在當時并未在各個領域流行開來,只用于財務統(tǒng)計、支票收據、財務報表等金融領域的字體識別.直到2012年,在LeNet的基礎上改進的Alexnet卷積神經網絡的出現(xiàn),使得卷積神經網絡越來越受到各界關注.
LeNet-5一共有7層(不包括輸入層),3層卷積,2層下采樣層(池化層),1個全連接層和1個輸出層.雖然結構簡單,但已包含了現(xiàn)今流行的卷積神經網絡模型的基本結構.圖1是LeNet-5的網絡結構.
圖1 LeNet結構
LeNet對輸入圖像進行兩次卷積和池化操作后,最后通過輸出層的激活函數(shù),輸出預測該數(shù)字為0~9的概率值,概率最大的值即為預測值.
1.2.1 卷積層
卷積層的作用是提取圖像特征,與其他圖像識別算法相比,卷積神經網絡中的卷積層引入了感受野,權值共享[11]和局部連接等概念,有效減少了訓練中的計算量.卷積層的計算公式如下:
(1)
該式中表示M個子矩陣卷積后對應位置相加.其中,l代表所在網絡層數(shù),星號表示卷積運算,W是權重參數(shù),b代表偏置值,σ代表激活函數(shù).
1.2.2 池化層
al=down(al-1)
(2)
式中xlj表示池化后的特征圖大小,down(·)表示池化操作.
1.2.3 批量歸一化(Batch Normalization)
在神經網絡的訓練過程中各層輸入的分布會隨著前一層參數(shù)的變化而變化,使得神經網絡的訓練變得復雜.這需要調整初始參數(shù)來降低訓練速,批量歸一化的優(yōu)勢在于將標準化作為模型體系結構的一部分,并對每個訓練小批進行標準化.通過求出每個批次的數(shù)據均值和方差,再用求得的均值和方差對數(shù)據進行歸一化處理,即將均值和方差歸一化到有效范圍之間,讓每一層的值在有效的范圍能傳遞到下一層,BN算法如下:
輸入:批處理(mini-batch)輸入x:B={x1,…,m}
輸出:規(guī)范化后的網絡響應
{yi=BNγ,β(xi)}
5:返回學習的參數(shù)γ和β
Batch Normalization在神經網絡的訓練中可有效防止梯度爆炸和消失,加快網絡收斂速度,提升模型的準確率.
1.2.4 Dropout
Dropout可以使神經網絡在前向傳播的時候,讓某個神經元的激活函數(shù)值以一定概率停止向前傳播,即在每個訓練批次中,通過使指定數(shù)量的隱藏節(jié)點值為0,增強模型泛化性更強,使其不會太過依賴某些局部特征,可以有效地減少過擬合現(xiàn)象.Dropout一般設置為0.5.
1.2.5 全局平均池化(Global Average Pooling)
全連接層是卷積神經網絡中常用的網絡層,但是全連接層使得網絡的參數(shù)量過多,容易導致網絡訓練速度慢和過擬合等問題.全局平均池化將池化層和全連接層的運行過程結合在一起,使用一個和特征圖一樣大小的卷積核,對上一層的每個特征圖進行卷積,得到每層特征圖的均值,再與輸出節(jié)點進行全連接.與全連接相比,可以在不降低分類精度的情況下,大大減少計算量.
1.2.6 激活函數(shù)
ReLu(The Rectified Linear Unit)是卷積神經網絡中常用的激活函數(shù),它的優(yōu)點是收斂速度快,求解梯度簡單.ReLu激活函數(shù)公式如下所示:
圖3 Relu激活函數(shù)
在深度學習中,數(shù)據集類別和樣本數(shù)量過多會導致神經網絡訓練速度慢,不易收斂等問題,加深網絡層數(shù)可以提取更為復雜的特征,但是加深網絡層數(shù)不一定會升網絡學習效果, 隨著層數(shù)的增加,分類準確率可能會下降,這種現(xiàn)象便是梯度消失.同時,加深網絡層數(shù)也會增加訓練參數(shù),使得訓練速度下降,并且容易產生過擬合,即在訓練集上表現(xiàn)效果好,而在測試集上效果不佳,網絡的泛化性能差.
因此本文提出了一種LeNet網絡改進方法,僅在卷積層C1和C3之后加入BatchNormalization進行批量歸一化,每層卷積使用ReLu激活函數(shù),對上一層輸出作非線性映射,再進行Dropout隨機休眠神經元,并使用全局池化層替代全連接層F6,通過以上方法減少運算參數(shù),緩解梯度消失和過擬合問題,提升運行效率.圖2是基于批量歸一化的LeNet網絡改進結構圖.
圖2 GAP示意圖
圖4 基于批量歸一化的LeNet網絡改進結構圖
本文分別采用了MNIST,F(xiàn)ashion_MNIST和BelgiumTSC數(shù)據集進行實驗.MNIST手寫字體數(shù)據集和Fashion_MNIST服飾數(shù)據集是分別由十個類別組成的28×28大小的單通道圖片,其中60000張訓練集,10000張測試集. BelgiumTSC是比利時交通標志數(shù)據集,由62類尺寸不一的彩色圖片組成,為了方便傳入網絡進行訓練,對圖片的尺寸統(tǒng)一調整為28×28.圖6,、7、8以及表1是相關的數(shù)據集樣本圖例和數(shù)據集描述.
表1 實驗環(huán)境配置
圖5 MNIST數(shù)據集
圖6 Fashion _MNIST數(shù)據集
圖7 BelgiumTSC數(shù)據集
表2 實驗數(shù)據集描述
圖8 在MNIST上的準確率收斂圖
為了驗證本文提出的LeNet網絡改進方法的效果,分別在MNIST、Fashion_MNIST和BelgiumTSC三個不同數(shù)據集上進行了試驗,并與傳統(tǒng)LeNet網絡以及文獻、[9]文獻[10]的LeNet改進網絡進行對比.實驗結果如圖9~圖11所示.
圖9 在Fashion_MNIST上的準確率收斂圖
圖10 在BelgiumTSC上的準確率收斂圖
本文提出的LeNet網絡改進方法的實驗結果表明,該改進方法的準確率收斂速度快,可以更有效的提取圖像特征,提升訓練效率.從實驗圖中可以看到,本文網絡結構在二值圖(MNIST數(shù)據集),灰度圖(Fashion_MNIST數(shù)據集)以及彩色圖(BelgiumTSC數(shù)據集)中的識別精度均達到90%左右,優(yōu)于其余三種方法;同時其在三個數(shù)據集上訓練的準確率起點大于其余三種網絡結構,并且訓練曲線穩(wěn)定提升,說明本網絡結構可以有效提取不同類型的數(shù)據集特征,并緩解過擬合和梯度下降等問題,具有更好的泛化性、魯棒性.在BelgiumTSC數(shù)據集上的試驗結果表明,在復雜的彩色圖像和多類別圖像的識別中,本文網絡結構的訓練曲線仍能穩(wěn)定收斂,雖然學習效率沒有在前兩個數(shù)據集中的實驗效果好,但本文網絡結構相比于其他三種網絡仍然能夠穩(wěn)定提升,達到有效的識別率.
本文中對LeNet網絡結構進行了分析,并在此網絡基礎上進行了改進,通過在多個數(shù)據集上的實驗表明,本網絡結構相比于傳統(tǒng)LeNet網絡,準確率提升速度更快,可以更有效的提取不同類型圖像特征,魯棒性更好.但在實際應用中,由于樣本存在數(shù)量有限,質量參差不齊,且不同樣本數(shù)量比例不均衡等問題,網絡的訓練效果難以達到理想效果,下一步將針對此問題進行研究,進一步提高模型的泛化性.