1. 程式人生 > 其它 >SNN_文獻閱讀_Spiking neural networks, an introduction

SNN_文獻閱讀_Spiking neural networks, an introduction

Spiking neural networks, an introduction

脈衝神經網路的生物學背景+兩種採用脈衝編碼的神經元模型

概論

本文介紹了脈衝神經網路的生物學背景,並將介紹兩種採用脈衝編碼的脈衝神經元模型。

人工神經元的歷史

  • 第一代:十五年之前McCulloch-Pitts提出,當神經元的加權的輸入訊號累積值高於閾值時,神經元輸出一個二進位制的高訊號。

  • 第二代:應用了一個連續的啟用函式,讓他們更適應對輸入和輸出的模擬,可以更好的逼近任意模擬函式,有一定的通用性。

  • 總結:第一代和第二代沒有應用單個脈衝,使用平均速率編碼。平均機制沒有脈衝,即沒有中間值,神經元的輸出值在迭代中計算。真實的神經元有一個基本的放電頻率,連續啟用函式可以模擬這些中間的輸出頻率,因此第二代神經元更加真實。

    • 突觸可塑性:調整突觸權重可以改變通過神經網路的資訊流,神經元輸入訊號的強度會發生變化,因此輸出訊號的強度很可能也會發生變化。
    • 反向傳播演算法:使用連續啟用函式允許我們應用梯度下降學習演算法,如反向傳播 ,這是一種非常常用且功能強大的監督學習演算法,用於訓練網路為某個輸入向量提供所需的輸出。
  • 第三代:不使用速率編碼,而是使用脈衝編碼,允許將多路資訊複用為聲音的頻率和幅度。生物學研究證明,人腦處理資訊的速度是很快的,因此無法實現平均速度編碼這樣的平均機制。在對速度要求很高的時候,脈衝編碼方案有優勢。

    速率編碼:每個元素在相同的時間間隔的脈衝數量不同,例如相同時間間隔內,紅色畫素可以轉換為16個刻度的八個脈衝,藍色畫素可以轉換為十二個脈衝。(泊松編碼,依據概率編碼)

    時間編碼:將輸入畫素值在特定的時間轉化為單個脈衝,例如紅色畫素值導致第八個刻度的單個脈衝,而藍色畫素值導致第十二個刻度的單個脈衝。

生物背景

  • 神經元使用脈衝進行通訊。神經遞質釋放的物質有興奮性訊號(EPSP)和抑制性訊號(IPSP)。當電位總和達到閾值,會釋放一個尖峰訊號,之後神經元進入不應期。
  • 突觸後神經元是大多數神經網路學習和發展模型的基礎。

脈衝編碼

本文只討論兩個模型:spike-response模型和integrate-and-fire模型。這兩者都是threshold-fire模型的例項。

先介紹spike-response型再介紹integrate-and-fire模型,因為前者更簡單。spike-response型接近於Hodgkin–Huxley模型,應用了神經元的一般特性,非常易於實現。

spike-response(脈衝響應)模型

神經元的脈衝序列可以描述為:

\(F_i={t^{(1)},……,t^{(n)}}\)

變數\(u_i\)​用來表示神經元\(i\)​的膜電位和內部狀態。如神經元的膜電位從下方超過閾值\(\Theta\)​​,則會產生脈衝。將事件新增到\(F_i\)​中:

\(F_i=\{t|u_i(t)= \Theta\and u'_i(t)>0\}\)​​​​​​

神經元產生動作電位之後,膜電位突然升高後是一個持續很長時間的負後電位。這種超過閾值的急劇上升使得神經元短時間內不可能產生另一個脈衝,稱為絕對不應期。相對不應期(SAP)就是變成負電位之後的一段電位,這個過程使得神經元再次產生新的脈衝的可能性降低。

\(\eta\)​​來對絕對不應期和負不應期來進行建模:

\(\eta(s)=-n_0e^{-\frac{s-\delta^{abs}}{t}}H(s-\delta^{abs})-KH(s)H(\delta^{abs}-s)\)​​

\(H(s)=\left\{ \begin{array}{lr} 1,s>0\\ 0,s\leq0 \end{array} \right.\)

絕對不應期時間由\(\delta^{abs}\)決定,\(K\)確保膜電位高於閾值,\(n_0\)表示負後電位的持續時間。

對於傳入突觸後電位影響的描述:

\(\epsilon_{ij}(s)=(e^{(-\frac{s-\Delta^{ij}}{\tau_m})}-e^{(-\frac{s-\Delta^{ij}}{\tau_s})})H(s-\Delta^{ij})\)

\(\Delta^{ij}\)​是傳輸時間延遲,\(0<\tau_s<\tau_m\)​定義了突觸後電位效應持續時間常數。\(\epsilon\)​定義了興奮性突觸後電位影響,值為負為抑制性電位。使用\(\omega_{ij}\)​​​來模擬突觸權重,使用負值對抑制性突觸進行建模。​突觸只能是興奮性的或者抑制性的。

第二代神經網路是運用了基於時鐘的迭代的方式,也可以處理模擬的訊號,但因為沒有反應的時間,所以不適合用於臨時任務,而脈衝神經網路有反應時間。但是第二代神經網路的值不能被直接輸入到脈衝神經元中,必須轉化為脈衝,或者採用另一種方法來改變膜電位。實現後者的方法是通過\(h^{ext}(t)\)函式來描述外部影響對於膜電位的改變,公式如下:

\(h(t)=h^{ext}(t)+\sum_{j\in\Tau_i}\sum_{(f)\in F_j}\omega_{ij}\epsilon_{ij}(t-t_j^{(f)})\)

對於非硬體系統,將模擬訊號轉化為可直接送到網路的脈衝訊號可能更方便。一個解決辦法是應用泊松過程來用感測器神經元形成脈衝,較高的輸入訊號對應較高的脈衝,對脈衝進行處理並形成影響神經元的膜電位。神經元的激發式:

\(u_i(t)=\sum_{t_i^{(f)}\in F_i}n_i(t-t_i^{(f)})+h(t)\)​​​​​

上述公式與\(F_i\)形成脈衝響應模型,是一個強大且易於實現的模型,用於處理脈衝時間網路。

短期記憶神經元

常用的脈衝神經網路模型簡化只考慮了最後一個脈衝的折射效應。將上述公式替換為:

\(u_i(t)=n_i(t-t_i^{'})+h(t)\)

這個模型有利於“忘記”早起不穩定時期的影響,這個模型也很現實,使分析更加容易。對於這種模式的記憶稱為“短期記憶神經元”。

IF神經元

最廣泛使用的閾火神經元和一般的脈衝神經元模型是集火神經元。這個模型基於電子學原理,最容易解釋。一個脈衝沿軸突向下傳遞,通過一個低通濾波器之後,將短脈衝轉換為電流脈衝\(I(t-t_j^{(f)})\),為積體電路點火電路充電,由此產生的電壓升高可以看做突觸後電位\(\epsilon (t-t_j^{(f)})\),一旦電容器上電壓超過閾值\(\theta\),神經元就會發出脈衝。

\(\tau _m\frac{\partial u}{\partial m}=-u(t)+RI(t)\)

上式描述了隨時間變化膜電位\(u\)​​的影響,\(\tau _m\)​​為表示電壓“洩漏”的膜時間常數。與脈衝反應的模型一樣,一旦超過某個閾值\(\theta\)​​,神經元就會產生短脈衝\(\delta\)​​。為了在點火後增加一個不應期,我們將\(u\)​​設定為\(K<0\)​​,持續時間為\(\delta _{abs}\)​​​。

\(I_i(t)=\sum_{j\in \tau _i}c_{ij}\sum_{t_j^{(f)}\in F_j}\delta(t-t_j^{(f)})\)

由於輸入脈衝長度有限,所以神經元\(i\)​的輸入電流\(I\)​​​通常為0。一旦一個脈衝訊號到達,就乘以突觸效應因子\(c_{ij}\)​​實現倍增,形成突觸後電位,給電容器充電。該模型計算簡單,易於硬體實現,且與一般的峰值相應模型密切相關,可以將其改寫為正確的核\(\eta\)​​和\(\epsilon\)​​​​​來使用。

硬體中的脈衝神經元

超大規模積體電路(VLSI)技術將許多強大的功能整合到小晶片中,這樣的系統可以使用二進位制(數字VLSI)或連續(模擬VLSI)電壓資料表示。數字系統發展快,需要大量能量的同步時鐘實現時序的同步。模擬系統消耗的時間和空間更小,並且易於與現實世界實現介面,但是設計困難,因為不能忽略噪聲的影響,足夠可靠的非易失性模擬儲存器還不存在。

噪聲是隨機效應的影響,在正常工作環境溫度下執行的一切事物都有噪聲,對於數字系統來說噪聲並不是什麼問題,但是模擬西戎沒有實際的方法消除噪聲的影響。然而大腦是模擬系統的一個完美的例子,在噪聲下也可以執行良好。

神經網路的效能甚至因為噪聲的存在而增加,脈衝神經元模型可以很容易的配備噪聲模型,比如噪聲閾值、重置或者整合。

混合系統可以提供一個可能完美的解決方案——使用可靠的數字通訊和記憶體,同時使用快速、可靠和廉價的模擬計算和介面。在這個方案中,神經元可以傳送短的數字脈衝,就像我們在集火模型中看到的一樣,這個模型可以很好的在超大規模積體電路中實現。超大規模積體電路是並行工作的,神經系統的本質也是大規模平行計算,通過使用連續硬體解決方案,可以大規模提升速度。同時數字模擬要重新計算每個時間片,雖然計算機模擬在適應性方面有優勢,但是將網路擴充套件到更多的神經元通常意味著離開實時模擬領域。超大規模積體電路可以被特別設計的能連線起來,形成一個可擴充套件的系統,由許多部分組成。

突觸可塑性

突觸是非常複雜的訊號前處理器,在神經結構的發育、記憶和學習中起著重要作用。突觸可塑性是預處理的一種變化形式,用突觸效能的長期或者短期變化更好的描述即將發生的事情。

Hebbian可塑性是突觸長時間增強(LTP)和長時間抑制(LTD)的一種基於突觸前後神經元之間放電活動相關性的區域性形式,通常可以採用速率編碼輕鬆實現。類似的神經元活動意味著強相關性,當我們使用脈衝編碼方案的時候,必須考慮單個脈衝定義神經活動中的相關性。純Hebbian可塑性作用於每一個單獨的突觸,作用力強大而且難以控制,是一個正反饋過程,無休止的增強有效突觸和削弱無效突觸來改變突觸後放電率,所以最好利用一種生物學的規則合理避免這種行為。

脈衝定時相關突觸可塑性(STDP)是一種競爭性Hebbian學習形式,使用精確的脈衝定時資訊。實驗表明如果突觸前動作電位在突觸後峰出現五十毫秒內到達,則長期強化;如果突觸前動作電位超過五十毫秒到達,則長期減弱。這種機制可以使LTP和LDP的穩定分佈,使突觸後神經元對傳入動作電位的時間敏感。這種敏感性導致突觸前神經元之間的競爭,從而導致更短的延遲、更短的脈衝同步時間和資訊通過網路傳播的速度更快。

Hebbian可塑性是無監督學習的一種形式,對於聚類輸入資料很有用,但對於網路預期結果已知的情況下不太適合。反向傳播演算法是一種廣為人知且經常使用的監督式學習演算法,但由於其複雜的時空動態和對連續操作的要求,它不能被直接用於脈衝神經網路,但如果把單個脈衝訊號和它的時間考慮在內,反向傳播演算法也存在一定適應性。

討論

脈衝神經網路可以將多路資訊轉化為單一訊號流。

本文介紹了非常通用和現實的脈衝神經網路模型以及在神經元中使用脈衝編碼的更常見的集火模型。這兩種模型都很強大逼真,易於在計算機模擬和硬體的超大規模積體電路中實現。標準的神經網路訓練演算法使用速率編碼,因此不能用於脈衝神經網路。因此脈衝神經網路依賴突觸可塑性使用精確的脈衝時間來優化網路資訊流,在無監督的Hebbian學習中加強神經元之間的競爭。

脈衝編碼在時間資訊需要處理的時候具有強大的計算能力,切合於真實世界的輸入輸出。