目前常用的CNN、RNN等神經網路是第二代神經網路,而脈衝神經網路SNN屬於第三代神經網路模型,為了減小神經科學與機器學習之間的差距,SNN使用最擬合生物神經元機制的模型來計算。
脈衝神經網路的優點:
脈衝訓練增強處理時空資料的能力。空間指神經元僅與附近的神經元連線,這樣它們可以分別處理輸入塊(類似於 CNN 使用濾波器)。時間指脈衝訓練隨著時間而發生,這樣在二進位制編碼中丟失的資訊可以在脈衝的時間資訊中重新獲取。允許自然地處理時間資料,無需像RNN新增額外的複雜度。
SNN的架構:
SNN使用脈衝序列作為輸入,最重要的是神經元的膜電位。一旦神經元到達某一電位,脈衝就出現,隨後達到電位的神經元會被重置。SNN通常是稀疏連線,利用特殊的網路拓撲。
脈衝網路最佳化目標:
各種脈衝神經網路的監督演算法的目標基本一致:對輸入脈衝序列Si(t)和期望輸出脈衝序列Sd(t),透過監督訓練脈衝神經網路,調整權值W,實現神經網路實際輸出脈衝序列So(t)與Sd(t)之間的差距儘可能小。
脈衝網路訓練步驟:
1)確定編碼方式,將樣本資料編碼為脈衝序列;
2)將脈衝序列輸入脈衝神經網路計算得輸出脈衝序列;
3)將期望脈衝序列和實際輸出脈衝序列對比得到誤差,根據誤差調整W。
脈衝神經元模型:
1)HH模型
· 一組描述神經元細胞膜的電生理現象的非線性微分方程,直接反映了細胞膜上離子通道的開閉情況。精確地描繪出膜電壓的生物特性,能夠很好地與生物神經元的電生理實驗結果相吻合,但是運算量較高,難以實現大規模神經網路的實時模擬。
2)LIF模型
· 解決HH模型運算量問題,LIF模型將細胞膜的電特性看成電阻和電容的組合。
3)Izhikevich模型
· HH模型精確度高,但運算量大。LIF模型運算量小,但犧牲了精確度。 Izhikevich模型結合了兩者的優勢,生物精確性接近HH模型,運算複雜度接近LIF模型。
脈衝神經網路訓練方法:
第二代神經網路主要基於誤差反向傳播原理進行有監督的訓練,而對於脈衝神經網路,神經資訊以脈衝序列的方式儲存,神經元內部狀態變數及誤差函式不再滿足連續可微的性質,因此傳統的人工神經網路學習演算法不能直接應用於脈衝神經神經網路。目前,脈衝神經網路的學習演算法主要有以下幾類。
1)無監督學習演算法
① Hebbian Learning 赫布學習演算法
· 基於赫布法則 (Hebbian Rule),當兩個在位置上臨近的神經元,在放電時間上也臨近的話,他們之間很有可能形成突觸。而突觸前膜和突觸後膜的一對神經元的放電活動(spike train)會進一步影響二者間突觸的強度。
· 突觸可塑性:如果兩個神經元同時興奮,則它們之間的突觸增強,也就是上一層發放脈衝之後,下一層相連的神經元跟著發放脈衝,那麼該突觸權重增加,反之該突觸權重削弱。
② STDP(Spike Timing Dependent Plasticity)學習演算法 --主流演算法
· 脈衝序列相關可塑性,強調發放時序不對稱的重要性。突觸權值自適應調整。
2)監督學習演算法
① 基於突觸可塑性的監督演算法
a. 監督Hebbian學習演算法
· 透過訊號使突觸後神經元在目標時間內發放脈衝,訊號可以表示為脈衝發放時間,也可以轉換為神經元的突觸電流形式。
· 在每個學習週期,學習過程由3個脈衝決定,包括2個突觸前脈衝和1個突觸後脈衝。第一個突觸前脈衝表示輸入訊號,第二個突觸前脈衝表示突觸後神經元的目標脈衝。
b. 遠端監督學習演算法(ReSuMe)
· 懸鏈脈衝神經網路時,突出權值的調整僅依賴於輸入輸出的脈衝序列和STDP機制,與神經元模型無關,因此該演算法適用於各種神經元模型。
· 後來針對該演算法的改進,可應用到多層前饋脈衝神經網路。
② 基於梯度下降規則的監督學習演算法
a. SpikeProp演算法
· 適用於多層前饋脈衝神經網路的誤差反向傳播演算法
· 使用具有解析表示式的脈衝反應模型(SpikeResponse Model),併為了克服神經元內部狀態變數由於脈衝發放而導致的不連續性,限制網路中所有層神經元只能發放一個脈衝。
b. Multi-SpikeProp演算法
· 對SpikeProp演算法改進,應用鏈式規則推導了輸出層和隱含層突觸權值的梯度下降學習規則,並將其應用到實際的Fisher Iris和腦電圖的分類問題,Multi-SpikeProp演算法比SpikeProp演算法具有更高的分類準確率。
c. Tempotron演算法
· 訓練目標是使得實際輸出膜電位更符合期望輸出膜電位,認為神經元后突觸膜電位是所有與之相連的突觸前神經元脈衝輸入的加權和,並據此判斷該輸出神經元是否需要發放脈衝。
· 採用的神經元模型是LIF模型,成功實現了單脈衝的時空模式分類,但該神經元輸出僅有0和1兩種輸出,此外它無法拓展到多層網路結構。
③ 基於脈衝序列卷積的監督學習演算法
透過對脈衝序列基於核函式的卷積計算,可將脈衝序列解釋為特定的神經生理訊號,比如神經元的突觸後電位或脈衝發放的密度函式。透過脈衝序列的內積來定量地表示脈衝序列之間的相關性,評價實際脈衝序列與目標脈衝序列的誤差。
目前常用的CNN、RNN等神經網路是第二代神經網路,而脈衝神經網路SNN屬於第三代神經網路模型,為了減小神經科學與機器學習之間的差距,SNN使用最擬合生物神經元機制的模型來計算。
脈衝神經網路的優點:
脈衝訓練增強處理時空資料的能力。空間指神經元僅與附近的神經元連線,這樣它們可以分別處理輸入塊(類似於 CNN 使用濾波器)。時間指脈衝訓練隨著時間而發生,這樣在二進位制編碼中丟失的資訊可以在脈衝的時間資訊中重新獲取。允許自然地處理時間資料,無需像RNN新增額外的複雜度。
SNN的架構:
SNN使用脈衝序列作為輸入,最重要的是神經元的膜電位。一旦神經元到達某一電位,脈衝就出現,隨後達到電位的神經元會被重置。SNN通常是稀疏連線,利用特殊的網路拓撲。
脈衝網路最佳化目標:
各種脈衝神經網路的監督演算法的目標基本一致:對輸入脈衝序列Si(t)和期望輸出脈衝序列Sd(t),透過監督訓練脈衝神經網路,調整權值W,實現神經網路實際輸出脈衝序列So(t)與Sd(t)之間的差距儘可能小。
脈衝網路訓練步驟:
1)確定編碼方式,將樣本資料編碼為脈衝序列;
2)將脈衝序列輸入脈衝神經網路計算得輸出脈衝序列;
3)將期望脈衝序列和實際輸出脈衝序列對比得到誤差,根據誤差調整W。
脈衝神經元模型:
1)HH模型
· 一組描述神經元細胞膜的電生理現象的非線性微分方程,直接反映了細胞膜上離子通道的開閉情況。精確地描繪出膜電壓的生物特性,能夠很好地與生物神經元的電生理實驗結果相吻合,但是運算量較高,難以實現大規模神經網路的實時模擬。
2)LIF模型
· 解決HH模型運算量問題,LIF模型將細胞膜的電特性看成電阻和電容的組合。
3)Izhikevich模型
· HH模型精確度高,但運算量大。LIF模型運算量小,但犧牲了精確度。 Izhikevich模型結合了兩者的優勢,生物精確性接近HH模型,運算複雜度接近LIF模型。
脈衝神經網路訓練方法:
第二代神經網路主要基於誤差反向傳播原理進行有監督的訓練,而對於脈衝神經網路,神經資訊以脈衝序列的方式儲存,神經元內部狀態變數及誤差函式不再滿足連續可微的性質,因此傳統的人工神經網路學習演算法不能直接應用於脈衝神經神經網路。目前,脈衝神經網路的學習演算法主要有以下幾類。
1)無監督學習演算法
① Hebbian Learning 赫布學習演算法
· 基於赫布法則 (Hebbian Rule),當兩個在位置上臨近的神經元,在放電時間上也臨近的話,他們之間很有可能形成突觸。而突觸前膜和突觸後膜的一對神經元的放電活動(spike train)會進一步影響二者間突觸的強度。
· 突觸可塑性:如果兩個神經元同時興奮,則它們之間的突觸增強,也就是上一層發放脈衝之後,下一層相連的神經元跟著發放脈衝,那麼該突觸權重增加,反之該突觸權重削弱。
② STDP(Spike Timing Dependent Plasticity)學習演算法 --主流演算法
· 脈衝序列相關可塑性,強調發放時序不對稱的重要性。突觸權值自適應調整。
2)監督學習演算法
① 基於突觸可塑性的監督演算法
a. 監督Hebbian學習演算法
· 透過訊號使突觸後神經元在目標時間內發放脈衝,訊號可以表示為脈衝發放時間,也可以轉換為神經元的突觸電流形式。
· 在每個學習週期,學習過程由3個脈衝決定,包括2個突觸前脈衝和1個突觸後脈衝。第一個突觸前脈衝表示輸入訊號,第二個突觸前脈衝表示突觸後神經元的目標脈衝。
b. 遠端監督學習演算法(ReSuMe)
· 懸鏈脈衝神經網路時,突出權值的調整僅依賴於輸入輸出的脈衝序列和STDP機制,與神經元模型無關,因此該演算法適用於各種神經元模型。
· 後來針對該演算法的改進,可應用到多層前饋脈衝神經網路。
② 基於梯度下降規則的監督學習演算法
a. SpikeProp演算法
· 適用於多層前饋脈衝神經網路的誤差反向傳播演算法
· 使用具有解析表示式的脈衝反應模型(SpikeResponse Model),併為了克服神經元內部狀態變數由於脈衝發放而導致的不連續性,限制網路中所有層神經元只能發放一個脈衝。
b. Multi-SpikeProp演算法
· 對SpikeProp演算法改進,應用鏈式規則推導了輸出層和隱含層突觸權值的梯度下降學習規則,並將其應用到實際的Fisher Iris和腦電圖的分類問題,Multi-SpikeProp演算法比SpikeProp演算法具有更高的分類準確率。
c. Tempotron演算法
· 訓練目標是使得實際輸出膜電位更符合期望輸出膜電位,認為神經元后突觸膜電位是所有與之相連的突觸前神經元脈衝輸入的加權和,並據此判斷該輸出神經元是否需要發放脈衝。
· 採用的神經元模型是LIF模型,成功實現了單脈衝的時空模式分類,但該神經元輸出僅有0和1兩種輸出,此外它無法拓展到多層網路結構。
③ 基於脈衝序列卷積的監督學習演算法
透過對脈衝序列基於核函式的卷積計算,可將脈衝序列解釋為特定的神經生理訊號,比如神經元的突觸後電位或脈衝發放的密度函式。透過脈衝序列的內積來定量地表示脈衝序列之間的相關性,評價實際脈衝序列與目標脈衝序列的誤差。