季 淵 陳文棟 冉 峰 張金藝David LILJA(上海大學(xué)微電子研究與開發(fā)中心上海200072)(上海大學(xué)機(jī)電工程與自動化學(xué)院上海200072)(明尼蘇達(dá)大學(xué)電子與計算機(jī)工程系明尼阿波利斯55455)
?
具有二維狀態(tài)轉(zhuǎn)移結(jié)構(gòu)的隨機(jī)邏輯及其在神經(jīng)網(wǎng)絡(luò)中的應(yīng)用
季淵*①②陳文棟①冉峰①②張金藝①David LILJA③①
①(上海大學(xué)微電子研究與開發(fā)中心上海200072)
②(上海大學(xué)機(jī)電工程與自動化學(xué)院上海200072)
③(明尼蘇達(dá)大學(xué)電子與計算機(jī)工程系明尼阿波利斯55455)
隨機(jī)計算是一種特殊的基于概率數(shù)據(jù)碼流的數(shù)學(xué)計算方法,其優(yōu)點在于可以采用非常簡單的數(shù)字邏輯完成復(fù)雜數(shù)學(xué)運算,從而大幅降低硬件實現(xiàn)成本。該文首先討論了隨機(jī)計算的基本原理和主要運算邏輯,論述了傳統(tǒng)線性狀態(tài)機(jī)的不足,并分析了一種2維狀態(tài)轉(zhuǎn)移拓?fù)浣Y(jié)構(gòu),推導(dǎo)了通過2維有限狀態(tài)機(jī)實現(xiàn)高斯函數(shù)的方法。在此基礎(chǔ)上,提出一種隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)模型,其硬件實現(xiàn)成本非常低,而性能與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相當(dāng)。兩類模式識別實驗結(jié)果顯示,所提出的隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的輸出值均方誤差與相應(yīng)結(jié)構(gòu)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的差別小于1.3%。FPGA實驗結(jié)果顯示,數(shù)據(jù)寬度為12位時,隨機(jī)中間神經(jīng)元的電路面積僅為傳統(tǒng)插值查表結(jié)構(gòu)的1.2%、坐標(biāo)旋轉(zhuǎn)數(shù)字計算方法(CORDIC)的2%。通過改變輸入碼流長度,該神經(jīng)網(wǎng)絡(luò)可以在處理速度、功耗和準(zhǔn)確性之間作出平衡,具有應(yīng)用靈活性,適用于對成本、功耗要求較高的應(yīng)用如嵌入式、便攜式、穿戴式設(shè)備。
隨機(jī)計算;人工神經(jīng)網(wǎng)絡(luò);徑向基函數(shù);模式識別
正是由于這些特點,隨機(jī)計算非常適合于并行計算[6]、容錯計算[7]、可靠性計算[8]以及一些對數(shù)據(jù)精度要求并不十分嚴(yán)格的運算密集型應(yīng)用,例如通信隨機(jī)編碼[9]、圖像處理[10],尤其是人工神經(jīng)網(wǎng)絡(luò)[11]。由于神經(jīng)網(wǎng)絡(luò)包含大量乘法、加法和指數(shù)運算,消耗大量邏輯運算資源,因此用傳統(tǒng)方法進(jìn)行硬件實現(xiàn)的成本較高[12,13],而基于隨機(jī)計算的神經(jīng)網(wǎng)絡(luò)(也稱為隨機(jī)神經(jīng)網(wǎng)絡(luò))由于運算邏輯簡單,更容易組成大規(guī)模網(wǎng)絡(luò)結(jié)構(gòu)。文獻(xiàn)[5]提出了比例縮減加法器、線性有限狀態(tài)機(jī)、隨機(jī)除法器等隨機(jī)計算邏輯單元,改進(jìn)了隨機(jī)神經(jīng)網(wǎng)絡(luò)的性能,并將這些改進(jìn)型隨機(jī)邏輯單元用于一種基于軟競爭學(xué)習(xí)算法的神經(jīng)網(wǎng)絡(luò)中進(jìn)行字符識別應(yīng)用[14]。然而,這種隨機(jī)神經(jīng)網(wǎng)絡(luò)仍采用了單一的sigm oid激活函數(shù),網(wǎng)絡(luò)類型和網(wǎng)絡(luò)性能都受到一定限制。
近年來,文獻(xiàn)[15]提出了一種基于馬爾可夫鏈(Markov chain)的2維有限狀態(tài)機(jī)(FSM)拓?fù)浣Y(jié)構(gòu),本文在此基礎(chǔ)上,推導(dǎo)了利用2維有限狀態(tài)機(jī)來實現(xiàn)高斯函數(shù)的具體過程,并根據(jù)碼流的全相關(guān)性,利用一個簡單的XNOR門實現(xiàn)了減法運算,然后討論了將隨機(jī)邏輯應(yīng)用于徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)的方法[16],得到隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò),將該網(wǎng)絡(luò)應(yīng)用于兩類模式識別實驗(鳶尾花識別和光學(xué)字符識別),最后在FPGA上得到驗證。
2.1數(shù)值定義
隨機(jī)計算中,傳統(tǒng)的確定性數(shù)據(jù)都轉(zhuǎn)化為概率數(shù)據(jù)。設(shè)X(t)為一個長度為L的比特碼流(L為正整數(shù)),t=0,1,2,…,L,X(t)∈[0,1],將X(t)簡記為X,令x表示X中出現(xiàn)數(shù)字1的概率,即x=P(X=1),例如,碼流X=0010011001010001對應(yīng)的x為0.375。隨機(jī)計算可采用兩種數(shù)據(jù)格式:無符號數(shù)(Unipolar)和有符號數(shù)(Bipolar),分別用yu和ys表示,其取值大小和范圍由式(1)和式(2)給出:
根據(jù)式(1)和式(2)可以得到,碼流X作為無符號數(shù)和有符號數(shù)時分別表示0.375和-0.25(即yu=0.375,ys=-0.25)。這兩種數(shù)據(jù)表示方式本質(zhì)上相同,可以同時出現(xiàn)在同一個系統(tǒng)中。確定性數(shù)可通過比較器和隨機(jī)數(shù)發(fā)器轉(zhuǎn)換為隨機(jī)碼流,隨機(jī)碼流可通過二進(jìn)制計數(shù)器轉(zhuǎn)換為確定性數(shù)[5]。
2.2傳統(tǒng)隨機(jī)邏輯運算單元
2.2.1乘法假定隨機(jī)碼流A和B均為伯努利(Bernoulli)序列[17],用P(X)表示碼流X中所含有數(shù)字1的概率,若采用無符號數(shù)據(jù)格式,則碼流A和B之間的乘法可以用一個邏輯與門(AND)來實現(xiàn),若采用有符號數(shù)據(jù)格式,則A和B之間的乘法可以用一個異或非門(XNOR)來實現(xiàn)[5]。
2.2.2加法早期加法用或門(OR)實現(xiàn),但存在誤差[1]。文獻(xiàn)[5]提出一種比例縮放加法器,利用多路選擇器(MUX)實現(xiàn)加法,但是比例縮放加法器每經(jīng)過一次運算,輸出值精度減半,因此仍然存在一定誤差。本文在實現(xiàn)徑向基函數(shù)時,將加法運算轉(zhuǎn)化為乘法運算,從而避免了精度損失問題,第3節(jié)將詳述。
2.2.3線性狀態(tài)機(jī)神經(jīng)網(wǎng)絡(luò)的激活函數(shù)一般為sigm oid函數(shù)。早期的隨機(jī)神經(jīng)網(wǎng)絡(luò)采用二進(jìn)制計數(shù)器、查找表、組合邏輯或者預(yù)定義碼流來實現(xiàn)激活函數(shù),但是性能都不太理想。文獻(xiàn)[5]提出一種線性狀態(tài)轉(zhuǎn)移結(jié)構(gòu)如圖1所示,通過改變參數(shù)P和Q可以實現(xiàn)多種sigm oid函數(shù)。然而,當(dāng)利用該線性狀態(tài)機(jī)實現(xiàn)指數(shù)函數(shù)時,狀態(tài)數(shù)N往往大于64,需要較多硬件資源,且在零點的近似效果不理想,無法保證指數(shù)函數(shù)在零點對稱。
2.3增強型隨機(jī)邏輯運算單元
2.3.1減法傳統(tǒng)隨機(jī)計算的輸入序列必須保持不相關(guān)[1,5]。但是,如果使輸入序列完全相關(guān)(例如,由相同的隨機(jī)數(shù)源發(fā)生器產(chǎn)生),則經(jīng)過二輸入XNOR門后,邏輯結(jié)果不再是乘法:當(dāng)輸入序列相應(yīng)位的值不同時,輸出值為0,當(dāng)輸入序列相應(yīng)位的值相同時,輸出值為1,這樣,輸出碼流中0的數(shù)量代表A和B中不相同的位數(shù),1的數(shù)量代表A和B中相同的位數(shù),因此,兩個輸入碼流中數(shù)據(jù)不同的概率被檢測出來,從而實現(xiàn)了減法。XNOR門輸入為兩個無符號數(shù)碼流,輸出為這兩個碼流減法的絕對值(無符號數(shù))。用XOR實現(xiàn)減法時,其輸出為XNOR的邏輯取反。
圖1 線性狀態(tài)轉(zhuǎn)移結(jié)構(gòu)
2.3.2 2維狀態(tài)機(jī)考慮圖2所示的狀態(tài)轉(zhuǎn)移拓?fù)浣Y(jié)構(gòu),狀態(tài)總數(shù)為M×N(S0至1MN-S),狀態(tài)根據(jù)輸入值在2維空間內(nèi)向相鄰狀態(tài)轉(zhuǎn)移,輸入變量由輸入碼流x和調(diào)制碼流k組成,共有4種組合:00,01,10,11,該組合值決定了狀態(tài)的跳轉(zhuǎn)方向,例如11為向右跳轉(zhuǎn),00為向左跳轉(zhuǎn),當(dāng)狀態(tài)處于最右或最左的狀態(tài)時,即使輸入碼流為向右或向左跳轉(zhuǎn)時,當(dāng)前狀態(tài)也保持不變,形成飽和;輸入碼流組合為10和01的過程類似。該狀態(tài)變化過程可以由齊次時間的Markov鏈描述,其特征為一個不可約的、非周期性的、遍歷性的狀態(tài)機(jī)[15]。根據(jù)Markov定理,當(dāng)狀態(tài)轉(zhuǎn)移次數(shù)足夠多時,該結(jié)構(gòu)可等效為一個與初值狀態(tài)無關(guān)的概率分布。若用PSt(t為當(dāng)前狀態(tài)編號,t=0,1,…,MN-1)來表示狀態(tài)t出現(xiàn)的概率,用PX來表示輸入隨機(jī)碼流x的概率值,用PK來表示調(diào)制碼流k的概率值,則PSt為
圖2 2維狀態(tài)轉(zhuǎn)移結(jié)構(gòu)
其中,i是水平方向上的狀態(tài)編號,j是垂直方向上的狀態(tài)編號,tx和ty為
由式(3)得到的概率可用于模擬復(fù)雜目標(biāo)函數(shù)。圖3給出了一種求近似函數(shù)的硬件架構(gòu),x,k,qt和y都是數(shù)據(jù)位寬為1 bit的隨機(jī)碼流,采用無符號數(shù)據(jù)格式,其中,x和k為2維狀態(tài)機(jī)(2D-FSM)的輸入碼流,qt是一組預(yù)先定義好的隨機(jī)參數(shù)碼流,其值由Pqt表示。信號cst表示2維狀態(tài)機(jī)的當(dāng)前狀態(tài),連接到多路選擇器(MUX)的選擇端。若cst為t(t=0,1,…,MN-1),則qt就被選擇作為輸出端y的輸出值。因此,y的概率值(用PY表示)可以由cst和Pqt來調(diào)制[16]。
圖3 用隨機(jī)計算實現(xiàn)復(fù)雜函數(shù)的邏輯電路結(jié)構(gòu)
若設(shè)目標(biāo)函數(shù)為T(PX),則可定義目標(biāo)誤差為
由于PY可以表示為PX,PK和Pqt的函數(shù),因此通過求解二次函數(shù)ε的最小值,就可以得到調(diào)制碼流k和qt的概率值。表1列出了3種高斯函數(shù)作為目標(biāo)函數(shù)的求解結(jié)果。由于高斯函數(shù)為對稱函數(shù),因此PK均為0.5。Pqt通過MATLAB求得,其值關(guān)于中心點對稱。PY1和PY2的表達(dá)式相同,但是狀態(tài)數(shù)不相同,它們都關(guān)于直線x=0.5對稱,逼近結(jié)果如圖4所示。可以發(fā)現(xiàn),在目標(biāo)函數(shù)相同的情況下,8狀態(tài)和16狀態(tài)的結(jié)構(gòu)都較好逼近目標(biāo)函數(shù)。與線性狀態(tài)轉(zhuǎn)移結(jié)構(gòu)比較[5],在實現(xiàn)相同函數(shù)時,2維狀態(tài)轉(zhuǎn)移結(jié)構(gòu)使用的狀態(tài)數(shù)量大幅減少,輸出曲線更光滑,且2維狀態(tài)轉(zhuǎn)移結(jié)構(gòu)可以實現(xiàn)更多復(fù)雜函數(shù)。圖5顯示了PY3的逼近效果,碼流長度為1 kbit的輸出誤差較大,碼流長度為10 kbit的輸出誤差大幅減少,說明輸出函數(shù)的誤差與隨機(jī)碼流的長度有關(guān)。圖4和圖5的結(jié)果表明,可以用一種簡單的2維狀態(tài)機(jī)來實現(xiàn)高斯函數(shù)。
3.1徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)分解
本文以一個3層徑向基函數(shù)網(wǎng)絡(luò)為例。網(wǎng)絡(luò)輸入層包含了輸入對象的原始特征,這些特征用矢量xi來表示(i=1,2,…,I,I為輸入神經(jīng)元個數(shù))。中間層包含了徑向基函數(shù)對輸入神經(jīng)元提取的抽象特征,用矢量yj來表示(j=1,2,…,J,J為中間神經(jīng)元個數(shù)),采用高斯函數(shù)作為徑向基函數(shù),即
其中,cij為高斯函數(shù)的中心點,σ2控制了高斯函數(shù)的彎曲程度。矢量zk為輸出神經(jīng)元(k=1,2,…,K,K
為輸出神經(jīng)元個數(shù)),其值是中間神經(jīng)元的線性組合,即
其中,wjk是權(quán)值矩陣,bk是線性偏置。cij,σ,qt,wjk和bk的值在網(wǎng)絡(luò)訓(xùn)練過程中確定。然而,式(7)表示的徑向基函數(shù)并不容易直接用硬件實現(xiàn),因此,把該范數(shù)展開得到:
可見,yj的計算包含3個計算過程:(1)輸入神經(jīng)元xi和高斯函數(shù)中心點cij的差值;(2)中心點為零的高斯函數(shù);(3)各高斯函數(shù)間的乘積。
3.2隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)
根據(jù)式(9)構(gòu)造一個由隨機(jī)邏輯實現(xiàn)的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)(以下簡稱隨機(jī)RBF網(wǎng)絡(luò)),其輸入神經(jīng)元將輸入的確定性二進(jìn)制數(shù)di轉(zhuǎn)換為隨機(jī)碼流xi,中間神經(jīng)元和輸出神經(jīng)元的結(jié)構(gòu)如圖6所示,網(wǎng)絡(luò)參數(shù)cij,k,qt,wjk和bk存儲于外部存儲器中,通過移位寄存器輸入網(wǎng)絡(luò)。
表1 2維狀態(tài)轉(zhuǎn)移結(jié)構(gòu)近似目標(biāo)函數(shù)中的參數(shù)
圖4 用2維狀態(tài)機(jī)綜合的高斯函數(shù)PY1和PY2
圖5 用2維狀態(tài)機(jī)綜合的高斯函數(shù)PY3
對于中間神經(jīng)元,高斯函數(shù)的中心點cij被轉(zhuǎn)換為隨機(jī)碼流,其所使用的隨機(jī)源與輸入神經(jīng)元使用的隨機(jī)源相同,以保證xi和cij完全相關(guān),從而使用XNOR門將隨機(jī)碼流xi和高斯函數(shù)中心點cij相減(如2.3.1節(jié)所述),所得I個差值的絕對值經(jīng)過I個2維狀態(tài)機(jī)(如圖3所示)完成高斯函數(shù)計算,其中,調(diào)制碼流k和qt由獨立的隨機(jī)數(shù)發(fā)生器產(chǎn)生,以保證所得高斯函數(shù)的輸出值Ti(PX)各不相關(guān),從而可以使用一個AND門將該中間神經(jīng)元中所有高斯函數(shù)的輸出值相乘,得到中間神經(jīng)元的輸出yj。
輸出神經(jīng)元可由兩種方式實現(xiàn),一種是采用隨機(jī)邏輯,另一種是采用傳統(tǒng)的確定性邏輯。對于傳統(tǒng)的確定性邏輯,可以先將中間神經(jīng)元輸出的隨機(jī)碼流yj轉(zhuǎn)換為確定性二進(jìn)制數(shù),然后采用一組乘法器和加法器進(jìn)行式(8)的線性迭代運算,得到輸出神經(jīng)元的值zk,每個輸出神經(jīng)元的結(jié)構(gòu)相同,但權(quán)值wjk和偏置值bk不同。對于隨機(jī)邏輯,由于輸出神經(jīng)元的權(quán)值wjk和偏置bk可能大于1,因此先要將wjk和bk進(jìn)行等比例縮小,使其取值范圍為[-1,1],然后使用XNOR門完成yj和wjk有符號乘法計算,最后將結(jié)果乘以原來的縮小系數(shù),形成J路隨機(jī)碼流zik。為了避免隨機(jī)加法運算,該網(wǎng)絡(luò)先將J路隨機(jī)碼流zik轉(zhuǎn)換為確定性二進(jìn)制數(shù),利用確定數(shù)的二進(jìn)制加法器將轉(zhuǎn)換結(jié)果相加,得到輸出神經(jīng)元的輸出結(jié)果zk,從而提高了精度。
圖6 隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的神經(jīng)元結(jié)構(gòu)
4.1鳶尾花識別實驗
鳶尾花數(shù)據(jù)組包含3種類型鳶尾花,每種花各有50組樣本,每組樣本均含有4種數(shù)據(jù):萼片、花瓣的長度和寬度。為了識別花的類型,首先構(gòu)建一個確定性數(shù)RBF網(wǎng)絡(luò),該網(wǎng)絡(luò)包含4個輸入神經(jīng)元、8個中間神經(jīng)元和3個輸出神經(jīng)元,隨機(jī)抽取75個樣本作為訓(xùn)練集,剩余75個樣本作為測試集,采用正交最小二乘法訓(xùn)練,得到測試樣本識別率為97.33%。然后構(gòu)建兩個同樣結(jié)構(gòu)(4×8×3)的隨機(jī)RBF神經(jīng)網(wǎng)絡(luò)M 1和M 2,M 1的中間神經(jīng)元采用圖6(a)的隨機(jī)邏輯、輸出神經(jīng)元采用確定邏輯,M 2的所有神經(jīng)元均采用圖6的隨機(jī)邏輯。M 1和M 2中間神經(jīng)元2維狀態(tài)機(jī)的狀態(tài)數(shù)均為8。對M 1和M 2分別進(jìn)行鳶尾花種類識別測試,每個測試項重復(fù)2000次以減少隨機(jī)數(shù)波動影響,測試結(jié)果如圖7所示。MSE用于衡量隨機(jī)網(wǎng)絡(luò)與確定網(wǎng)絡(luò)的偏離程度。在M 1中,當(dāng)測試碼流為10 kbit時,平均識別率為93.4%;當(dāng)測試碼流為500 kbit時,平均識別率達(dá)到96.7%。在M 2中,當(dāng)測試碼流為1Mbit時,MSE為0.051,比相同情況M 1的MSE高20%,這是因為M 2的輸出神經(jīng)元采用了隨機(jī)加法器。該誤差可以通過增大隨機(jī)碼流長度得到改善,這一事實也證明了隨機(jī)碼流可以動態(tài)調(diào)整運算速度和精度。
圖7 隨機(jī)徑向基函數(shù)網(wǎng)絡(luò)M 1和M 2對鳶尾花的識別率(柱體)和MSE(實線)
圖8 E-13B M ICR字體中注入數(shù)據(jù)噪聲
4.2光學(xué)字符識別實驗
采用E-13B M ICR字體作為識別對象。在標(biāo)準(zhǔn)M ICR字體中加入兩種隨機(jī)數(shù)據(jù)噪聲:像素模糊和像素錯誤,分別用BR(Blur Rate)和ER(Error Rate)表征,前者指像素灰度的改變程度,后者指像素灰度值完全錯誤的比例,如圖8所示。每個字符均采用7×8像素陣列描述,像素灰度值經(jīng)過標(biāo)準(zhǔn)化后輸入至隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)擁有56個輸入神經(jīng)元、15個中間神經(jīng)元和14個輸出神經(jīng)元,每一個輸出神經(jīng)元都代表了M ICR字體識別結(jié)果。網(wǎng)絡(luò)采用正交最小二乘法訓(xùn)練后得到參數(shù)cij,k,qt,wjk和bk。實驗采用網(wǎng)絡(luò)結(jié)構(gòu)M 3和M 4,其中,M 3的中間神經(jīng)元采用隨機(jī)邏輯、輸出神經(jīng)元采用確定性邏輯,M 4的中間神經(jīng)元和輸出神經(jīng)元均采用隨機(jī)邏輯。采用MATLAB對M 3建模和仿真,識別注入隨機(jī)數(shù)據(jù)噪聲的M ICR字體。圖9示意了不同碼流長度的識別結(jié)果。對于網(wǎng)絡(luò)M 3,當(dāng)碼流長度從1 kbit增加到100 kbit時,字體識別率有2%~3%的改善,MSE有5%~8%的改善,字體識別率和MSE最終向確定性網(wǎng)絡(luò)(DN)的結(jié)果收斂。對于網(wǎng)絡(luò)M 4,當(dāng)ER為10%,且碼流長度大于40 kbit時,字體識別率幾乎為100%;當(dāng)ER為20%,碼流長度從40 kbit增加到1Mbit時,字符識別率從91%增加到96.7%,最終收斂于相應(yīng)的確定性網(wǎng)絡(luò)。
圖9 隨機(jī)徑向基函數(shù)網(wǎng)絡(luò)和對應(yīng)確定性網(wǎng)絡(luò)的M ICR字體識別率(實線)和MSE(虛線)(DN:確定性神經(jīng)網(wǎng)絡(luò))
上述數(shù)據(jù)為2000次實驗結(jié)果的平均值。圖10記錄了100次MSE實驗結(jié)果。對于M 3,碼流長度1 kbit時的MSE與相應(yīng)確定性網(wǎng)絡(luò)的MSE差別為3.26%,碼流長度10 kbit時的差別為1.3%;對于M 4,碼流長度為100 kbit時差別為7.61%,碼流長度為1 Mbit時的差別為2.17%。這些MSE差別均小于文獻(xiàn)[5]所提出的軟競爭學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的字符識別實驗[14],在文獻(xiàn)[5]實驗中,確定性網(wǎng)絡(luò)和隨機(jī)網(wǎng)絡(luò)的MSE差別在第1層軟件競爭學(xué)習(xí)網(wǎng)絡(luò)中為31%(0.545 vs0.715),在第2層線性網(wǎng)絡(luò)中為10%(4.77 vs 5.26)。
4.3硬件實現(xiàn)比較
采用A ltera Cyclone IIIFPGA(EP3C80F780C8)對網(wǎng)絡(luò)結(jié)構(gòu)M 1~M 4進(jìn)行硬件實現(xiàn),該FPGA共有81264個邏輯單元LE和430個管腳,綜合結(jié)果如表2所示。網(wǎng)絡(luò)參數(shù)(cij,k,qt,wjk和bk)存儲于外部存儲器中,通過移位寄存器移入網(wǎng)絡(luò)。對于M 1和M 3,中間神經(jīng)元采用隨機(jī)邏輯實現(xiàn),輸出神經(jīng)元采用二進(jìn)制加法器和乘法器實現(xiàn),對于M 2和M 4,中間神經(jīng)元和輸出神經(jīng)元均采用隨機(jī)邏輯實現(xiàn)。當(dāng)數(shù)據(jù)位寬增加時,兩個網(wǎng)絡(luò)結(jié)構(gòu)的總規(guī)模都呈現(xiàn)增長趨勢,但是中間神經(jīng)元的規(guī)模保持不變,說明基于隨機(jī)邏輯的中間神經(jīng)元規(guī)模與數(shù)據(jù)位寬無關(guān)。M 2,M 4的輸出神經(jīng)元規(guī)模分別大于M 1,M 3,隨著數(shù)據(jù)位寬增加,其占系統(tǒng)總資源的比例不斷擴(kuò)大,說明與傳統(tǒng)的確定性邏輯相比,隨機(jī)邏輯的硬件資源優(yōu)勢隨著網(wǎng)絡(luò)規(guī)模的增大變得越來越明顯。
圖10 MSE的隨機(jī)波動(BR=10%,ER=30%),SL:碼流長度(Stream length)
4.4綜合性能比較
表3列出了給定FPGA的前提下,不同RBF網(wǎng)絡(luò)實現(xiàn)方式的硬件資源和性能比較。A為電路面積,以攤銷至每一個網(wǎng)絡(luò)輸入所需要的中間神經(jīng)元LE數(shù)量作為電路面積資源的衡量單位(電路面積除以輸入神經(jīng)元總數(shù)再除以中間神經(jīng)元總數(shù));C為時鐘,以每完成一次識別操作所需要的時鐘數(shù)作為網(wǎng)絡(luò)性能的衡量單位;O為操作次數(shù),以每秒能夠完成的最大操作次數(shù)作為網(wǎng)絡(luò)性能的衡量單位。從表中可見,隨機(jī)RBF網(wǎng)絡(luò)的LE攤銷值為22個,遠(yuǎn)小于其他3種方法。全查找表結(jié)構(gòu)雖然只需要一個時鐘周期來完成操作,但是所需要的查找表過于龐大。插值查找方式減少了查找表規(guī)模,但是增加了計算時間。CORDIC(坐標(biāo)旋轉(zhuǎn)數(shù)字計算)算法是一種流行的指數(shù)函數(shù)計算方法,它只需要二進(jìn)制加法器,比查找表規(guī)模更小。這幾種算法的性能通過R0,R1,R2 3種指標(biāo)衡量,其中,R0為面積A和時鐘C的乘積的倒數(shù)(R0=1/(AC)),代表面積和性能的綜合指標(biāo);R 1為面積A的平方和時鐘C的乘積的倒數(shù)(R 1= 1/(A2C)),代表以面積為優(yōu)先的衡量指標(biāo);R2為操作次數(shù)O除以面積A(R2=(O/A)),代表單位面積可以達(dá)到的操作性能。其比較結(jié)果如圖11所示,縱坐標(biāo)為歸一化后的計分值。總體看來,10位隨機(jī)網(wǎng)絡(luò)結(jié)構(gòu)擁有最好的R0,R1和R2指標(biāo),但是精度偏低。在同樣12位的數(shù)據(jù)寬度情況下,若以R1為考查指標(biāo)(即強調(diào)面積優(yōu)先),則隨機(jī)網(wǎng)絡(luò)擁有最高分值,若以R2為考查指標(biāo)時(即強調(diào)單位面積性能),則隨機(jī)網(wǎng)絡(luò)與CORDIC擁有較高的分值。若提高數(shù)據(jù)寬度至14位,則隨機(jī)網(wǎng)絡(luò)在面積上仍有優(yōu)勢。綜上所述,隨機(jī)網(wǎng)絡(luò)的性能和傳統(tǒng)電路相差并不明顯,但是擁有非常大的電路面積優(yōu)勢。
表2 隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的FPGA實現(xiàn)資源,單位:LE(邏輯單元),網(wǎng)絡(luò)規(guī)模:56×15×14
表3 不同實現(xiàn)方式的徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的硬件資源和性能比較
圖11 不同網(wǎng)絡(luò)實現(xiàn)方式的性能比較
隨機(jī)計算給神經(jīng)網(wǎng)絡(luò)提供了一種并行解決方案。由于神經(jīng)網(wǎng)絡(luò)包含大量乘法、加法、指數(shù)運算,傳統(tǒng)基于指令運算的微處理器需要非常多的時鐘周期,對于本實驗M 3和M 4的56×15×14網(wǎng)絡(luò)結(jié)構(gòu),若每個節(jié)點都進(jìn)行一次乘法和加法,則至少需要56×15×14×2=23520個計算時鐘,再加上指數(shù)運算、控制指令、讀寫數(shù)據(jù)則需要更多時鐘周期,而隨機(jī)RBF網(wǎng)絡(luò)僅需要10k個時鐘就可以得到基本正確的結(jié)果,硬件開銷遠(yuǎn)小于傳統(tǒng)微處理器,因此隨機(jī)計算的綜合性能相對傳統(tǒng)的微處理器的串行指令運行方式有較大優(yōu)勢。
計算機(jī)的處理能力正受到越來越嚴(yán)重的瓶頸限制。本文提出了一種思路,可以運用非常精簡的隨機(jī)運算邏輯來實現(xiàn)大規(guī)模神經(jīng)網(wǎng)絡(luò)。實驗證明,本文所提出隨機(jī)徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)的中間神經(jīng)元的電路面積只有傳統(tǒng)插值查表結(jié)構(gòu)神經(jīng)元的1.2%,CORDIC法的2%,而其運算精度非常接近于傳統(tǒng)網(wǎng)絡(luò),且其MSE波動范圍非常小。從實驗結(jié)果可以推論,這些隨機(jī)邏輯可以應(yīng)用于更為復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)中。當(dāng)硬件成本為主要考慮因素時,隨機(jī)網(wǎng)絡(luò)具有很大優(yōu)勢,尤其適應(yīng)于對成本、功耗要求較高而對于精度要求并不高的應(yīng)用如嵌入式、移動式、穿戴式設(shè)備。另一方面,隨機(jī)網(wǎng)絡(luò)的性能隨著隨機(jī)碼流長度而改變,因此,在相同的網(wǎng)絡(luò)結(jié)構(gòu)下,可以通過改變碼流長度來產(chǎn)成不同的計算精度,這給設(shè)計者帶來了靈活性,可以在不改變硬件結(jié)構(gòu)的情況下對網(wǎng)絡(luò)性能、電路功耗和運算速度3個因素進(jìn)行動態(tài)平衡。最后,由于隨機(jī)計算是基于概率數(shù)的運算,網(wǎng)絡(luò)可以容許輸入數(shù)據(jù)的誤差和電路錯誤,當(dāng)電路中有個別數(shù)據(jù)發(fā)生改變時,其最終結(jié)果并不會發(fā)生根本變化,該特點將是今后的研究方向之一。
[1]GAINES B R.Stochastic Com puting System s(Chapters)in Advances in Information System s Science[M].New York: Plenum,1969:37-172.
[2]HAYES J P.Introduction to stochastic com puting and its challenges[C].2015 52nd ACM/EDAC/IEEE Design Automation Conference(DAC),San Francisco,CA,USA,2015:1-3.doi:10.1145/2744769.2747932.
[3]ALAGHI A and HAYES J P.Survey of stochastic computing[J].ACM Transactions on Embedded Computing System s,2013,12(2s):1-19.doi:10.1145/2465787.2465794.
[4]MOONS B and VERHELST M.Energy-efficiency and accuracy of stochastic com puting circuits in emerging technologies[J].IEEE Journal on Em erging and Selected Topics in Circuits and Systems,2014,4(4):475-486.doi: 10.1109/JETCAS.2014.2361070.
[5]BROWN B D and CARD H C.Stochastic neural computation.I.Com putational elem ents[J].IEEE Transactions on Computers,2001,50(9):891-905.doi: 10.1109/12.954505.
[6]QIANWeikang,LIXin,RIEDELM D,et al.An architecture for fault-tolerant com putation w ith stochastic logic[J].IEEE Transactions on Computers,2011,60(1):93-105.doi: 10.1109/TC.2010.202.
[7]HAN Jie,CHEN Hao,LIANG Jinghang,et al.A stochastic computational app roach for accurate and efficient reliability evaluation[J].IEEE Transactions on Computers,2014,63(6): 1336-1350.doi:10.1109/TC.2012.276.
[8]ALAWAD M and LIN M ingjie.FIR filter based on stochastic com puting w ith reconfigurable d igital fabric[C].2015 IEEE 23rd Annual International Sym posium on Field-Programmable Custom Computing Machines(FCCM),Vancouver,BC,Canada,2015:92-95.doi:10.1109/FCCM. 2015.32.
[9]TEHRANI S S,NADERI A,KAMENDJE G A,et al. M ajority-based tracking forecast M em ories for Stochastic LDPC Decoding[J].IEEE Transactions on Signal Processing,2010,58(9):4883-4896.doi:10.1109/TSP.2010.2051434.
[10]LIPeng,LILJA D J,QIAN W eikang,et al.Com pu tation on stochastic bit stream s digital image processing case studies[J]. IEEE Transactions on Very Large Scale Integration(VLSI)System s,2014,22(3):449-462.doi:10.1109/TVLSI.2013. 2247429.
[11]ZHANG Da and LIHui.A stochastic-based FPGA controller for an induction motor drivew ith integrated neural network algorithm s[J].IEEE Transactions on Industrial Electronics, 2008,55(2):551-561.doi:10.1109/TIE.2007.911946.
[12]王守覺,李兆洲,陳向東,等.通用神經(jīng)網(wǎng)絡(luò)硬件中神經(jīng)元基本數(shù)學(xué)模型的討論[J].電子學(xué)報,2001,29(5):576-580.
WANG Shou jue,LI Zhaozhou,CHEN X iangdong,et al. Discussion on the basic mathematicalmodels of neurons in general purpose neurocom puter[J].Acta Electronica Sinica,2001,29(5):576-580.
[13]吳大鵬,趙瑩,熊余,等.基于小波神經(jīng)網(wǎng)絡(luò)的告警信息相關(guān)性挖掘策略[J].電子與信息學(xué)報,2014,36(10):2379-2384. doi:10.3724/SP.J.1146.2013.01701.
WU Dapeng,ZHAO Ying,XIONG Yu,et al.A larm information relevance m ining mechanism based on wavelet neural network[J].Journal of Electronics&Information Technology,2014,36(10):2379-2384.doi:10.3724/SP.J.1146. 2013.01701.
[14]BROWN B D and CARD H C.Stochastic neural computation.II.Soft com petitive learning[J].IEEE Transactions on Computers,2001,50(9):906-920.doi: 10.1109/12.954506.
[15]LI Peng,LILJA D J,QIAN W K,et al.The synthesis of com p lex arithm etic com putation on stochastic bit stream s using sequential logic[C].2012 IEEE/ACM International Conference on Com puter-Aided Design(ICCAD),San Jose,CA,USA,2012:480-487.doi:10.1145/2429384.2429483.
[16]JI Yuan,RAN Feng,MA Cong,et al.A hardware im plementation of a radial basis function neural network using stochastic logic[C].2015 Design,Automation&Test in Europe Conference&Exhibition(DATE),G renoble,F(xiàn)rance,2015:880-883.
[17]馬承光,仲順安,LILJA D J,等.基于超幾何分解的隨機(jī)運算系統(tǒng)分析方法[J].電子與信息學(xué)報,2013,35(2):355-360.doi: 10.3724/SP.J.1146.2012.00711.
MA Chengguang,ZHONG Shunan,LILJA D J,et al. Analysis m ethod of stochastic com puting system based on hypergeometric decom position[J].Journal of Electronics& Information Technology,2013,35(2):355-360.doi:10.3724/ SP.J.1146.2012.00711.
季淵:男,1980年生,副研究員,研究方向為大規(guī)模集成電路設(shè)計、神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)、硅基微顯示器.
陳文棟:男,1993年生,碩士生,研究方向為神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí).
冉峰:男,1954年生,教授,研究方向為大規(guī)模集成電路設(shè)計、微電子技術(shù)、半導(dǎo)體器件.
David LILJA:男,教授,研究方向為計算機(jī)架構(gòu)、并行計算、高性能計算.
Stochastic Logics with Two-dimensional State Transfer Structure and Its App lication in the A rtificial Neural Network
JIYuan①②CHEN Wendong①RAN Feng①②ZHANG Jinyi①David LILJA③①
①(M icroelectronic Research and Developm ent Center,Shanghai University,Shanghai 200072,China)
②(School ofM echatronic Engineering and Automation,Shanghai University,Shanghai 200072,China)
③(Departm ent ofElectrical and Computer Engineering,University ofMinnesota,M inneapolis 55455,USA)
Stochastic com puting is a special algorithm that perform smathematical operations with probabilistic values of bit stream s rather than traditional determ inistic values.Themain advantage of stochastic computing is its great sim plicity of hardwarearithmetic units formathematical operations to reduce the circuit cost.This paper discusses the p rincip le of the stochastic computing and itsmain arithmetic logic.It analyzes a two-dimension state transition topology structure,and discusses the Gaussian function im p lem entation m ethod based on the two-d im ension Finite State M achin(FSM).Then,a low cost stochastic radial basis function neural network m odel is proposed.Results from two pattern recognition tests show that the d ifference of them ean squared error between the stochastic network output value and the corresponding determ inistic network output value can be less than 1.3%.FPGA im plementation results show that the hardware resource requirement of the p roposed stochastic hidden neuron is only 1.2%of the corresponding determ inistic hidden neuron w ith the interpolated look-up table,and is 2.0%of the CORDIC algorithm.The accuracy,speed and power of the stochastic network can be tradeoff dynam ically.This network is suitab le for the low cost and low power app lications like embedded,portable and wearab le devices.
Stochastic com puting;Artificial neural network;Radial Basis Function(RBF);Pattern recognition
隨機(jī)計算(stochastic com puting)[14]-是一種特殊的基于非確定性數(shù)據(jù)的計算方法,最初由文獻(xiàn)[1]提出,它以比特碼流中出現(xiàn)1(或0)的概率作為運算數(shù)值,在概率域中進(jìn)行數(shù)學(xué)運算。與傳統(tǒng)的基于確定性數(shù)的計算方法(determ inistic computing)相比,隨機(jī)計算的最大優(yōu)勢在于所需要的運算邏輯資源非常小,例如,兩個數(shù)之間的乘法運算可以簡單地用一個二輸入與門來實現(xiàn)[5]。其次,由于隨機(jī)計算采用概率數(shù)作為運算數(shù)據(jù),其運算過程中的輸入噪聲或數(shù)據(jù)錯誤不會導(dǎo)致最終結(jié)果的完全偏離,因此,隨機(jī)計算的抗干擾能力強于傳統(tǒng)的確定性計算。第三,隨機(jī)計算的運算精度與比特碼流的長度相關(guān),更長的碼流可以產(chǎn)生更高的數(shù)據(jù)精度,這給系統(tǒng)設(shè)計帶來了較好的靈活性,在同一個硬件系統(tǒng)中,可以根據(jù)應(yīng)用場景特點采用不同的碼流長度,實現(xiàn)運算速度、電路功耗和運算精度的動態(tài)調(diào)整。
The National Natural Science Foundation of China(61376028)
TP302.7
A
1009-5896(2016)08-2099-08
10.11999/JEIT 151233
2015-11-03;改回日期:2016-04-08;網(wǎng)絡(luò)出版:2016-05-24
季淵jiyuan@shu.edu.cn
國家自然科學(xué)基金(61376028)