基于FPGA的人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)的實(shí)現(xiàn)方法
圖1中,黑圓表示輸入為固定值1的神經(jīng)元,用它與隱層神經(jīng)元的連接權(quán)w011~w01n來(lái)表示隱層神經(jīng)元的閾值,它與輸出層神經(jīng)元的連接權(quán)w02來(lái)表示輸 出層神經(jīng)元的閾值,w1I~w1n為輸入層到隱層之間的連接權(quán)值,w21~w2n為隱層到輸出層之間的連接權(quán)值。描述一個(gè)如圖1所示網(wǎng)絡(luò)的BP算法,它主 要包括2個(gè)階段:
1)正向傳播階段 從樣本集中取出一個(gè)樣本(x,d),計(jì)算隱層各個(gè)節(jié)點(diǎn)(神經(jīng)元)輸出yI(i)=f(wl(i)x-w01(i))和輸出層節(jié)點(diǎn)輸出。
2)反向傳播階段 按下式反向計(jì)算各層節(jié)點(diǎn)的局部梯度δ和權(quán)值修正量。
若激勵(lì)函數(shù)f選用單極性Sigmoid函數(shù),則:
式中,x是輸入,d是期望輸出,f為激勵(lì)函數(shù),η為學(xué)習(xí)率,δ(o)為輸出層節(jié)點(diǎn)的梯度,δi為隱層節(jié)點(diǎn)i的梯度。
3 BP神經(jīng)網(wǎng)絡(luò)的VHDL設(shè)計(jì)
3.1 選擇系統(tǒng)處理數(shù)據(jù)字長(zhǎng)
在運(yùn)算中,涉及大量乘累加操作,本應(yīng)采用浮點(diǎn)運(yùn)算,但是占用的硬件資源和速度都將會(huì)不理想;如果采用定點(diǎn)運(yùn)算,運(yùn)算中帶來(lái)的“位增長(zhǎng)”率將使每一級(jí)運(yùn)算的 最大值可能會(huì)逐級(jí)加倍,因此如果不精心地規(guī)劃設(shè)計(jì),這些值就會(huì)溢出,結(jié)果會(huì)因?yàn)榫炔粔蚨鵁o(wú)法使用。因此采用自定義的定點(diǎn)數(shù)進(jìn)行基本的運(yùn)算單元設(shè)計(jì)。本系 統(tǒng)采用不削弱神經(jīng)網(wǎng)絡(luò)能力的最小要求16位(1,5,lO)帶符號(hào)定點(diǎn)數(shù)表示,最高位為符號(hào)位,低10位為小數(shù)位,其余為整數(shù)位。
例如:將1.5用16位(1,5,1O)帶符號(hào)定點(diǎn)數(shù)可表示為:0000011000000000,將-2.3用16位(1,5,10)帶符號(hào)定點(diǎn)數(shù)可表示為:10001 00100110011。
3.2 BP神經(jīng)網(wǎng)絡(luò)模塊庫(kù)的建立
根據(jù)文件復(fù)用性的要求,建立基于VHDL語(yǔ)言的BP神經(jīng)網(wǎng)絡(luò)元件庫(kù),根據(jù)層次設(shè)計(jì)的要求,BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的描述分為3層:第1層是前向 傳輸模塊的描述,包括輸入信號(hào)加權(quán)求和,權(quán)值的存儲(chǔ)和非線(xiàn)性激勵(lì)函數(shù)的實(shí)現(xiàn);第2層是反向傳輸模塊的描述;第3層是系統(tǒng)控制模塊的描述。下面用VHDL語(yǔ) 言對(duì)這3層結(jié)構(gòu)分別進(jìn)行設(shè)計(jì)。
3. 2.1 前向傳輸模塊的設(shè)計(jì)
圖2為前向傳輸模塊的VHDL程序設(shè)計(jì)流程。計(jì)算時(shí)x和w都是16位有符號(hào)數(shù)。相乘后為3l位數(shù)(最高位為符號(hào)位(兩輸入數(shù)符號(hào)位相異 或),低20位為小數(shù)位,其余10位為整數(shù)位),為了節(jié)省硬件資源四舍五入,舍去低10位小數(shù)位,為了防止后面相加是溢出,再擴(kuò)展4位整數(shù)位,所以乘累加 后輸出為25位。本文引用地址:http://www.ex-cimer.com/article/191453.htm
函數(shù)變換部分:對(duì)于FPGA硬件來(lái)說(shuō),其可實(shí)現(xiàn)的運(yùn)算極為有限,而B(niǎo)P網(wǎng)絡(luò)中的作用函數(shù)sigmoid函數(shù)是非線(xiàn)性的,是硬件實(shí)現(xiàn)的一個(gè)難點(diǎn),常用的實(shí)現(xiàn) 方法是查表法,這種方法比較簡(jiǎn)單,但需要占用較多資源,當(dāng)需要實(shí)現(xiàn)的網(wǎng)絡(luò)規(guī)模較大且精度要求較高時(shí),查表法的實(shí)現(xiàn)有很大障礙;還有一個(gè)方法就是多項(xiàng)式逼近 法。本系統(tǒng)使用了查表和多項(xiàng)式逼近2種方法。
評(píng)論