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