1. 程式人生 > >簡述脈衝神經網路SNN:下一代神經網路

簡述脈衝神經網路SNN:下一代神經網路

脈衝神經網路(SNN)屬於第三代神經網路模型,實現了更高階的生物神經模擬水平。除了神經元和突觸狀態之外,SNN 還將時間概念納入了其操作之中。本文將簡要介紹這種神祕的神經網路形式。

所有對目前機器學習有所瞭解的人都聽說過這樣一個事實:目前的人工神經網路是第二代神經網路。它們通常是全連線的,接收連續的值,輸出連續的值。儘管當代神經網路已經讓我們在很多領域中實現了突破,但它們在生物學上是不精確的,其實並不能模仿生物大腦神經元的運作機制。

68058640-14.jpeg

第三代神經網路,脈衝神經網路(Spiking Neural Network,SNN),旨在彌合神經科學和機器學習之間的差距,使用最擬合生物神經元機制的模型來進行計算。脈衝神經網路與目前流行的神經網路和機器學習方法有著根本上的不同。SNN 使用脈衝——這是一種發生在時間點上的離散事件——而非常見的連續值。每個峰值由代表生物過程的微分方程表示出來,其中最重要的是神經元的膜電位。本質上,一旦神經元達到了某一電位,脈衝就會出現,隨後達到電位的神經元會被重置。對此,最常見的模型是 Integrate-And-Fire(LIF)模型。此外,SNN 通常是稀疏連線的,並會利用特殊的網路拓撲。

90924640-4.png

LIF 模型中膜電位的微分方程

056880-2.gif

脈衝期間的膜電位形態

28617640-15.jpeg三神經元網路的脈衝訓練

47989640-16.jpeg

脈衝神經網路圖示

乍一看,脈衝神經網路的方法像是一種倒退。我們從連續輸出移動至二進位制輸出,這些脈衝訓練的可解釋性不強。但是,脈衝訓練增強了我們處理時空資料(或者說真實世界感官資料)的能力。空間指神經元僅與附近的神經元連線,這樣它們可以分別處理輸入塊(類似於 CNN 使用濾波器)。時間指脈衝訓練隨著時間而發生,這樣我們在二進位制編碼中丟失的資訊可以在脈衝的時間資訊中重新獲取。這允許我們自然地處理時間資料,無需 RNN 新增額外的複雜度。事實證明脈衝神經元是比傳統人工神經元更強大的計算單元。

既然理論上 SNN 比第二代網路更強大,那麼我們很自然會想到為什麼它們沒有得到廣泛應用。主要問題在於 SNN 的訓練。儘管我們有無監督生物學習方法,如赫布學習(Hebbian learning)和 STDP,但沒有適合 SNN 的有效監督訓練方法能夠 i 通過提供優於第二代網路的效能。由於脈衝訓練不可微,我們無法在不損失準確時間資訊的前提下使用梯度下降來訓練 SNN。因此,為了正確地使用 SNN 解決真實世界任務,我們需要開發一種高效的監督學習方法。這是一項艱鉅的任務,因為它涉及到,給定這些網路的生物現實主義,確定人類大腦如何學習。

另一個問題是在正常硬體上模擬 SNN 需要耗費大量算力,因為它需要模擬微分方程。但是,神經形態硬體,如 IBM TrueNorth,旨在使用利用神經元脈衝行為的離散和稀疏本質的專門硬體模擬神經元,進而解決該問題。

今天看來,SNN 的未來依然不甚清晰。一方面,它們是我們當前神經網路的天然繼承者;但是另一方面,對大多數任務來說它們還遠不是實踐工具。目前在實時影象和音訊處理中有一些 SNN 實際應用,但相關文獻仍然很少。絕大多數 SNN 論文或者是理論的,或者在一個簡單的全連線第二代網路之中展示效能。然而,很多團隊正致力於開發 SNN 監督式學習規則,並且我對 SNN 的未來充滿樂觀。

原文連結:https://towardsdatascience.com/spiking-neural-networks-the-next-generation-of-machine-learning-84e167f4eb2b