簡介
脈衝神經網路 (SNN-Spiking Neuron Networks) 經常被譽為第三代人工神經網路。第一代神經網路是感知器,它是一個簡單的神經元模型並且只能處理二進制數據。第二代神經網路包括比較廣泛,包括套用較多的BP神經網路。但是從本質來講,這些神經網路都是基於神經脈衝的頻率進行編碼( rate coded)。
脈衝神經網路,其模擬神經元更加接近實際,除此之外,把時間信息的影響也考慮其中。思路是這樣的,動態神經網路中的神經元不是在每一次疊代傳播中都被激活(而在典型的多層感知機網路中卻是),而是在它的膜電位達到某一個特定值才被激活。當一個神經元被激活,它會產生一個信號傳遞給其他神經元,提高或降低其膜電位。
在脈衝神經網路中,神經元的當前激活水平(被建模成某種微分方程)通常被認為是當前狀態,一個輸入脈衝會使當前這個值升高,持續一段時間,然後逐漸衰退。出現了很多編碼方式把這些輸出脈衝序列解釋為一個實際的數字,這些編碼方式會同時考慮到脈衝頻率和脈衝間隔時間。
藉助於神經科學的研究,人們可以精確的建立基於脈衝產生時間神經網路模型。這種新型的神經網路採用脈衝編碼(spike coding),通過獲得脈衝發生的精確時間,這種新型的神經網路可以進行獲得更多的信息和更強的計算能力。
歷史
Alan Lloyd Hodgkin和Andrew Huxley在1952年提出了第一個脈衝神經網路模型,這個模型描述了動作電位是怎樣產生並傳播的。但是,脈衝並不是在神經元之間直接傳播的,它需要在突觸間隙間交換一種叫“神經遞質”的化學物質。這種生物體的複雜性和可變性導致了許多不同的神經元模型。
從資訊理論的觀點來看,找到一種可以解釋脈衝,也就是動作電位的模型是個問題。所以,神經科學的一個基本問題就是確定神經元是否通過時間編碼來交流。時間編碼表明單一的神經元可以取代上百個S型隱藏層節點。
套用
脈衝神經網路大體上可以和傳統的人工神經網路一樣被用在信息處理中,而且脈衝神經網路可以對一個虛擬昆蟲尋找食物的問題建模,而不需要環境的先驗知識。並且,由於它更加接近現實的性能,使它可以用來學習生物神經系統的工作,電生理學的脈衝和脈衝神經網路在電腦上的模擬輸出相比,決定了拓撲學和生物神經學的假說的可能性。
在實踐中脈衝神經網路和已被證明的理論之間還存在一個主要的不同點。脈衝神經網路已被證明在神經科學系統中有作用,而在工程學中還無建樹,一些大規模的神經網路已經被審計來利用脈衝神經網路中發現的脈衝編碼,這些網路根據儲備池計算 的原則,但是現實中,大規模的脈衝神經網路計算由於所需計算資源多而產能小被限制了,造成了只有很少的大規模脈衝神經網路被用來解決複雜的計算問題,而這些之前都是由第二代神經網路解決的。第二代神經網路模型中難以加入時間,脈衝神經網路(特備當算法定義為離散時間時)相當容易觀察其動力學特徵。我們很難建立一個具有穩定行為的模型來實現一個特定功能。
分類
脈衝耦合神經網路(PCNN-Pulse Coupled Neural Network)與脈衝神經網路 (SNN-Spiking Neuron Networks) 容易混淆。脈衝耦合神經網路(PCNN)可以看做是脈衝神經網路(SNN)的一種,而脈衝神經網路(SNN)是更廣泛的分類。兩者其實無明顯差異,都是基於脈衝編碼(spike coding)。