脈衝神經網路SNN學習

2021-10-25 03:58:46 字數 3353 閱讀 2919

由於事件相機原理的非同步性,同樣時空性的脈衝神經網路可能更適合基於事件相機的一系列處理。

本人對神經網路了解的較少,此部落格僅作為自己學習記錄所用。

目前常用的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兩種輸出,此外它無法拓展到多層網路結構。

③ 基於脈衝序列卷積的監督學習演算法

通過對脈衝序列基於核函式的卷積計算,可將脈衝序列解釋為特定的神經生理訊號,比如神經元的突觸後電位或脈衝發放的密度函式。通過脈衝序列的內積來定量地表示脈衝序列之間的相關性,評價實際脈衝序列與目標脈衝序列的誤差。

在藺想紅等人的《脈衝神經網路原理及應用》中提到的:

事件驅動模擬策略:

普通的網路是時鐘驅動模擬策略是一種近似的模擬策略,神經元脈衝的發放與接受時間限定在給定的離散時間點上,這個會嚴重影響神經網路的動力學模型。在生物神經網路中,神經元之間的互動主要是通過突觸觸發的脈衝進行,可以將其看作時間的離散事件系統。因此,如果可以求得描述神經元狀態變數的解析表示式,事件驅動模擬策略比時鐘驅動模擬策略將更適合於這種離散事件系統的精確模擬,它真正實現了從脈衝到脈衝的計算模式。

脈衝神經網路在資訊處理過程中,往往只關心神經元由於脈衝輸入引起的神經脈衝(即發放脈衝),而不關心神經元內部狀態變數的變化過程。事件驅動模擬演算法正是利用了這一點,不是在每個時間步都計算整個網路的狀態變化,而是在必要的時候,即當有乙個脈衝輸入或者神經元將要發放脈衝時才需要計算神經元的狀態變數。這種模擬策略也稱為非同步演算法(asynchronous algorithm)。

脈衝神經網路SNN的簡介

神經網路經歷漫長的發展,目前總共有三代,它們分別是 第一代神經網路 mcculloch pitt感知機,它執行閾值運算並輸出數字 1,0 第二代神經網路 基於sigmoid單元或修正線性單元 relu 增加了連續非線性,使其能夠計算一組連續的輸出值。第二代神經網路也是目前使用的最廣泛的網路演算法,例...

脈衝神經網路

1 神經資訊的編碼與解碼方法 由於脈衝神經網路的輸入輸出是脈衝序列,不能直接進行模擬量的計算,首先要考慮的問題是神經資訊的編碼與解碼機制 編碼是指將樣本資料或刺激訊號轉換為脈衝序列,而解碼是編碼的逆向過程,是將脈衝序列對映為輸出結果或特定反應 目前,研究者借鑑生物神經元對特定刺激訊號的編碼機制,除了...

課程學習 脈衝耦合神經網路

title 原影象 subplot 2,3,2 data rgb2gray data imhist uint8 data title 1d直方圖 title 原影象 subplot 2,3,5 data1 rgb2gray data1 imhist uint8 data1 title 1d直方圖 d...