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