脈衝神經網路——下一代機器學習?
摘要: 脈衝神經網路是什麼?本位對脈衝神經網路做了簡要敘述。
每個對機器學習近期發展有所了解的人,都聽過現在用於機器學習的第二代人工神經網路。這些神經網路通常完全連接,獲取連續值,並輸出連續值。這使我們在很多領域取得了突破性的進展,但是由於存在生物準確性,它並沒有模仿大腦神經元的實際機制。
第三代神經網路——脈衝神經網路(SNN),旨在填補神經科學和機器學習間的鴻溝,使用神經元的生物逼真模型計算。脈衝神經網路和機器學習社區中的神經網路有根本性的區別。脈衝神經網路使用脈衝,是基於發生在某些時間點的離散值活動,而不是連續值。一個脈衝的發生是由代表各種生物處理過程的微分方程所決定,其中最重要的是神經元的膜電位。從本質上來說,一旦神經元達到某一電位,就會產生脈衝,那麼神經元的電位就會被重置。最常見的模型是LIF模型,另外,脈衝神經網路通常是稀疏連接,並使用專門的網路拓撲結構。
LIF模型中產生膜電位的微分方程
在一個脈衝中膜電位的形態圖
3個神經元的網路脈衝訓練圖
完整的脈衝神經網路
乍一看好像是倒退了一步,我們已經將連續輸出轉化為二進位數字,並且這些脈衝訓練並不能做出很好的解釋。然而脈衝訓練提高了處理時空數據(即現實世界的感官數據)的能力。空間是指神經元只與本地神經元連接,所以這些神經元自然地將輸入塊分開處理(類似於CNN如何使用過濾器)。時間是指脈衝訓練在時間上的推移,獲得了脈衝的時間信息,這是在二進位編碼中失去的。這使我們能夠自然處理時間數據,而不需要額外的增加循環神經網路的複雜性。實際上,事實證明,脈衝神經元比傳統人工神經元具有更強的計算能力。
理論上,脈衝神經網路比第二代網路更強大,為什麼它們沒有得到廣泛使用?目前脈衝神經網路的主要問題是訓練。雖然我們已經擁有無監督生物學習方法,如Hebbian學習和STDR,但是暫時還沒有有效的監督訓練方法,使脈衝神經網路具有比第二代網路更高的性能。由於脈衝訓練是不可微分的,因此不能使用梯度下降來訓練脈衝神經網路,而不丟失脈衝訓練中特別精確的時間信息。因此,為了將脈衝神經網路正確地用於實際任務,我們需要開發一種有效的監督學習方法。這是一個非常艱巨的任務,因為這涉及到需要確定大腦是如何真正學習的,給這些網路賦予生物現實意義。
另一個我們亟待解決的問題是,在標準的硬體上模擬脈衝神經網路是計算密集型的,因為這需要模擬微分方程。然而,像IBM的TrueNorth等仿神經硬體解決了這個問題,它旨在是通過使用特定硬體模擬神經元,該硬體可以利用神經元脈衝行為的離散和稀疏特性優勢來模擬神經元。
脈衝神經網路的未來尚不明確,一方面,它是循環神經網路的天然繼任者;另一方面,對於大多數任務來說,這還不是較為實用的工具。脈衝神經網路在實時圖像和音頻處理領域得到一些實際應用,但文獻仍然較少。脈衝神經網路的大部分論文還停留在理論研究階段,或者在一種簡單且完全連接的第二代網路下展示其性能。但是,現在有很多團隊正在從事脈衝神經網路監督學習規則的工作,因此我對其未來發展保持較為樂觀的態度。
以上為譯文。
本文由阿里云云棲社區組織翻譯。
文章原標題《Spiking Neural Networks, the Next Generation of Machine Learning》,譯者:Mags,審校:袁虎。
TAG:雲棲社區 |