劉宙思,李尊朝,張劍,羅丹
(西安交通大學(xué)微電子學(xué)院,710049,西安)
脈沖神經(jīng)網(wǎng)絡(luò)(SNN)作為第3代神經(jīng)網(wǎng)絡(luò)模型[1],來源于對生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的模擬,是生物體神經(jīng)元之間信息傳遞過程的抽象表述,具備充分的生物可解釋性,且具有高性能和低功耗兩大優(yōu)勢[2],在類腦計算領(lǐng)域特別是機器視覺方向日益成為研究焦點[3]。與傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)相比,脈沖神經(jīng)元的引入簡化了連續(xù)時間編碼和非線性激活的傳遞方式,可以有效降低實時計算的復(fù)雜度,有利于實現(xiàn)數(shù)據(jù)流的并行架構(gòu)[4]。同時,SNN的迭代并不依賴于誤差反向傳播算法[5],使其對于平臺算力的要求大大降低,有利于分布式系統(tǒng)的算法部署,能夠解決邊緣計算等場景下的在線學(xué)習(xí)難題[6]。因此,SNN被普遍認(rèn)為是一種輕量化、高能效的硬件友好型圖像識別解決方案[7-8]。
近年來,脈沖時間依賴可塑性(STDP)算法憑借其深厚的生理學(xué)基礎(chǔ)和高效的調(diào)節(jié)性機制逐漸成為SNN模型的主流學(xué)習(xí)算法之一[8],并成功應(yīng)用于現(xiàn)場可編程邏輯門陣列[9]和專用集成電路[10]等硬件終端上。特別地,Kheradpisheh等通過排序編碼方式和簡化的STDP算法進行輸入特征提取,再借助支持向量機(SVM)完成輸出分類,最終在Caltech數(shù)據(jù)集[11]的Face/Moto子集上取得了99.1%的準(zhǔn)確率[12];Lee等在現(xiàn)有STDP算法基礎(chǔ)上利用泊松編碼和全連接的輸出結(jié)構(gòu)實現(xiàn)了SNN的自分類,對于Face/Moto數(shù)據(jù)集分類準(zhǔn)確率可達97.6%[13]。為了進一步提高STDP算法在SNN上的分類性能,Zheng等將反向傳播算法引申到STDP算法的脈沖序列模式的監(jiān)督學(xué)習(xí)中,結(jié)合隨機梯度下降法進行訓(xùn)練,并在MNIST數(shù)據(jù)集[14]上取得了97.8%的準(zhǔn)確率[15];Mozafari等在文獻[12]的基礎(chǔ)上,通過引入強化學(xué)習(xí)來對STDP算法的權(quán)重改變量結(jié)果進行二次修正,克服了原有網(wǎng)絡(luò)結(jié)構(gòu)對SVM等外界分類器的依賴性,在Face/Moto數(shù)據(jù)集上分類準(zhǔn)確率達到了98.9%[16]。
綜上可知,研究人員在各自細(xì)分領(lǐng)域中針對STDP算法與SNN模型的適配工作已經(jīng)做出了大量改進,但在面對實際應(yīng)用場景中廣泛存在的資源受限、算力瓶頸等約束問題時,仍然存在著優(yōu)化空間。一方面,軟件仿真若想取得更好的分類性能往往會占用更多的硬件資源,同時導(dǎo)致更高的計算功耗;另一方面,軟件算法是神經(jīng)形態(tài)計算的核心,而硬件設(shè)備是軟件賴以運行的載體,二者密不可分,片面追求軟件性能的背后多是對硬件算力的透支,尤其是隨著面向異構(gòu)計算軟件平臺的興起,軟硬件協(xié)同設(shè)計已經(jīng)逐漸成為技術(shù)角逐的制高點之一[17]。
據(jù)此,本文參考流水線同步[18]和事件驅(qū)動[19]方案,提出了一種新型的基于離散時間調(diào)度的脈沖神經(jīng)網(wǎng)絡(luò)(DTS-SNN)模型,使得脈沖序列能夠在固定時間段內(nèi)依次沿網(wǎng)絡(luò)亞層單向傳播,以同步精簡脈沖發(fā)放模式和傳遞形式。通過結(jié)合并改進經(jīng)典的STDP算法和強化學(xué)習(xí)機制,優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu)的適應(yīng)性和穩(wěn)定性,在保證網(wǎng)絡(luò)分類性能的同時大幅降低了資源占用和模型復(fù)雜度,有利于軟件算法向硬件平臺的底層移植,可為高效率低功耗的小型智能化硬件終端的邊緣計算方案實現(xiàn)提供參考。
DTS-SNN模型的主體架構(gòu)依托于多層前饋神經(jīng)網(wǎng)絡(luò),以非泄漏的累積發(fā)放神經(jīng)元模型[16]作為網(wǎng)絡(luò)節(jié)點,中間突觸信息采用脈沖形式傳遞,其基本結(jié)構(gòu)如圖1所示。DTS-SNN模型可分為圖像輸入層、濾波處理層、卷積層C1、池化層P1、卷積層C2和全局池化層P2(亦為輸出層)。每當(dāng)輸入層在t時刻發(fā)出脈沖,脈沖將沿網(wǎng)絡(luò)各層連續(xù)傳播,最后當(dāng)輸出層所有通道都產(chǎn)生脈沖時,代表網(wǎng)絡(luò)對單幅輸入圖像分類完畢。若網(wǎng)絡(luò)處理周期為T,則此時各層中脈沖序列依次為t,t+1,t+2,…,T。其中,輸入層Ⅰ完成對輸入圖像的編碼和處理,中間層Ⅱ提取輸入特征并實現(xiàn)高維映射,輸出層Ⅲ負(fù)責(zé)輸出網(wǎng)絡(luò)對輸入圖像的分類結(jié)果。
圖1 DTS-SNN模型的基本結(jié)構(gòu)
由于輸入圖像之間存在尺寸和格式上的差異,故首先需要對其進行預(yù)處理。在輸入層中統(tǒng)一將原圖像轉(zhuǎn)換為大小一致的像素尺寸為250×160的灰度圖像,并作去邊框、閾值化處理,以減小輸入層的神經(jīng)元規(guī)模,同時保留圖像的輸入特征。
原始輸入特征中通常還包含著不同程度的干擾,如多元場景、復(fù)雜光線、圖像噪點等。為盡可能地凸顯輸入圖像中的關(guān)鍵特征點,引入高斯差分歸一化層(即濾波處理層)對原圖像進行二維濾波處理。高斯核函數(shù)、差分算子和均值歸一化表達式分別為
(1)
ΔG=Gσ+(x,y)-Gσ-(x,y)
(2)
(3)
式中:x和y分別為橫、縱坐標(biāo)參數(shù);σ+=1;σ-=2;μ=4;ΔGmean和ΔGmax為ΔG的平均值和最大值。式中各參數(shù)取值來源于文獻[12]。
網(wǎng)絡(luò)模型的輸入脈沖采用時間編碼方式表示,單個神經(jīng)元僅能發(fā)放單個脈沖,再經(jīng)由權(quán)重連接作用于后神經(jīng)元。為了將輸入圖像轉(zhuǎn)化為輸入脈沖序列,需要對各像素點的灰度值進行編碼。首脈沖時間(TTFS)編碼[20]是一種常用的灰度圖像線性時間編碼方式,像素點的灰度值越高表示輸入特征越明顯,相應(yīng)會越早發(fā)出脈沖,灰度值越低則會越晚發(fā)出脈沖,即將灰度值0~255的像素點依次呈線性映射到T~0的時間尺度之內(nèi)。為了確保所有輸入層的初始脈沖都能有機會傳遞到輸出層,初始脈沖的發(fā)放時刻應(yīng)滿足
(4)
式中:p為輸入像素點灰度值;pmax和pmin分別為輸入像素點灰度值的最大值和最小值;T為單幅輸入圖像的處理周期;L為網(wǎng)絡(luò)模型層數(shù)。式(4)是向下取整離散化后的結(jié)果,符合脈沖序列的離散時間表達形式。每當(dāng)某一時刻t輸入層有脈沖發(fā)出,輸出層至少能在t+L-1時刻產(chǎn)生響應(yīng),保證了輸入特征在周期T內(nèi)的連續(xù)傳遞。
圖2為歸一化差分算子對輸入圖像樣例的處理過程。在排序編碼方式[12]中,初始脈沖的發(fā)放時刻為對應(yīng)像素點灰度值的倒數(shù),即0~255的灰度值范圍對應(yīng)256種脈沖發(fā)放時刻。TTFS編碼通過對灰度值進行T個周期的離散化線性編碼,使其對應(yīng)的脈沖編碼模式縮減至排序編碼的T/256,使得同組神經(jīng)元在對應(yīng)時刻同時產(chǎn)生脈沖,脈沖編碼模式得以大大簡化,有效提高了特征映射的并行化程度。
圖2 歸一化差分算子對輸入圖像樣例的處理過程
卷積層的主要目的是通過權(quán)重共享的方式減少網(wǎng)絡(luò)前后神經(jīng)元之間的連接參數(shù),其中C1層有利于解離,對應(yīng)于輸入的低維特征,C2層則傾向于重建融合后的高維特征[12]。通過對輸入脈沖的多維卷積,突觸后神經(jīng)元可以提取到對應(yīng)區(qū)域中突觸前神經(jīng)元陣列的組合特征。對于第j層的某一神經(jīng)元φ,其在t時刻的膜電位改變量由輸入神經(jīng)元脈沖和突觸連接參數(shù)共同決定,φ的膜電位離散表達式為
(5)
式中:θ為上一卷積層i中對應(yīng)于φ的卷積窗口Ω中的輸入神經(jīng)元;ωij為前后神經(jīng)元之間的突觸連接權(quán)重;Si為θ產(chǎn)生的輸入脈沖。所有神經(jīng)元的輸入脈沖形式均應(yīng)滿足累積發(fā)放條件[16],表達式為
(6)
當(dāng)神經(jīng)元的膜電位Vi未超過其閾值Vth時,神經(jīng)元保持靜息狀態(tài),對應(yīng)Si=0;當(dāng)膜電位超過閾值時,神經(jīng)元轉(zhuǎn)入興奮狀態(tài),對應(yīng)Si=1,且在下一時刻膜電位將復(fù)位清零。
池化層的主要目的是實現(xiàn)網(wǎng)絡(luò)的數(shù)據(jù)降維和特征壓縮,降低輸入信息的冗余度。傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)在配合卷積輸入的前提下,可通過最大值池化的方式引入平移不變性[12],使得高維空間內(nèi)的特征映射在一定程度上不受到低維空間中具體位置的影響,以達到尺度放縮的效果。在SNN中,最大值池化過程可進一步簡化為脈沖池化表達式
(7)
只要池化窗口Ω內(nèi)任一神經(jīng)元θ在上一時刻發(fā)過脈沖,對應(yīng)位置的后神經(jīng)元φ即產(chǎn)生脈沖,對應(yīng)Sj=1;當(dāng)且僅當(dāng)Ω內(nèi)所有前神經(jīng)元均未產(chǎn)生過脈沖時,后神經(jīng)元φ保持靜息狀態(tài),對應(yīng)Sj=0。
針對同一層內(nèi)不同通道的相同位置可能會同時產(chǎn)生多次脈沖的情況,在卷積和池化層均引入了側(cè)向抑制機制。只要某一位置上的神經(jīng)元率先產(chǎn)生了脈沖且膜電位最高,則位于相同位置處不同通道中的其他神經(jīng)元均會被抑制,即同一位置上只允許發(fā)放一次脈沖,直到輸入下一圖像為止。這種競爭性傳輸機制既體現(xiàn)了視覺感知的生物機理,又保證了脈沖傳遞的單向性和稀疏性,同時還降低了網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜程度。
輸出層即為全局池化層P2,池化窗口設(shè)為整個輸入卷積層C2的尺寸,統(tǒng)計每個通道最早產(chǎn)生脈沖的時刻,并作為輸出神經(jīng)元集群仲裁的特征向量。對于二分類任務(wù),輸出層神經(jīng)元按類別標(biāo)簽分為兩組,分別按產(chǎn)生脈沖的最早時刻進行投票,并統(tǒng)計輸出結(jié)果。如果某組內(nèi)神經(jīng)元最早產(chǎn)生脈沖,則代表輸入特征與該類最為相符,該神經(jīng)元輸出結(jié)果有效,對應(yīng)該組票數(shù)增加;如果較晚時刻產(chǎn)生或是沒有發(fā)出脈沖,則代表特征不符,該神經(jīng)元輸出結(jié)果無效,對應(yīng)該組票數(shù)不變。當(dāng)某組票數(shù)更多時,說明識別成功,輸出結(jié)果即為該組標(biāo)簽;當(dāng)兩組票數(shù)相等時,說明識別失敗。其中,通過在同組中設(shè)置多對一(N:1)的分類方式,可以降低輸出的隨機性,提高特征識別的魯棒性和網(wǎng)絡(luò)分類的準(zhǔn)確率,但同時也會增加額外的訓(xùn)練參數(shù),故本文中N取為5作為折中。
DTS-SNN模型的訓(xùn)練主要針對卷積層的突觸連接權(quán)重進行修改,每當(dāng)新的圖像輸入時,所有神經(jīng)元首先復(fù)位至初始狀態(tài),膜電位清零,直到學(xué)習(xí)層中某一神經(jīng)元的膜電位累積達到閾值后產(chǎn)生首個脈沖,繼而觸發(fā)學(xué)習(xí)機制,使得對應(yīng)位置的突觸權(quán)重在原值基礎(chǔ)上不斷迭代。依據(jù)神經(jīng)元的突觸可塑性原理[8],網(wǎng)絡(luò)學(xué)習(xí)以經(jīng)典的STDP算法為基礎(chǔ),結(jié)合強化學(xué)習(xí)的獎懲機制[16],對卷積層C1和C2逐層進行訓(xùn)練,直至迭代完畢。由于網(wǎng)絡(luò)采用了離散時間調(diào)度的脈沖驅(qū)動方式,因此STDP算法的連續(xù)時間窗口同樣可以被降采樣后的T個等距離散時刻所表示,在散列存儲的結(jié)構(gòu)下,其對應(yīng)的空間復(fù)雜度也將大大降低。這不僅能提高相關(guān)脈沖的利用率,還能簡化權(quán)重更新的計算過程,同時有利于實現(xiàn)硬件的并行加速。
C1層的學(xué)習(xí)過程依賴于輸入圖像的低維特征,與C2層相比,其卷積核尺寸小、通道少、脈沖響應(yīng)閾值低,采用經(jīng)典的STDP無監(jiān)督學(xué)習(xí)算法可避免復(fù)雜運算,并達到輸入特征分離的效果。突觸權(quán)重變化量Δωij的離散表達式為
(8)
式中:Δt=ti-tj為突觸前神經(jīng)元脈沖和突觸后神經(jīng)元脈沖產(chǎn)生時刻的差值;a+和τ+分別為長時程增強(LTP)作用因子和時間常數(shù);a-和τ-分別為長時程抑制(LTD)作用因子和時間常數(shù)。當(dāng)Δt<0時,前神經(jīng)元與后神經(jīng)元之間構(gòu)成因果聯(lián)系,突觸權(quán)重增量按照LTP過程呈指數(shù)增大,且脈沖時間相隔越短說明聯(lián)系越緊密,對應(yīng)突觸權(quán)重增加得越多;當(dāng)Δt≥0時,前后神經(jīng)元之間存在逆因果聯(lián)系,突觸權(quán)重增量按照LTD過程呈指數(shù)減小,且脈沖時間相隔越短對應(yīng)突觸權(quán)重減少得越多。
C2層需要滿足后續(xù)分類識別的要求,因此權(quán)重學(xué)習(xí)不僅依賴于上層輸入的高維特征,還取決于輸出層的類別標(biāo)簽[16]。本文提出采用與強化學(xué)習(xí)的獎懲機制相結(jié)合的強化STDP算法——RL-STDP,能夠避免引入額外的分類器,通過將特征提取和分類輸出過程融為一體來實現(xiàn)網(wǎng)絡(luò)自分類,節(jié)省大量運算資源。RL-STDP算法對應(yīng)的權(quán)重變化量的離散表達式為
(9)
式中各學(xué)習(xí)參數(shù)的定義與式(8)相一致,上標(biāo)r和p分別對應(yīng)強化學(xué)習(xí)中的獎勵和懲罰機制。當(dāng)輸出神經(jīng)元的分組標(biāo)簽與輸入樣本的真實標(biāo)簽一致時,觸發(fā)獎勵機制,對應(yīng)權(quán)重按照經(jīng)典STDP規(guī)則修改;當(dāng)分組標(biāo)簽與真實標(biāo)簽不一致時,觸發(fā)懲罰機制,對應(yīng)權(quán)重按照經(jīng)典STDP規(guī)則逆向修改,以修正導(dǎo)致預(yù)測錯誤的網(wǎng)絡(luò)自適應(yīng)偏差。STDP與RL-STDP算法的離散變化曲線如圖3所示。
(a)STDP(b)RL-STDP圖3 STDP與RL-STDP算法的離散變化曲線
在整個學(xué)習(xí)過程的時間窗口內(nèi)始終未產(chǎn)生有效脈沖的神經(jīng)元,在模型訓(xùn)練過程中均等同于無關(guān)項,與其連接的權(quán)重按照對應(yīng)LTD作用因子(Δt=0)減小,以便清除無效連接。
與脈沖傳輸過程相類似,學(xué)習(xí)層中的各通道也可能在同一時刻產(chǎn)生多個首脈沖,故同樣需要引入競爭性機制來解決多重觸發(fā)的矛盾。圖4是競爭性學(xué)習(xí)機制示意。競爭性學(xué)習(xí)機制按照作用域的不同可分為自抑制和互抑制兩種情況,其相同點是只要學(xué)習(xí)層中的某神經(jīng)元率先產(chǎn)生了脈沖且膜電位相對最高,就會抑制其他部分神經(jīng)元的學(xué)習(xí)進程,直到輸入下一圖像為止。不同點是自抑制表示某神經(jīng)元會對同一通道內(nèi)的所有其他神經(jīng)元產(chǎn)生抑制,即單個通道內(nèi)僅由單個首脈沖神經(jīng)元觸發(fā)權(quán)重更新,使得同一通道內(nèi)僅學(xué)習(xí)與其輸入最為相符的單個特征?;ヒ种苿t表示某神經(jīng)元還會對周圍一定范圍內(nèi)不同通道中的其他神經(jīng)元產(chǎn)生抑制,即不同通道中的特定區(qū)域內(nèi)仍然僅由單個首脈沖神經(jīng)元觸發(fā)權(quán)重更新,使得不同通道提取各自符合的不同特征。另外,通過設(shè)置合適的權(quán)重更新次數(shù),可以將單次學(xué)習(xí)過程中觸發(fā)神經(jīng)元的總數(shù)控制在一定規(guī)模內(nèi),因而對于單幅輸入圖像,網(wǎng)絡(luò)至多學(xué)習(xí)到其中最具代表性的有限個特征,以此保證學(xué)習(xí)特征的唯一性和特異性。
圖4 競爭性學(xué)習(xí)機制示意
(10)
LTP作用目標(biāo)對應(yīng)ωij的上限1,縮放因子為1-ωij;LTD作用目標(biāo)對應(yīng)ωij的下限0,縮放因子為ωij-0。結(jié)合式(8),可得累積后的權(quán)重∑ω表達式為
∑ω=(1+ΔωLTD)(1-ΔωLTP)ω+ΔωLTP
(11)
式中ΔωLTD和ΔωLTP分別為對應(yīng)LTD和LTP過程的權(quán)重變化量。結(jié)合0<ω<1,易證0<∑ω<1??紤]到訓(xùn)練后期分類正確的樣本數(shù)將遠(yuǎn)高于分類錯誤的樣本數(shù),從而反饋狀態(tài)中獎勵信號頻次會遠(yuǎn)多于懲罰信號頻次,導(dǎo)致模型將受限于臨界極值而難以跳出固有循環(huán),以致引發(fā)過擬合的問題,附加式(10)所示的非對稱約束條件。當(dāng)輸出反饋懲罰信號時,LTP與LTD過程隨即切換:對于保持LTP過程的獎勵響應(yīng)神經(jīng)元,權(quán)重穩(wěn)定于1附近,LTP迭代增量趨近于0,對應(yīng)切換LTD后的懲罰響應(yīng)增量最大;對于保持LTD過程的獎勵響應(yīng)神經(jīng)元,權(quán)重穩(wěn)定于0附近,LTD迭代增量趨近于0,對應(yīng)切換LTP后的懲罰響應(yīng)增量亦最大。這表明式(10)除施加邊界約束外,也能充當(dāng)自適應(yīng)學(xué)習(xí)率[16]的調(diào)節(jié)因子,從而避免模型陷入局部最優(yōu)解,以減緩過擬合。此外,為簡化計算,本文將權(quán)重下限設(shè)為10-6,上限對應(yīng)設(shè)為1-10-6,即在權(quán)重變化單位區(qū)間內(nèi)同時附加剛性約束條件,以便精度控制和參數(shù)存取。
本文將Caltech數(shù)據(jù)庫中的Face/Moto類別作為數(shù)據(jù)集進行仿真實驗,以驗證DTS-SNN模型的有效性。每種圖像類別共包含隨機選取且不重復(fù)的100張圖片,訓(xùn)練集和測試集的樣本比例各占50%。實驗使用CPU+GPU的多核異構(gòu)PC作為測試平臺,選用Anaconda3環(huán)境和Python3語言搭建仿真框架,并應(yīng)用Numba庫和CUDA核函數(shù)進行硬件加速。實驗所使用的DTS-SNN模型的網(wǎng)絡(luò)參數(shù)和學(xué)習(xí)參數(shù)分別如表1和表2所示,C1和C2層的訓(xùn)練輪次分別設(shè)為30和50,迭代次數(shù)總計為8 000。重復(fù)實驗10次,取最終穩(wěn)定后的測試集準(zhǔn)確率結(jié)果的平均值作為模型的性能評價指標(biāo),同時記錄訓(xùn)練集準(zhǔn)確率以作參考。
表1 DTS-SNN模型的網(wǎng)絡(luò)參數(shù)
注:窗口大小為寬度×長度×深度。
表2 DTS-SNN模型的學(xué)習(xí)參數(shù)
注:互抑制范圍為寬度×長度。
(a)C2層中兩個通道提取到的不同輸入特征映射
(b)C1層的權(quán)重變化曲線
(c)C2層的權(quán)重變化曲線
(d)樣本分類準(zhǔn)確率的變化曲線圖5 DTS-SNN模型的學(xué)習(xí)過程
DTS-SNN模型的學(xué)習(xí)過程如圖5所示,ωC1和ωC2分別為C1和C2層的權(quán)重??梢钥闯?隨著網(wǎng)絡(luò)模型的不斷迭代,C2層的高維特征經(jīng)可視化后表現(xiàn)得越發(fā)明顯,與輸入圖像類別的匹配度不斷增加;ωC1和ωC2的極值按照LTP和LTD過程分別收斂于1和0;模型的分類準(zhǔn)確率由40%開始迅速上升,在迭代第6次時已能達到90%,同時對應(yīng)于圖6c中的C2層權(quán)重恰好近乎收斂,且在迭代20次后分類性能趨于穩(wěn)定,訓(xùn)練集和測試集準(zhǔn)確率分別保持在98%和94%左右,兩組結(jié)果的準(zhǔn)確率較高且差別較小,說明了模型在收斂快速且穩(wěn)定的同時具有良好的泛化能力。
為了全面衡量DTS-SNN模型和學(xué)習(xí)算法的適配性,本文以現(xiàn)有SNN模型在Face/Moto數(shù)據(jù)集上的分類性能[13]作為對照,對不同方案在Face/Moto數(shù)據(jù)集的分類性能進行了比較,結(jié)果如表3所示。
表3 不同方案在Face/Moto數(shù)據(jù)集的分類性能比較
注:分類準(zhǔn)確率為平均值±標(biāo)準(zhǔn)差。
由表3可知:DTS-SNN模型的測試準(zhǔn)確率為93.4%±0.5%,相較于其他網(wǎng)絡(luò)模型的分類準(zhǔn)確率雖有一定程度上的降低,但權(quán)重訓(xùn)練參數(shù)總量僅為5×5×1×4+15×15×4×10=9 100,規(guī)模只相當(dāng)于SpiCNN[13]、RL-SNN[16]、SDNN[12]的35.7%、39.4%、35.7%;在學(xué)習(xí)算法方面,RL-STDP的性能表現(xiàn)優(yōu)于簡化R-STDP[16]算法的,并解除了對SVM分類器[12]的依賴性,減少了輸出分類的計算開銷,具備實現(xiàn)圖像分類的可行性和高效性。與其他方案相比,本文基于離散化時域的調(diào)度方式大大簡化了脈沖轉(zhuǎn)換和權(quán)重學(xué)習(xí)過程:一方面通過TTFS編碼將脈沖模式限定于T=30內(nèi),相比于排序編碼[12,16],壓縮率達到了30/256×100%=11.7%;另一方面通過將脈沖序列間隔離散化,相比于經(jīng)典的連續(xù)STDP算法[13],復(fù)雜度由O(n2)降為O(1),優(yōu)化了權(quán)重更新的計算過程。同時,本文通過在網(wǎng)絡(luò)迭代過程中引入競爭性機制,進一步保證了脈沖傳遞的稀疏性和學(xué)習(xí)特征的特異性,降低了網(wǎng)絡(luò)復(fù)雜度和訓(xùn)練計算量。此外,雙重約束條件的引入也使得模型能夠在有限資源下抑制過擬合的出現(xiàn),而無需借助于額外的動態(tài)學(xué)習(xí)率和隨機失活[16]等方案。綜上可見,本文提出的DTS-SNN模型能夠在保證良好分類性能的同時有效降低模型復(fù)雜度,大幅減少資源占用率,而且結(jié)構(gòu)相對獨立,泛化能力較強,與其他SNN模型相比更適合于高效率、低功耗的小型智能化硬件系統(tǒng)的邊緣計算方案實現(xiàn)。
在實際應(yīng)用場景中,待測樣本數(shù)往往多于訓(xùn)練樣本數(shù)[12]。有鑒于此,本文通過抽樣方式逐漸減少訓(xùn)練集樣本比例,以考察DTS-SNN模型的在線學(xué)習(xí)能力。不同訓(xùn)練樣本數(shù)下模型的實際分類性能如圖6所示。可以看出:當(dāng)訓(xùn)練樣本數(shù)降為原先的60%時,測試準(zhǔn)確率下降約8%;當(dāng)訓(xùn)練樣本數(shù)在此基礎(chǔ)上繼續(xù)減少20%時,測試準(zhǔn)確率又降低了約6%,但仍能穩(wěn)定于80%左右。隨著訓(xùn)練樣本比例減少至40%,DTS-SNN模型的分類性能確有所下降,但尚在可接受范圍之內(nèi)且能保持穩(wěn)定,表現(xiàn)出較高的魯棒性。
圖6 不同訓(xùn)練樣本數(shù)下模型的實際分類性能
為了解決現(xiàn)有SNN圖像分類模型中存在的資源占用高和運算較復(fù)雜等實際約束問題,本文以輕量化、高能效的機器視覺優(yōu)化解決方案為研究背景,提出了一種新型的基于強化STDP算法的DTS-SNN圖像自分類模型,并在Face/Moto數(shù)據(jù)集上取得了良好的分類效果。
實驗結(jié)果表明,與傳統(tǒng)的SNN分類模型相比,DTS-SNN模型具有以下優(yōu)勢:①脈沖序列的發(fā)放和傳遞均采用離散時間調(diào)度方案,配合TTFS編碼策略,使得脈沖模式和權(quán)重學(xué)習(xí)大為簡化;②將強化學(xué)習(xí)的獎懲機制與經(jīng)典STDP算法結(jié)合,實現(xiàn)了網(wǎng)絡(luò)自分類,不需要借助于額外的分類器;③競爭性機制和雙重約束條件的引入保證了脈沖傳遞的稀疏性和學(xué)習(xí)特征的特異性,有效抑制了過擬合的出現(xiàn);④網(wǎng)絡(luò)資源占用少,模型復(fù)雜程度低,且具有收斂速度快、泛化能力強、穩(wěn)定性良好、魯棒性較高等特點,有利于高效率低功耗的小型智能化硬件終端的邊緣計算方案實現(xiàn)。