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

?

通過(guò)MLP網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行手寫(xiě)數(shù)字識(shí)別的系統(tǒng)設(shè)計(jì)

2019-08-13 08:49:01路明玉
科技資訊 2019年14期

路明玉

摘 ?要:數(shù)字識(shí)別是近年來(lái)發(fā)展起來(lái)的一項(xiàng)新科技,具有廣泛的應(yīng)用前景。該文主要利用MLP網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)手寫(xiě)體數(shù)字的識(shí)別。首先,設(shè)計(jì)網(wǎng)絡(luò)模型對(duì)識(shí)別精度進(jìn)行測(cè)試。然后提取結(jié)構(gòu)特征并輸入網(wǎng)絡(luò)模型驗(yàn)證其正確性。

關(guān)鍵詞:數(shù)字識(shí)別 ?多層感知機(jī) ?網(wǎng)絡(luò)模型

中圖分類號(hào):TP391 ? 文獻(xiàn)標(biāo)識(shí)碼:A ? ? ? ? ? ?文章編號(hào):1672-3791(2019)05(b)-0017-02

1 ?課題背景意義

數(shù)字識(shí)別是近年來(lái)發(fā)展起來(lái)的一項(xiàng)新科技,應(yīng)用十分廣泛,在選票統(tǒng)計(jì)、牌照識(shí)別、信件分揀、銀行數(shù)據(jù)等分析中都具有重要的應(yīng)用價(jià)值?,F(xiàn)有大量的數(shù)據(jù)、報(bào)告和賬戶記錄是通過(guò)手動(dòng)輸入電腦系統(tǒng),導(dǎo)致錯(cuò)誤多、效率低。機(jī)器識(shí)別會(huì)避免這些缺點(diǎn),讓機(jī)器學(xué)會(huì)像人類一樣識(shí)別手寫(xiě)數(shù)字,像人類一樣學(xué)習(xí)和分類。只要保障硬件條件的滿足,機(jī)器識(shí)別不會(huì)因長(zhǎng)時(shí)間工作產(chǎn)生疲勞,出現(xiàn)識(shí)別錯(cuò)誤,所以,一個(gè)好的數(shù)字識(shí)別技術(shù)會(huì)解決這些問(wèn)題。該文研究的正是一種手寫(xiě)數(shù)字識(shí)別系統(tǒng)。

2 ?手寫(xiě)數(shù)字識(shí)別

2.1 手寫(xiě)數(shù)字識(shí)別一般方法

手寫(xiě)數(shù)字識(shí)別方法很多,比如多層感知機(jī)、循環(huán)神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等。對(duì)于手寫(xiě)的數(shù)字,筆畫(huà)簡(jiǎn)單并且書(shū)寫(xiě)方便,而且分類不多,大體上可以歸納成一個(gè)分類問(wèn)題。

2.2 手寫(xiě)數(shù)字識(shí)別難點(diǎn)

(1)手寫(xiě)數(shù)字的筆畫(huà)簡(jiǎn)單且差別不大,書(shū)寫(xiě)方便,只有10個(gè)種類,在識(shí)別的過(guò)程中可以提取出來(lái)的信息太少,識(shí)別難度很大。

(2)對(duì)同一個(gè)數(shù)字,不同人去寫(xiě),差別很大,每個(gè)人每次的寫(xiě)法也都不一樣,找不到任何規(guī)律。

(3)很多人在較忙碌時(shí)書(shū)寫(xiě)的數(shù)字存在連筆的狀況。

(4)由于書(shū)寫(xiě)紙張的材質(zhì)或書(shū)寫(xiě)筆的原因,很多時(shí)候手寫(xiě)的數(shù)字顯示不清晰,存在模糊不清或者斷筆的情況,可利用的信息減少。

(5)有一些手寫(xiě)數(shù)字外形上很相似,比如“7”和“1”、“8”和“3”。很難被清晰識(shí)別并分類。

3 ?MLP網(wǎng)絡(luò)結(jié)構(gòu)系統(tǒng)設(shè)計(jì)

針對(duì)多層感知機(jī)的網(wǎng)絡(luò)結(jié)構(gòu)(MLP),采取輸入層(Input Layer)、隱含層(HiddenLayer)、輸出層(Output Layer)的三層網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)模式,每一層之間都是全連接的。輸入層是調(diào)用MNIST的數(shù)據(jù)集。隱含層又分為兩層,第一層有128個(gè)神經(jīng)節(jié)點(diǎn),第二層有64個(gè)神經(jīng)節(jié)點(diǎn),每一層都有一個(gè)非線性的激活函數(shù)relu。對(duì)于輸出層,是輸出為10個(gè)類別的分類器。最后,輸出給softmax交叉熵?fù)p失函數(shù)進(jìn)行。

3.1 體系結(jié)構(gòu)設(shè)計(jì)

手寫(xiě)數(shù)字識(shí)別軟件設(shè)計(jì)主要分為訓(xùn)練模塊和測(cè)試模塊,其中訓(xùn)練模塊主要包括:圖像預(yù)處理,接下來(lái)就是將處理后的28×28的矩陣轉(zhuǎn)化為一維數(shù)組,方便數(shù)據(jù)的特征提取和計(jì)算,再設(shè)置一個(gè)1×10的向量表示標(biāo)簽,然后用softmax函數(shù)預(yù)測(cè)。而正向傳播通過(guò)softmax得到的預(yù)測(cè)值和標(biāo)注之間的差距定義為交叉熵,然后通過(guò)梯度下降法優(yōu)化一個(gè)step大小的梯度,并且利用鏈?zhǔn)椒▌t求偏導(dǎo)。

測(cè)試主要就是建立一個(gè)畫(huà)圖板,在畫(huà)圖板上手寫(xiě)一個(gè)數(shù)字,進(jìn)行識(shí)別的過(guò)程,測(cè)試主要是為了驗(yàn)證訓(xùn)練模型的準(zhǔn)確率,并且顯示結(jié)果要求顯示識(shí)別成每一個(gè)類別的概率分布。

3.2 界面設(shè)計(jì)

MLP識(shí)別顯示結(jié)果界面主要包括:左側(cè)為手寫(xiě)后預(yù)處理的圖像,大小為28×28,右側(cè)顯示該圖片被識(shí)別為0~9各個(gè)類別的概率,識(shí)別結(jié)果取各個(gè)類別的最大值,最后一行顯示識(shí)別結(jié)果。

3.3 詳細(xì)設(shè)計(jì)

MLP就是我們常說(shuō)的多層感知機(jī),過(guò)去很多領(lǐng)域都有用到,但隨著深度學(xué)習(xí)的發(fā)展,產(chǎn)生了更好的學(xué)習(xí)方法,它逐漸地被淡化。近些年來(lái),隨著機(jī)器學(xué)習(xí)的流行,MLP成為了大家學(xué)習(xí)入門和研究的基礎(chǔ)。MLP是一種最基本的神經(jīng)網(wǎng)絡(luò)。網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)簡(jiǎn)單,該課題使用三層結(jié)構(gòu),最開(kāi)始的輸入層,輸入的是28×28大小的圖片,也就是一維向量,中間有兩層,分別有128和64個(gè)神經(jīng)元。其中的每個(gè)節(jié)點(diǎn)都帶有一個(gè)非線性的激活函數(shù)relu。輸出層就是大小為10的向量。上一層的輸出作為下一層的輸入,是全連接的。關(guān)鍵部分如下。

import mxnetasmx#導(dǎo)入mxnet模塊

mnist=mx.test_utils.get_mnist()#導(dǎo)入mnist數(shù)據(jù)集

Epoch=10#全部處理數(shù)據(jù)10次

batch_size=100#批處理大小為100

train_iter=mx.io.NDArrayIter(mnist['train_data'], mnist['train_label'],batch_size,shuffle=True)#訓(xùn)練數(shù)據(jù)的變量

val_iter=mx.io.NDArrayIter(mnist['test_data'], mnist['test_label'],batch_size)#測(cè)試數(shù)據(jù)的變量

fc1=mx.sym.FullyConnected(data=data,num_hidden=128)#第一層全連接層,包含128個(gè)神經(jīng)元

act1=mx.sym.Activation(data=fc1,act_type="relu")#激活函數(shù)

fc2=mx.sym.FullyConnected(data=act1,num_hidden=64)#第二層全連接層,包含64個(gè)神經(jīng)元

act2=mx.sym.Activation(data=fc2,act_type="relu")#激活函數(shù)

fc3=mx.sym.FullyConnected(data=act2,num_hidden=10)#大小為10的最終全連接層

mlp=mx.sym.SoftmaxOutput(data=fc3,name='softmax')#交叉熵?fù)p失函數(shù)

mlp_model.fit(train_iter,#訓(xùn)練數(shù)據(jù)

eval_data=val_iter,#驗(yàn)證數(shù)據(jù)

optimizer='sgd',#運(yùn)用SGD 訓(xùn)練模型

optimizer_params={'learning_rate':0.1},#使用固定的學(xué)習(xí)效率

eval_metric='acc',#訓(xùn)練期間返回精確度

batch_end_callback=mx.callback.Speedometer(batch_size,100), # 每次處理100張圖片

num_epoch=Epoch)#進(jìn)行10次全部數(shù)據(jù)處理

test_iter=mx.io.NDArrayIter(mnist['test_data'],None,batch_size)#測(cè)試數(shù)據(jù)

prob = mlp_model.predict(test_iter)

assert prob.shape=(10000,10)#對(duì)圖像進(jìn)行預(yù)測(cè)并分類

4 ?系統(tǒng)運(yùn)行結(jié)果

運(yùn)行程序,我們?cè)谳斎虢缑鎸?xiě)一個(gè)數(shù)字1,查看是否實(shí)現(xiàn)手寫(xiě)功能。測(cè)試結(jié)果正確,說(shuō)明書(shū)寫(xiě)一個(gè)一筆可以完成的數(shù)字是可以的。接下來(lái)我們寫(xiě)一個(gè)有斷筆的數(shù)字,比如“4”和“5”這樣的,測(cè)試是否可以寫(xiě)。通過(guò)結(jié)果可以看到,書(shū)寫(xiě)界面基本完成功能要求,可以手寫(xiě)任何的數(shù)字。接下來(lái)就是識(shí)別按鈕,測(cè)試功能是否實(shí)現(xiàn),并且查看識(shí)別準(zhǔn)確率如何。根據(jù)結(jié)果,系統(tǒng)給出了從1到9的各個(gè)概率,其中“5”的書(shū)寫(xiě)概率為0.97,也是系統(tǒng)推薦的結(jié)果,跟預(yù)設(shè)結(jié)果相符,基本可以識(shí)別手寫(xiě)數(shù)字,識(shí)別準(zhǔn)確率較高,功能基本實(shí)現(xiàn)。

參考文獻(xiàn)

[1] 李連勝.基于神經(jīng)網(wǎng)絡(luò)的手寫(xiě)數(shù)字識(shí)別技術(shù)研究[D].中南大學(xué),2015.

[2] 張婷,王卓英.手寫(xiě)體數(shù)字計(jì)算機(jī)識(shí)別系統(tǒng)的應(yīng)用研究[J].微型電腦應(yīng)用,2016(1):30-40.

渝中区| 习水县| 博罗县| 防城港市| 临桂县| 蓬莱市| 淮安市| 安徽省| 定日县| 木兰县| 水城县| 临夏市| 安宁市| 昆山市| 苍山县| 玉山县| 永仁县| 方正县| 农安县| 清河县| 泾源县| 防城港市| 滕州市| 舒兰市| 海城市| 平凉市| 合作市| 台山市| 启东市| 阳朔县| 四子王旗| 崇文区| 龙门县| 明星| 蓬溪县| 临漳县| 鹰潭市| 长垣县| 琼海市| 临澧县| 通城县|