李增剛 王正彥 毛菲菲
摘要: 針對神經(jīng)網(wǎng)絡(luò)算法通常采用軟件編程實(shí)現(xiàn)所存在的缺點(diǎn),本文主要對基于現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)的硬件BP神經(jīng)網(wǎng)絡(luò)識別算法實(shí)現(xiàn)進(jìn)行研究。給出了BP神經(jīng)網(wǎng)絡(luò)原理,設(shè)計(jì)了一個識別MNIST手寫數(shù)字的3層反向傳播算法( back propagation,BP)神經(jīng)網(wǎng)絡(luò)識別系統(tǒng)。為測試該電路的識別準(zhǔn)確率,選取MNIST數(shù)據(jù)集中的100個測試數(shù)據(jù),采用Verilog語言設(shè)計(jì),在FPGA開發(fā)平臺Quartus II 13.0和Modelsim中,對該電路的識別準(zhǔn)確率進(jìn)行仿真測試。仿真結(jié)果表明,輸出數(shù)字識別準(zhǔn)確率約85%,可用于簡單的模式識別系統(tǒng)中。該研究為進(jìn)一步實(shí)現(xiàn)硬件神經(jīng)網(wǎng)絡(luò)訓(xùn)練系統(tǒng)奠定了理論基礎(chǔ)。
關(guān)鍵詞: BP神經(jīng)網(wǎng)絡(luò); FPGA; 手寫數(shù)字識別; 訓(xùn)練數(shù)據(jù); Verilog語言; S型激活函數(shù)
中圖分類號: TP183; TP391.41? 文獻(xiàn)標(biāo)識碼: A
20世紀(jì)40年代,神經(jīng)網(wǎng)絡(luò)誕生,它是人工智能的一個重要領(lǐng)域。20世紀(jì)90年代,隨著數(shù)學(xué)、物理學(xué)、計(jì)算機(jī)的發(fā)展和理論的深化及推廣,人工神經(jīng)網(wǎng)絡(luò)研究步入新的發(fā)展期。神經(jīng)網(wǎng)絡(luò)通常采用軟件的方法實(shí)現(xiàn),但因?yàn)樯窠?jīng)網(wǎng)絡(luò)的并行處理特性,硬件實(shí)現(xiàn)能提高網(wǎng)絡(luò)的處理速度[1]。近年來,各位學(xué)者和專家提出了FPGA和神經(jīng)芯片等神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)方法,由于神經(jīng)芯片成本較高,不適合工業(yè)應(yīng)用,而FPGA是一種功耗低的可編程邏輯器件,內(nèi)嵌豐富的硬核乘法器及存儲器資源,具有的并行計(jì)算能力及可重復(fù)配置的特點(diǎn),成為研究神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)的一種理想器件[2]。神經(jīng)網(wǎng)絡(luò)硬件實(shí)現(xiàn)中的非線性激活函數(shù)及其導(dǎo)數(shù)是設(shè)計(jì)的難點(diǎn)之一,閆明[1]敘述了在FPGA上用STAM算法對tans函數(shù)的高精度實(shí)現(xiàn),并利用FPGA多次重復(fù)配置(可重構(gòu)性)的特點(diǎn),充分利用FPGA的邏輯資源;錢玉多[2]結(jié)合查找表和線性近似方法,提出了表驅(qū)動線性插值法,實(shí)現(xiàn)激勵函數(shù)及其導(dǎo)數(shù),用較少的硬件資源,實(shí)現(xiàn)高精度的激勵函數(shù)及其導(dǎo)數(shù);劉培龍[3]研究了具體實(shí)現(xiàn)可重構(gòu)的脈動體系結(jié)構(gòu)中BP網(wǎng)絡(luò)映射算法的問題,其方法靈活,硬件實(shí)現(xiàn)價(jià)值高。神經(jīng)網(wǎng)絡(luò)通過模擬人腦神經(jīng)元獲取信息的能力,具有精度高、學(xué)習(xí)能力較強(qiáng)的優(yōu)點(diǎn),在醫(yī)學(xué)圖像、智能控制、模式識別、語音識別等多個領(lǐng)域廣泛應(yīng)用?;诖?,本文主要對基于FPGA的BP神經(jīng)網(wǎng)絡(luò)識別系統(tǒng)進(jìn)行設(shè)計(jì),該設(shè)計(jì)具有處理速度快、并行性高的特點(diǎn)。該研究為解決軟件訓(xùn)練速度慢和耗時長的問題奠定了理論基礎(chǔ)。