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