?

基于Keras和卷積神經網絡CNN的手寫數字識別研究

2023-05-30 15:56趙亞騰孫鈺
計算機應用文摘 2023年5期
關鍵詞:卷積神經網絡

趙亞騰 孫鈺

關鍵詞:卷積神經網絡;MNIST;手寫體數字識別;Keras

1引言

數字識別巳經應用到了生活中的各個領域[1],如停車場停車按車牌號計費、交通電子眼抓拍違章、大規模數據統計、文件電子化存儲等。作為一種全球通用的數字符號,阿拉伯數字跨越了國家、文化以及民族的界限[2],在我們的身邊應用非常廣泛。數字的類別數目適當,僅有10類,方便對研究方法進行評估和測試。研究基于深度學習的手寫數字識別方法不僅對理解深度學習有很大的幫助和對實踐深度學習理論有很重要的意義,而且在學習實踐中積累的經驗和教訓可以應用到其他文字識別的領域[3]。正如“一千個讀者心中有一千個哈姆雷特”,即使是只有10個阿拉伯數字,但是每個人寫出來的也是萬般不同,若要通過機器精準識別不同人的寫法依舊困難重重,所以可知手寫數字識別的研究在現代科技的應用中具有很廣闊的前景和較大的探索價值[4]。

2卷積神經網絡的模型

2.1卷積神經網絡概述

簡單來說,卷積神經網絡(CNN)[5]是由一個多層神經網絡組成的系統,其中每一層神經網絡由多個二維平面組合而成,每個二維平面上又包含數個獨立神經元。如圖1所示。

一般來說,CNN由兩層基礎結構組合而成。其中,一層是卷積層(特征提取層)[6]。卷積層的工作原理是將其空間上的神經元與上一層的感受一一對應緊密相連,在運行過程中提取圖像的局部特征。在提取局部特征的后,通過比對與關聯即可與其他局部特征的位置關系關聯起來;另外一層基礎結構叫下采樣層(功能映射層)。采樣層的目的是實現樣本的采樣和計算,在計算的過程中依賴每個采樣點上的多個要素圖,要素圖分布在計算層的平面,而神經元是等權重分布在要素圖上的。

2.2卷積層

卷積層是卷積神經網絡的核心部分,神經網絡卷積中大部分的計算內容都由卷積層完成。卷積核其實就是通過各種濾波器集合而形成的,在卷積層上,卷積核只是占位空間很小的一部分,在深度計算過程中,通過計算分析輸入數據來得到卷積結果。卷積核的體積大小設置通過輸入參數,可以動態靈活性選擇。卷積核的核心內容是全連接神經網絡找出要更新的權值w,即訓練神經網絡進行深度學習的核心內容就是卷積核。訓練的目的和過程就是最終找到反映訓練數據整體特征的濾波器。如圖2所示,左邊作為卷積層的輸入項圖片(image),經過中間卷積核(filter)的處理,最終產生右邊卷積后的特征圖譜(featuremap)。

2.3子采樣層

子采樣層又被稱為池化層,部分文獻也將其稱作采樣層。加入自采樣層的目的是控制輸入數據量的大小,減小樣本規模,減少網絡中參數的數量,最終實現的效果是可以節省計算資源、加快訓練速率、節省時間。采樣層的另一大優勢是可以實現對擬合出現的有效控制。實驗中使用最頻繁的采樣方式一般有兩種,即MaxPooling和MeanPooling。MaxPooling的保留方式是最終保留N*N數據樣本中的最大值,經過實驗驗證,得出使用MaxPooling方式的效果更精準的結論。2*2樣本的采樣過程和結果如圖3所示。

2.4全連接層

全連接層在卷積神經網絡結構中處于最后一層,即輸出層,它的目的和作用是解析輸出數據。此外,還需要對數據序列中的元素進行分析提取,以達到元素和神經元分別對應的目的。經過層層對應,上下層的神經元也響應連接起來。全連接層則是將最終卷出來的訓練模型進行轉化,從而標記空間。所以,在實際的操作過程中,全連接層也是可以由卷積層實現的。

3應用CNN進行數字手寫體識別流程

圖4所示為利用CNN系統對手寫體進行計算機識別的步驟過程。首先選取訓練集,然后將初始化完成后的參數注入訓練集,可以進行迭代形式的訓練深度學習,經過反復的訓練和學習后,當迭代次數達到最大且輸入輸出數據在合理范圍內,最后可以生成一個完整的CNN模型。選用測試集后將測試數據套人模型進行識別測試,經過大量的測試集數據的輸入及輸出后,最終得到一個比較公正可信的文字識別率。

4實驗設置與實驗結果

4.1實驗環境

使用的計算機硬件配置為Intel(R) Core(TM) i5CPU,其主頻為2.67 GHz,內存為8 GB,操作系統為微軟出品且一直在維護中的穩定版Windows 10系統。語言框架為keras,運行軟件為Pycharm。

4.2MINIST數據集

本文采用MINIST數據集為樣本庫,該數據集庫是一個專門為計算機數據集采集而成的數據集合,其中收集了超過70 000張手寫數字圖片,范圍包含阿拉伯數字0~9,每張圖片由28*28的像素點組成。

5實驗結果與分析

本文使用的訓練集是經LeCun手寫后利用MINST構建出來的訓練數據庫。訓練集數據1是根據MNIST數據庫的格式從該數據庫中分離出的部分數據,與測試集沒有重疊部分。測試數據集2是由手寫轉化而成的圖片,從0~9共100個數字,訓練過程中CNN每次耗費75s進行一次迭代執行。模型訓練結束后,經過對識別精確度的評測確認,不斷修改參數,以提高識別準確率,最終達到精確度99%的效果。

6結束語

本文利用Python編程語言以及成熟可用的Keras框架,應用Keras框架深度學習的機制完成神經卷積網絡的手寫數字識別系統的研究和試驗。實驗最終實現了識別精準度99%的效果,但還是有一些不足。首先,實驗的輸入訓練集神經卷積網絡進行深度學習和訓練,使用大量數據來模擬手寫輸入而實現機器一對一的識別。由于條件有限且硬件計算能力不足,導致本次卷積網絡的計算層數比較少。其次,測試集由于使用的是MINST數據集,并沒有較多真實手寫的數據供測試,所以測試數據離真實手寫還有一定差距。下一步的研究和進步方向主要對神經卷積模型進行優化,使之計算識別速率更快、準確率更高。同時,尋找更多現實生活中的圖像作為測試集數據,進行更多的深度學習、模型優化,待模型成熟后,應用識別系統進行更加全面真實的識別測試,從而將研究成果更多地應用在工作及生活中。

猜你喜歡
卷積神經網絡
基于深度神經網絡的微表情識別
卷積神經網絡中減少訓練樣本時間方法研究
卷積神經網絡語言模型研究
基于卷積神經網絡的車輛檢索方法研究
基于卷積神經網絡溫室智能大棚監控系統的研究
基于深度卷積神經網絡的物體識別算法
深度學習算法應用于巖石圖像處理的可行性研究
基于深度卷積網絡的人臉年齡分析算法與實現
深度學習技術下的中文微博情感的分析與研究
基于卷積神經網絡的樹葉識別的算法的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合