翟高粵
摘要:數(shù)字識別(Digit Recognition),是計算機從紙質(zhì)文檔,照片,或其他來源接收和理解并識別可讀的數(shù)字的能力。根據(jù)數(shù)字來源的產(chǎn)生方式的不同,目前數(shù)字識別問題可以區(qū)分為手寫體數(shù)字識別,印刷體數(shù)字識別,光學(xué)數(shù)字識別,自然場景下的數(shù)字識別等,具有很大的實際應(yīng)用價值。目前比較受到關(guān)注的問題主要是手寫體數(shù)字識別,由于其具有MNIST這種大型標準易用的成熟數(shù)據(jù)集,簡單的0-9數(shù)字識別已經(jīng)被作為計算機視覺領(lǐng)域的入門問題。介紹手寫數(shù)字識別的特點和應(yīng)用,并指出傳統(tǒng)研究方法及其不足之處;然后引入深度學(xué)習(xí)的概念,以卷積神經(jīng)網(wǎng)絡(luò)為例,詳細介紹卷積神經(jīng)網(wǎng)絡(luò)的關(guān)鍵技術(shù)特點,最后通過一個實例說明卷積神經(jīng)網(wǎng)絡(luò)在手寫數(shù)字識別方面的應(yīng)用。
關(guān)鍵詞:MNIST;深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);手寫數(shù)字
中圖分類號:TP183 文獻標志碼:A
0引言
目前,利用計算機進行手寫數(shù)字識別應(yīng)用廣泛,它是人類與計算機進行交互的一種方法?,F(xiàn)在已經(jīng)有多種方法進行手寫數(shù)字識別,識別方法的性能通常取決于一些屬性,如數(shù)字的大小、書寫風(fēng)格和識別率。手寫數(shù)字識別的主要挑戰(zhàn)之一是個人筆跡風(fēng)格(即數(shù)字尺寸和風(fēng)格)的不一致性,以及收集筆跡的設(shè)備類型,因此需要有一個能夠自動識別高識別率的手寫模式的系統(tǒng)。在過去的手寫體數(shù)字識別中,提出了許多識別方法,比如基于反向傳播神經(jīng)網(wǎng)絡(luò)的數(shù)字識別方法、貝葉斯分類器的進化策略和梯度下降方法。本論述通過使用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)技術(shù),可以降低手寫數(shù)字的分類錯誤數(shù)量,并減少完成識別所花費的時間。
1深度學(xué)習(xí)簡介
加拿大多倫多大學(xué)教授Geoffrey Hinton長期堅持神經(jīng)網(wǎng)絡(luò)的研究,但由于當時支持向量機的流行,神經(jīng)網(wǎng)絡(luò)相關(guān)的研究工作遇到了重重阻礙。2006年,Geof-frey Hinton提出了一種逐層預(yù)訓(xùn)練的算法,可以有效地初始化Deep BeliefNetworks(DBN)網(wǎng)絡(luò),從而使得訓(xùn)練大規(guī)模、深層數(shù)(上百萬的參數(shù)量)的神經(jīng)網(wǎng)絡(luò)成為可能。在論文中,Geoffrey Hinton把深層的神經(jīng)網(wǎng)絡(luò)叫做Deep Neural Network,這一塊的研究也因此稱為Deep karning(深度學(xué)習(xí))。本論述將討論深度學(xué)習(xí)的典型網(wǎng)絡(luò)一卷積神經(jīng)網(wǎng)絡(luò),這也是層數(shù)可以輕松達到上百層的一類神經(jīng)網(wǎng)絡(luò)。
2卷積神經(jīng)網(wǎng)絡(luò)簡介
2.1卷積神經(jīng)網(wǎng)絡(luò)的特點
卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)的一個典型網(wǎng)絡(luò),通過充分利用局部相關(guān)性和權(quán)值共享的思想,大大地減少了網(wǎng)絡(luò)的參數(shù)量,從而提高訓(xùn)練效率,更容易實現(xiàn)超大規(guī)模的深層網(wǎng)絡(luò)。2012年,加拿大多倫多大學(xué)Al-ex Krizhevskv將深層卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在大規(guī)模圖片識別挑戰(zhàn)賽ILsvRc 2012上,在ImageNet數(shù)據(jù)集上取得了15.3%的Top-5錯誤率,排名第一,相對于第二名在Top-5錯誤率上降低了10.9%。這一巨大突破引起了業(yè)界強烈關(guān)注,卷積神經(jīng)網(wǎng)絡(luò)迅速成為計算機視覺領(lǐng)域的新寵。隨后在一系列的任務(wù)中,基于卷積神經(jīng)網(wǎng)絡(luò)的形形色色的模型相繼被提出,并在原有的性能上取得了巨大提升。
2.2卷積神經(jīng)網(wǎng)絡(luò)的基本原理
在數(shù)字圖像處理中有一種基本的處理方法叫線性濾波。它將待處理的二維數(shù)字看作一個大型矩陣,圖像中的每個像素可以看作矩陣中的每個元素,像素的大小就是矩陣中的元素值。而使用的濾波工具是另一個小型矩陣,這個矩陣就被稱為卷積核。卷積核的大小遠遠小于圖像矩陣,具體的計算方式就是對于圖像大矩陣中的每個元素,計算周圍的像素和卷積核對應(yīng)位置的乘積,之后將結(jié)果相加最終得到的終值就是該像素的值,這樣就完成了一次卷積。
如果采用卷積神經(jīng)網(wǎng)絡(luò)來替代以上提到的手寫數(shù)字識別淺層神經(jīng)網(wǎng)絡(luò),采用三個卷積層,和兩個全連接層,一共只需要13450個參數(shù),而且識別的準確率大幅上升。經(jīng)過測試,可由原來的91%上升到98%以上。由此可見,卷積層的參數(shù)量非常少,主要的參數(shù)量集中在全連接層。由于卷積層將輸入特征維度降低很多,從而使得全連接層的參數(shù)量不至于過大,因此通過卷積神經(jīng)網(wǎng)絡(luò)可以顯著降低網(wǎng)絡(luò)參數(shù)量,同時增加網(wǎng)絡(luò)深度,大幅提高了識別的準確率。
3卷積神經(jīng)網(wǎng)絡(luò)在手寫數(shù)字識別的關(guān)鍵技術(shù)介紹
卷積神經(jīng)網(wǎng)絡(luò)可以應(yīng)用在人工智能的很多領(lǐng)域,比如圖像和自然語言處理等等。其結(jié)合特征提取和目標訓(xùn)練為一體的模型,能夠很好地利用已有的信息對結(jié)果進行反饋訓(xùn)練。對手寫數(shù)字識別的卷積神經(jīng)網(wǎng)絡(luò)來說,同樣也是充分利用提取的手寫數(shù)字的圖像特征進行訓(xùn)練并最終實現(xiàn)手寫數(shù)字的識別。
3.1 MNIST數(shù)據(jù)集介紹
在本論述中,利用MNIST手寫數(shù)字的數(shù)據(jù)庫作為實驗數(shù)據(jù),MNIST數(shù)據(jù)庫中60000個圖片作為訓(xùn)練數(shù)據(jù),另外10000個圖片作為測試數(shù)據(jù),每張圖片分別顯示0-9中的某一個數(shù)字,樣本中還包含了各個訓(xùn)練數(shù)據(jù)相應(yīng)的標簽,其中標簽集包含了0,1,2,3,4,5,6,7,8,9一共10個分類數(shù)據(jù)。該數(shù)據(jù)集由美國國家標準與技術(shù)研究所(NIST)開發(fā),數(shù)據(jù)庫的每個圖像為28x28像素的灰度圖像。訓(xùn)練數(shù)據(jù)集如圖1所示。
3.2卷積神經(jīng)網(wǎng)絡(luò)在手寫數(shù)字識別中的原理和應(yīng)用
卷積神經(jīng)網(wǎng)絡(luò)(cNN)是人工神經(jīng)網(wǎng)絡(luò)(ANN)的一種特殊類型。CNN由五個基本層組成,分別是輸入層、卷積層、池化層、全連接層和輸出層。CNN主要有兩個處理階段:特征學(xué)習(xí)階段和分類階段。每個階段由一個或多個層組成。特征學(xué)習(xí)階段通過結(jié)合兩種層(即卷積層和池化層)來實現(xiàn)。這個階段提供了從訓(xùn)練示例中提取的最重要的特征,然后把這些提取的特征傳送到全連接的ANN層進行數(shù)字分類識別。CNN手寫數(shù)字識別的結(jié)構(gòu)圖,如圖2所示。
圖2中網(wǎng)絡(luò)一共有8層,下面依次對各層的作用進行介紹。
第1層為輸入層,輸人大小為28*28像素的手寫數(shù)字圖片。
第2層對輸入圖像進行第一次卷積運算,使用的是6個大小為5*5的卷積核,卷積結(jié)果是6幅大小為28*28的圖像。
第3層對第2層卷積運算的結(jié)果進行池化,使用2*2的核進行池化,得到了6個14*14的特征圖。
第4層對第3層的輸出進行第二次卷積運算,卷積核的大小是5*5,得到的16幅10*10的特征圖。
第5層對第4層卷積運算的結(jié)果進行池化,也是使用2*2的核進行池化,所以得到12個7*7的特征圖。
第6層是卷積層,對第5層的輸出結(jié)果進行全連接,形成256個1*1的特征圖。
第7層是全連接層,對第6層的輸出進行全連接,形成128個1*1的特征圖。
第8層是輸出層也是全連接層,共有10個節(jié)點,分別代表0-9這10個數(shù)字。每個神經(jīng)元的激活值表示對應(yīng)字符的響應(yīng)強度,最大值則為對應(yīng)的識別結(jié)果。
3.3實驗結(jié)果分析
數(shù)據(jù)是學(xué)習(xí)過程中不可分割的一部分,它提供了實驗的指導(dǎo)思想和建立一個準確的CNN。在本論述案例研究中,從60000個樣本中隨機抽取30000個樣本作為訓(xùn)練示例,另外3000個樣本用于驗證,最后10000個測試樣本用于測試的示例。實驗表明,進行到14040次迭代之后,損失率和準確率趨于穩(wěn)定。最終準確率達到98%以上。實驗結(jié)果如圖3所示。
4總結(jié)
本論述首先介紹手寫數(shù)字識別的特點和應(yīng)用,進而引入深度學(xué)習(xí)的概念,并詳細介紹了深度學(xué)習(xí)的典型網(wǎng)絡(luò)一卷積神經(jīng)網(wǎng)絡(luò)的特點和基本原理,最后通過使用TensorFlow2.3建立卷積神經(jīng)網(wǎng)絡(luò),對卷積的原理和步驟進行詳細說明??傮w而言,在手寫數(shù)字識別處理方面,卷積神經(jīng)網(wǎng)絡(luò)方法不僅在準確性方面優(yōu)于傳統(tǒng)方法,而且在從運行的效率和魯棒性也優(yōu)于傳統(tǒng)方法。