劉擎宇 唐旭清
摘要:隨著人工智能和大數(shù)據(jù)的興起,神經(jīng)網(wǎng)絡(luò)的應(yīng)用越發(fā)廣泛,使得機(jī)械識別成為一個熱點(diǎn)研究問題。傳統(tǒng)的手寫字體識別是以BP神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),在大樣本的訓(xùn)練數(shù)據(jù)下對手寫字體的進(jìn)行智能識別。本文提出一種小樣本抗干擾的識別方案,使得訓(xùn)練樣本在數(shù)據(jù)較少且存在一定噪音干擾的情況下也能進(jìn)行高精度、有效識別。首先通過對手寫字符的預(yù)處理等步驟實(shí)現(xiàn)圖像壓縮,并構(gòu)建BP神經(jīng)網(wǎng)絡(luò)。其次,通過實(shí)驗數(shù)據(jù)對網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)進(jìn)行分析,并結(jié)合遺傳算法對BP神經(jīng)網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化。最終,獲得了合適的神經(jīng)網(wǎng)絡(luò)參數(shù),使得識別網(wǎng)絡(luò)具有收斂快、穩(wěn)定性強(qiáng)的優(yōu)點(diǎn)。
關(guān)鍵詞:BP神經(jīng)網(wǎng)絡(luò);遺傳算法;目標(biāo)規(guī)劃;Otsu閾值分割
中圖分類號:TP391.4文獻(xiàn)標(biāo)識碼:A文章編號:1672-9129(2018)06-0021-03
Research on the Optimization of Handwritten Character Recognition Based on Neural Network
LIU Qingyu*, TANG Xuqing
(School of Science, Jiangnan University, Jiangsu Wuxi, 214122, China)
Abstract:With the rise of artificial intelligence and big data, the application of Neural Networks has become more widespread and Mechanical Identification has become a hot topic. Traditional handwritten character recognition is based on the BP Neural Networks with a lot of data training to achieve convergence. This paper proposes an anti-jamming identification Neural Networks, which can achieve convergence by smaller data training. Firstly, the handwritten character images were compressed by pre-processing, and the BP Neural Network was construct. Secondly, the network topology was analyzed by using the data experiment, and parameters of the BP Neural Network were optimized by applying the genetic algorithms. Finally, we obtained the network parameters in which the neural network has the advantages of fast convergence and strong stability.
Keywords:BP Neural Network Genetic Algorithm Goal Programming Otsu Threshold
引用:劉擎宇, 唐旭清. 基于神經(jīng)網(wǎng)絡(luò)的手寫字符識別優(yōu)化研究[J]. 數(shù)碼設(shè)計, 2018, 7(6): 21-23.
Cite:LIU Qingyu, TANG Xuqing. Research on the Optimization of Handwritten Character Recognition Based on Neural Network[J]. Peak Data Science, 2018, 7(6): 21-23.
引言
自從2006年深度置信網(wǎng)絡(luò)(deep belief network,簡稱DBF)被Hinton等人提出,深度學(xué)習(xí)成為在機(jī)械智能領(lǐng)域中最具有發(fā)展?jié)摿Φ难芯糠较颍貏e是神經(jīng)網(wǎng)絡(luò)模型的應(yīng)用,在語言生成,語音識別,文本的分類處理,圖像識別等領(lǐng)域都大放異彩[1],取得了突破性的進(jìn)展。
圖像識別是深度學(xué)習(xí)最早嘗試的應(yīng)用領(lǐng)域,物體的檢測和圖像的分類是識別的兩個核心問題,而BP神經(jīng)網(wǎng)絡(luò)(back propagation neural network),支持向量機(jī)(support vector machine)和卷積神經(jīng)網(wǎng)絡(luò)[2](convolutional neural network)是解決圖像識別的常用模型[3],都在該領(lǐng)域中有著廣泛的應(yīng)用和研究的價值。本文對研究BP神經(jīng)網(wǎng)絡(luò)的識別,針對BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)一步的深究,對基于神經(jīng)網(wǎng)絡(luò)的識別進(jìn)行優(yōu)化[4]。
BP網(wǎng)絡(luò)具有學(xué)習(xí)性強(qiáng)和非線性映射的能力,但同時也存在收斂較慢,隱含層結(jié)構(gòu)確定困難等缺點(diǎn)。本文旨在BP神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)在手寫字符的識別中的一些優(yōu)化改進(jìn)方式,具有一定的參考價值。實(shí)驗數(shù)據(jù)來自9組不同特點(diǎn)的10張手寫數(shù)字,共90張。
1? BP網(wǎng)絡(luò)的結(jié)構(gòu)和參數(shù)優(yōu)化
許多BP網(wǎng)絡(luò)對手寫字體的識別研究旨在提高識別精度,忽略了網(wǎng)絡(luò)的穩(wěn)定性,既識別的字體存在噪音干擾也能有效識別的能力[5]。
本文主要從優(yōu)化神經(jīng)網(wǎng)絡(luò)的迭代參數(shù)和拓?fù)浣Y(jié)構(gòu) [6],對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行研究。
首先利用遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的迭代參數(shù),加快網(wǎng)絡(luò)的收斂。
其次確定隱含層的最優(yōu)神經(jīng)元數(shù)的大致范圍,并引入人工噪音,通過分析在不同網(wǎng)絡(luò)結(jié)構(gòu)下,有噪音的識別與結(jié)構(gòu)的內(nèi)在關(guān)系,找出使神經(jīng)網(wǎng)絡(luò)識別達(dá)到最優(yōu)值的隱含層層數(shù)。
1.1? BP神經(jīng)網(wǎng)絡(luò)的識別構(gòu)建[7]
BP神經(jīng)網(wǎng)絡(luò)是一種有監(jiān)督的前饋型神經(jīng)網(wǎng)絡(luò),其特點(diǎn)是信息向前傳播,誤差反向傳播。在信息向前傳播過程中,信號從輸入層輸入,經(jīng)隱含層的處理最后到輸出層輸出。輸出層的輸出值與期望值的誤差向后傳播調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值。
步驟1:構(gòu)造神經(jīng)網(wǎng)絡(luò)
根據(jù)數(shù)據(jù)的結(jié)構(gòu)確定輸入層節(jié)點(diǎn)數(shù)n,隱含層層數(shù)和各層節(jié)點(diǎn)數(shù)l,輸出層節(jié)點(diǎn)數(shù)m,初始化輸入層、隱含層和輸出層之間的連接權(quán)重wij、wjk,初始化隱含層的閾值a和輸出層的閾值b,以及給定迭代次數(shù),學(xué)習(xí)速率和激活函數(shù)。
步驟2:隱含層輸出和輸出層的結(jié)果計算
根據(jù)輸入層的輸入數(shù)據(jù)X,以及各層之間的連接權(quán)重和閾值,計算隱含層的輸出結(jié)果H和輸出層的預(yù)測結(jié)果O。
隱含層的輸出:隱含層的輸出結(jié)果為輸入值的線性組合的值,通過激勵函數(shù)的投影得到,,其中f為隱含層的激勵函數(shù),本文使用的激勵函數(shù)為:
,輸出層的預(yù)測:
步驟3:權(quán)值與閾值的更新
有監(jiān)督的神經(jīng)網(wǎng)絡(luò)中,利用預(yù)測值與期望值的差別來更新網(wǎng)絡(luò)的參數(shù),到達(dá)機(jī)械學(xué)習(xí)的目的。首先根據(jù)網(wǎng)絡(luò)預(yù)測O與期望輸出Y計算網(wǎng)絡(luò)的誤差。將預(yù)測反向傳播修正各層之間的連接權(quán)重和閾值,誤差的計算為:;權(quán)值的更新:
;
其中為學(xué)習(xí)速率,反應(yīng)了網(wǎng)絡(luò)權(quán)值與閾值修改浮動的大小。閾值的更新:
,
。
步驟4:迭代。判斷是否達(dá)到最大迭代步數(shù)或者預(yù)期誤差小于給定絕對誤差限。若沒有結(jié)束,則返回步驟2。
1.2? BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化
最佳隱含層節(jié)點(diǎn)數(shù)可參考以下公式[9]:
(1)
其中l為隱含層節(jié)點(diǎn)數(shù),為輸入層節(jié)點(diǎn)數(shù),
為輸出層節(jié)點(diǎn)數(shù),
為0-10之間的常數(shù)。實(shí)際的應(yīng)用中首先確定最佳隱含層節(jié)點(diǎn)數(shù)的大致范圍,再通過試湊法找出最佳的節(jié)點(diǎn)個數(shù)。BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率取值在[0,1]間,學(xué)習(xí)率越大對權(quán)值和閾值的修改程度越大。因此過大的學(xué)習(xí)率會使權(quán)值閾值在訓(xùn)練過程中產(chǎn)生較大的震蕩,而過小的學(xué)習(xí)率收斂較慢,權(quán)值閾值很難達(dá)到穩(wěn)定。變學(xué)習(xí)率的方法是指隨著訓(xùn)練次數(shù)的增加,學(xué)習(xí)率不斷的減小,最終網(wǎng)絡(luò)達(dá)到穩(wěn)定,變學(xué)習(xí)率的計算方法如下[10]:
當(dāng)訓(xùn)練樣本比較小時,神經(jīng)網(wǎng)絡(luò)的識別效率受隱含層層數(shù),學(xué)習(xí)速率和初始的連接權(quán)值和閾值的影響較大,因此可以結(jié)合遺傳算法,模擬退火算法等優(yōu)化算法給出最優(yōu)的參數(shù)再進(jìn)行識別,使其能快速達(dá)到收斂。
1.3? 遺傳算法優(yōu)化BP網(wǎng)絡(luò)參數(shù)[11]
遺傳算法使用一種模仿自然界生物遺傳和進(jìn)化的一種搜索最優(yōu)化的方法,采用進(jìn)化論中“優(yōu)勝劣汰,適者生存”的原理,按照所選擇的適應(yīng)度函數(shù)通過遺傳中的選擇,交叉,變異對個體進(jìn)行篩選使適應(yīng)度較好的個體保留,適應(yīng)度差的個體淘汰,產(chǎn)生新的子代,并且優(yōu)于上一代種群,反復(fù)循壞,直到找到滿足條件的解。
(1)選擇操作:選擇操作是指從舊的種群中選擇新種群的操作,個體的適應(yīng)度值越高被選中的概率越大。輪盤賭算法常常被使用來選擇種群中的個體。適應(yīng)度函數(shù):把個訓(xùn)練樣本的預(yù)測值與期望值的絕對誤差和作為個體的適應(yīng)值
輪盤賭算法的思想是個體適應(yīng)值在群體總適應(yīng)值的比例作為個體被選擇的概率。
(2)交叉操作:交叉操作是指選擇種群中的兩個個體進(jìn)行染色體位點(diǎn)的交換組合來產(chǎn)生新的個體的方法。
(3)變異操作:變異操作是指從群體中任選一個個體,以一定的概率在染色體的一點(diǎn)進(jìn)行變異產(chǎn)生新的個體的方法。
(4)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,種群中那個個體包含神經(jīng)網(wǎng)絡(luò)的所有權(quán)值與閾值,通過初始化,選擇,交叉,變異操作來尋找最優(yōu)的參數(shù)設(shè)置[12]。
2? 數(shù)字圖像的預(yù)處理[13]
手寫字體會因不同人的書寫習(xí)慣等因素有著明顯的差異性,進(jìn)行二值化和中心化處理弱化其中的差異性,盡可能的保留字體之間的相同特征。圖像的二值化處理[14]是圖像分析中最常用的手段之一,在圖像信息的壓和提取等方面有著十分重要的作用。其目的是由RGB色彩空間與黑白色彩空間的轉(zhuǎn)換,更好的進(jìn)行圖像的分割和識別功能。
二值化處理的基本原理是確定一個閾值,圖像數(shù)據(jù)大于閾值的點(diǎn)設(shè)為1,小于閾值為0。
最大類間距法也叫做Otsu方法。其基本思想是用某一假定的灰度閾值將圖像的灰度分成兩組,當(dāng)兩組的類間方差最大時,此灰度值
就是圖像二值化的最佳閾值。
首先計算灰度值i出現(xiàn)的概率,假設(shè)兩組灰度值在整體圖像的百分比為w1和w2,兩組的平均灰度值為u1和u2,則有兩組灰度值的概率為:
,
;灰度值的均值為:
,
;圖像的總灰度均值為:
;類間距方差定義為:
(2)
最佳的閾值確定:。
Otsu方法可以理解為閾值將圖像分解為對象和背景兩部分,當(dāng)兩部分的類間方差最大時,對象和背景的差別最大,二值化效果最好,此時錯分概率最小。因此這種方法在圖像的二值化處理中有著廣泛的應(yīng)用[15]。
由于手寫字體的位置和大小不同的差異,需要對二值化后的圖像做中心化處理。首先將圖片做反色處理,再截取圖片中含有完整數(shù)字的最小區(qū)域,最后將截取的含有完整數(shù)字的最小區(qū)域轉(zhuǎn)化成標(biāo)準(zhǔn)的統(tǒng)一格式,得到最終處理后的圖像。
在圖2中,原始圖像為RGB圖像,處理后圖像為的只有0或1的黑白圖像。
3? 網(wǎng)絡(luò)仿真與Matlab實(shí)現(xiàn)
神經(jīng)網(wǎng)絡(luò)采用不同的隱含層結(jié)構(gòu),選取60組手寫數(shù)字帶入神經(jīng)網(wǎng)絡(luò)訓(xùn)練,訓(xùn)練完成后將BP網(wǎng)絡(luò)權(quán)值閾值參數(shù)作為輸入變量,將訓(xùn)練的60組數(shù)據(jù)重新預(yù)測,預(yù)測誤差作為適應(yīng)度帶入遺傳算法優(yōu)化網(wǎng)絡(luò)參數(shù)。另外取30組數(shù)據(jù)進(jìn)行檢驗。重復(fù)以上實(shí)驗,得到20組數(shù)據(jù)取平均值。
直接調(diào)用matlab自帶的神經(jīng)網(wǎng)絡(luò)工具箱,使用newff()函數(shù)創(chuàng)建一個BP神經(jīng)網(wǎng)絡(luò):
net=newff(input,output,D,TF,BTF,BLF)
其中:input和output分別為輸入輸出向量;D是隱含層神經(jīng)元向量;TF為節(jié)點(diǎn)的傳遞函數(shù),常使用的傳遞函數(shù)有:正切S型傳遞函數(shù)tansing和對數(shù)S型傳遞函數(shù)logsing;BTF為訓(xùn)練函數(shù),論文中介紹的動態(tài)變學(xué)習(xí)率梯度下降訓(xùn)練函數(shù)trainda;BLF為網(wǎng)絡(luò)學(xué)習(xí)函數(shù)。
train()函數(shù)訓(xùn)練: net=train(net,input, output);
sim()函數(shù)識別 fore=sim(net,testdata)。
本文的實(shí)驗中構(gòu)造一個輸入層有m×n個神經(jīng)元,輸出層有10個神經(jīng)元的神經(jīng)網(wǎng)絡(luò)(區(qū)分字母時輸出層為26個)。由公式(2)得隱含層的神經(jīng)元個數(shù)的最佳范圍在[8,24]。所有神經(jīng)元都采用Sigmoid特性,最大迭代步數(shù)100,采用變學(xué)習(xí)率算法訓(xùn)練。
從表1可以看出,隱含層神經(jīng)元個數(shù)在16-18時,BP網(wǎng)絡(luò)的識別正確率較高,達(dá)到92%,而隱含層神經(jīng)元個數(shù)過多或過少都會使網(wǎng)絡(luò)的識別效率降低。
3.1? 結(jié)果分析
對于任意一個識別樣本,例如手寫字符9,誤差為期望輸出y=[0 0 0 0 0 0 0 0 0 1]與實(shí)際BP網(wǎng)絡(luò)輸出的差值。從圖3可以看出,三位書寫者對于字符1和9絕對誤差線在0.01以下,并沒有太大的差異性,表明3個書寫者字符1和9辨別度都比較高,與其他字符的區(qū)分程度也很高。從字符7的書寫誤差觀察,書寫者b書寫的字符7在數(shù)字4上的誤差有0.4552,其他兩人在數(shù)字4上的誤差分別為0.0501和-0.0089,使得BP網(wǎng)絡(luò)在識別的過程中有認(rèn)為書寫者b書寫的字符7與字符4有45.52%的相似度,但該字符最終判斷在字符7上的相似度為0.9589,被準(zhǔn)確區(qū)分。同樣書寫者a在書寫字符8時,有0.5945的相似度與3相似,其他兩人均無明顯的誤差。
3.2? 模型的穩(wěn)定性
在實(shí)際的生活中,圖像數(shù)據(jù)可能存在丟失和在數(shù)據(jù)異常模糊等噪音的干擾。圖片中的灰度值發(fā)生丟失或者在圖像數(shù)據(jù)在傳輸存儲環(huán)節(jié)發(fā)生錯誤,由于數(shù)據(jù)的丟失可以看作已知錯誤位置的數(shù)據(jù)錯誤問題,所以下面直接談?wù)摂?shù)據(jù)錯誤的情況。
建立一個模擬灰度值發(fā)生錯誤的模型,圖片中每個灰度值以一定的概率P進(jìn)行反色,P可以看作是圖片的信息發(fā)生錯誤的概率。將30組測試數(shù)據(jù)進(jìn)行不同程度的噪音處理進(jìn)行識別,進(jìn)行20組重復(fù)實(shí)驗取平均值。
圖4觀察,在噪音0.1下,字符的輪廓大部分仍保留了下來,可以對字符進(jìn)行辨別。但當(dāng)噪音提升到0.2時,字符變得十分模糊度。接下來分析BP神經(jīng)網(wǎng)絡(luò)是否也能將帶噪音的手寫字符進(jìn)行有效的識別。
根據(jù)表2,在沒有噪音的情況下,隱含層神經(jīng)元個數(shù)在[16 18]時,BP神經(jīng)網(wǎng)絡(luò)的識別準(zhǔn)確率最高。0.05的噪音下,最優(yōu)神經(jīng)元個數(shù)在[14 16],在0.1的噪音下,最優(yōu)神經(jīng)元個數(shù)在[12 14],在0.15的噪音下,最優(yōu)神經(jīng)元個數(shù)在[10 14],在0.2的噪音下,最優(yōu)神經(jīng)元個數(shù)在[10 14],隨著噪音的增加,最優(yōu)識別的BP神經(jīng)網(wǎng)絡(luò)的隱含層神經(jīng)元個數(shù)減少。從神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)分析,隱含層神經(jīng)元的輸入值是是輸入層輸出值的線性組合,若隱含層神經(jīng)元個數(shù)較多,則區(qū)分能力強(qiáng),因此對噪音更加敏感,抗噪音能力弱。反之若隱含層神經(jīng)元個數(shù)較少,則區(qū)分能力弱,因此不易受到噪音的影響,抗噪音能力強(qiáng)。
4? 結(jié)束語
本文對結(jié)合遺傳算法與BP神經(jīng)網(wǎng)絡(luò),優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的內(nèi)置參數(shù),使得神經(jīng)網(wǎng)絡(luò)在訓(xùn)練數(shù)據(jù)相對較小的情況下也能快速達(dá)到收斂狀態(tài)。優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),找到一個恰當(dāng)?shù)碾[含層神經(jīng)元個數(shù),使得BP神經(jīng)網(wǎng)絡(luò)同時具有高效的識別,同時通過實(shí)驗分析不同噪音下的隱含層結(jié)構(gòu)與識別準(zhǔn)確率的關(guān)系,發(fā)現(xiàn)網(wǎng)絡(luò)抗干擾能力和識別準(zhǔn)確率都與網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)有一定的聯(lián)系。但非實(shí)驗直接確定隱含層的個數(shù)與網(wǎng)絡(luò)抗干擾能力和識別準(zhǔn)確率的函數(shù)關(guān)系還需深入研究。
參考文獻(xiàn):
[1]????? 梁天新,楊小平,王良,等. 記憶神經(jīng)網(wǎng)絡(luò)的研究與發(fā)展[J]. 軟件學(xué)報, 2017, 28(11):2905-2924.
[2]????? 李云. 改進(jìn)的小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化算法及其應(yīng)用研究[D]. 西南大學(xué), 2016.
[3]????? 孫志軍, 薛磊, 許陽明,等. 深度學(xué)習(xí)研究綜述[J]. 計算機(jī)應(yīng)用研究, 2012, 29(8):2806-2810.
[4]????? Gong R K, Zhang Y N, Wang C H, et al. Application of the Compound Model of BP Neural Networks and Wavelet Transform in Image Definition Identification[J]. Advanced Materials Research, 2013, 605-607:2265-2269.
[5]????? 梅貴琴. 改進(jìn)的Elman神經(jīng)網(wǎng)絡(luò)和網(wǎng)絡(luò)參數(shù)優(yōu)化算法研究[D]. 西南大學(xué), 2017.
[6]????? 李丹. 基于BP神經(jīng)網(wǎng)絡(luò)的多樣本手寫體字符識別[J]. 軟件, 2016, 37(7):103-108.
[7]????? 劉浩然, 趙翠香, 李軒,等. 一種基于改進(jìn)遺傳算法的神經(jīng)網(wǎng)絡(luò)優(yōu)化算法研究[J]. 儀器儀表學(xué)報, 2016, 37(7):1573-1580.
[8]????? 胡金濱 唐旭清, 人工神經(jīng)網(wǎng)絡(luò)的BP算法及研究, 信息技術(shù).2004(3):1-4.
[9]????? 王云, 陳麗芳. 基于粗決策樹規(guī)則的神經(jīng)網(wǎng)絡(luò)隱含層確定[J]. 數(shù)碼設(shè)計, 2016(3):29-34.
[10]??? Yang C C, Prasher S O, Landry J A, et al. Application of artificial neural networks in image recognition and classification of crop and weeds.[J]. Canadian Biosystems Engineering, 2000, 42(3):147-152.
[11]??? Ontman A Y M, Shiflet G J. Application of artificial neural networks for feature recognition in image registration[J]. Journal of Microscopy, 2012, 246(1):20.
[12]??? 趙秦川. 數(shù)字圖像處理技術(shù)與應(yīng)用探討[J]. 科技與創(chuàng)新, 2018(4):147- 148.
[13]??? Chung H C, Liang J, Kushiyama S, et al. Digital image processing for non-linear system identification[J]. International Journal of Non-Linear Mechanics, 2004, 39(5):691-707.
[14]??? 禹翼. MATLAB在數(shù)字圖像處理教學(xué)中的應(yīng)用[J]. 現(xiàn)代信息科技, 2017, 1(2):89-90.
[15]??? 陳藹祥. 用于字符和數(shù)字識別的若干分類方法的比較研究:實(shí)驗結(jié)果[J]. 計算機(jī)科學(xué), 2015, 42(s1):102-106.