国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于TensorFlow 手寫體數(shù)字識別系統(tǒng)的研究

2020-03-24 03:49李建新
智能計算機與應用 2020年11期
關鍵詞:手寫卷積神經(jīng)網(wǎng)絡

李建新

(廣州工商學院 計算機科學與工程系,廣州528138 )

0 引言

目前,手寫體數(shù)字識別是人工智能機器學習領域眾多研究者關注的一個熱點,廣泛應用于公安、稅務、交通、金融、教育等行業(yè)的實踐活動中。在實際應用中,對手寫數(shù)字單字識別率的要求比手寫普通文字識別要苛刻許多,識別精度需要達到更高的水平。由于手寫數(shù)字識別沒有文字識別那樣的上下文,不存在語意的相關性,而數(shù)據(jù)中的每一個數(shù)字又至關重要。因此,提高手寫數(shù)字識別率,成為人工智能的重要研究領域。

人工神經(jīng)網(wǎng)絡是一種類似于大腦神經(jīng)突觸聯(lián)接的結構,進行信息處理的數(shù)學模型,具有學習和記憶功能,可以讓神經(jīng)網(wǎng)絡學習各個模式類別中的大批量訓練樣本,記憶各個模式類別中的樣本特征。在識別樣本時,將逐個與記憶中各模式類別的樣本特征相比較,從而確定樣本所屬類別。人工神經(jīng)網(wǎng)絡通過學習調整內部大量節(jié)點之間相互連接的關系,可獲得眾多優(yōu)化的模型參數(shù)。

1 手寫體數(shù)字識別系統(tǒng)

1.1 系統(tǒng)組成

手寫體數(shù)字識別系統(tǒng)由輸入、預處理、識別等環(huán)節(jié)組成,系統(tǒng)架構如圖1 所示。

輸入環(huán)節(jié)包括MNIST 手寫體數(shù)據(jù)集輸入和用戶預測圖片里的手寫體數(shù)字;預處理環(huán)節(jié)主要指用戶手寫體數(shù)字預測圖片的預處理;識別環(huán)節(jié)包括卷積神經(jīng)網(wǎng)絡、分類識別器、損失函數(shù)和優(yōu)化器。卷積神經(jīng)網(wǎng)絡實現(xiàn)數(shù)字手寫體0~9 特征提取,分類識別是手寫體數(shù)字識別最關鍵的部分。經(jīng)過卷積神經(jīng)網(wǎng)絡提取來的特征被送到分類器中,對其進行分類識別。分類識別器由softmax 完成,softmax 得到當前樣例中屬于不同種類的概率分布情況。

優(yōu)化器在神經(jīng)網(wǎng)絡訓練和測試過程中,根據(jù)計算結果與損失函數(shù)要求,調節(jié)模型可變參數(shù),讓神經(jīng)網(wǎng)絡參數(shù)盡快達到理想誤差范圍。

1.2 MNIST 數(shù)據(jù)集訓練與測試

訓練一個卷積神經(jīng)網(wǎng)絡時,需要大量的數(shù)據(jù)、設置卷積的層數(shù)、卷積核大小、池化的方式(最大、平均)、損失函數(shù)、設置目標(如:手寫數(shù)字的識別,輸出一個10 維向量)等,讓卷積神經(jīng)網(wǎng)絡通過不斷的訓練更新參數(shù),向設置的目標靠近,最后可以通過這些參數(shù)來預測樣本。

圖1 手寫體數(shù)字識別系統(tǒng)組成Fig.1 Composition of handwritten digit recognition system

通常情況下,假設樣本由K個類組成,共有m個,則數(shù)據(jù)集可由式(1)表示:

式中,x(i)∈R(n +1);y(i)∈{1,2,…,K},n +1 為特征向量x的維度。

MNIST 是機器學習中的一個數(shù)據(jù)集,包含0~9的不同人手寫數(shù)字圖片。數(shù)據(jù)集由60 000 個手寫數(shù)字訓練樣本和10 000 個手寫數(shù)字測試樣本組成,每個樣本是一張28 * 28 像素的灰度手寫數(shù)字圖片。則MNIST 數(shù)據(jù)集的訓練集m=60 000,n +1=784,K=10、MNIST 數(shù)據(jù)集的測試集m=10 000,n+1=784,K=10;分別由式(2)、式(3)表示為:

機器學習模型設計時,將提供大量的數(shù)據(jù)以訓練一個手寫體數(shù)字的機器學習,所得到的模型參數(shù),最終用于預測用戶圖片里面的數(shù)字。

1.3 卷積神經(jīng)網(wǎng)絡與分類器

卷積神經(jīng)網(wǎng)絡是系統(tǒng)的核心部分,是由輸入層、多個卷積層、多個池化層、多個全連接層以及輸出組成的多層感知器。卷積層為局部連接,用于提取圖像特征;池化層用于進一步降低輸出參數(shù)數(shù)量,提高了模型的泛化能力;全連接層進行特征關系和權重值計算,完成分類處理。手寫體數(shù)字識別卷積神經(jīng)網(wǎng)絡的組成示意如圖2 所示。

在TansorFlow 中卷積層、池化層和全連接層部分代碼如下:

圖2 手寫體數(shù)字識別卷積神經(jīng)網(wǎng)絡組成Fig.2 Composition of convolution neural network for handwritten digit recognition

為了提高卷積神經(jīng)網(wǎng)絡對手寫體數(shù)字識別的準確率,可以通過多種途徑來實現(xiàn)。如:增加卷積層數(shù)量,以便進行更高層次的特征提?。桓淖兏骶矸e層的卷積核大小,以便調整特征提取范圍,或改變卷積步長;增加卷積層中卷積核的數(shù)量,意味著提取特征圖的數(shù)量(一個卷積核卷積出來一個特征圖),也就意味著可以從更多的角度提取原圖的特征,避免視角單一,卷積出來多個特征圖后要重新組織輸出形態(tài),用以適應下一層的輸入要求。

分類器采用Softmax 回歸算法,該算法能將二分類的Logistic 回歸問題擴展至多分類。Softmax 回歸算法對于給定的輸入值x(i),輸出的K個估計概率可由式(4)[1]表示:

其中,K為類別的個數(shù),和bi為第i個類別對應的權重向量和偏移向量,在TensorFlow 中用張量表示。

上述Softmax 回歸算法在TansorFlow 中的相應代碼如下:

1.4 損失函數(shù)和優(yōu)化器

通常采用的損失函數(shù)“交叉熵”(cross -entropy),如式(5)[2]所示:

式中,y為預測概率的分布,y' 為實際樣本的標簽值。

TensorFlow 中提供了8 種優(yōu)化器,即BGD、SGD、Momentum、Nesterov Momentum、Adagrad、Adadelta、RMSprop 和Adam,模型訓練一般采用梯度下降優(yōu)化器。

在TansorFlow 中,損失函數(shù)、學習率為learning_rate 的優(yōu)化器代碼[2]如下:

由以上系統(tǒng)組成可知,MNIST 數(shù)據(jù)集、卷積神經(jīng)網(wǎng)絡與分類器、損失函數(shù)和優(yōu)化器是人工神經(jīng)網(wǎng)絡學習模型訓練機制的組成部分。

2 用戶手寫體數(shù)字識別

通過對MNIST 數(shù)據(jù)集的訓練和測試,模型參數(shù)達到要求并予以保存。在用戶實際應用時可以導入模型參數(shù)對用戶手寫數(shù)字識別。由于MNIST 數(shù)據(jù)集手寫數(shù)字以張量形式存在,其形態(tài)為1 維[784],而用戶手寫數(shù)字可以各種像素的數(shù)字圖像存在,故用戶手寫數(shù)字在識別前需要將其圖像進行預處理,需與MNIST 數(shù)據(jù)集28×28 像素達到一致。

2.1 數(shù)字預處理

預處理對于系統(tǒng)設計非常重要,經(jīng)過預處理后的圖像才能進行特征提取。因此,預處理的好壞直接影響著識別結果。因導入的點陣圖形大小各異,需將點陣圖形壓縮成與MNIST 數(shù)據(jù)集中的大小相一致,調整用戶手寫數(shù)字灰度圖像形態(tài)為[28,28];隨后將用戶手寫數(shù)字圖像轉換為灰度圖像?;叶葓D像像素值純黑色的灰度級別為0,純白色的灰度級別為255,介入兩者之間還有許多灰度級別。由于MNIST 數(shù)據(jù)集圖片像素純白色~純黑色采取正規(guī)化的0~1 區(qū)間,故用戶手寫數(shù)字灰度圖像也須進一步正規(guī)化到0~1 區(qū)間。用戶手寫數(shù)字預處理流程如圖3 所示。

圖3 用戶手寫數(shù)字預處理流程Fig.3 Preprocessing process and code of handwritten digits

經(jīng)處理后的數(shù)字圖片格式與MNIST 數(shù)據(jù)集的圖片格式相同,則可將圖片輸入到網(wǎng)絡中進行識別。

2.2 檢測用戶手寫數(shù)字圖像的神經(jīng)網(wǎng)絡

對用戶手寫數(shù)字圖像進行檢測的卷積神經(jīng)網(wǎng)絡,與MNIST 數(shù)據(jù)集的訓練和測試的卷積神經(jīng)網(wǎng)絡結構相同。模型參數(shù)為MNIST 數(shù)據(jù)集的訓練與測試得到并保存模型參數(shù),主要是卷積神經(jīng)網(wǎng)絡的各層參數(shù)。只要恢復、使用之前保存的模型參數(shù),用這些已知的參數(shù)構建卷積神經(jīng)網(wǎng)絡,通過其將用戶手寫數(shù)字圖像從卷積神經(jīng)網(wǎng)絡輸入,以完成到輸出的映射,獲得相應數(shù)字。

2.3 數(shù)字識別實現(xiàn)

TensorFlow 是一個開源的機器學習框架,在圖形分類、音頻處理、推薦系統(tǒng)和自然語言處理等場景下有著豐富的應用,并提供了多種編程語言的接口。本系統(tǒng)建立在TensorFlow 平臺上,分二部分完成:

2.3.1 建立模型參數(shù)

(1)導入MNIST 數(shù)據(jù)集,并構建卷積神經(jīng)網(wǎng)絡學習模型;

(2)對學習模型進行訓練和測試;

(3)評價學習模型是否為最佳模型參數(shù),是則保存模型參數(shù),否則修改學習模型,繼續(xù)執(zhí)行(2)、(3)步驟。

2.3.2 用戶手寫數(shù)字識別

(1)數(shù)字預處理,以使用戶手寫數(shù)字與MNIST數(shù)據(jù)集一致;

(2)使用保存的模型參數(shù)構建用戶手寫數(shù)字識別模型;

(3)用戶手寫數(shù)字輸入手寫數(shù)字識別模型,得到用戶手寫數(shù)字輸出。

3 實驗數(shù)據(jù)分析

實驗分為無卷積神經(jīng)網(wǎng)絡和有卷積神經(jīng)網(wǎng)絡。實驗以損失函數(shù)、訓練數(shù)據(jù)準確率和測試數(shù)據(jù)準確率為參考,見表1。

表1 訓練損失值與數(shù)據(jù)準確率Tab.1 Training loss and data accuracy

由表1 中上半部數(shù)據(jù)可知,隨著學習率的增加,損失函數(shù)值的減少,訓練準確率和測試準確率均增加,但學習率增加過大。如,學習率為1.0 和1.5 時,導致數(shù)據(jù)準確率發(fā)生振蕩。

由表1 中下半部數(shù)據(jù)可知,當學習率小于0.65時,前20 輪訓練損失函數(shù)收斂很快,訓練準確率和測試準確率很快達到0.98 以上,最高為1。學習率過大,如0.75,損失函數(shù)找不到最小點,無法收斂,甚至出現(xiàn)未定義或不可表示的值。

4 結束語

通過實驗比較了無卷積和卷積在神經(jīng)網(wǎng)絡中的作用,對學習訓練參數(shù)、優(yōu)化器也做了比較,取得了相應數(shù)據(jù),學習率大小對無卷積神經(jīng)網(wǎng)絡影響為引起數(shù)據(jù)準確率發(fā)生振蕩,對有卷積神經(jīng)網(wǎng)絡影響為引起損失函數(shù)找不到最小點,數(shù)據(jù)準確率大幅度下降。在學習率大小合適條件下有卷積神經(jīng)網(wǎng)絡的損失值和學習率均明顯優(yōu)于無卷積神經(jīng)網(wǎng)絡,實驗結果挖掘了神經(jīng)網(wǎng)絡對圖形內在的特性。

本研究是手寫體數(shù)字識別系統(tǒng)開發(fā)的組成部分,其成果對整個系統(tǒng)開發(fā)工作奠定了很好的基礎。

猜你喜歡
手寫卷積神經(jīng)網(wǎng)絡
基于全卷積神經(jīng)網(wǎng)絡的豬背膘厚快速準確測定
基于神經(jīng)網(wǎng)絡的船舶電力系統(tǒng)故障診斷方法
MIV-PSO-BP神經(jīng)網(wǎng)絡用戶熱負荷預測
我手寫我心
基于改進Hopfield神經(jīng)網(wǎng)絡的對地攻擊型無人機自主能力評價
一種基于卷積神經(jīng)網(wǎng)絡的地磁基準圖構建方法
基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
一種并行不對稱空洞卷積模塊①
我手寫我意
三次樣條和二次刪除相輔助的WASD神經(jīng)網(wǎng)絡與日本人口預測