朱書眉



摘要:文章介紹了卷積神經網絡中的卷積層、池化層和全連接層,分析了利用TensorFlow實現基于卷積神經網絡的手寫體數字識別,比較卷積神經網絡和傳統BP神經網絡對手寫體數字的識別效果。
關鍵詞:卷積神經網絡;TensorFlow;手寫體數字識別
中圖分類號:TP391.4 文獻標識碼:A 文章編號:1007-9416(2018)11-0044-01
卷積神經網絡(Convolutional Neural Network,CNN)是機器學習中一種較為經典的前饋人工神經網絡。近年來,由于不斷提出的CNN模型在ImageNet挑戰賽中的出色表現,CNN已成為眾多學科的研究熱點,在計算機視覺領域取得較大突破[1-2]。手寫體數字識別是模式識別中的一個重要研究課題,在財稅、金融、數據統計領域有廣泛的應用前景[3]。
1 卷積神經網絡
CNN主要由輸入層、隱層、全連接層和輸出層組成,隱層包括卷積層和池化層,兩者交替連接而成。
1.1 卷積層和池化層
卷積層將前一層的特征圖與若干參數可調的卷積模板展開卷積運算,并利用激活函數輸出得到該層的輸出特征圖,如式(1)所示。
式中表示l-1層特征圖被j個卷積所覆蓋的元素;是l層卷積核中的元素;b指代偏置;是第j個卷積核覆蓋的區域;表示激活函數。
池化層對上層特征做降采樣處理,將其分為n*n個圖像小塊,對每塊采用最大值法或均值法,加上偏置后通過激活函數輸出,如式(2)所示。
式中,是l-1層圖像塊降采樣后得到的輸出;是l-1層輸出,也是l層的輸入元素。
1.2 全連接層
圖像經過卷積和池化后輸出高級特征,再經由全連接層對這些輸入特征加權求和,加上偏置后通過激活函數得到最終輸出,如式(3)所示。
式中,是前一層輸出特征圖;是全連接層的權重系數。
2 實驗分析
實驗利用TensorFlow框架構造CNN模型,對比CNN和BP神經網絡在MNIST數據集上的識別精度。該數據集由70000張(0-9)手寫數字灰度圖片組成,包括60000張訓練圖片和10000張測試圖片,每張大小為28*28像素。實驗運行于Win10系統,TensorFlow版本為1.71-gpu,顯卡型號為Nvida GTX 960M 8G。
2.1 實驗設計
CNN設置兩個卷積層和兩個池化層,第一個卷積層有32個卷積核,大小為5*5,經卷積后得到32個特征圖;第一個池化層的采樣核大小為2*2,且采用最大值法采樣;第二個卷積層有64個卷積核,大小為5*5,經卷積后得到64個特征圖;第二個池化層的采樣核大小為2*2,采用最大值法采樣;全連接層使用1024個神經元;激活函數使用relu函數。
訓練流程:(1)使用softmax計算損失函數;(2)使用adam優化器來以0.0001的學習率進行微調;(3)計算準確率;(4)循環5000次,每次選擇50個樣本進行更新。
2.2 結果與分析
實驗結果如圖1、2所示,CNN一次更新50個樣本,經過2500次迭代后,精度穩定在0.95附近;BP神經網絡一次更新所有樣本,隨著迭代次數的增加精度不斷提高,最終穩定在0.83附近。本次實驗表明,CNN相比于BP神經網絡識別精度提高約12個百分點。
3 結語
本文介紹了CNN的重要組成部分:卷積層、池化層和全連接層,然后在MNIST數據集上比較了CNN和BP神經網絡對手寫數字的識別效果,實驗表明CNN在識別精度上遠勝于BP神經網絡。如何避免過擬合現象、提高網絡的學習能力將是CNN今后亟待解決的問題。
參考文獻
[1]Girshick R. Fast R-CNN[J].Computer Science,2015.
[2]Wang J, Yang Y, Mao J, et al. CNN-RNN: A Unified Framework for Multi-label Image Classification[C]// Computer Vision and Pattern Recognition. IEEE, 2016:2285-2294.
[3]Schaetti N, Salomon M, Couturier R. Echo State Networks-Based Reservoir Computing for MNIST Handwritten Digits Recognition[C]// Computational Science and Engineering. IEEE,2017.
Handwritten Digit Recognition Based on Convolutional Neural Network
ZHU Shu-mei
(Tongda College of Nanjing University of Posts and Telecommunications , Yangzhou Jiangsu 225127)
Abstract:This paper introduces the convolution layer, pooling layer and full connection layer of convolution neural network, and analyses the recognition of handwritten numerals based on convolution neural network by using TensorFlow, The recognition effect of convolution neural network and traditional BP neural network is compared.
Key words:convolution neural network; TensorFlow; handwritten digit recognition