脈衝神經網路和非脈衝神經網路各有什麼優缺點?
目前應用較多的神經網路基本上都是非脈衝神經網路,而動物的神經網路大多是脈衝神經網路。這兩類神經網路各有什麼特點和相對優勢?
用隨機脈衝而非模擬數值可以被看做 dropout 在神經系統中的實現形式。
Hinton 最近給了一個(生物系統中)脈衝神經網路相對於非脈衝網路(即想像一個人腦數量級的線蟲*)可能的優點。以下出自他關於神經系統如何實現 backprop 的演講 (基於 STDP)。
這個論點基於統計,即大腦中的參數量非常大(10^14),相比之下可用的訓練數據量則很少。訓練一個遠大於數據的模型要避免過擬合。其中一個方法是 dropout:在每次訓練時隨機忽略一些單元。這樣就可以實現參數的正則化(regularization)。
Sending random spikes from a Poisson process is very similar to dropout.
It is better than sending accurate real values because it allows the brain to use a very big model trained on a relatively modest amount of data.
當然,在人工系統中這就沒有意義了,你可以直接 dropout。
* 線蟲的神經系統是非脈衝的,不同神經元間可以被看作是在傳播模擬數值。
來源 https://www.youtube.com/watch?v=VIRCybGgHts
-
一些題外話。脈衝的生物學好處就有很多了,其中重要的一點是長距離傳播。線蟲之所以可以全部用模擬數值,一個原因是它很小。長距離傳播又要保持可靠性,就必須在沿途不斷重新放大信號(好像電路中的中繼)。這樣的話脈衝就是唯一的選擇了。首先,脈衝神經網路與傳統的人工神經網路的神經元模型不同。
在非脈衝神經網路中,神經元的計算模型大致是這樣,layer之間傳遞的是一個個值。
而在脈衝神經網路中,神經元傳遞的是一個個脈衝,每個神經元有一個membrane voltage,一個神經元接受輸入脈衝,導致membrane voltage變化(inhibitory neurons和excitatory neurons分別起反向和正向作用),當神經元的membrane voltage達到一個閾值時,便發送一個脈衝,這個脈衝再向後傳遞。
由於脈衝神經網路傳遞的是一個個脈衝,它們組成了一個脈衝序列,單個脈衝之間的時間間隔不一定,脈衝序列中蘊含了temporal information,這是傳統的人工神經網路所不能表達的。
除此之外,脈衝神經網路中的每個神經元只有接收到一個脈衝時,才需要進行計算,功耗更低,計算更快;而傳統人工神經網路需要一層層的計算,計算量要大很多。
但是脈衝神經網路暫時並沒有找到一個完美的訓練演算法,尤其是需要訓練深層網路的時候。而傳統人工神經網路藉助統計與優化等數學工具得到充分發展,訓練得到的效果目前比脈衝神經網路要更好。
因此目前也有一些工作在做將傳統人工神經網路比如CNN,DBN轉化為SNN(spiking neural network),這樣相當於是將傳統人工神經網路中一個神經元的值,當做是對脈衝的頻率編碼。
總的來說,脈衝神經網路有更強的生物學基礎,潛在的能力更強大,但尚待開發;而傳統人工神經網路充分利用統計學與優化等數學工具,現在取得的效果更好。
生物神經網路內的脈衝強弱是用來編碼信息強度的,私以為可以看作神經元無法控制單次脈衝強度的一種妥協。到了人工神經網路里它實際上被轉化成了神經元間傳遞的浮點數,所以沒必要使用多次脈衝。
對於神經科學不是很了解,望斧正。推薦閱讀:
※認知心理學實驗的可重複性有多差,研究者是如何應對的?
※為什麼身體上的接觸可以增加親密感?
※2016 年,神經科學領域出現了哪些極具發展潛力的研究方向?
※為什麼腦科學家不先從低等動物入手研究原理和模擬大腦,探求意識的來源,而是直接研究和模擬最高級的人腦呢?
※本科是計算機專業,碩士是認知神經科學方向,未來出國讀博容易申請人工智慧、深度學習或類腦計算的方向嗎?