楊永翌



摘 要:近年來,深度學習在圖像識別領域獲得了巨大成功,各種深度學習框架也隨之開源,而Keras框架較于Tensorflow由于其代碼易讀,模塊化設計更加引人注目。文章對比了基于Tensorflow的softmax方法和基于Keras框架下改進的卷積神經網絡方法對MNIST數據集識別的準確率,驗證結果表明,前者準確率為0.92,后者高達0.98。
關鍵詞:圖像識別;Tensorflow;Keras;卷積神經網絡
中圖分類號:U471.15 ?文獻標識碼:A ?文章編號: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
前言
圖像識別是計算機視覺的重要分支,是計算機對于圖像的處理和理解。近年來由于采用深度學習使得圖像識別準確率大大提高,使這一領域達到了前所未有的關注,遠遠領先于傳統的圖像識別方法,在自動駕駛,人臉識別,車牌識別等方面都有重要作用,未來對人類社會必然有更深遠的影響[1]。2012年,浙江大學許可以經典卷積神經網絡為基礎,構造出大小不同的特征提取過濾器層應用到MNIST數據集,并分析了不同大小濾波器層對實驗結果的影響[2]。2015年,王振,高茂庭提出在卷積神經網絡中多次應用較小卷積核,大大減少了神經網絡訓練過程參數數量[3],能有效提高識別準確率,實驗驗證了這種結果的可靠性。本文通過對比Softmax回歸方法和深度學習方法分別對MNIST數據集中的圖像進行識別,結果表明改進后的深度學習模型的圖像識別率大大提高。
1 MNIST數據集介紹
MNIST數據集[4]來源于美國國家標準與技術研究所(NIST),如圖1所示,由60000張訓練數據集,60000張訓練標簽集,10000張測試數據集,10000張訓練標簽集組成。
每張圖片由28*28共784個像素點組成,每個像素僅用一個灰度值(0,255)之間的數字表示,每張圖片均對應一個標簽,標簽為0-9中的某一數字。在Tensorflow中,標簽采用10維向量表示,其中只有一個數字為1,其他均為0。例如,數字7表示為[0,0,0,0,0,0,0,1,0,0]。手寫數字集的識別問題可以理解為概率問題,即將某個數字出現的概率取其中的最大值作為輸出結果。
圖1 ?MNIST數據集樣張
2 Softmax方法識別模型
Softmax回歸是Logitic回歸的延伸,將只能進行二分類的Logitic發展為可以解決多分類問題的Softmax。假設訓練集,對應標簽yi∈{1,2,…,k}。對于輸入x,通過假設函數:
(1)
輸出k維向量表示各個類別的輸出概率,各概率之和為1,θ1,θ2,…θk是模型參數,類的概率值為:
(2)
使用tensorflow直接調用Softmax模型[5],輸入為28*28展開的784維向量,輸出10個特征,采用梯度下降法,實驗結果如表1所示。
表1 ?Softmax圖像識別結果
該方法僅有輸入層和輸出層,中間沒有任何隱藏層,實驗結果表明識別準確率大約為0.92。
3 基于Keras框架的改進模型
3.1 卷積神經網絡介紹
卷積神經網絡是模擬人類大腦中神經元數量及連接方式的網絡,如今網絡結構朝更深更寬的方向發展,來達到模擬人類大腦的思維水平。相比于其他網絡,具有稀疏連接、權值共享的特點。傳統的神經網絡的隱藏層每一個神經元都要和上一層的每一個神經元相連接,顯然此時參數的數據是龐大的,且參數之間相互獨立,需要模型逐一學習,會占用大量內存,花費大量時間,而卷積神經網絡認為距離相近的神經元之間具有較大關聯性,故下一層神經元只需與上一層某一區域的某個神經元相連接,此種處理方式大大降低了參數數量,提高了學習效率。隨著網絡層數的不斷加深,當神經元數量增加時,參數量依然十分巨大,由于圖像中同一個對象具有相同的特征,故可用具有相同權重的卷積核在輸入圖像的不同位置進行計算,若計算結果具有相似性,則認為具有相同特征,判定為同一對象,則無論對象在圖像的哪個位置都可以進行準確分類,這種使用相同參數的方式稱為權值共享,可大大降低參數數量。
3.2 Keras深度學習模型改進
對比Softmax模型,改進的模型中加入了卷積層,池化層,全連接層等[6],采用多個小卷積核對輸入圖像進行特征提取生成特征圖,卷積過程中不進行填充,即padding=valid,經過池化縮小卷積后的特征圖尺寸,保留主要特征,減少參數和計算量,一般分為平均池化和最大池化[7],平均池化就是取特征圖某一區域像素點的平均值,最大池化就是取特征圖某一區域像素點的最大值,除最后一層全連接層使用softmax函數外,其他層均使用tanh作為激活函數,模型結構如圖2所示,Keras框架下模型如圖3。
圖2 ?網絡模型結構圖
圖3 ?Keras框架下模型
整個網絡是一個7層結構(不包括輸入層),包括3層卷積層,2層池化層,2層全連接層,上一層的輸出作為下一層的輸入。輸入層為32*32單通道灰度圖,對該圖像進行卷積操作得到C1層,采用12個卷積核,尺寸為5*5,步長為1,卷積層的作用是提取原圖特征,所以結果稱為特征圖,每張圖像大小為28(32-5+1)。對該層采用最大池化得到S2,池化使用核大小為2*2,步長為2,池化保留了特征圖的主要特征,減少了計算量,圖像尺寸大小為14((28-2)/2+1)。再次進行卷積操作得到C3層,采用24個卷積核,尺寸為5*5,步長為1,圖像尺寸大小為10(14-5+1),池化得到S4的過程和上述得到S2過程相同,圖像尺寸為5。繼續進行卷積,由于卷積核尺寸和圖像尺寸一致,故得到120維向量,繼續進行全連接獲取圖像,最后進行10個節點的全連接,采取softmax作為激活函數,輸出結果。將所有訓練集數據訓練4次,實驗結果如表2。
表2 ?改進模型圖像識別結果
4 結論
從兩次實驗的結果對比來看,改進的模型由于加入卷積、池化等方法具有更高的準確率,訓練集準確率為0.9851,測試集準確率為0.9838,整體表現出色。
5 結束語
Keras框架是采用python語言編寫的高級神經網絡API,可以tensorflow為后端,相比其它深度學習框架,采用Keras能以最短的時間搭建起需要的神經網絡進行圖像識別[8],對用戶友好,模塊化,能夠在CPU或GPU上運行。本文在Keras框架下,快速搭建了需要的網絡模型,調整參數進行訓練,極大提高了編程效率,對于構建更復雜的模型更具優勢。
參考文獻
[1] 張家怡.圖像識別的技術現狀和發展趨勢[J].電腦知識與技術, 2010,6(21):6045-6046.
[2] 許可.卷積神經網絡在圖像識別上的應用的研究[D].浙江大學, 2012.
[3] 王振,高茂庭.基于卷積神經網絡的圖像識別算法設計與實現[J].現代計算機(專業版),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].軟件工程,2019,22(02):13-16.