張文娟,王 蕾,王連明
(東北師范大學(xué)物理學(xué)院,吉林 長春 130024)
基于Nios Ⅱ的脈沖神經(jīng)網(wǎng)絡(luò)硬件實現(xiàn)方法
張文娟,王 蕾,王連明
(東北師范大學(xué)物理學(xué)院,吉林 長春 130024)
將脈沖神經(jīng)網(wǎng)絡(luò)的理論和算法應(yīng)用于函數(shù)擬合研究,通過使用Cyclone Ⅱ EP2C35F672C8N型FPGA芯片和基本外圍電路,并基于Nios Ⅱ軟核技術(shù),建立了脈沖神經(jīng)網(wǎng)絡(luò)硬件模型.以指數(shù)函數(shù)為例擬合曲線,系統(tǒng)訓(xùn)練結(jié)束后穩(wěn)定誤差可達到0.2.實驗結(jié)果表明,基于Nios Ⅱ的硬件實現(xiàn)方法能夠成功地實現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò),為人工神經(jīng)網(wǎng)絡(luò)的研究提供了有效的仿真平臺,同時該方法能夠有效地模擬連續(xù)函數(shù),擴展了神經(jīng)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域.
脈沖神經(jīng)網(wǎng)絡(luò);硬件實現(xiàn);Nios Ⅱ;曲線擬合
近年來,人工神經(jīng)網(wǎng)絡(luò)在信號處理、人工智能、醫(yī)療、控制系統(tǒng)、模式識別等領(lǐng)域中得到了廣泛的應(yīng)用.目前,基于計算機的軟件仿真是人工神經(jīng)網(wǎng)絡(luò)實現(xiàn)的主要方法,它具有應(yīng)用靈活且不需要專用硬件等優(yōu)點,但無法應(yīng)用在某些對體積、穩(wěn)定性、功耗等要求嚴(yán)格的嵌入式領(lǐng)域.因此,人工神經(jīng)網(wǎng)絡(luò)硬件實現(xiàn)是神經(jīng)網(wǎng)絡(luò)發(fā)展的必然趨勢,其硬件實現(xiàn)技術(shù)也將成為研究的熱門課題.
人工神經(jīng)網(wǎng)絡(luò)硬件實現(xiàn)方法的研究成果眾多[1],主要有基于電子技術(shù)和基于光電子技術(shù)兩種實現(xiàn)方法.由于電子技術(shù)的快速發(fā)展,絕大多數(shù)神經(jīng)網(wǎng)絡(luò)是基于電子技術(shù)硬件實現(xiàn)的,它可以分為基于通用處理器單元的神經(jīng)計算方法和基于超大規(guī)模集成電路(VLSI)的神經(jīng)芯片方法.其中基于VLSI技術(shù)的實現(xiàn)方法包括模擬方法、數(shù)字方法和數(shù)模混合方法[2].
(1)神經(jīng)網(wǎng)絡(luò)的數(shù)字實現(xiàn)方法具有精度高、靈活性大、工藝成熟、易于存儲和權(quán)值更新等優(yōu)點,但缺點是電路規(guī)模大、集成電路的幾何尺寸大、集成難度大,而且成本高[3].
神經(jīng)網(wǎng)絡(luò)的模擬實現(xiàn)方法優(yōu)點是突觸和神經(jīng)元電路易于集成,和外界易于接口,但缺點是對器件參數(shù)的變化敏感,權(quán)值的存儲和修改十分困難[4-5].
(2)神經(jīng)網(wǎng)絡(luò)的數(shù)?;旌戏椒▋?yōu)點在于具有數(shù)字實現(xiàn)的靈活性,易解決大批量權(quán)值的快速存儲和修改問題,同時又兼有模擬實現(xiàn)的乘加電路簡單的特點,是較理想的實現(xiàn)通用神經(jīng)網(wǎng)絡(luò)的途徑.但該方法中模擬信號和數(shù)字信號之間需要DAC和ADC電路,因此電路規(guī)模較大.
自從Murray和Smith在1987年將脈沖技術(shù)用于神經(jīng)網(wǎng)絡(luò)的VLSI實現(xiàn)以來,神經(jīng)網(wǎng)絡(luò)的脈沖技術(shù)實現(xiàn)引起人們的關(guān)注[6-7].脈沖技術(shù)是將神經(jīng)元狀態(tài)編碼調(diào)制在脈沖波形上,可用脈沖寬度的變化PWM或脈沖頻率的變化PFM來表示神經(jīng)元的狀態(tài).脈沖信號可以簡化運算電路(例如突觸電路)使神經(jīng)元間有較高的互聯(lián)密度,也可以使神經(jīng)芯片與數(shù)字電路及計算機的其他外圍設(shè)備易于接口.用脈沖技術(shù)實現(xiàn)神經(jīng)網(wǎng)絡(luò),可融合模擬和數(shù)字技術(shù)兩者的優(yōu)點,是一種較好的神經(jīng)網(wǎng)絡(luò)實現(xiàn)方法.
近年來,脈沖神經(jīng)網(wǎng)絡(luò)的研究越來越受到人們的重視.該神經(jīng)網(wǎng)絡(luò)是直接利用精確的脈沖發(fā)放時間對數(shù)據(jù)進行處理,而傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模擬的是生物神經(jīng)元的脈沖發(fā)放頻率,因而脈沖神經(jīng)網(wǎng)絡(luò)更接近于真實的生物系統(tǒng),更加符合生物信息處理機制.
2.1 脈沖神經(jīng)元模型
圖1 I&F神經(jīng)元模型
脈沖神經(jīng)元模型是更接近生物神經(jīng)元的一個數(shù)學(xué)模型.傳統(tǒng)的Sigmoid神經(jīng)元模型是將一個實數(shù)輸入,再通過傳遞函數(shù)轉(zhuǎn)換成一個實數(shù)輸出.而脈沖神經(jīng)元模型則不同,該模型的本質(zhì)是當(dāng)脈沖神經(jīng)元受到外界的刺激,膜電位會升高,當(dāng)其超過閾值電壓時,該神經(jīng)元產(chǎn)生一個脈沖,并發(fā)送一個輸出信號.在脈沖神經(jīng)網(wǎng)絡(luò)中常見的神經(jīng)元模型有I&F(Integrate and Fire)模型、LI&F(Leaky Integrate and Fire)模型、H-H(Hodgkin-Huxley)模型、SRM(Spike response model)模型等.綜合比較發(fā)現(xiàn),I&F模型能夠更好地獲得神經(jīng)系統(tǒng)的動態(tài)特性,且實現(xiàn)相對比較簡單,因此本文采用的是I&F神經(jīng)元模型.該模型基本電路如圖1所示[8].
I&F模型的原理電路是由電流I(t)驅(qū)動一個電容C和一個電阻R組成.驅(qū)動電流可以分成2個部分,I(t)=IR+IC.IR是通過線性電阻器R的電阻電流,它可以根據(jù)歐姆定律IR=u/R計算,u是電阻兩端的電壓.IC為電容C充電,從C=q/u(q是電荷)得出IC=Cdu/dt.因此有
(1)
(1)式子兩端都乘以R,并引入積分時間常數(shù)項τm=RC,得出標(biāo)準(zhǔn)方程
(2)
為了對I&F神經(jīng)元模型進行精確的事件驅(qū)動模擬,本文假設(shè)積分發(fā)放神經(jīng)元由一個恒定輸入電流I(t)=I0刺激,復(fù)位電壓ur為0.假設(shè)在t=t(1)時,一個尖峰發(fā)生.根據(jù)(2)式和初始條件u(t(1))=ur=0得出膜電壓的軌跡,即
(3)
2.2 脈沖神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法
大腦具有很強的學(xué)習(xí)記憶功能,它是基于神經(jīng)元間的突觸可塑性,即突觸前后神經(jīng)元內(nèi)部連接強度自適應(yīng)的改變能力.對應(yīng)到神經(jīng)網(wǎng)絡(luò)中,這就涉及突觸權(quán)值和閾值的改變.STDP(Spike Time Dependent Plasticity)規(guī)則是一種突觸可塑性規(guī)則,它與前后神經(jīng)元發(fā)放脈沖時間順序息息相關(guān)[9-10],其時間依賴性理論更接近生物特性,且在目前應(yīng)用比較廣泛,因此本文采用該學(xué)習(xí)算法.
STDP利用相連的脈沖神經(jīng)元發(fā)放脈沖的時間差信息對突觸權(quán)值進行修改,其數(shù)學(xué)模型為:
(4)
(5)
Nios Ⅱ[11]是一種通用流水線型的RISC處理器內(nèi)核的軟核處理器,等同于微控制器或者“片上計算機”.Nios Ⅱ處理器系統(tǒng)是將Nios Ⅱ處理器核、片內(nèi)外設(shè)集合、片內(nèi)存儲器和片外接口等集成在一塊單一的FPGA芯片上.所有的Nios Ⅱ處理器系統(tǒng)使用統(tǒng)一的指令集和編程模型.
因為FPGA器件的引腳和邏輯資源是可編程的,可以實現(xiàn)許多用戶自定義的特性.同時,用戶能夠重新安排芯片上的引腳,因此在電路板設(shè)計上更加容易、靈活.片上額外的引腳和邏輯能用來為Nios Ⅱ處理器系統(tǒng)實現(xiàn)附加的外設(shè)和硬件邏輯.
本文采用的FPGA芯片是Cyclone Ⅱ 系列的EP2C35F672C8N.經(jīng)過實驗驗證,該器件資源符合存儲計算功能要求.器件主要參數(shù)見表1.
表1 Cyclone Ⅱ EP2C35F672C8N參數(shù)表
本文基于Nios Ⅱ處理器采用脈沖神經(jīng)元構(gòu)造了一個三層的指數(shù)曲線函數(shù)神經(jīng)網(wǎng)絡(luò)模型,具體實現(xiàn)過程如下:
(1) 在Quartus中使用SOPC Builder搭建軟核處理器系統(tǒng);
(2) 在Nios Ⅱ IDE中實現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)模型,并將實驗數(shù)據(jù)通過串口輸出;
(3) 用脈沖神經(jīng)網(wǎng)絡(luò)輸出的實驗數(shù)據(jù)繪圖.
4.1 搭建軟核處理器系統(tǒng)
在Quartus軟件中使用SOPC Builder建立軟核處理器系統(tǒng),使用的ip核包括標(biāo)準(zhǔn)型cpu、片上32K ram、uart和8位pio輸出口,如圖2所示.圖2中uart是RS-232串口控制軟核,網(wǎng)絡(luò)運行結(jié)束后將計算結(jié)果通過串口顯示.8位pio輸出口用于顯示網(wǎng)絡(luò)計算過程中運行的標(biāo)志和狀態(tài).
圖2 軟核處理器系統(tǒng)
4.2 Nios Ⅱ IDE中實現(xiàn)的脈沖神經(jīng)網(wǎng)絡(luò)模型
在Nios Ⅱ IDE中實現(xiàn)擬合指數(shù)曲線函數(shù)的脈沖神經(jīng)網(wǎng)絡(luò)模型.該模型主要包含信息編碼層、處理層和輸出層.信息編碼層主要接收函數(shù)輸入值,并將其轉(zhuǎn)化為具有不同發(fā)放時間的脈沖序列;處理層主要是將上一層輸出的脈沖序列送入神經(jīng)元組成的處理網(wǎng)絡(luò);輸出層則將處理層的處理結(jié)果以數(shù)組的形式輸出.
(1) 信息編碼層
脈沖神經(jīng)網(wǎng)絡(luò)的輸入輸出是脈沖序列,因此不能直接進行模擬量的計算,必須要先將模擬量編碼為脈沖序列后再作為神經(jīng)網(wǎng)絡(luò)的輸入.本文采用線性編碼方式,將函數(shù)輸入x轉(zhuǎn)化成脈沖發(fā)放時間n,如(6)式所示.其中,時間窗設(shè)定為20 ms,x取20個點,取值范圍是-1.2~6.根據(jù)要擬合的函數(shù)y=ex計算,實際函數(shù)范圍是0.301 194~403.428 793.將理想的輸出時間也同樣轉(zhuǎn)化到時間20 ms內(nèi),理想輸出為:
(6)
(7)
(2) 處理層
實驗中脈沖神經(jīng)網(wǎng)絡(luò)采樣時間為0.01 s,時間窗為20 ms,即共采樣2 000次.分別將信息編碼層輸出的20個脈沖信號時間上加寬0.04 s作為網(wǎng)絡(luò)輸入,實驗證明此處理方法有利于電壓信號累積,累積達到1.2 V時發(fā)放脈沖,記錄發(fā)放時間并作為臨近的脈沖輸入信號的計算結(jié)果,實現(xiàn)了將脈沖序列轉(zhuǎn)換成脈沖電壓信號,再基于STDP規(guī)則更新網(wǎng)絡(luò)權(quán)值,本文中學(xué)習(xí)率取值為A+=1,A-=0.5,時間參數(shù)取值為τ+=20,τ-=50,保證A-τ->A+τ+整體范圍內(nèi)學(xué)習(xí)強度減弱.
(3) 輸出層
由于網(wǎng)絡(luò)輸入和理想輸出是經(jīng)過編碼實現(xiàn)的,因此實際輸出結(jié)果也要經(jīng)過解碼才能與實際輸入對應(yīng).解碼公式為
(9)
其中u(n)為對應(yīng)輸入脈沖n的發(fā)放脈沖的時間,y(x)表示對應(yīng)輸入的實際輸出值.最后網(wǎng)絡(luò)將實際輸入和實際輸出通過串口輸出,網(wǎng)絡(luò)計算過程中首次數(shù)據(jù)結(jié)果見圖3.圖3中n表示網(wǎng)絡(luò)輸入的脈沖時間,d表示函數(shù)期望值,u表示實際輸出的電壓脈沖值,w表示網(wǎng)絡(luò)權(quán)值,e表示誤差.
圖3 串口調(diào)試助手接收實驗數(shù)據(jù)
4.3 實驗結(jié)果
實驗數(shù)據(jù)見圖4.實際輸入x=[-1.2,0,0.5,1.4,1.8,2.1,2.2,2.3,3.1,3.5,4,4.2,4.3,4.4,4.7,5.2,5.7,5.8,5.9,6],共20個數(shù)值,經(jīng)過脈沖神經(jīng)網(wǎng)絡(luò)的信息編碼層處理后轉(zhuǎn)化成脈沖發(fā)放時間n,n=[1.777 8,4.444 4,5.555 6,7.555 6,8.444 4,9.111 1,9.333 3,9.555 6,11.333 3,12.222 2,13.333 3,13.777 8,14.000 0,14.222 2,14.888 9,16.000 0,17.111 1,17.333 3,17.55 56,17.777 8],脈沖幅值為1,見圖4(a),其橫坐標(biāo)表示時間,縱坐標(biāo)表示脈沖幅值.脈沖神經(jīng)網(wǎng)絡(luò)運行過程中輸出電壓根據(jù)輸入脈沖的刺激,不斷出現(xiàn)累積和發(fā)放的現(xiàn)象,見圖4(b),其橫坐標(biāo)表示時間,縱坐標(biāo)表示輸出電壓值.網(wǎng)絡(luò)共運行了50次,更新了50次權(quán)值,網(wǎng)絡(luò)訓(xùn)練后的實際輸出結(jié)果和函數(shù)期望值見圖4(c),其橫坐標(biāo)表示實際輸入值,縱坐標(biāo)表示函數(shù)期望值和輸出值.網(wǎng)絡(luò)實際輸入共20個點,圖4(d)給出了其中一個點n=8.444 4 的運行過程中誤差的變化規(guī)律,其橫坐標(biāo)表示網(wǎng)絡(luò)運行次數(shù),縱坐標(biāo)表示誤差.網(wǎng)絡(luò)中其他各點誤差變化趨勢大體相同.通過計算數(shù)據(jù)得出,網(wǎng)絡(luò)訓(xùn)練結(jié)束后實際輸出值與函數(shù)期望值平均誤差值為0.3.
(a)網(wǎng)絡(luò)輸入的脈沖信號
(b)網(wǎng)絡(luò)輸出的電壓脈沖信號
(c)訓(xùn)練結(jié)束后實際輸出值與期望值
(d)網(wǎng)絡(luò)中n=8.444 4的誤差變化
圖4 實驗數(shù)據(jù)
本文提出了一種基于Nios Ⅱ的脈沖神經(jīng)網(wǎng)絡(luò)的硬件實現(xiàn)方法,完成了網(wǎng)絡(luò)建模,并以擬合指數(shù)函數(shù)為例給出了實驗結(jié)果.整個系統(tǒng)具有器件少、成本低、靈活性強、數(shù)據(jù)存儲方便、開發(fā)周期短等眾多優(yōu)點,對促進神經(jīng)網(wǎng)絡(luò)乃至智能信息處理技術(shù)的發(fā)展具有重要的工程實踐價值.同時解決了多數(shù)脈沖神經(jīng)網(wǎng)絡(luò)在圖像處理方面的應(yīng)用缺點,而將其擴展到模擬連續(xù)函數(shù)等問題上,擴展了神經(jīng)網(wǎng)絡(luò)的應(yīng)用領(lǐng)域,具有一定的理論研究價值和現(xiàn)實意義.
[1] 程丹,王連明.基于NIOS Ⅱ多核技術(shù)的Hopfield神經(jīng)網(wǎng)絡(luò)硬件實現(xiàn)方法[J].東北師范大學(xué)(自然科學(xué)版),2011,43(3):65-68.
[2] 陳瓊,鄭啟倫.人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)硬件實現(xiàn)的研究進展[J].電路與系統(tǒng)學(xué)報,2000,5(1):48-51.
[3] TAKAO WATANABE,KATDUTAKA KIMURA,MASAKAZU AOKI,et al.A single 1.5-V digital chip for a 106 synapse neural network [J].IEEE Transactions on Neural Networks.1993,4(3):387-393.
[4] 高麗娜,邱關(guān)源.一種連續(xù)可調(diào)權(quán)值CMOS 神經(jīng)網(wǎng)絡(luò)[J].電子學(xué)報,1998,26(2):120-122.
[5] LINARES-BARRANCO,SANCHEZ-SINENCIO B,RODRIGUEZ-VAZQUEZ E,et al.A modulart-mode design approach for analog neural network hardware implementations [J].IEEE Journal of Solid-State Circuits,1992,27(5):701-712.
[6] YASUHIRO OTA,BOGDAN M WILAMOWKI.Analog implementation of pulse-coupled neural networks [J].IEEE Transactions on Neural Networks,1999,10(3):539-544.
[7] EZZEL-MASRY,YANG H-K,YAKOUT M A.Implementations of artificial neural networks using current-mode pulse width modulation technique [J].IEEE Transactions on Neural Networks,1997,8(3):532-548.
[8] GERSTNER W,KISTLER W.Spiking neuron models:single neurons,populations,plasticity[M].Cambridge:Cambridge University Press,2002:116-117.
[9] SONG S,MILLER K D,ABBOTT L F.Competitive Hebbian learning through spike-timing-dependent synaptic plasticity[J].Nature Neuroscience,2000(3):919-926.
[10] DAN Y,POO M.Spike timing-dependent plasticity of neural circuits[J].Neuron,2004,44(1):23-30.
[11] 赫建國,倪德克,鄭燕.基于Nios Ⅱ內(nèi)核的FPGA電路系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2010:3-5.
(責(zé)任編輯:石紹慶)
Method for hardware implementation of spiking neural network based on Nios Ⅱ
ZHANG Wen-juan,WANG Lei,WANG Lian-ming
(School of Physics,Northeast Normal University,Changchun 130024,China)
Spiking neural network theory and algorithm are applied to fitting function in this paper,and spiking neural network model is founded based on Nios Ⅱ software using Cyclone Ⅱ EP2C35F672C8N and basic peripheral circuit.Exponential function is fitted and the stabilization error after training is 0.2.The results show that hard implementation of spiking network based on Nios Ⅱ which can provide an effective simulation platform for the research of artificial neural network is successful.At the same time this method can simulate the continuous function effectively and expands the application fields of the neural network.
spiking neural network;hardware implementation;Nios Ⅱ;fitting curve
1000-1832(2016)04-0057-06
10.16163/j.cnki.22-1123/n.2016.04.013
2016-07-21
吉林省科技應(yīng)用基礎(chǔ)研究項目(20130102028JC);中央高校基本科研業(yè)務(wù)費專項資金資助項目(2412015KJ006).
張文娟(1983—),女,博士,工程師,主要從事嵌入式系統(tǒng)、智能信息處理研究;通信作者:王連明(1972—),男,博士,教授,主要從事嵌入式系統(tǒng)、智能信息處理研究.
TP 183 [學(xué)科代碼] 520·20
A