基于FPGA的RBF神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)
2.3 隱層非線(xiàn)性函數(shù)映射的實(shí)現(xiàn)
RBF神經(jīng)網(wǎng)絡(luò)隱層中的映射函數(shù)為高斯函數(shù),為非線(xiàn)性函數(shù)。而非線(xiàn)性函數(shù)在硬件上實(shí)現(xiàn)往往比較復(fù)雜,難度較大。通常實(shí)際工程中采用查表法或迭代法來(lái)近似模擬這些非線(xiàn)性函數(shù),查表法較迭代法雖在結(jié)構(gòu)和運(yùn)算復(fù)雜度上有明顯降低,但在精度上也會(huì)明顯降低。若要提高精度,只能增加表的大小,但增加表的大小,直接帶來(lái)的影響就是會(huì)加大存儲(chǔ)空間和降低查表效率,所以,在FPGA上采用何種方法實(shí)現(xiàn)高斯函數(shù)的存儲(chǔ)達(dá)到精度和效率之間的平衡就至關(guān)重要。
高斯函數(shù)表達(dá)式為

其中,



2.3.1 STAM算法
STAM算法的主體思想是先產(chǎn)生系數(shù),然后利用系數(shù)的對(duì)稱(chēng)性減小ROM表的大小。在該算法中先把輸入X分為m+1個(gè)部分:x0,x1,…,xm。則f(x)可以近似為

該種方法雖然在某種程度上使得查找表的數(shù)量增加了,但每個(gè)表的大小卻大大減小了,整體上查找表還是減少了,效率上也相應(yīng)提高了。

式(13)構(gòu)造的查找表a0(x0,x1),其輸入值的位數(shù)為n0+n1。式(14)所構(gòu)造的其余m-1個(gè)查找表ai-1(x0,xi),由于δi被定義為xi的取值區(qū)間的中間點(diǎn),故查找表中的系數(shù)值具有對(duì)稱(chēng)性,即ai-1(x0,xi)與ai-1(x0,2δi-xi)互為補(bǔ)碼,其輸入值的位數(shù)可以減為n0+n1-1,從而使這m-1個(gè)查找表的存儲(chǔ)空間節(jié)省了一半。
評(píng)論