天天看點

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

參考資料:

類腦運算--脈沖神經網絡(Spiking Neural Network)叙述:https://blog.csdn.net/Yannan_Strath/article/details/105761023

脈沖神經網絡的五髒六腑:https://blog.csdn.net/u011853479/article/details/61414913

目錄

一些基礎知識

名詞解釋

在SNN中, 資訊是如何用spike來表達的?

PSP是什麼?

脈沖神經元模型

1.IF neuron(integrated and fire)

2. Hodgkin–Huxley 模型

3.Leaky Integrate and Fire(LIF)模型

4.Izhikevich模型

5. SRM模型

突觸後神經元發出脈沖的過程?

什麼是refractory period?

SNN的學習方法

1.将傳統ANN轉換為SNN

困難

裁剪

轉化

2.反向傳播

3.突觸可塑性

ANN vs  SNN

1.資訊載體

2.神經元

3.函數和訓練方法

一些基礎知識

  1. 在人的傳感系統和大腦中, 資訊會以動作電壓或稱之為電脈沖(electric spike)的形式傳遞,接受,和處理。
  2.  人腦的記憶和學習依賴于突觸後細胞受到刺激後所産生的突觸可塑性。 詳見: Hebbian learning
  3. 我們在很多情況下的感覺和學習過程都是非監督式的
  4. SNN并不是一個像CNN,RNN這樣的網絡結構, 而是一個新型的,更加接近人腦的一種神經網絡算法的統稱。

名詞解釋

在SNN中, 資訊是如何用spike來表達的?

脈沖編碼。在SNN中, 引入了時序(temporal)相關的處理形式。 資訊是被編碼在脈沖序列的時間序列(spike train)中的。 例:高頻率的一組脈沖序列可以代表一個較高的值而低頻率的脈沖則代表低值。又例如: 在一個固定的時間窗中, 單個脈沖出現的位置也可以代表相應的值/資訊。

PSP是什麼?

神經元上的膜電壓變化

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

 圖1 單個spike産生的膜電壓變化

 膜電壓在接受到脈沖輸入前會一直保持在 − 70 -70−70mV 的地方, 這個值通常叫做靜止值(resting value)。 當接受到刺激後, 會産生電壓變化的幅值。 在變化結束後, 膜電壓會歸位回起始的靜止值。

脈沖神經元模型

脈沖神經元模型可以模拟PSP波形

1.IF neuron(integrated and fire)

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

當施加輸入電流時,膜電壓會随時間增加,直到達到恒定門檻值Vth,此時将出現增量函數尖峰,并且電壓會重置為其靜止電位,此後模型将繼續運作。

2. Hodgkin–Huxley 模型

HH模型是一組描述神經元細胞膜的電生理現象的非線性微分方程,直接反映了細胞膜上離子通道的開閉情況。

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

圖2 HH模型所對應的電路圖

其中 C 代表脂質雙層(lipid bilayer) 的電容;RNa, RK, Rl分别代表鈉離子通道、 鉀離子通道與漏電通道的電阻(RNa, RK 上的斜箭頭表明其為随時間變化的變量, 而 R l 則為一個常數); E l, E Na, E K 分别代表由于膜内外電離子濃度差别所導緻的漏電平衡電壓、鈉離子平衡電壓、鉀離子平衡電壓;膜電壓V代表神經膜内外的電壓差,可以通過HH模型的仿真來得到V随時間變化的曲線。

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

圖3 神經元的膜電壓變化

圖中共有6個輸入脈沖(垂直虛線所示),每個脈沖觸發膜電壓V的快速上升。

如果輸入脈沖之間的時間間隔較長(例如在1ms與22ms到達的2個脈沖之間,由于漏電通道的作用,沒有新的輸入脈沖),膜電壓V就會随着時間逐漸降低至平衡電壓El。

如果有多個輸入脈沖在短時間内連續到達(例如在45~50ms 之間的3 個脈沖),那麼膜電壓V會上升至發放門檻值Vth(紅色水準虛線所示) 而觸發一個輸出脈沖。之後V被重置為低于平衡電壓El的Vreset,然後逐漸回升至平衡電壓El。

神經元的行為與輸入的時間特性密切相關,一組脈沖如果在短時間内連續到達,可以觸發神經元的脈沖;但是同樣數量的一組脈沖如果在較長時間内分散到達,那麼膜電壓的漏電效應便不會産生脈沖。

HH模型精确度高,但運算量大

3.Leaky Integrate and Fire(LIF)模型

LIF模型将細胞膜的電特性看成電阻和電容的組合。運算量小,但犧牲了精确度。

4.Izhikevich模型

結合了HH模型和LIF模型的優點,生物精确性接近HH模型,運算複雜度接近LIF模型。

5. SRM模型

突觸後神經元發出脈沖的過程?

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

圖4 單個spiking neuron接受多個spike輸入。

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

圖5 膜電壓變化仿真

  1. 突觸後神經元會首先按照接受到的時間整合脈沖, 将他們變為膜電壓的變化的疊加。
  2. 當膜電壓超過預先設定好的門檻值(ϑ)時,突觸後neuron被認定為收到了足夠的刺激進而發出一個脈沖(spike)。
  3. 在發出脈沖後, 膜電壓會被重置并且突觸後神經元會在一段時間内無法處理接收到的脈沖, 這段時間稱為神經元的refractory period。
  4. 在refractory period之後, 膜電壓會恢複到靜止值進而可以準備下一次脈沖的産生。 這就是脈沖神經元一次完整的spike generation過程。

什麼是refractory period?

突觸後神經元發出脈沖後, 膜電壓會被重置并且突觸後神經元會在一段時間内無法處理接收到的脈沖, 這段時間稱為神經元的refractory period。

SNN的學習方法

1.将傳統ANN轉換為SNN

對原始的CNN進行訓練,将訓練好的權值直接遷移到相似網絡結構的SNN。要将訓練好的網絡在輸入,運算和輸出上全面轉換為以二進制spike為處理載體的網絡。 在輸入上,要将輸入信号編碼為脈沖序列。 所有神經元要用相應的spiking neuron來替換, 訓練所得得權重要進行量化。

困難

  1. CNN中的某一層神經元可能會輸出負值,這些負數用SNN表示會比較困難。比如,CNN中的sigmoid函數的輸出範圍為-1到1,每個卷積層的權重和可能也為負值,在進行顔色空間變換時某個顔色通道也可能取到負值。雖然,SNN可以采用抑制神經元來表示負值,但會成倍地增加所需要的神經元數目,提高計算的複雜度。
  2. 對于SNN,CNN中神經元的偏置很難表示。
  3. CNN中的Max-pooling層對應到SNN中,需要兩層的脈沖神經網絡。同樣提高了SNN的複雜度。

裁剪

  1. 保證CNN中的每個神經元的輸出值都是正數。在圖像預處理層之後,卷積層之前加入abs()絕對值函數,保證卷積層的輸入值都是非負的。将神經元的激活函數替換為ReLU函數。一方面可以加快原始CNN的收斂速度,另一方面ReLU函數和LIF神經元的性質比較接近,可以最小化網絡轉化之後的精度損失。
  2. 将CNN所有的偏置項都置為0。
  3. 采用空間線性降采樣層代替Max-pooling層。

轉化

  1. SNN的網絡結構與裁剪後的CNN相同,單純地将CNN中的人工神經元替換為脈沖神經元
  2. 在CNN的卷積層之前增加用于脈沖序列生成的一層網絡,對輸入的圖像資料進行編碼,轉化為脈沖序列。
  3. 變換決策方式。在某一段時間内,對全連接配接層輸出的脈沖數進行統計,取脈沖數最多的類别作為最終的分類結果
  4. 将裁減後的CNN訓練得到的權值全部遷移到對應的SNN。

最終的轉化結果如下圖所示。

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

圖6 ANN轉化為SNN的結果

2.反向傳播

脈沖神經元的spike function無法直接求導做差計算出梯度。 但研究人員想出了很多聰明得方法來預估網絡中的變化參數的梯度進而進行反向傳播: spikeprop, Slayer 

3.突觸可塑性

利用生物學的原理研究人員将spike time dependent plasticity (脈沖時間相關可塑性)引入了SNN的訓練。 然而這種訓練方法雖然novel, 但訓練過程非常繁瑣, 而且是一種純非監督式學習, 非常考驗設計者對神經科學和神經網絡得了解

ANN vs  SNN

1.資訊載體

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

圖7 ANN和SNN的資訊載體

ANN:高精度浮點數

SNN:spikes ,或可以了解為1和0

2.神經元

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

圖8 ANN和SNN的神經元

ANN:加乘運算器:整合輸入該神經元的值 ,而後接着一個非線性的激活方程

SNN:spiking neuron所進行的處理是接受由突觸傳遞而來的脈沖, 依據突觸權重通過spiking function産生突觸後膜電壓(post synaptic potential (PSP))

3.函數和訓練方法

2021-01-21:脈沖神經網絡學習日志一些基礎知識名詞解釋SNN的學習方法ANN vs  SNN

繼續閱讀