深度學(xué)習(xí)作為機(jī)器學(xué)習(xí)分支之一,應(yīng)用日益廣泛。 語(yǔ)音識(shí)別 、自動(dòng) 機(jī)器翻譯 、即時(shí)視覺(jué)翻譯、刷臉支付、人臉考勤……不知不覺(jué),深度學(xué)習(xí)已經(jīng)滲入到我們生活中的每個(gè)角落,給生活帶來(lái)極大便利。即便如此,依然有很多人覺(jué)得深度學(xué)習(xí)高深莫測(cè)、遙不可及,的確,它有深?yuàn)W之處,非專業(yè)人士難以企及,但也有親和力十足的一面,讓沒(méi)有基礎(chǔ)的小白也能輕松上手,感受深度學(xué)習(xí)的魅力,接下來(lái)要介紹的手寫(xiě)數(shù)字識(shí)別模型訓(xùn)練正是如此。
手寫(xiě)數(shù)字識(shí)別初探
手寫(xiě)數(shù)字識(shí)別是計(jì)算機(jī)視覺(jué)中較為簡(jiǎn)單的任務(wù),也是計(jì)算機(jī)視覺(jué)領(lǐng)域發(fā)展較早的方向之一,早期主要用于銀行匯款、單號(hào)識(shí)別、郵政信件、包裹的手寫(xiě)、郵編識(shí)別等場(chǎng)景,目前手寫(xiě)數(shù)字識(shí)別已經(jīng)達(dá)到了較高的準(zhǔn)確率,得到大規(guī)模的推廣與應(yīng)用。雖然手寫(xiě)數(shù)字識(shí)別本身的領(lǐng)域比較狹窄,實(shí)用性有限,但是在它基礎(chǔ)上發(fā)展起來(lái)的卷積神經(jīng)網(wǎng)絡(luò)等計(jì)算機(jī)視覺(jué)技術(shù)早已應(yīng)用在更為復(fù)雜的任務(wù)中,因此,手寫(xiě)數(shù)字識(shí)別也成為計(jì)算機(jī)視覺(jué)領(lǐng)域衡量算法表現(xiàn)的一個(gè)基準(zhǔn)任務(wù)。所以,通過(guò)這一實(shí)踐場(chǎng)景來(lái)了解神經(jīng)網(wǎng)絡(luò)開(kāi)發(fā)和訓(xùn)練,可謂再好不過(guò)了。如何使用深度學(xué)習(xí)框架MindSpore進(jìn)行模型開(kāi)發(fā)與訓(xùn)練?又如何在ModelArts平臺(tái)訓(xùn)練一個(gè)可以用于識(shí)別手寫(xiě)數(shù)字的模型呢?讓我們來(lái)一探究竟吧。
數(shù)據(jù)集 的選擇與準(zhǔn)備
機(jī)器學(xué)習(xí)中的傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)都是數(shù)據(jù)驅(qū)動(dòng)的研究領(lǐng)域,需要基于大量的歷史數(shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,再使用模型對(duì)新的數(shù)據(jù)進(jìn)行推理和預(yù)測(cè),因此數(shù)據(jù)是機(jī)器學(xué)習(xí)中的關(guān)鍵要素之一。
MNIST數(shù)據(jù)集是目前手寫(xiě)數(shù)字識(shí)別領(lǐng)域使用最為廣泛的公開(kāi)數(shù)據(jù)集,大部分識(shí)別算法都會(huì)基于它進(jìn)行訓(xùn)練和驗(yàn)證。MNIST數(shù)據(jù)集包含0~9這10種數(shù)字,每一種數(shù)字都包含大量不同形態(tài)的手寫(xiě)數(shù)字圖片訓(xùn)練集,分為訓(xùn)練集和測(cè)試集。訓(xùn)練集涵蓋6萬(wàn)張手寫(xiě)數(shù)字圖片,測(cè)試級(jí)涵蓋1萬(wàn)張手寫(xiě)數(shù)字圖片。每一張圖片皆為經(jīng)過(guò)尺寸標(biāo)準(zhǔn)化的黑白圖像,是28*28像素,像素值為0或者1的二值化圖像。MNIST數(shù)據(jù)集的原始圖像是黑白的,但在實(shí)際訓(xùn)練中使用數(shù)據(jù)增強(qiáng)后的圖片能夠獲得更好的訓(xùn)練效果。
本次訓(xùn)練所使用的經(jīng)過(guò)數(shù)據(jù)增強(qiáng)的圖片
基于深度學(xué)習(xí)的識(shí)別方法
與傳統(tǒng)的機(jī)器學(xué)習(xí)使用簡(jiǎn)單模型執(zhí)行分類等任務(wù)不同,此次訓(xùn)練我們使用深度神經(jīng)網(wǎng)絡(luò)作為訓(xùn)練模型,即深度學(xué)習(xí)。深度學(xué)習(xí)通過(guò)人工神經(jīng)網(wǎng)絡(luò)來(lái)提取特征,不同層的輸出常被視為神經(jīng)網(wǎng)絡(luò)提取出的不同尺度的特征,上一層的輸出作為下一層的輸入,層層連接構(gòu)成深度神經(jīng)網(wǎng)絡(luò)。
1994年,Yann LeCun發(fā)布了結(jié)合反向傳播的卷積神經(jīng)網(wǎng)絡(luò) LeNet, 其在手寫(xiě)數(shù)字識(shí)別領(lǐng)域效果遠(yuǎn)超其他模型。1998年,Yann LeCun等人構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)LeNet-5在手寫(xiě)數(shù)字識(shí)別問(wèn)題中取得成功 ,被譽(yù)為卷積神經(jīng)網(wǎng)絡(luò)的“Hello Word”。LeNet-5以及在此之后產(chǎn)生的變體定義了現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),可謂入門級(jí)神經(jīng)網(wǎng)絡(luò)模型。本次實(shí)踐使用的模型正是LeNet-5。
LeNet-5由輸入層、卷積層、池化層和全連接層組成。輸入層用于輸入數(shù)據(jù);卷積層通過(guò)卷積運(yùn)算對(duì)輸入進(jìn)行局部特征提??;池化層通過(guò)下采樣的方式降低特征圖的分辨率,從而降低輸出對(duì)位置和形變的敏感度,同時(shí)還可降低網(wǎng)絡(luò)中的參數(shù)和計(jì)算量;全連接層將局部特征通過(guò)權(quán)值矩陣組裝成完整的圖像,完成特征空間到真實(shí)類別空間的映射,最終的圖像分類便是由全連接層完成的。有了這樣一個(gè)神經(jīng)網(wǎng)絡(luò)后,我們還需要用大量數(shù)據(jù)集對(duì)它進(jìn)行不斷地訓(xùn)練,才能對(duì)輸入數(shù)據(jù)有較為準(zhǔn)確的預(yù)測(cè)結(jié)果,這一過(guò)程便依賴于華為自研的深度學(xué)習(xí)框架MindSpore。
MindSpore的“學(xué)習(xí)”過(guò)程
MindSpore當(dāng)前已經(jīng)部署在ModelArts的開(kāi)發(fā)環(huán)境和訓(xùn)練環(huán)境中,同時(shí)提供了閾值算法供開(kāi)發(fā)者直接使用,它的學(xué)習(xí)過(guò)程如下圖所示,簡(jiǎn)單總結(jié)一下:
1. 使用MindSpore提供的基本模塊進(jìn)行前線網(wǎng)絡(luò)開(kāi)發(fā)。
2. 對(duì)數(shù)據(jù)進(jìn)行處理和增強(qiáng)以便得到更好的數(shù)據(jù)輸入。
3. 利用前線網(wǎng)絡(luò)構(gòu)建訓(xùn)練模型,并進(jìn)行模型保存和推理。
說(shuō)起來(lái)可能平淡無(wú)奇,但是實(shí)驗(yàn)終究需要自己親自動(dòng)手才能體會(huì)其中的無(wú)限樂(lè)趣。
看到這里,想必各種背景知識(shí)和原理大家已經(jīng)略知一二,如果你已經(jīng)躍躍欲試,那就快來(lái)華為云學(xué)院學(xué)習(xí)微認(rèn)證課程《使用MindSpore訓(xùn)練手寫(xiě)數(shù)字識(shí)別模型》吧。對(duì)了,悄悄告訴你,這個(gè)實(shí)驗(yàn)現(xiàn)在還是免費(fèi)的喲,來(lái) 沙箱實(shí)驗(yàn)室 就能即刻體驗(yàn)。從原理到實(shí)踐,帶你全方位了解手寫(xiě)數(shù)字模型訓(xùn)練全過(guò)程,快速上手深度學(xué)習(xí),速來(lái)!