李增剛 王正彥 毛菲菲







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