張玉平,藺想紅
(西北師范大學(xué)計算機科學(xué)與工程學(xué)院,甘肅 蘭州 730070)
隨著人們對神經(jīng)網(wǎng)絡(luò)的深入研究,目前人工神經(jīng)網(wǎng)絡(luò)已經(jīng)發(fā)展到了第三代——脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Network)階段[1]。脈沖神經(jīng)網(wǎng)絡(luò)應(yīng)用精確定時的脈沖序列對神經(jīng)信息進行編碼和處理,這種包含時間計算元素的計算模型更具生物解釋性,是進行復(fù)雜時空信息處理的有效工具[2]。相比傳統(tǒng)的基于脈沖頻率編碼的人工神經(jīng)網(wǎng)絡(luò),基于脈沖精確定時特性的脈沖神經(jīng)網(wǎng)絡(luò)擁有更強大的存儲和計算能力,它能夠模擬各種神經(jīng)元信息和任意的連續(xù)函數(shù),非常適合于大腦神經(jīng)信息的處理問題[3]。
神經(jīng)網(wǎng)絡(luò)目前主要使用兩種編碼方法:頻率編碼和時間編碼[4]。在頻率編碼中假設(shè)信息是由在某段時間內(nèi)出現(xiàn)的脈沖數(shù)目表示,該方法主要應(yīng)用于傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)。另一種方法是時間編碼,它是應(yīng)用脈沖的精確時間進行的信息編碼,該編碼方式已被神經(jīng)科學(xué)的大量實驗成果證實。例如,實驗證據(jù)顯示大腦的巨大記憶容量主要依賴于神經(jīng)信息處理的精確脈沖時間編碼機制[5]。此外,一些模式識別問題,例如顏色識別、視覺形態(tài)識別、氣味識別和聲音辨別等,在基于頻率編碼的人工神經(jīng)網(wǎng)絡(luò)模型中不能得到很好的解決,但在基于時間編碼的脈沖神經(jīng)網(wǎng)絡(luò)中能夠得到理想的求解效果[6]。同時,脈沖時間編碼還能夠減少所需執(zhí)行給定任務(wù)的神經(jīng)元數(shù)量。因此,考慮脈沖神經(jīng)網(wǎng)絡(luò)基于脈沖精確定時編碼神經(jīng)信息的特征,構(gòu)建高效的脈沖神經(jīng)網(wǎng)絡(luò)監(jiān)督學(xué)習(xí)算法非常關(guān)鍵,同時也是該研究領(lǐng)域的重要問題,日益受到廣大研究者的關(guān)注。
然而,由于脈沖神經(jīng)網(wǎng)絡(luò)模型內(nèi)在的復(fù)雜性和脈沖序列的離散特性,使得脈沖神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)算法構(gòu)造和實際應(yīng)用非常困難。Bohte S M等人[7]首次提出了適用于多層前饋脈沖神經(jīng)網(wǎng)絡(luò)的誤差反向傳播算法,稱為SpikeProp算法,為了克服神經(jīng)元內(nèi)部狀態(tài)變量由于脈沖發(fā)放而導(dǎo)致的不連續(xù)性,限制網(wǎng)絡(luò)中所有層神經(jīng)元只能發(fā)放一個脈沖。其他研究者進一步擴展了SpikeProp算法,給出了對神經(jīng)元脈沖發(fā)放個數(shù)不作限制的多脈沖學(xué)習(xí)算法[8,9]。SpikeProp及其擴展算法是一類數(shù)學(xué)分析方法,在學(xué)習(xí)規(guī)則的推導(dǎo)過程中,要求所使用的神經(jīng)元模型中的狀態(tài)變量必須能夠解析,且解析能夠用表達式來表示。在最近的研究中,研究者給出了更具生物解釋性的脈沖神經(jīng)網(wǎng)絡(luò)監(jiān)督學(xué)習(xí)算法,能夠?qū)γ}沖序列復(fù)雜時空模式進行學(xué)習(xí),主要的算法有ReSuMe[10]、Chonotron[11]、PSD[12]算法等。Mohemmed A和Schliebs S[13,14]基于核函數(shù)卷積思想給出了SPAN(Spike Pattern Association Neuron)算法,其主要特點是應(yīng)用核函數(shù)將脈沖序列轉(zhuǎn)換為卷積信號,通過轉(zhuǎn)化后的輸入脈沖序列、神經(jīng)元目標(biāo)輸出和實際輸出脈沖序列,應(yīng)用Widrow-Hoff規(guī)則調(diào)整突觸權(quán)值。這些監(jiān)督學(xué)習(xí)算法雖然對網(wǎng)絡(luò)中所采用的神經(jīng)元模型沒有限制,但算法并不具備誤差反向傳播機制,僅適用于單層神經(jīng)網(wǎng)絡(luò)或遞歸網(wǎng)絡(luò)輸出層突觸權(quán)值的學(xué)習(xí)。
本文在SPAN算法的基礎(chǔ)上,提出了一種把核函數(shù)卷積應(yīng)用于多層脈沖神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)算法。該算法通過脈沖序列的卷積計算表示形式,將離散的脈沖序列轉(zhuǎn)換為連續(xù)函數(shù)的分析過程,并解釋為特定的神經(jīng)生理信號。在多層前饋網(wǎng)絡(luò)結(jié)構(gòu)中,應(yīng)用梯度下降思想推導(dǎo)得到隱含層和輸出層的突觸權(quán)值學(xué)習(xí)規(guī)則。該算法在多層脈沖神經(jīng)網(wǎng)絡(luò)中通過突觸權(quán)值的調(diào)整,能夠?qū)崿F(xiàn)脈沖序列時空模式的學(xué)習(xí),并應(yīng)用于非線性模式分類問題中,具有更高的分類準(zhǔn)確率。
脈沖神經(jīng)網(wǎng)絡(luò)監(jiān)督學(xué)習(xí)的目標(biāo)是對于輸入神經(jīng)元任意給定的脈沖序列模式,通過突觸權(quán)值的調(diào)整,神經(jīng)元最終輸出所要求的目標(biāo)脈沖序列模式。脈沖序列S={tf∈Γ:f=1,…,F}表示脈沖神經(jīng)元在區(qū)間Γ=[0,T]所發(fā)放脈沖時間的有序數(shù)列,而脈沖信號用來表示信息或載波,是一種離散信號。其形狀多種多樣,常見的有矩形波。脈沖序列可形式化地表示如下:
(1)
其中,tf表示第f個脈沖發(fā)放時間,δ(x)表示Dirac delta函數(shù),當(dāng)x = 0時,δ(x)=1,否則δ(x)=0。
由于脈沖序列是由神經(jīng)元發(fā)放脈沖時間所構(gòu)成的離散事件集合,為了方便分析和計算,選擇特定的核函數(shù)κ(t),應(yīng)用卷積將脈沖序列唯一地轉(zhuǎn)換為一個連續(xù)函數(shù):
(2)
其中s(t)為公式(1),通過對脈沖序列基于核函數(shù)的卷積計算,可將脈沖序列解釋為特定的神經(jīng)生理信號,比如神經(jīng)元的突觸后電位或脈沖發(fā)放的密度函數(shù)。該算法中,核函數(shù)為κ(t)=eτ-1te-t/τH(t),H(t)表示Heaviside函數(shù),當(dāng)x ≥ 0時,H(x)=1,否則H(x)=0;τ是一個實值常數(shù)。因此,本文中用卷積的形式表示的脈沖序列為:
(3)
為了分析神經(jīng)元輸入和輸出脈沖序列之間的關(guān)系,本文使用廣義的線性泊松神經(jīng)元模型(Linear Poisson Neuron Model)[15]。將神經(jīng)元的突觸后脈沖序列So(t)表示為突觸前脈沖序列的線性加權(quán)形式:
(4)
其中,o表示第o個輸出神經(jīng)元且o∈O;n表示突觸前神經(jīng)元的個數(shù),即輸入到神經(jīng)元脈沖序列的數(shù)量;Si(t)為公式(3)表示的突觸前脈沖序列;wi表示連接神經(jīng)元的突觸權(quán)值。
(5)
其中,o∈O表示輸出層的神經(jīng)元數(shù)量。
為了使網(wǎng)絡(luò)誤差最小化,使用梯度下降方法來調(diào)整權(quán)值:
其中,η表示學(xué)習(xí)率,Δw(t)表示誤差E(t)在時間t對于突觸權(quán)值w的梯度下降值。
對于輸出層突觸權(quán)值woh調(diào)整這部分,使用梯度下降及鏈?zhǔn)揭?guī)則進行推導(dǎo)。突觸權(quán)值woh隨時間更新的公式可表示為:
(6)
公式(6)右邊的第一部分可以做如下處理:
(7)
由神經(jīng)元突觸前后脈沖序列的關(guān)系公式(4),公式(6)右邊的第二部分可表示為:
這里nh表示隱含層神經(jīng)元的數(shù)目。
于是可以推導(dǎo)出輸出層神經(jīng)元突觸權(quán)值的調(diào)整公式為:
(8)
考慮公式(2)的脈沖序列核函數(shù)卷積計算,可將公式(8)重寫為如下的表示形式:
(9)
將公式(9)積分,可得到輸出層的突觸權(quán)值總的更新規(guī)則為:
對于隱含層突觸權(quán)值whi調(diào)整這部分,誤差導(dǎo)數(shù)的計算使用類似于輸出層的計算方法。
突觸權(quán)值whi隨時間更新的公式可表示為:
(10)
上面公式(10)右邊的第一部分可使用鏈?zhǔn)椒▌t擴展到每個輸出神經(jīng)元,其規(guī)則如下:
(11)
公式(11)中右邊的第二部分可由公式(4)計算得到:
(12)
將公式(7)和公式(12)代入公式(11),可得:
公式(10)右邊第二部分可推導(dǎo)得出:
這里ni表示輸入層神經(jīng)元的數(shù)目。
因此,綜合上述公式可得到隱含層突觸權(quán)值的調(diào)整公式為:
將上式積分,可得離線的突觸權(quán)值更新規(guī)則為:
為了闡述該算法的特征,這里將執(zhí)行一些仿真實驗。在本文中共設(shè)計兩個實驗,第一個實驗是學(xué)習(xí)多個輸入脈沖序列模式到單個目標(biāo)輸出脈沖序列的映射,這個實驗的目的是驗證該學(xué)習(xí)算法產(chǎn)生脈沖序列的功能。第二個實驗是將該算法應(yīng)用到非線性模式分類問題中,實現(xiàn)對Iris數(shù)據(jù)集的分類任務(wù),在這個實驗中將驗證該算法的模式識別能力。
Figure 1 Spike train model圖1 脈沖訓(xùn)練模型
從圖1中可以看到,在早期的迭代中實際輸出的脈沖與期望目標(biāo)脈沖存在著較大的誤差,在隨后的迭代中輸出的脈沖朝著期望脈沖收斂;注意到在迭代50次內(nèi)神經(jīng)元能夠非常精確地產(chǎn)生所期望的脈沖輸出序列;迭代50次后,在期望的時間內(nèi)接近目標(biāo)脈沖的輸入脈沖被加強,同時,在不期望的時間內(nèi)脈沖的輸出被抑制,在該實驗中,可以推斷該學(xué)習(xí)算法確實能夠訓(xùn)練多個隨機輸入脈沖序列模式映射到一個單目標(biāo)脈沖序列。
圖2表示的是單脈沖序列學(xué)習(xí)在[0 ms,100 ms]誤差的進化過程,其誤差值使用實際輸出序列與目標(biāo)序列之間的差值進行計算。該實驗迭代100次。從圖2中可以看出誤差值隨著迭代次數(shù)的增加而減小,誤差函數(shù)值在進化開始時,誤差值迅速收斂,出現(xiàn)了一個快速減小的過程,迭代到70次后誤差值趨于平穩(wěn),收斂到一個穩(wěn)定的值,從圖2中可以看出該算法具有較好的收斂性。
Figure 2 Evolution of error圖2 平均誤差進化
在這個實驗中,本文采用多層前饋型脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并將該算法應(yīng)用到非線性模式分類問題中,實現(xiàn)對Iris數(shù)據(jù)集的分類,目的是學(xué)會分類三類輸入脈沖序列模型。在實驗中,從Iris數(shù)據(jù)集的三類花中每類隨機抽取10個樣本組成訓(xùn)練集(共30個樣本),每類花中剩余的40個樣本組成測試集(共120個樣本),輸入特征值采用線性編碼方案。
對于每一類輸入脈沖序列模型,首先把每個樣本的四個特征值分別歸一化后線性編碼在[10 Hz,40 Hz]的頻率。接著把每個頻率轉(zhuǎn)化為[0 ms,100 ms]的脈沖序列。然后再把每個樣本的四個特征值分別編碼成四個線性輸入脈沖序列。在Iris數(shù)據(jù)集中把每一類的輸出值1、2和3分別編碼成10 Hz、20 Hz和30 Hz的目標(biāo)脈沖序列。經(jīng)過學(xué)習(xí)后,輸出神經(jīng)元為每個分類訓(xùn)練產(chǎn)生一個脈沖序列。本文設(shè)定該學(xué)習(xí)方法在[0 ms,100 ms]進行學(xué)習(xí),在學(xué)習(xí)過程中分別計算輸入脈沖序列與三個目標(biāo)脈沖序列的誤差值,根據(jù)誤差值來確定輸入脈沖所屬類別。該實驗訓(xùn)練100次,在每次訓(xùn)練中都選擇不同的隨機數(shù)初始化突觸權(quán)重。
圖3顯示了訓(xùn)練100次后,Iris數(shù)據(jù)集的訓(xùn)練集在學(xué)習(xí)過程中三類輸入脈沖序列模型各自與目標(biāo)脈沖序列的平均誤差率的進化。在剛開始時誤差迅速減小,然后出現(xiàn)了一個波動過程,隨后開始穩(wěn)定下來并且慢慢減小。在分類過程中,一些類的學(xué)習(xí)誤差減小較快,這是由于這些類的分類速度快于其他的類,例如類2。為了測試分類情況,本文分別對Iris數(shù)據(jù)集的訓(xùn)練集和測試集進行測試。在分類中神經(jīng)元能夠?qū)崿F(xiàn)訓(xùn)練集和測試集的分類,且訓(xùn)練集平均分類正確率達到94.6%,測試集平均分類正確率達到93.7%,很好地實現(xiàn)了對Iris數(shù)據(jù)集的分類效果。
Figure 3 Iris training set average error rate evolution圖3 Iris訓(xùn)練集平均誤差率變化曲線
另外,本文所提算法在Matlab 7.0環(huán)境下進行仿真計算,與BP算法對Iris分類結(jié)果比較如表1所示。
Table 1 Fisher Iris data classification comparisonunder different learning algorithms
從表1中可以看出,本文所提算法在對Iris這樣簡單的數(shù)據(jù)集進行分類時,測試集和訓(xùn)練集在分類正確率上優(yōu)于傳統(tǒng)的BP算法。
應(yīng)用核函數(shù)的卷積計算將脈沖序列轉(zhuǎn)換為連續(xù)的函數(shù),通常用來比較和解釋脈沖模型,或是在單層網(wǎng)絡(luò)結(jié)構(gòu)中進行學(xué)習(xí)。本文針對脈沖神經(jīng)元精確定時的編碼信息特點,提出基于卷積計算的多層脈沖神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)算法,該算法在核函數(shù)卷積計算的基礎(chǔ)上產(chǎn)生脈沖序列,并將其推廣到多層前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中。在網(wǎng)絡(luò)中權(quán)值的調(diào)整是在基本的Widrow-Hoff規(guī)則上進行推導(dǎo)的。需要注意的是,核函數(shù)是在權(quán)值調(diào)整之前進行計算的,而在網(wǎng)絡(luò)中輸出層和隱含層的權(quán)值是應(yīng)用梯度下降的方法進行調(diào)整的。因此,核函數(shù)的應(yīng)用并不依賴于某種神經(jīng)模型。在實驗部分,構(gòu)造多層前饋網(wǎng)絡(luò)結(jié)構(gòu),實驗的第一部分,其結(jié)果顯示應(yīng)用該算法能夠產(chǎn)生預(yù)期的脈沖序列,實驗的第二部分,應(yīng)用該算法對Iris數(shù)據(jù)集進行分類測試,并對測試結(jié)果進行了分析,實驗結(jié)果證實了該算法的有效性。
作為未來的研究工作,該學(xué)習(xí)算法可應(yīng)用到真實世界的時間計算任務(wù)中??衫^續(xù)學(xué)習(xí)使用該算法作為液態(tài)機制的讀出函數(shù)。并且,可構(gòu)造遞歸結(jié)構(gòu)的脈沖神經(jīng)網(wǎng)絡(luò),進一步研究將該算法應(yīng)用于該網(wǎng)絡(luò)結(jié)構(gòu)中的可行性,豐富遞歸脈沖神經(jīng)網(wǎng)絡(luò)的監(jiān)督學(xué)習(xí)算法。研究該算法在線學(xué)習(xí)的可行性及動態(tài)突觸和LIF神經(jīng)元參數(shù)關(guān)聯(lián)的效果。
[1] Gerstner W,Kistler W M.Spiking neuron models:Single neurons,populations, plasticity[M]. Cambridge:Cambridge University Press, 2002.
[2] Bohte S M. The evidence for neural information processing with precise spike-times:A survey[J]. Natural Computing, 2004, 3(2):195-206.
[3] Ghosh-Dastidar S, Adeli H. Spiking neural networks[J]. International Journal of Neural Systems, 2009, 19(4):295-308.
[4] Quiroga R Q,Panzeri S.Principles of neural coding[M]. Boca Raton, Florida:CRC Press,2013.
[5] Szatmry B , Izhikevich E M. Spike-timing theory of working memory[J]. PLoS Computational Biology, 2010, 6(8):1.
[6] Hu J, Tang H, Tan K C, et al. A spike-timing-based integrated model for pattern recognition[J]. Neural Computation, 2013, 25(2):450-472.
[7] Bohte S M, Kok J N, La Poutré J A. Error-backpropagation in temporally encoded networks of spiking neurons[J]. Neurocomputing, 2002, 48(1-4):17-37.
[8] Ghosh-Dastidar S, Adeli H. A new supervised learning algorithm for multiple spiking neural networks with application in epilepsy and seizure detection[J]. Neural Networks, 2009, 22(10):1419-1431.
[9] Xu Y,Zeng X,Han L,et al.A supervised multi-spike learning algorithm based on gradient descent for spiking neural networks[J]. Neural Networks, 2013, 43:99-113.
[10] Ponulak F, Kasinski A. Supervised learning in spiking neural networks with ReSuMe:Sequence learning, classification, and spike shifting[J]. Neural Computation, 2010, 22(2):467-510.
[11] Florian R V. The Chronotron:A neuron that learns to fire temporally precise spike patterns[J]. PLoS One, 2012, 7(8):e40233.
[12] Yu Q, Tang H, Tan K C, et al. Precise-spike-driven synaptic plasticity:Learning hetero-association of spatiotemporal spike patterns[J]. PLoS One, 2013, 8(11):e78318.
[13] Mohemmed A, Schliebs S. SPAN:Spike pattern association neuron for learning spatio-temporal spike patterns[J]. International Journal of Neural Systems, 2012, 22(4):1250012.
[14] Mohemmed A, Schliebs S, Matsuda S, et al. Training spiking neural networks to associate spatio-temporal input--output spike patterns[J]. Neurocomputing, 2013, 107:3-10.
[15] Gütig R, Aharonov R, Rotter S, et al. Learning input correlations through nonlinear temporally asymmetric hebbian plasticity[J]. The Journal of Neuroscience, 2003, 23(9):3697-3714.