楊 栩
(成都師范學院物理與工程技術學院,四川成都 611130)
隨著計算機視覺的研究應用逐步推向深入,數字圖像的分類識別也越來越成熟,神經網絡是圖像模式識別中的一種重要算法,它模擬生物神經網絡,由輸入節點、隱藏層節點和輸出節點等多層節點組成,通過卷積神經網絡[1-3]可以實現深度學習[4],手寫數字圖像分類識別可以通過卷積神經網絡實現.
特征提取是深度神經網絡的難點之一,由于圖像輸入向量的維度一般都特別大,計算量特別大,特征降維就非常必要.高子祥等[5]提出一種雙路卷積神經網絡來豐富差異特征,提高特征表達層次,該算法重復使用卷積池化過濾器,神經網絡層數過多,計算量偏大;楊鎏等[6]提出一種全局-局部神經網絡提取特征,再用支持向量機(SVM-Support Vector Machine)來分類,該算法分類精度不高,最高73.5%.本文使用卷積神經網絡(一個卷積層一個池化層)實現手寫數字分類識別,輸入圖像(28*28像素)通過20個9*9像素卷積過濾器提取圖像特征,再通過20個池化過濾器進一步降維到10*10像素,ReLU函數有效避免了梯度消失和過擬合問題.最終使手寫數字識別率達到96.3%.

圖1 深度神經網絡建模及預測Fig.1 Modeling and prediction of deep neural network
對經過預處理后的手寫數字圖像實現灰度值歸一化[8],本文采用MNIST數據庫,該數據庫總共包含70 000張28*28像素的手寫數字圖像,為了控制訓練時間,選取數據庫中的8 000張作為訓練數據,2 000張作為測試數據.訓練圖片在隨機梯度下降學習規則的作用下對深度神經網絡進行訓練,使隨機初始化的權重值得到優化.測試圖像數據經過訓練好的神經網絡后得到分類輸出.深度神經網絡建模及預測框圖如圖1所示.
由于梯度是方向導數最大的方向,用梯度下降算法計算誤差曲面的最快下降方向,隨機梯度下降算法計算訓練數據的誤差并隨機調整權重,激活函數權重更新公式如下:
ei=di-yiδi=φ'ieiΔWi,j=αδixjWi,j=Wi,j+ΔWi,j
(1)
其中α(0<α1)為學習率,Wi,j為兩層極點間的權重,輸出節點i的誤差ei=di-yi(di為輸出節點i的正確輸出),輸出節點的激活函數為φi,xj為輸入節點j的數據.本文中隱藏層節點采用整流線性單元ReLU函數[9](公式2)作為激活函數,它的導數為公式3,它能很好的解決梯度消失問題,如圖2所示.

(2)

(3)
輸出層激活函數采用softmax函數[10-12](公式4),該激活函數不僅考慮到了輸入的加權和,還考慮到了其它輸出節點的輸出值,且滿足條件∑φ(vi)=1(vi為輸出節點i的加權和,φ(x)為激活函數),也即所有輸出節點通過激活函數后會以不同概率分類到每一類,并且所有分類概率之和為1,不會出現重復分類現象,softmax激活函數如圖3所示.
(4)

圖2 ReLU激活函數Fig.2 Relu activation function

圖3 softmax函數Fig.3 Softmax function
對于單層神經網絡或者不可訓練的神經網絡來說是沒有意義的,隨機梯度下降增量規則在多層神經網絡中應用的最大障礙是隱藏層的正確輸出不得而知,進而隱藏層的誤差不能確定,本文隱藏層誤差用反向傳播的增量的加權和來定義.進而誤差可以反向傳播到輸入層,從而神經網絡的每一層的權重都可以進行調整.
圖像為28*28像素的手寫數字圖片,經過卷積層的20個9*9像素的過濾器過濾后,經過ReLU激活函數,再進入池化層進一步降維,降維后的特征向量進入神經網絡學習,最后通過softmax函數輸出分類,深度神經網絡[13-16]模型如圖4所示.
1.2.1 卷積池化過濾器 采用20個9*9像素的過濾器對圖像進行卷積運算,卷積過濾器如圖5所示,手寫數字7經過卷積過濾器處理后的特征如圖6所示,池化后的結果如圖7所示.

圖5 卷積過濾器圖像特征Fig.5 Convolution filter image features圖6 數字圖像7經過卷積層處理后的結果Fig.6 The result of digital image 7 processed by convolution layer圖7 數字圖像7經過池化處理后的結果Fig.7 The result of pool treatment of Figure 7
1.2.2 節點的正向傳播計算 假設降維后的神經網絡模型有n個輸入節點,m個隱藏節點,k個輸出節點,W1為輸入層和隱藏層之間的權重向量矩陣,X為輸入向量,v為隱藏節點加權和,v’為輸出層節點加權和,W2為隱藏層和輸出層之間的權重向量矩陣,Y’為隱藏層節點通過激活函數后的輸出向量.隱藏層節點的加權和為
(5)
隱藏層節點通過激活函數后的輸出為
(6)
輸出層節點加權和為
(7)
1.2.3 誤差的反向傳播計算 計算正確輸出與模型輸出之間的誤差向量e,再計算輸出節點的增量δ,該增量與節點間權重的加權和作為隱藏層誤差e',反向傳播至輸入層,進而調整到神經網絡的所有權值.
實驗步驟:
[1]選用MNIST圖像庫中8 000張圖片用于訓練卷積神經網絡.
[2]輸入圖像(28*28像素)經過20個9*9像素的卷積過濾器,維度降維20*20像素.
[3]經過池化層進一步降低圖像維度到10*10像素.
[4]輸入2 000維度向量進一步訓練神經網絡.8 000張訓練圖像用于訓練深度神經網絡.
[5]最后用MNIST圖庫中另外2 000張圖像用于測試,檢驗圖像分類準確率.
手寫數字分類屬于神經網絡中的多分類問題,通過卷積池化后輸入向量為2 000維,W為[9,9]向量,W1為[2 000,100]向量,W2為[100,10]向量,訓練樣本為MNIST圖像庫中8 000個樣本,測試樣本為該圖像庫中另外2 000個樣本.訓練樣本如圖8所示,部分測試結果如表1所示.

表1 部分測試樣本識別率Tab.1 Recognition rate of some test samples
通過試驗可以看出,卷積神經網絡算法對于手寫數字分類識別具有非常高的識別率,訓練樣本8 000,測試樣本為2 000時,識別率為93.5%,如圖9所示.訓練樣本對識別率影響非常大,如果逐步提高訓練樣本個數從1 000到8 000,訓練次數固定為3,識別率從61.6%提升到93.5%,如圖10所示.保持訓練樣本8 000不變,對樣本的訓練次數也能影響識別率.訓練次數從1次到8次,識別率從86.73%上升到96.3%,如圖11所示.

圖8 輸入為28*28像素的訓練數字圖像Fig.8 Input training digital image of 28*28 pixels

圖9 訓練樣本8 000時的識別率Fig.9 Recognition rate of 8 000 training samples

圖10 訓練樣本對識別率的影響Fig.10 The influence of training samples on recognition rate

圖11 訓練次數對識別率的影響Fig.11 The influence of training times on recognition rate
卷積神經網絡通過卷積過濾器、池化過濾器實現圖像特征提取,輸入向量降維,已大大縮減了計算量,通過訓練樣本使深度神經網絡權重參數得到了優化,ReLU函數[16]有效解決了梯度消失問題,對電氣化鐵路中手寫數字簽名識別率達到了96%以上.通過實驗可以看出,過濾器通過ReLU函數后,出現了個別過濾器全黑的圖像,這意味著該過濾器沒有捕捉到圖像的任何特征,這種情況需要更多的訓練數據、更多的訓練次數才能改善.