黃志超 喬振華
摘要:手寫數(shù)字識別是將人手寫的0-9十個數(shù)字識別出來的一個過程,本文首先分別使用邏輯斯蒂回歸算法和支持向量機(jī)算法對提取出特征向量的圖片進(jìn)行訓(xùn)練,建立模型;其次,針對不同的樣本數(shù)測試以上兩個模型的準(zhǔn)確性;最后通過Py-thon3.7實(shí)驗仿真,實(shí)驗結(jié)果表明,這兩種模型的識別的準(zhǔn)確率較高。
關(guān)鍵詞:手寫數(shù)字識別;邏輯斯蒂回歸;支持向量機(jī)
中圖分類號:TP18 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)33-0215-03
1概述
隨著信息全球化時代的到來,互聯(lián)網(wǎng)技術(shù)數(shù)字化加速發(fā)展,人工智能已稱為當(dāng)今世界最為前沿的熱點(diǎn)方向之一。人工智能技術(shù)已滲入到生活的方方面面。手寫數(shù)字識別技術(shù)屬于人工智能范疇,手寫數(shù)字識別是一種傳統(tǒng)的數(shù)字識別技術(shù),而數(shù)字識別技術(shù)又是一個典型的模式識別問題。模式識別使用計算機(jī)算法對圖像進(jìn)行自動處理和判讀,自動模式識別由機(jī)器自動進(jìn)行模式識別,無須人為干涉。隨著大數(shù)據(jù)的興起,像郵政、金融等這些行業(yè)由于手寫的數(shù)據(jù)較多、數(shù)據(jù)量龐大且對數(shù)據(jù)的準(zhǔn)確性要求較高,因此,急需一個能準(zhǔn)確高效自動識別手寫數(shù)字的方法。
雖然數(shù)字是由0~9十個數(shù)字,但是每個人的書寫方式和習(xí)慣差別較大,寫法截然不同,且很多數(shù)字自身相似度較高,因此,想要準(zhǔn)確識別出每個手寫數(shù)字還是存在一定難度的。
2基于機(jī)器學(xué)習(xí)模型的手寫數(shù)字識別原理
本文的手寫數(shù)字識別方法可分為兩個過程與三個步驟,兩個過程分別是:訓(xùn)練(學(xué)習(xí))與測試(識別),如圖1所示,三個步驟是:1)生成手寫數(shù)字樣本庫;2)特征提取;3)模型訓(xùn)練和測試。
2.1LR(Logistic Regression)原理
LR(邏輯斯蒂回歸)是一種線性分類模型,采用Sigmoid函數(shù)作為后驗概率分布函數(shù)來對輸人數(shù)據(jù)集進(jìn)行分類,除了可用于解決二分類問題,同時也可用于解決多分類問題。該算法計算量小,易于實(shí)現(xiàn),既能應(yīng)用于分布式場景,也能應(yīng)用于在線實(shí)施場景,其基本原理如下:
3實(shí)驗過程與結(jié)果
3.1實(shí)驗過程
通過Pvthon3.7實(shí)驗仿真手寫數(shù)字識別,手寫數(shù)字識別主要以下三個步驟:生成手寫數(shù)字樣本庫、特征提取、模型訓(xùn)練和測試。
1)生成手寫數(shù)字樣本庫
如上文所述,手寫數(shù)字因人而異,因此,首先應(yīng)建立自己的手寫數(shù)字樣本庫。當(dāng)然,還可以直接選用現(xiàn)有的手寫數(shù)字樣本庫。這兩種方法各有優(yōu)缺點(diǎn),第一種方法是量身定做的手寫數(shù)字樣本庫,更為適合實(shí)驗環(huán)境場景,但缺點(diǎn)是費(fèi)事費(fèi)力。第二種方法的優(yōu)點(diǎn)是簡單方便,但缺點(diǎn)是不能面向大規(guī)模的應(yīng)用,可能導(dǎo)致誤差較大。本實(shí)驗采用第一種方法建立自己的手寫數(shù)字樣本庫。生成手寫數(shù)字樣本庫核心思想是隨機(jī)生成數(shù)字0-9,然后利用python的PIL畫筆工具進(jìn)行畫圖,通過對圖像進(jìn)行扭曲,生成手寫數(shù)字樣本庫。手寫數(shù)字樣本庫具體生成步驟如下圖所示。
2)特征提取
特征提取是通過剔除圖像中對分類沒有幫助的部分,提取出具有代表性的幾個特征的過程。手寫數(shù)字樣本庫中的圖片是30*30的灰度圖片即900個像素點(diǎn),本文采用的特征提取方法是選取每行中黑點(diǎn)的個數(shù)以及每列中黑點(diǎn)的個數(shù)作為輸入,這樣也可達(dá)到降低維度目的,將維度從900降到了60,如下圖所示。
3)模型訓(xùn)練和測試
手寫數(shù)字識別實(shí)質(zhì)上是一個圖像分類問題,及其學(xué)期中大多數(shù)分類算法都可以應(yīng)用到手寫數(shù)字識別中,這里主要介紹兩種分類方法:
(1)基于LR的分類器
通過sigmoid函數(shù)作為預(yù)測函數(shù),來預(yù)測條件概率P(y=1x)。輸人圖片使用sigmoid函數(shù)計算出圖片屬于數(shù)字0-9的概率,范圍在[0,1]之間。為了提高模型預(yù)測的準(zhǔn)確率,在模型訓(xùn)練過程中,不斷最小化極大似然代價函數(shù)。
(2)基于支持向量機(jī)的分類器
通過訓(xùn)練數(shù)據(jù)不斷地迭代計算,在多維空間中找到一個最佳的決策平面,從而實(shí)現(xiàn)二分類,但是,手寫數(shù)字識別并不是一個標(biāo)準(zhǔn)的二分類問題,因此,需要訓(xùn)練多個支持向量機(jī)的模型,每個模型能將一個數(shù)字與其他數(shù)字區(qū)分開,例如,支持向量機(jī)模型SVMl能夠區(qū)分?jǐn)?shù)字1和其他數(shù)字,給出輸入圖片為1的概率。對于給定輸入,將其帶人這10個支持向量機(jī)模型,從而可以分別得出圖片屬于0-9的概率,其中概率值最大的即為最后的分類結(jié)果。
3.2實(shí)驗結(jié)果
在手寫數(shù)字識別中,通過最常見的正確率來評價該模型性能的高低,其中正確率的計算公式如下:
計算手寫數(shù)字樣本庫中圖片數(shù)量從100至10000的識別準(zhǔn)確率,其中,訓(xùn)練數(shù)據(jù)占比75%,測試數(shù)據(jù)占比25%,計算結(jié)果如下表和下圖所示。由此可見,當(dāng)樣本數(shù)低于1000個時準(zhǔn)確率較低;當(dāng)樣本數(shù)在1000至6000之間,SVM模型的準(zhǔn)確率高于LR模型的準(zhǔn)確率,且準(zhǔn)確率都在0.9以上;當(dāng)樣本數(shù)在6000至10000之間,SVM模型的準(zhǔn)確率與LR模型的準(zhǔn)確率不相上下,且準(zhǔn)確率大部分都在0.96以上。本實(shí)驗結(jié)果表明,這兩種模型的識別的準(zhǔn)確率較高。
4結(jié)束語
手寫數(shù)字識別是對人們手寫的數(shù)字進(jìn)行分析處理,自動識別的過程。該文分別通過邏輯斯蒂回歸算法和支持向量機(jī)算法建立模型,通過測試集對其進(jìn)行測試,計算準(zhǔn)確率。通過此方法可實(shí)現(xiàn)手寫數(shù)字識別,且識別效果較好,但是,該文所討論的方法,對于樣本個數(shù)較少的情況,識別準(zhǔn)確率不高。