基于FPGA的人工神經(jīng)網(wǎng)絡實現(xiàn)方法的研究
(3)隨機比特流方法
隨機比特流(Stochastic Bit Strearns)的方法是使用串行隨機的方法實現(xiàn)一些運算操作,目的是為了節(jié)約資源和充分利用神經(jīng)網(wǎng)絡的實時性。隨機算法的提出源于它的簡易性,基本原理即首先將所有的輸入轉換成二進制隨機比特流,就是任意化;然后,由數(shù)字電路組成的隨機算法實現(xiàn)取代正常的算法;最后,隨機比特流轉回到正常的數(shù)值(文獻[10]中有詳細總結)。隨機算法提供一種方法,用簡單的硬件實現(xiàn)復雜的計算,同時又不失靈活性,而且隨機實現(xiàn)又與現(xiàn)代VLSI設計和生產(chǎn)技術兼容。
FPNA實現(xiàn)方法:
憑借著簡化的拓撲結構和獨特的數(shù)據(jù)交換流圖,F(xiàn)PNA(Field Programmable Neural Arrays)成功地解決了以簡單的硬件拓撲結構有效地實現(xiàn)復雜的神經(jīng)架構問題,是一種特別適合FPGA直接實現(xiàn)的神經(jīng)計算范例。FPNA基于一種類似FPGA的結構:它包含一系列可以自由配置的資源,這些神經(jīng)資源被定義用來實現(xiàn)標準神經(jīng)元的計算功能,但是它們是一種自主的方式,這樣通過有限的連接可以創(chuàng)造出許多虛擬的連線。利用這種新的神經(jīng)計算理念,一個標準的但結構復雜的神經(jīng)網(wǎng)絡可以由一個簡化的神經(jīng)網(wǎng)絡替代(文獻[11]給出了詳細的數(shù)學表示和說明)。
為了有個直觀的理解,圖3(a)表示一個簡單的MLP結構;圖3(b)說明通過節(jié)點間的直接連接建立虛擬連接。本文引用地址:http://www.ex-cimer.com/article/191889.htm
文獻[11]中的例證表明FPNA計算范例確實允許一系列給定的神經(jīng)資源代替具有不同架構的標準神經(jīng)網(wǎng)絡。然而,從圖4中可能并非如此,MLP架構并沒有得到簡化,原因在于如此簡單的MLP完全沒有必要,也不可能再簡化。文獻[12]描述了大型神經(jīng)網(wǎng)絡得到明顯簡化的實例。需要注意的是,F(xiàn)PNA是一個適應神經(jīng)計算的硬件框架,而不是一種處理簡化神經(jīng)計算的實現(xiàn)方法(Field Programmable Neural Network,F(xiàn)PNN)。要設計一個FPNA,首先要選擇一個針對應用的合適的標準神經(jīng)架構,然后決定一個既適合于實現(xiàn)又在功能上等價于所選擇神經(jīng)網(wǎng)絡的可配置FPNA,F(xiàn)PNA獨特的計算方案在于在復雜神經(jīng)網(wǎng)絡和可用的硬件資源之間創(chuàng)造了一座橋梁,它適用于許多實現(xiàn)選擇;最后,得到的FP-NA直接映射到硬件設備上,這將得益于完整的模塊式實現(xiàn),即對于每個神經(jīng)資源,預先給定可配置模塊,然后依照。FPNA硬件友好的架構進行組合。
3 基于FPGA的神經(jīng)網(wǎng)絡的性能評估及局限性
對于FPGA實現(xiàn)的ANN,最普遍的性能評估方法是每秒神經(jīng)元乘累加的次數(shù)(Connections-Per-Sec-ond,CPS)和即每秒權值更新的次數(shù)(Connections-Updates-Per-Second,CPUS)。但是CPS和CPUS并不是適于所有的網(wǎng)絡,如RBF徑向基網(wǎng)絡,另外,更大的CPS和CPUS值并不一定意味著更好的性能。因此,最好的性能測量方法是實際執(zhí)行時間,但是仍有些問題要討論。FPGA實現(xiàn)神經(jīng)網(wǎng)絡存在的一些缺點(相對于計算機軟件而言):
(1)FPGA上實現(xiàn)的神經(jīng)網(wǎng)絡大多數(shù)是計算結構,而不是認知結構(雖然現(xiàn)在有些人試圖在FPGA上實現(xiàn)BP算法。但是整個的結構和時序控制變得很復雜,并且無法達到計算機軟件那樣的計算精度);
(2)在FPGA上實現(xiàn)的神經(jīng)網(wǎng)絡通用性差。目前FPGA的使用者大多數(shù)都是在RTL級(寄存器傳輸級)編寫VHDL/Verilog HDL實現(xiàn)數(shù)字系統(tǒng),而正在興起的Handel-CSystemC,可以使硬件編程者站在算法級角度,可能對以后的基于FPGA的神經(jīng)網(wǎng)絡的性能有所改善。
4 基于FPGA實現(xiàn)神經(jīng)網(wǎng)絡的發(fā)展方向
(1)一種基于REMAP-β實現(xiàn)神經(jīng)網(wǎng)絡汁算機的方法。REMAP-β可重構架構基于FPGA技術,RE-MAP-β并行計算機應用在嵌入式實時系統(tǒng)中,以有效提高ANN算法實現(xiàn)的效率,目前它的進一步發(fā)展RE-MAP-r正在探討中。
(2)另一種基于FPGA實現(xiàn)神經(jīng)網(wǎng)絡的發(fā)展方向――系統(tǒng)C語言,直接在可編程硬件平臺支持C/C++,使得編程更加容易。但是這個轉換并不容易,因為:FPGA不是程序,而是電路。
5 結 語
詳細總結了FPGA實現(xiàn)神經(jīng)網(wǎng)絡的方法及相關問題,這里要注意,基于FPGA實現(xiàn)神經(jīng)網(wǎng)絡,并不是要與基于計算機軟件實現(xiàn)一比高低,相反,在很多情況下,采用計算機軟件測試神經(jīng)網(wǎng)絡的收斂情況,計算出收斂時的權值,然后通過數(shù)據(jù)口線與FPGA模塊通信,把權值交給FPGA中的神經(jīng)網(wǎng)絡,使用FPGA完成現(xiàn)實的工作。直到現(xiàn)在,軟件方法仍然是實現(xiàn)神經(jīng)網(wǎng)絡的首選。另外,對于硬件設計者(指利用FPGA或者全定制、半定制ASIC實現(xiàn)設計)而言,mask ASICs提供首選的方法以得到大規(guī)模、快速和完全的神經(jīng)網(wǎng)絡?,F(xiàn)在它已經(jīng)開發(fā)出了所有的新型可編程器件的嵌入式資源,以得到可以實時訓練的更有用的神經(jīng)網(wǎng)絡。
評論