尚瑛杰,董麗亞,何 虎
(清華大學(xué) 微電子與納電子學(xué)系,北京 100084)
脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neuron Network,SNN)被稱為第三代人工神經(jīng)網(wǎng)絡(luò),它在原理上更加接近生物神經(jīng)網(wǎng)絡(luò)[1],具有低計算量、低功耗和高維度等特點,是實現(xiàn)類腦計算和強人工智能的重要途徑[2],近年來受到了越來越多的關(guān)注。但是,由于缺乏有效的學(xué)習(xí)算法,脈沖神經(jīng)網(wǎng)絡(luò)的研究還處在探索階段。
目前,脈沖神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法主要有基于脈沖時間依賴型可塑性規(guī)則(Spike Timing Dependent Plasticity,STDP)的無監(jiān)督學(xué)習(xí)算法、基于Widrow-Hoff推導(dǎo)的學(xué)習(xí)算法和基于反向傳播的學(xué)習(xí)算法[3-5]。
STDP規(guī)則描述了脈沖神經(jīng)網(wǎng)絡(luò)中連接前后2個神經(jīng)元之間的因果關(guān)系,可以實現(xiàn)權(quán)值的無監(jiān)督訓(xùn)練,但基于STDP規(guī)則的學(xué)習(xí),通常僅適用于網(wǎng)絡(luò)的局部學(xué)習(xí),在大規(guī)模網(wǎng)絡(luò)中,存在計算量大和學(xué)習(xí)效率低等問題,需要結(jié)合其他規(guī)則進行使用[6-7]。其中,文獻[8]采用STDP、側(cè)抑制和內(nèi)在可塑性等多種規(guī)則,優(yōu)點是實現(xiàn)了脈沖神經(jīng)網(wǎng)絡(luò)的無監(jiān)督訓(xùn)練,在MNIST測試集上的識別準(zhǔn)確率為95%,缺點是算法規(guī)則復(fù)雜,不具備通用性,無法識別更為復(fù)雜的圖片。
在基于Widrow-Hoff推導(dǎo)的學(xué)習(xí)算法中,最常用的是利用遠程監(jiān)督學(xué)習(xí)規(guī)則(Remote Supervised Method,ReSuMe)設(shè)計的算法[9-10]。文獻[11]提出一種改進的ReSuMe算法,可以實現(xiàn)有效的監(jiān)督式學(xué)習(xí),提高了網(wǎng)絡(luò)的局部學(xué)習(xí)精度。但是,這種學(xué)習(xí)算法對網(wǎng)絡(luò)中間層監(jiān)督信號的定義不明確,不適用于多層脈沖神經(jīng)網(wǎng)絡(luò),因此,通常僅用于處理小規(guī)模網(wǎng)絡(luò),文中也未進行相關(guān)數(shù)據(jù)集識別實驗。
基于反向傳播的學(xué)習(xí)算法,也是目前脈沖神經(jīng)網(wǎng)絡(luò)領(lǐng)域中關(guān)注程度較高的一種算法[12]。它仿照傳統(tǒng)反向傳播算法的原理,利用數(shù)學(xué)技巧回避了離散脈沖序列無法求導(dǎo)的問題。文獻[13]提出一種新的方法,將神經(jīng)元的膜電位看作是可微信號,并將脈沖時間的不連續(xù)點看作是噪聲,求導(dǎo)結(jié)果直接作用于脈沖信號和膜電位,該方法的優(yōu)點在于成功地將反向傳播算法應(yīng)用到脈沖神經(jīng)網(wǎng)絡(luò)中,MNIST測試集上的識別準(zhǔn)確率為98.66%,但其改變了脈沖神經(jīng)網(wǎng)絡(luò)工作機制,并且計算量大,仿真實施難度大。文獻[14]將反向傳播算法與STDP規(guī)則相結(jié)合,并使用差分操作代替微分操作,從而實現(xiàn)了脈沖神經(jīng)網(wǎng)絡(luò)的反向傳播算法,在MNIST測試集上的識別準(zhǔn)確率為97.20%,但該方法需要嚴(yán)格控制神經(jīng)元的激活狀態(tài),保證它們每個仿真周期只發(fā)射一個脈沖,否則算法將失效。
脈沖神經(jīng)網(wǎng)絡(luò)是進行復(fù)雜時空信息處理的有效工具,但其學(xué)習(xí)算法存在計算量大、學(xué)習(xí)效率低、多層網(wǎng)絡(luò)收斂困難和適用性弱等缺陷,導(dǎo)致脈沖神經(jīng)網(wǎng)絡(luò)無法大規(guī)模應(yīng)用。然而,反向傳播網(wǎng)絡(luò)作為第二代神經(jīng)網(wǎng)絡(luò),由于學(xué)習(xí)算法相對完善,已被廣泛應(yīng)用在人工智能領(lǐng)域。為此,本文設(shè)計一種遷移學(xué)習(xí)算法,將第二代神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果直接遷移到第三代神經(jīng)網(wǎng)絡(luò)中,以彌補脈沖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的不足,發(fā)揮脈沖神經(jīng)網(wǎng)絡(luò)低功耗的優(yōu)勢。
神經(jīng)元是神經(jīng)網(wǎng)絡(luò)最基礎(chǔ)的元素,而脈沖神經(jīng)網(wǎng)絡(luò)由于工作模式的不同,脈沖神經(jīng)元模型也與傳統(tǒng)的神經(jīng)元模型有著明顯的差別,其中最為常用的是泄漏積分放電模型(Leaky Integrate and Fire,LIF)[15-16],如圖1所示。
圖1 LIF模型和等效電路示意圖Fig.1 Schematic diagram of LIF model and equivalent circuit
在LIF模型中,當(dāng)輸入端接收到脈沖信號時,其膜電位會不斷升高,如果膜電位達到激發(fā)閾值,則會在輸出端產(chǎn)生一個脈沖信號,同時將神經(jīng)元膜電位重置;如果長時間沒有輸入脈沖信號或者輸入脈沖信號較弱,LIF神經(jīng)元的膜電位會緩慢降低至初始電位[17]。因此,LIF模型可以等效為一個帶有偏置電壓源的電阻-電容并聯(lián)模型。
脈沖神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)方面與反向傳播網(wǎng)絡(luò)類似,由脈沖神經(jīng)元及其連接組成。但是脈沖神經(jīng)網(wǎng)絡(luò)的輸入輸出不是實數(shù)值,而是離散的脈沖信號,網(wǎng)絡(luò)中信息的表達、傳輸和處理也都是基于脈沖序列進行的[18-19],如圖2所示。
圖2 脈沖神經(jīng)網(wǎng)絡(luò)模型Fig.2 Model of spiking neuron network
NEST是一款面向脈沖神經(jīng)網(wǎng)絡(luò)的開源模擬器,其提供了大量的神經(jīng)元模型和突觸模型,避免了繁瑣的數(shù)學(xué)建模工作。同時,脈沖神經(jīng)元模型的設(shè)計參考了生物學(xué)相關(guān)研究成果,具有很強的生物可解釋性。本文基于NEST模擬器,使用Python編程,提供了快速搭建脈沖神經(jīng)網(wǎng)絡(luò)的軟件環(huán)境。
遷移學(xué)習(xí)算法的整體步驟為:構(gòu)建相同結(jié)構(gòu)的反向傳播網(wǎng)絡(luò)和脈沖神經(jīng)網(wǎng)絡(luò),利用反向傳播網(wǎng)絡(luò)成熟的算法和仿真環(huán)境對權(quán)值進行訓(xùn)練,然后通過權(quán)值映射關(guān)系將訓(xùn)練好的權(quán)值參數(shù)遷移到脈沖神經(jīng)網(wǎng)絡(luò)中。脈沖神經(jīng)網(wǎng)絡(luò)只完成推理工作,不涉及訓(xùn)練過程。
遷移學(xué)習(xí)算法包含反向傳播網(wǎng)絡(luò)訓(xùn)練算法、脈沖編碼方式、自適應(yīng)權(quán)值映射關(guān)系、脈沖神經(jīng)網(wǎng)絡(luò)推理算法4個關(guān)鍵性部分。
反向傳播網(wǎng)絡(luò)的訓(xùn)練是基于TensorFlow框架實現(xiàn)的,并采用了GPU加速,具有參數(shù)設(shè)定簡單、網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計靈活和仿真速度快等特點。同時,算法采用了指數(shù)衰減型學(xué)習(xí)率解決局部最優(yōu)問題,運用正則化避免過擬合問題,使用滑動平均模型增強算法魯棒性。在網(wǎng)絡(luò)充分訓(xùn)練之后,將網(wǎng)絡(luò)權(quán)值存入csv文件,具體的算法步驟如下:
步驟1讀取數(shù)據(jù)和配置參數(shù),轉(zhuǎn)步驟2。
步驟2根據(jù)配置參數(shù)構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),轉(zhuǎn)步驟3。
步驟3通過反向傳播算法和梯度下降算法進行網(wǎng)絡(luò)權(quán)值訓(xùn)練,轉(zhuǎn)步驟4。
步驟4網(wǎng)絡(luò)識別準(zhǔn)確率是否達到期望值或達到最大迭代次數(shù),若是則轉(zhuǎn)步驟5;否則轉(zhuǎn)步驟3。
步驟5將網(wǎng)絡(luò)權(quán)值存入weights.csv文件,結(jié)束。
由于脈沖神經(jīng)網(wǎng)絡(luò)的信息載體是脈沖序列,而非實數(shù)值,因此需要設(shè)計合理的脈沖編碼方式,將實數(shù)值轉(zhuǎn)換為脈沖序列[20]。本文設(shè)計了線性編碼、指數(shù)編碼、反函數(shù)編碼和冪函數(shù)編碼4種脈沖編碼方式。
為方便表述,本文做如下規(guī)定:將輸入圖片記為D,輸入圖片中的像素記為d,輸入數(shù)據(jù)列表D中最大元素記為dmax,輸入數(shù)據(jù)列表D中最小元素記為dmin,脈沖序列起點時間記為Tmin,終點時間記為Tmax,轉(zhuǎn)換得到的脈沖序列記為S(d)。
為避免奇異樣本數(shù)據(jù)影響網(wǎng)絡(luò)收斂,在脈沖編碼之前需要先對數(shù)據(jù)進行歸一化操作,本文中使用的是min-max標(biāo)準(zhǔn)歸一化方法,如式(1)所示:
(1)
線性編碼如式(2)所示:
S(d)=Tmax-R(d)×(Tmax-Tmin)
(2)
指數(shù)編碼如式(3)所示:
S(d)=(0.5R(d)-1-1)×(Tmax-Tmin)+Tmin
(3)
反函數(shù)編碼如式(4)所示:
(4)
冪函數(shù)編碼如式(5)所示:
S(d)=(R(d)-1)2×(Tmax-Tmin)+Tmin
(5)
上述的4種脈沖編碼方式,都是將輸入數(shù)據(jù)的數(shù)值轉(zhuǎn)換為脈沖時間,而具體的脈沖形式則通過NEST模擬器中的脈沖發(fā)生器模型生成。在4種脈沖編碼方式下,像素值與脈沖時間轉(zhuǎn)換曲線如圖3所示。
圖3 4種脈沖編碼方式的像素值與脈沖時間轉(zhuǎn)換對比Fig.3 Comparison of pixel value and pulse timeconversion of four spiking encoding modes
從圖3可以看出,在4種脈沖編碼方式下,像素值與脈沖時間呈負相關(guān)關(guān)系,這種設(shè)計方式是考慮到一般圖片中背景的像素值較小。像素值小的部分,對應(yīng)的脈沖時間靠后。而在脈沖神經(jīng)網(wǎng)絡(luò)中,時間靠后的脈沖信號會因神經(jīng)元漏電而消失,或無法在仿真結(jié)束之前到達輸出層,從而被自動濾除,有助于特征提取。
由于工作原理的不同,反向傳播網(wǎng)絡(luò)的權(quán)值不能直接遷移到脈沖神經(jīng)網(wǎng)絡(luò)中,否則會引發(fā)參數(shù)失配問題,即:如果權(quán)值過小,脈沖神經(jīng)元達不到激發(fā)閾值,會導(dǎo)致脈沖信號無法有效傳導(dǎo)到輸出層;如果權(quán)值過大,脈沖神經(jīng)元激發(fā)過于頻繁,會導(dǎo)致仿真計算負擔(dān)重和模型參數(shù)越界等問題,同時也不利于發(fā)揮脈沖神經(jīng)網(wǎng)絡(luò)低功耗特性。
因此,反向傳播網(wǎng)絡(luò)權(quán)值需要乘以一個縮放因子,才可以合理地映射到脈沖神經(jīng)網(wǎng)絡(luò)中。將縮放因子記為A,網(wǎng)絡(luò)輸出層神經(jīng)元個數(shù)記Nout,縮放因子的自適應(yīng)調(diào)整算法步驟如下:
步驟1縮放因子A初始化為1,讀取weights.csv文件中權(quán)值,記為變量Wweight,并設(shè)置2個輔助變量Astart=0,Aend=A,轉(zhuǎn)步驟2。
步驟2Wweight=Wweight×A,根據(jù)Wweight變量設(shè)置脈沖神經(jīng)網(wǎng)絡(luò)的權(quán)值,轉(zhuǎn)步驟3。
步驟3每類圖片隨機選取一張作為輸入,每張圖片仿真一次,并記錄仿真后輸出層脈沖數(shù)量。最后,將輸出層脈沖數(shù)量對仿真次數(shù)求均值,記為Nspike,轉(zhuǎn)步驟4。
步驟4如果Nout 縮放因子A經(jīng)過自適應(yīng)算法的調(diào)整,能夠保證反向傳播網(wǎng)絡(luò)的權(quán)值按照合適的縮放比例映射到脈沖神經(jīng)網(wǎng)絡(luò)中。 在定義了脈沖編碼格式和自適應(yīng)權(quán)值映射關(guān)系之后,就可以利用反向傳播的訓(xùn)練結(jié)果,在脈沖神經(jīng)網(wǎng)絡(luò)中完成推理功能。脈沖神經(jīng)網(wǎng)絡(luò)的推理算法步驟如下: 步驟1讀取數(shù)據(jù)和配置參數(shù),轉(zhuǎn)步驟2。 步驟2根據(jù)配置參數(shù)構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),并根據(jù)權(quán)值映射關(guān)系,將反向傳播網(wǎng)絡(luò)訓(xùn)練好的權(quán)值加載到脈沖神經(jīng)網(wǎng)絡(luò)對應(yīng)的連接中,轉(zhuǎn)步驟3。 步驟3調(diào)整縮放因子A,并更新脈沖神經(jīng)網(wǎng)絡(luò)權(quán)值,轉(zhuǎn)步驟4。 步驟4開啟仿真,檢測每個輸出神經(jīng)元發(fā)出的脈沖數(shù)量,脈沖數(shù)量最多的神經(jīng)元所代表的類別即為最終的輸出結(jié)果。 軟件框架主要由基于TensorFlow的反向傳播網(wǎng)絡(luò)訓(xùn)練和基于NEST模擬器的脈沖神經(jīng)網(wǎng)絡(luò)推理兩部分構(gòu)成。 基于TensorFlow的反向傳播網(wǎng)絡(luò)訓(xùn)練部分的軟件框架如圖4所示。 圖4 反向傳播網(wǎng)絡(luò)訓(xùn)練框架Fig.4 Training framework of back propagation network 基于TensorFlow的反向傳播網(wǎng)絡(luò)訓(xùn)練部分的軟件框架由以下內(nèi)容組成: 1)配置文件:網(wǎng)絡(luò)參數(shù)配置文件提供了網(wǎng)絡(luò)層數(shù)、網(wǎng)絡(luò)層尺寸和激活函數(shù)等信息;算法參數(shù)配置文件提供了損失函數(shù)、學(xué)習(xí)率、滑動平均等操作的相關(guān)參數(shù);系統(tǒng)參數(shù)配置文件則提供TensorFlow的相關(guān)配置信息。 2)數(shù)據(jù)集:提供訓(xùn)練和推理所用的數(shù)據(jù)集,并提供相應(yīng)的數(shù)據(jù)集讀取格式。 3)反向傳播網(wǎng)絡(luò)訓(xùn)練模塊:根據(jù)配置文件構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),并結(jié)合用戶的參數(shù)設(shè)置,調(diào)用TensorFlow完成網(wǎng)絡(luò)的訓(xùn)練任務(wù)。 4)權(quán)值文件:將訓(xùn)練好的網(wǎng)絡(luò)權(quán)值以csv文件的格式進行存儲。 基于NEST模擬器的脈沖神經(jīng)網(wǎng)絡(luò)推理部分的軟件框架如圖5所示。 圖5 脈沖神經(jīng)網(wǎng)絡(luò)推理框架Fig.5 Inference framework of spiking neuron network 基于NEST模擬器的脈沖神經(jīng)網(wǎng)絡(luò)推理部分的軟件框架由以下內(nèi)容組成: 1)配置文件:網(wǎng)絡(luò)參數(shù)配置文件提供了網(wǎng)絡(luò)層數(shù)、網(wǎng)絡(luò)層尺寸和神經(jīng)元模型等信息;算法參數(shù)配置文件提供了脈沖轉(zhuǎn)換函數(shù)、脈沖序列時間區(qū)間和仿真周期等參數(shù);系統(tǒng)參數(shù)配置文件則提供NEST模擬器相關(guān)配置信息。 2)數(shù)據(jù)集:提供推理所用的數(shù)據(jù)集,將數(shù)據(jù)經(jīng)過脈沖轉(zhuǎn)換器編碼成為脈沖信號,提供給脈沖神經(jīng)網(wǎng)絡(luò)進行仿真。 3)權(quán)值文件:讀取訓(xùn)練好的網(wǎng)絡(luò)權(quán)值,并乘以縮放因子A,然后載入到脈沖神經(jīng)網(wǎng)絡(luò)的連接中。 4)脈沖神經(jīng)網(wǎng)絡(luò)推理模塊:調(diào)用NEST模擬器,完成脈沖神經(jīng)網(wǎng)絡(luò)的推理功能,并將分類結(jié)果輸出。 在多層脈沖神經(jīng)網(wǎng)絡(luò)中,為驗證遷移學(xué)習(xí)算法和軟件框架的有效性,基于本文設(shè)計的軟件框架,搭建了遷移學(xué)習(xí)算法的仿真環(huán)境,并使用兩層全連接網(wǎng)絡(luò),對MNIST手寫體數(shù)字數(shù)據(jù)集進行了訓(xùn)練和推理。在算法有效性驗證方面,為測試通用性,做了額外的實驗,使用LeNet-5網(wǎng)絡(luò)模型,對CIFAR-10數(shù)據(jù)集進行識別實驗。 為直觀展示圖片轉(zhuǎn)換為脈沖序列的過程,在實驗中將MNIST數(shù)據(jù)集中的一張圖片經(jīng)過脈沖編碼后,送入輸入層,通過對輸入層每一個神經(jīng)元的脈沖信號發(fā)射時間的記錄,將結(jié)果繪制成圖,如圖6所示。 圖6 圖片轉(zhuǎn)脈沖信號分布示意圖Fig.6 Schematic diagram of picture to pulsesignal distribution 在圖6中,左邊的MNIST圖片經(jīng)過脈沖編碼,形成了如右邊所示脈沖信號分布。在脈沖信號分布圖中,橫軸為輸入層神經(jīng)元,按照輸入層的順序,每個神經(jīng)元對應(yīng)一個刻度值;縱軸為脈沖時間,表示每一個輸入神經(jīng)元發(fā)射脈沖的時刻,單位為仿真平臺的最小仿真周期。 遷移學(xué)習(xí)實驗共分為反向傳播網(wǎng)絡(luò)的訓(xùn)練和脈沖神經(jīng)網(wǎng)絡(luò)的推理2個主要步驟。另外,本文實驗采用MNIST和CIFAR-10兩種數(shù)據(jù)集。 4.2.1 MNIST數(shù)據(jù)集實驗 由于遷移算法要求反向傳播網(wǎng)絡(luò)和脈沖神經(jīng)網(wǎng)絡(luò)必須具備相同的結(jié)構(gòu),本文實驗采用的反向傳播網(wǎng)絡(luò)和脈沖神經(jīng)網(wǎng)絡(luò)均采用如下結(jié)構(gòu):輸入層尺寸為784,中間層尺寸為500,輸出層尺寸為10,如圖7所示。 圖7 MNIST識別實驗網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 Network structure of MNIST recognition experiment MNIST數(shù)據(jù)集實驗方法如下: 1)采用50 000張MNIST數(shù)據(jù)集圖片對反向傳播網(wǎng)絡(luò)進行訓(xùn)練,訓(xùn)練后的反向傳播網(wǎng)絡(luò)對10 000張MNIST測試集圖片的識別準(zhǔn)確率達到了98.42%。 2)通過遷移學(xué)習(xí)算法,將反向傳播網(wǎng)絡(luò)權(quán)值通過自適應(yīng)的映射關(guān)系,加載到脈沖神經(jīng)網(wǎng)絡(luò)中。 在不同的編碼方式下,脈沖神經(jīng)網(wǎng)絡(luò)對10 000張MNIST測試集圖片的識別準(zhǔn)確率如表1所示。 表1 不同編碼方式下的MNIST識別準(zhǔn)確率Table 1 MNIST recognition accuracy rate underdifferent encoding modes % 從表1可以看出,在不同的脈沖編碼方式下,脈沖神經(jīng)網(wǎng)絡(luò)的識別準(zhǔn)確率能夠在97.00%以上,其中線性編碼方式準(zhǔn)確率最高,準(zhǔn)確率為98.56%,甚至高于反向傳播網(wǎng)絡(luò)。在精度損失方面,4種編碼格式下的準(zhǔn)確率損失都在1%以下。 4.2.2 CIFAR-10數(shù)據(jù)集實驗 為進一步驗證在不同數(shù)據(jù)集下算法的有效性,本文基于LeNet-5網(wǎng)絡(luò)模型,對10 000張CIFAR-10測試集進行了識別實驗。CIFAR-10數(shù)據(jù)集由動物照片和交通工具照片組成,圖像為彩色,并具有復(fù)雜的背景。在不同編碼格式下的識別結(jié)果如表2所示。 表2 不同編碼方式下的CIFAR-10識別準(zhǔn)確率Table 2 CIFAR-10 recognition accuracy rate underdifferent encoding modes % 從表2可以看出,CIFAR-10數(shù)據(jù)集識別準(zhǔn)確率最高能夠達到56.00%,精度損失為-9.65%。相比于MNIST數(shù)據(jù)集識別實驗,本文實驗在精度損失方面有所增大。這主要是由于在脈沖神經(jīng)網(wǎng)絡(luò)中,CIFAR-10數(shù)據(jù)集圖片的背景產(chǎn)生了大量的脈沖序列,而目前采用的脈沖編碼方式過于簡單,無法有效濾除這部分無用的脈沖序列。因此,在不同的脈沖編碼方式下,算法損失精度有較大差異。對于該問題,可以通過設(shè)計更為精細的脈沖編碼方式進行解決,從而進一步提升識別準(zhǔn)確率。但由于本文主要目的是證明算法的有效性,同時,更加精細的脈沖編碼方式仍需要大量研究工作,這也是未來工作的主要內(nèi)容之一,因此本文不做進一步展開。 綜上所述,通過MNIST數(shù)據(jù)集和CIFAR-10數(shù)據(jù)集的識別實驗,證明了本文算法的有效性,表明該算法能夠?qū)崿F(xiàn)反向傳播網(wǎng)絡(luò)到脈沖神經(jīng)網(wǎng)絡(luò)的遷移學(xué)習(xí),并且保證精度損失在可接受范圍內(nèi)。 為驗證脈沖神經(jīng)網(wǎng)絡(luò)的低功耗特性,本文實驗基于LIF模型的工作原理和相關(guān)參數(shù),對脈沖神經(jīng)網(wǎng)絡(luò)的功耗進行了估算。 由LIF模型的工作原理可知,神經(jīng)元發(fā)射一個脈沖信號所消耗的能量可以通過電容上電壓變化進行估算,如式(6)所示: (6) 表3 LIF神經(jīng)元模型參數(shù)Table 3 LIF neuron model parameters 根據(jù)上述計算關(guān)系,脈沖神經(jīng)網(wǎng)絡(luò)中神經(jīng)元發(fā)射一個脈沖信號的能耗為0.234 375 pJ,而網(wǎng)絡(luò)的功耗計算方式如式(7)所示: P=Rimage×Nspike×W (7) 其中,P為網(wǎng)絡(luò)的功耗,Rimage為網(wǎng)絡(luò)對圖片的識別速率,Nspike為平均每張圖片識別所需要發(fā)射的脈沖數(shù)量,W為發(fā)射一個脈沖所需要消耗的能量。 本文在訓(xùn)練反向傳播網(wǎng)絡(luò)時,采用的GPU型號為NVIDIA Quadro K2200,對MNIST數(shù)據(jù)集識別速率約為200 000張/s,功耗為60 μW。為方便功耗對比,脈沖神經(jīng)網(wǎng)絡(luò)中的識別速率也假定為200 000張/s。通過對10 000張MNIST數(shù)據(jù)集的識別實驗,在脈沖神經(jīng)網(wǎng)絡(luò)中,統(tǒng)計了識別每張圖片需要發(fā)射的脈沖數(shù)量的平均數(shù),并估算網(wǎng)絡(luò)功耗,結(jié)果如表4所示。 表4 脈沖神經(jīng)網(wǎng)絡(luò)MNIST識別功耗估算Table 4 Estimation of spiking neuron network MNISTrecognition power estimation 從表4數(shù)據(jù)可以看出,在200 000張/s的識別速率下,脈沖神經(jīng)網(wǎng)絡(luò)對MNIST數(shù)據(jù)集的識別功耗僅為微瓦級別,充分證明了本文設(shè)計的脈沖神經(jīng)網(wǎng)絡(luò)的低功耗特性。 本文設(shè)計一種自適應(yīng)權(quán)值映射關(guān)系的遷移學(xué)習(xí)算法。該算法通過融合反向傳播網(wǎng)絡(luò)和脈沖神經(jīng)網(wǎng)絡(luò)的優(yōu)勢,能夠有效解決多層脈沖神經(jīng)網(wǎng)絡(luò)訓(xùn)練收斂困難的問題。實驗結(jié)果表明,訓(xùn)練后的脈沖神經(jīng)網(wǎng)絡(luò)對10 000張MNIST測試集圖片的識別準(zhǔn)確率達到98.56%,對10 000張CIFAR-10測試集圖片的識別準(zhǔn)確率達到56.00%,且在以200 000張/s的速率對MNIST圖片進行識別的情況下,估算功耗在10 μW左右。本文設(shè)計的軟件框架能夠滿足遷移學(xué)習(xí)算法的仿真需求,GPU加速功能保證了網(wǎng)絡(luò)訓(xùn)練的效率。下一步將繼續(xù)優(yōu)化遷移學(xué)習(xí)算法,并將其應(yīng)用范圍向視頻、語音等方面進行拓展。2.4 脈沖神經(jīng)網(wǎng)絡(luò)推理算法
3 軟件框架
4 實驗結(jié)果與分析
4.1 脈沖序列轉(zhuǎn)換實驗
4.2 遷移學(xué)習(xí)算法有效性實驗
4.3 脈沖神經(jīng)網(wǎng)絡(luò)低功耗評估
5 結(jié)束語