朱書眉
摘要:文章介紹了卷積神經(jīng)網(wǎng)絡(luò)中的卷積層、池化層和全連接層,分析了利用TensorFlow實(shí)現(xiàn)基于卷積神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識(shí)別,比較卷積神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)對(duì)手寫體數(shù)字的識(shí)別效果。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);TensorFlow;手寫體數(shù)字識(shí)別
中圖分類號(hào):TP391.4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)11-0044-01
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是機(jī)器學(xué)習(xí)中一種較為經(jīng)典的前饋人工神經(jīng)網(wǎng)絡(luò)。近年來,由于不斷提出的CNN模型在ImageNet挑戰(zhàn)賽中的出色表現(xiàn),CNN已成為眾多學(xué)科的研究熱點(diǎn),在計(jì)算機(jī)視覺領(lǐng)域取得較大突破[1-2]。手寫體數(shù)字識(shí)別是模式識(shí)別中的一個(gè)重要研究課題,在財(cái)稅、金融、數(shù)據(jù)統(tǒng)計(jì)領(lǐng)域有廣泛的應(yīng)用前景[3]。
1 卷積神經(jīng)網(wǎng)絡(luò)
CNN主要由輸入層、隱層、全連接層和輸出層組成,隱層包括卷積層和池化層,兩者交替連接而成。
1.1 卷積層和池化層
卷積層將前一層的特征圖與若干參數(shù)可調(diào)的卷積模板展開卷積運(yùn)算,并利用激活函數(shù)輸出得到該層的輸出特征圖,如式(1)所示。
式中表示l-1層特征圖被j個(gè)卷積所覆蓋的元素;是l層卷積核中的元素;b指代偏置;是第j個(gè)卷積核覆蓋的區(qū)域;表示激活函數(shù)。
池化層對(duì)上層特征做降采樣處理,將其分為n*n個(gè)圖像小塊,對(duì)每塊采用最大值法或均值法,加上偏置后通過激活函數(shù)輸出,如式(2)所示。
式中,是l-1層圖像塊降采樣后得到的輸出;是l-1層輸出,也是l層的輸入元素。
1.2 全連接層
圖像經(jīng)過卷積和池化后輸出高級(jí)特征,再經(jīng)由全連接層對(duì)這些輸入特征加權(quán)求和,加上偏置后通過激活函數(shù)得到最終輸出,如式(3)所示。
式中,是前一層輸出特征圖;是全連接層的權(quán)重系數(shù)。
2 實(shí)驗(yàn)分析
實(shí)驗(yàn)利用TensorFlow框架構(gòu)造CNN模型,對(duì)比CNN和BP神經(jīng)網(wǎng)絡(luò)在MNIST數(shù)據(jù)集上的識(shí)別精度。該數(shù)據(jù)集由70000張(0-9)手寫數(shù)字灰度圖片組成,包括60000張訓(xùn)練圖片和10000張測試圖片,每張大小為28*28像素。實(shí)驗(yàn)運(yùn)行于Win10系統(tǒng),TensorFlow版本為1.71-gpu,顯卡型號(hào)為Nvida GTX 960M 8G。
2.1 實(shí)驗(yàn)設(shè)計(jì)
CNN設(shè)置兩個(gè)卷積層和兩個(gè)池化層,第一個(gè)卷積層有32個(gè)卷積核,大小為5*5,經(jīng)卷積后得到32個(gè)特征圖;第一個(gè)池化層的采樣核大小為2*2,且采用最大值法采樣;第二個(gè)卷積層有64個(gè)卷積核,大小為5*5,經(jīng)卷積后得到64個(gè)特征圖;第二個(gè)池化層的采樣核大小為2*2,采用最大值法采樣;全連接層使用1024個(gè)神經(jīng)元;激活函數(shù)使用relu函數(shù)。
訓(xùn)練流程:(1)使用softmax計(jì)算損失函數(shù);(2)使用adam優(yōu)化器來以0.0001的學(xué)習(xí)率進(jìn)行微調(diào);(3)計(jì)算準(zhǔn)確率;(4)循環(huán)5000次,每次選擇50個(gè)樣本進(jìn)行更新。
2.2 結(jié)果與分析
實(shí)驗(yàn)結(jié)果如圖1、2所示,CNN一次更新50個(gè)樣本,經(jīng)過2500次迭代后,精度穩(wěn)定在0.95附近;BP神經(jīng)網(wǎng)絡(luò)一次更新所有樣本,隨著迭代次數(shù)的增加精度不斷提高,最終穩(wěn)定在0.83附近。本次實(shí)驗(yàn)表明,CNN相比于BP神經(jīng)網(wǎng)絡(luò)識(shí)別精度提高約12個(gè)百分點(diǎn)。
3 結(jié)語
本文介紹了CNN的重要組成部分:卷積層、池化層和全連接層,然后在MNIST數(shù)據(jù)集上比較了CNN和BP神經(jīng)網(wǎng)絡(luò)對(duì)手寫數(shù)字的識(shí)別效果,實(shí)驗(yàn)表明CNN在識(shí)別精度上遠(yuǎn)勝于BP神經(jīng)網(wǎng)絡(luò)。如何避免過擬合現(xiàn)象、提高網(wǎng)絡(luò)的學(xué)習(xí)能力將是CNN今后亟待解決的問題。
參考文獻(xiàn)
[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