基于FPGA的RBF神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)
摘要:介紹了RBF神經(jīng)網(wǎng)絡(luò),并采用CORDIC算法實(shí)現(xiàn)了其隱層非線性高斯函數(shù)的映射。同時(shí),為縮減ROM表的存儲空間并提高查表效率,本設(shè)計(jì)還采用了基于STAM算法的非線性存儲。最后,以Altera公司開發(fā)的EDA工具QuarlusⅡ作為編譯、仿真平臺,采用Cyclone系列中的EP1C6Q 240C8器件,實(shí)現(xiàn)了RBF神經(jīng)網(wǎng)絡(luò)在FPGA上的實(shí)現(xiàn),并以XOR問題為算例進(jìn)行硬件仿真,得出仿真結(jié)果與理論值一致。關(guān)鍵詞:RBF神經(jīng)網(wǎng)絡(luò);FPCA;CORDIC;STAM 人工神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于圖像處理、模式識別和自動(dòng)控制等領(lǐng)域。但是,傳統(tǒng)的基于軟件實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò),存在并行程度低、速度慢,計(jì)算速度無法滿足實(shí)時(shí)性的需求,造成了理論研究與實(shí)際應(yīng)用脫節(jié)。因此,神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)是神經(jīng)網(wǎng)絡(luò)研究的基本問題之一。神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)的最大特點(diǎn)就是體現(xiàn)了系統(tǒng)的并行性,處理速度快,易于滿足實(shí)時(shí)性要求。另外,算法的復(fù)雜程度以及在實(shí)際工程中應(yīng)用的可行性仍需要通過硬件的實(shí)現(xiàn)效果來檢驗(yàn)。因此,神經(jīng)網(wǎng)絡(luò)的硬件實(shí)現(xiàn)意義重大。1 RBF神經(jīng)網(wǎng)絡(luò)的簡介 徑向基函數(shù)(Radial Basis Function,RBF)網(wǎng)絡(luò)是由Moody J和Darken C于20世紀(jì)80年代末提出的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),是一種有監(jiān)督的神經(jīng)網(wǎng)絡(luò)。它是借鑒生物機(jī)制中的局部凋節(jié)及交叉接受區(qū)域知識的基礎(chǔ)上提出的一種采用局部接受域來執(zhí)行函數(shù)映射的人工神經(jīng)網(wǎng)絡(luò)。RBF網(wǎng)絡(luò)最基本的構(gòu)成包括3層,其結(jié)構(gòu)如圖1所示,其中每一層都有著完全不同的作用。
輸入層由一些源點(diǎn)(感知單元)組成,他們將網(wǎng)絡(luò)與外界環(huán)境連接起來;第二層是網(wǎng)絡(luò)中僅有的一個(gè)隱層,它的作用是進(jìn)行從輸入空間到隱層空間的非線性變換。隱層節(jié)點(diǎn)中的作用函數(shù)(基函數(shù))對輸入信號將在局部產(chǎn)生響應(yīng),也就是說,當(dāng)輸入信號靠近基函數(shù)的中央范圍時(shí),隱層節(jié)點(diǎn)將產(chǎn)生較大的輸出,由此看出這種網(wǎng)絡(luò)具有局部逼近能力。輸出層是線性的,它為作用于輸入層的激活模式(信號)提供響應(yīng)。 徑向基函數(shù)有多種形式,如:二次型、逆二次型或Gauss型等。若采用高斯函數(shù)作為徑向基函數(shù),則神經(jīng)元的輸出為: 上式中,m是隱含層結(jié)點(diǎn)數(shù);‖·‖是歐幾里德范數(shù);Ci和σi分別為與每個(gè)隱含層節(jié)點(diǎn)相關(guān)的參數(shù)向量的中心和寬度;ωi是第i個(gè)基函數(shù)與輸出結(jié)點(diǎn)的連接權(quán)值。2 RBF網(wǎng)絡(luò)的FPGA實(shí)現(xiàn)2.1 RBF單元中心Ci和半徑σi的確定 對各RBF的中心及半徑的確定通常有以下兩種方式: 1)根據(jù)經(jīng)驗(yàn)選中心。只要訓(xùn)練樣本的分布能代表所給問題,可根據(jù)經(jīng)驗(yàn)選定均勻分布的m個(gè)中心,其間距離為d,則高斯函數(shù)的方差(即半徑σi)為,其中m為中心數(shù)。 2)用聚類方法,把樣本聚成幾類,以類中心為各RBF函數(shù)的中心。 首先,中心Ci確定。采用k-均值聚類分析技術(shù)確定Ci。找出有代表性的數(shù)據(jù)點(diǎn)(不一定位于原始數(shù)據(jù)點(diǎn))作為RBF單元中心,從而極大地減少隱RBF單元數(shù)目,降低網(wǎng)絡(luò)復(fù)雜化程度。利用k-均值算法獲得各個(gè)聚類中心后,即可將之賦給各RBF單元作為RBF的中心。 然后,半徑σi的確定。半徑σi決定了RBF單元接受域的大小,對網(wǎng)絡(luò)的精度有極大的影響。半徑選擇的原則是使得所有RBF單元的接受域之和覆蓋整個(gè)訓(xùn)練樣本空間。 通常應(yīng)用k-均值聚類法后,對每個(gè)聚類中心Ci可以令相應(yīng)的半徑σi等于與其屬于該類的訓(xùn)練樣本之間的平均距離,即 2.2 調(diào)節(jié)權(quán)矩陣W 這里權(quán)W是指輸出層和隱層之間的權(quán)值,可以采用線性最小二乘法和梯度法來調(diào)節(jié)權(quán)矩陣W。 由于輸出為線性單元,因而可以確保梯度算法收斂于全局最優(yōu)解。所以,在本設(shè)計(jì)中采用梯度法來修改權(quán)值W。
標(biāo)簽: FPGA 神經(jīng)網(wǎng)絡(luò) 硬件實(shí)現(xiàn)