基于FPGA的人工神經網絡系統的實現方法
摘要:為了改變人工神經網絡的研究僅僅局限于算法,只是在通用的串行或并行計算機上模擬實現的現狀,針對函數逼近問題,將BP神經網絡的結構分為3個模塊,采用VHDL語言完成對各個模塊的硬件描述,并使用Altera公司的QualtusII 6.1綜合軟件進仿真和調試,然后在Cyc-loneII系列FPGA上實現了能夠進行片上學習并完成函數逼近的BP神經網絡系統。測試結果證明,該系統能夠很好地完成在線學習,并能滿足一般系統應用的速度和精度的要求,驗證了該方法的有效性。
關鍵詞:神經網絡;硬件實現;FPGA;片上學習;函數逼近
神經網絡是由大量的神經元通過特殊形式的加權網絡相互聯接而形成的,可以認為:神經網絡由兩種基本單元構成,即收集信號并且完成非線性變換的神經元胞,以 及完成各神經元之間的加權互連的突觸。標準的神經網絡VLSI的實現方式是在單個芯片上集成多個神經元和突觸單元,并且將它們按某種通信結構組成神經網絡 系統,此外,還有基于ASIC結構的,針對神經網絡運算特點進行優化和簡化設計的FPGA
實現方式,以及基于商業處理器(如數字信號處理、RISC單片處理等)的模擬神經網絡的多處理器結構的實現方式。
衡量一個神經網絡性能的重要指標是快速性和適用性,而FPGA的集成度已經達到百萬門級,用FPGA構造神經網絡時,可以靈活地實現各種運算功能和學習規 則,并且設計周期短、系統速度快、可靠性高、輸入輸出接口靈活、幾乎可以和任何形式的并行、串行接口及并行、串行A/D或D/A,DSP等連接,同時由于 可以將整個系統都集成在單個芯片內,因而抗干擾性能極強,使其在自動控制、故障診斷、模式識別,圖像獲取、DSP應用、嵌人式系統等領域有著廣泛的應用前 景。所以,FPGA無疑是首選的實現神經網絡的硬件芯片。
1 BP神經網絡的基本原理
BP人工神經網絡即誤差后向傳播網絡,是一種前饋網絡,由輸入層、隱含層和輸出層構成。隱含層通過作用函數執行一種固定不變的非線性變化,將輸出空間映像 到一個新的空間,輸出層節點則在該新空間進行線性加權組合。BP算法用于多層網絡,對于線性情況,多層網絡可以簡單到只有一個輸入層節點和輸出層節點,而 沒有隱含層(中間層)。實際上,大多數自然、經濟和社會系統及其影響因素是非常復雜的非線性系統,它不僅有輸入層節點及輸出層節點,而且還可以有一層至多 層隱含層節點。權值為零,說明相連的兩個神經元不發生作用,若為負,說明相連的兩個神經元之間相互抑制。此外,對于隱含層及輸出層的各神經元而言,它還有 一個閾值,其作用是調節神經元的興奮水平。當有信息輸入網絡時,該信息首先由輸入層傳至隱含層節點,經特性函數作用后,再傳至輸出層輸出,其間每經過一層 都要由相應的特性函數進行變換。節點的特性函數要求是可微的,通常選用S型函數,特性函數通常取Sigmoid函數,本系統選用Sigmoid函數,即
和
作為特性函數,具有較好的收斂性,模擬結論也比較符合實際情況。
2 BP學習算法描述
BP網絡中每個節點都有一個狀態變量xi,節點i到節點j有一個連接權系數wji,每個節點都有一個閾值θj,每一個節點定義一個變換函數fj[xi,wji,θj(i≠j)],最常見的形式為

為了方便起見,將閾值θ作為神經元權值的第一個分量加到權值中去,那么輸入向量就應增加一項,可設輸入向量的第1個分量固定為l,這樣
的形式就可變為
。
一個3層單輸入、單輸出、n個隱節點的BP網絡結構如圖l所示。















評論