楊永翌
摘 要:近年來(lái),深度學(xué)習(xí)在圖像識(shí)別領(lǐng)域獲得了巨大成功,各種深度學(xué)習(xí)框架也隨之開(kāi)源,而Keras框架較于Tensorflow由于其代碼易讀,模塊化設(shè)計(jì)更加引人注目。文章對(duì)比了基于Tensorflow的softmax方法和基于Keras框架下改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)方法對(duì)MNIST數(shù)據(jù)集識(shí)別的準(zhǔn)確率,驗(yàn)證結(jié)果表明,前者準(zhǔn)確率為0.92,后者高達(dá)0.98。
關(guān)鍵詞:圖像識(shí)別;Tensorflow;Keras;卷積神經(jīng)網(wǎng)絡(luò)
中圖分類號(hào):U471.15 ?文獻(xiàn)標(biāo)識(shí)碼:A ?文章編號(hào):1671-7988(2019)23-101-03
Improvement of MNIST data set Recognition Method Based on Keras Framework
Yang Yongyi
(Chang'an University Automotive Institute, Shaanxi Xian 710064)
Abstract: In recent years, deep learning has achieved great success in the field of image recognition, and various deep learning frameworks have also been open sourced. The Keras framework is more compelling than Tensorflow because of its code-readable and modular design. This paper compares the accuracy of the softmax method based on Tensorflow and the improved convolutional neural network method based on Keras framework to the MNIST dataset. The verification results show that the former has an accuracy of 0.92 and the latter has a maximum of 0.98.
Keywords: Image recognition; Tensorflow; Keras; Convolutional neural network
CLC NO.: U471.15 ?Document Code: A ?Article ID: 1671-7988(2019)23-101-03
前言
圖像識(shí)別是計(jì)算機(jī)視覺(jué)的重要分支,是計(jì)算機(jī)對(duì)于圖像的處理和理解。近年來(lái)由于采用深度學(xué)習(xí)使得圖像識(shí)別準(zhǔn)確率大大提高,使這一領(lǐng)域達(dá)到了前所未有的關(guān)注,遠(yuǎn)遠(yuǎn)領(lǐng)先于傳統(tǒng)的圖像識(shí)別方法,在自動(dòng)駕駛,人臉識(shí)別,車牌識(shí)別等方面都有重要作用,未來(lái)對(duì)人類社會(huì)必然有更深遠(yuǎn)的影響[1]。2012年,浙江大學(xué)許可以經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),構(gòu)造出大小不同的特征提取過(guò)濾器層應(yīng)用到MNIST數(shù)據(jù)集,并分析了不同大小濾波器層對(duì)實(shí)驗(yàn)結(jié)果的影響[2]。2015年,王振,高茂庭提出在卷積神經(jīng)網(wǎng)絡(luò)中多次應(yīng)用較小卷積核,大大減少了神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程參數(shù)數(shù)量[3],能有效提高識(shí)別準(zhǔn)確率,實(shí)驗(yàn)驗(yàn)證了這種結(jié)果的可靠性。本文通過(guò)對(duì)比Softmax回歸方法和深度學(xué)習(xí)方法分別對(duì)MNIST數(shù)據(jù)集中的圖像進(jìn)行識(shí)別,結(jié)果表明改進(jìn)后的深度學(xué)習(xí)模型的圖像識(shí)別率大大提高。
1 MNIST數(shù)據(jù)集介紹
MNIST數(shù)據(jù)集[4]來(lái)源于美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所(NIST),如圖1所示,由60000張訓(xùn)練數(shù)據(jù)集,60000張訓(xùn)練標(biāo)簽集,10000張測(cè)試數(shù)據(jù)集,10000張訓(xùn)練標(biāo)簽集組成。
每張圖片由28*28共784個(gè)像素點(diǎn)組成,每個(gè)像素僅用一個(gè)灰度值(0,255)之間的數(shù)字表示,每張圖片均對(duì)應(yīng)一個(gè)標(biāo)簽,標(biāo)簽為0-9中的某一數(shù)字。在Tensorflow中,標(biāo)簽采用10維向量表示,其中只有一個(gè)數(shù)字為1,其他均為0。例如,數(shù)字7表示為[0,0,0,0,0,0,0,1,0,0]。手寫數(shù)字集的識(shí)別問(wèn)題可以理解為概率問(wèn)題,即將某個(gè)數(shù)字出現(xiàn)的概率取其中的最大值作為輸出結(jié)果。
圖1 ?MNIST數(shù)據(jù)集樣張
2 Softmax方法識(shí)別模型
Softmax回歸是Logitic回歸的延伸,將只能進(jìn)行二分類的Logitic發(fā)展為可以解決多分類問(wèn)題的Softmax。假設(shè)訓(xùn)練集,對(duì)應(yīng)標(biāo)簽yi∈{1,2,…,k}。對(duì)于輸入x,通過(guò)假設(shè)函數(shù):
(1)
輸出k維向量表示各個(gè)類別的輸出概率,各概率之和為1,θ1,θ2,…θk是模型參數(shù),類的概率值為:
(2)
使用tensorflow直接調(diào)用Softmax模型[5],輸入為28*28展開(kāi)的784維向量,輸出10個(gè)特征,采用梯度下降法,實(shí)驗(yàn)結(jié)果如表1所示。
表1 ?Softmax圖像識(shí)別結(jié)果
該方法僅有輸入層和輸出層,中間沒(méi)有任何隱藏層,實(shí)驗(yàn)結(jié)果表明識(shí)別準(zhǔn)確率大約為0.92。
3 基于Keras框架的改進(jìn)模型
3.1 卷積神經(jīng)網(wǎng)絡(luò)介紹
卷積神經(jīng)網(wǎng)絡(luò)是模擬人類大腦中神經(jīng)元數(shù)量及連接方式的網(wǎng)絡(luò),如今網(wǎng)絡(luò)結(jié)構(gòu)朝更深更寬的方向發(fā)展,來(lái)達(dá)到模擬人類大腦的思維水平。相比于其他網(wǎng)絡(luò),具有稀疏連接、權(quán)值共享的特點(diǎn)。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)的隱藏層每一個(gè)神經(jīng)元都要和上一層的每一個(gè)神經(jīng)元相連接,顯然此時(shí)參數(shù)的數(shù)據(jù)是龐大的,且參數(shù)之間相互獨(dú)立,需要模型逐一學(xué)習(xí),會(huì)占用大量?jī)?nèi)存,花費(fèi)大量時(shí)間,而卷積神經(jīng)網(wǎng)絡(luò)認(rèn)為距離相近的神經(jīng)元之間具有較大關(guān)聯(lián)性,故下一層神經(jīng)元只需與上一層某一區(qū)域的某個(gè)神經(jīng)元相連接,此種處理方式大大降低了參數(shù)數(shù)量,提高了學(xué)習(xí)效率。隨著網(wǎng)絡(luò)層數(shù)的不斷加深,當(dāng)神經(jīng)元數(shù)量增加時(shí),參數(shù)量依然十分巨大,由于圖像中同一個(gè)對(duì)象具有相同的特征,故可用具有相同權(quán)重的卷積核在輸入圖像的不同位置進(jìn)行計(jì)算,若計(jì)算結(jié)果具有相似性,則認(rèn)為具有相同特征,判定為同一對(duì)象,則無(wú)論對(duì)象在圖像的哪個(gè)位置都可以進(jìn)行準(zhǔn)確分類,這種使用相同參數(shù)的方式稱為權(quán)值共享,可大大降低參數(shù)數(shù)量。
3.2 Keras深度學(xué)習(xí)模型改進(jìn)
對(duì)比Softmax模型,改進(jìn)的模型中加入了卷積層,池化層,全連接層等[6],采用多個(gè)小卷積核對(duì)輸入圖像進(jìn)行特征提取生成特征圖,卷積過(guò)程中不進(jìn)行填充,即padding=valid,經(jīng)過(guò)池化縮小卷積后的特征圖尺寸,保留主要特征,減少參數(shù)和計(jì)算量,一般分為平均池化和最大池化[7],平均池化就是取特征圖某一區(qū)域像素點(diǎn)的平均值,最大池化就是取特征圖某一區(qū)域像素點(diǎn)的最大值,除最后一層全連接層使用softmax函數(shù)外,其他層均使用tanh作為激活函數(shù),模型結(jié)構(gòu)如圖2所示,Keras框架下模型如圖3。
圖2 ?網(wǎng)絡(luò)模型結(jié)構(gòu)圖
圖3 ?Keras框架下模型
整個(gè)網(wǎng)絡(luò)是一個(gè)7層結(jié)構(gòu)(不包括輸入層),包括3層卷積層,2層池化層,2層全連接層,上一層的輸出作為下一層的輸入。輸入層為32*32單通道灰度圖,對(duì)該圖像進(jìn)行卷積操作得到C1層,采用12個(gè)卷積核,尺寸為5*5,步長(zhǎng)為1,卷積層的作用是提取原圖特征,所以結(jié)果稱為特征圖,每張圖像大小為28(32-5+1)。對(duì)該層采用最大池化得到S2,池化使用核大小為2*2,步長(zhǎng)為2,池化保留了特征圖的主要特征,減少了計(jì)算量,圖像尺寸大小為14((28-2)/2+1)。再次進(jìn)行卷積操作得到C3層,采用24個(gè)卷積核,尺寸為5*5,步長(zhǎng)為1,圖像尺寸大小為10(14-5+1),池化得到S4的過(guò)程和上述得到S2過(guò)程相同,圖像尺寸為5。繼續(xù)進(jìn)行卷積,由于卷積核尺寸和圖像尺寸一致,故得到120維向量,繼續(xù)進(jìn)行全連接獲取圖像,最后進(jìn)行10個(gè)節(jié)點(diǎn)的全連接,采取softmax作為激活函數(shù),輸出結(jié)果。將所有訓(xùn)練集數(shù)據(jù)訓(xùn)練4次,實(shí)驗(yàn)結(jié)果如表2。
表2 ?改進(jìn)模型圖像識(shí)別結(jié)果
4 結(jié)論
從兩次實(shí)驗(yàn)的結(jié)果對(duì)比來(lái)看,改進(jìn)的模型由于加入卷積、池化等方法具有更高的準(zhǔn)確率,訓(xùn)練集準(zhǔn)確率為0.9851,測(cè)試集準(zhǔn)確率為0.9838,整體表現(xiàn)出色。
5 結(jié)束語(yǔ)
Keras框架是采用python語(yǔ)言編寫的高級(jí)神經(jīng)網(wǎng)絡(luò)API,可以tensorflow為后端,相比其它深度學(xué)習(xí)框架,采用Keras能以最短的時(shí)間搭建起需要的神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像識(shí)別[8],對(duì)用戶友好,模塊化,能夠在CPU或GPU上運(yùn)行。本文在Keras框架下,快速搭建了需要的網(wǎng)絡(luò)模型,調(diào)整參數(shù)進(jìn)行訓(xùn)練,極大提高了編程效率,對(duì)于構(gòu)建更復(fù)雜的模型更具優(yōu)勢(shì)。
參考文獻(xiàn)
[1] 張家怡.圖像識(shí)別的技術(shù)現(xiàn)狀和發(fā)展趨勢(shì)[J].電腦知識(shí)與技術(shù), 2010,6(21):6045-6046.
[2] 許可.卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別上的應(yīng)用的研究[D].浙江大學(xué), 2012.
[3] 王振,高茂庭.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別算法設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2015(20):61-66.
[4] Lecun Y,Boser B,Denker J S,et al.Backpropagation applied to hand -written zip code recognition[J].Neural Computation,2014,1(4):541 - 551.
[5] Hutchinson B, Deng L,et al. Tensor Deep Stacking Networks[J]. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACH -INE INTELLIGENCE,2013,(35): 1944-1957.
[6] Krizhevsky A, Sutskever I, Hinton GE,et al. ImageNet Classification with Deep Convolutional Neural Networks[J]. COMMUNICATIO -NS OF THE ACM,2017,(20):84-90.
[7] Wang JJ, Yang JC,et al. Locality-constrained Linear Coding for Image Classification[C]// 23rd IEEE Conference on Computer Vis -ion and Pattern Recognition.2010:3360-3367.
[8] 圣文順,孫艷文.卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中的應(yīng)用[J].軟件工程,2019,22(02):13-16.