接下來一段時間開啟脈沖神經網絡模型的探索之旅。脈沖神經網絡有更強的生物學基礎,盡可能地模擬生物神經元之間的連接和通信方式。其潛在能力較強,值得踏進一步探索。
構建脈沖神經網絡模型,至少需要考慮三點:
1. 外界刺激編碼
2. 構建神經元模型
3. 制定學習規則
外界刺激的編碼方式主要有Rate Coding和Temporal Coding等,這里不在細述。而Hodgkin和Huxley兩位研究員早在1952年就提出了第一個神經元模型:HH[1]。隨后陸續有各種神經元模型被提出,其中具有代表性的為Izhikevich模型[2]和LIF(Leaky-Integrate-and-Fire)模型[3]。
以LIF神經元模型為例,其數學表達形式如下:
其中,
為膜時間常數, 為膜電阻,
為膜電導,
為膜電位,
為復位電位,
為注入電流。當膜電位超過一個固定的閾值時,神經元發放一個脈沖,並很快地降至復位電位並維持一小段時間,然后接受前段突觸的輸入脈沖重新升高膜電位。各種神經元模型均類似於此過程。
學習規則又分為無監督和有監督,其中無監督學習方法以STDP(Spike-Timing-Dependent Plasticity)[4,5]為代表,而有監督學習包括Tempotron[6],ReSuMe(Remote Supervised Method)[7]和SpikeProp[8]等。
以Tempotron為例,閾值下的后突觸膜電位(PSPs, Postsynaptic Potentials)為所有輸入脈沖的加權和:
其中,表示第
個輸入神經元的脈沖發放時刻(注:輸入神經元在一個時間窗口內可能發放多個脈沖,也可能沒有脈沖發放)。
-
為輸入神經元的第
個發放脈沖對后突觸膜電位的貢獻,具體為:
其中, 和
為時間常數。為使得
-
的幅值為1,先設定
,然后求導得到最大膜電位時間代入
-
,求其倒數得到歸一化因子
為:
繪制
隨時間變化的曲線如下:
有監督學習的重點是如何更新突觸連接權重,獲得期望輸出脈沖。而Tempotron算法的核心如下:
以二分類問題為例,如上更新規則為:首先分別求取類別1和類別2的最大膜電位時刻
。假定樣本為類別1時,輸出神經元發放脈沖,而當樣本為類別2時輸出神經元不發放脈沖。那么只需要判斷最大膜電位
與閾值電位
的關系即可進行權重更新:
(1)如當樣本的真實類別為類別1,輸入脈沖神經網絡之后,輸出神經元在當前窗口時間范圍內的最大膜電位大於閾值電位,則發放一個脈沖且無需更新突觸連接權重。而當最大膜電位小於閾值電位時,需要根據如上公式更新連接權重,且以增強貢獻比較大的連接權重。
(2)反之,如當樣本的真實類別為類別2,輸入脈沖神經網絡之后,輸出神經元在當前窗口時間范圍內的最大膜電位小於閾值電位,則不發放脈沖且無需更新突觸連接權重。而當最大膜電位大於閾值電位時,需要根據如上公式更新連接權重,且以削弱貢獻比較大的連接權重。
Github上有兩個基於Python的Tempotron實現代碼
其中一個為Ajay Karpur提供的:https://github.com/ajaykarpur/tempotron-classifier,利用Tempotron進行MNIST分類,但是該代碼的Tempotron部分沒有寫完整,存在比較大的問題,不建議參考。
另外一個代碼是由目前在荷蘭阿姆斯特丹大學,邏輯、語言和計算研究所的美女博士Dieuwke Hupkes提供,代碼寫的非常優雅:https://github.com/dieuwkehupkes/Tempotron,細節解釋的也很清楚。
利用Tempotron學習規則進行簡單的二分類訓練,通過下圖可以看到輸出膜電位的變化。其中,raw為訓練前的膜電位曲線,trained為訓練后的膜電位曲線。可見,訓練后的Positive類別仍然發放脈沖,而訓練后的Negative類別樣本被抑制發放脈沖。
該學習算法較為簡單,其目前的主要缺點均為輸出單個脈沖所致,如:
(1)無法直接做為下一層神經元的輸入,因而不易擴展為深層脈沖神經網絡;
(2)輸出的單個脈沖不便於做序列預測。
因而,考慮學習一下其他的有監督學習算法,如ReSuMe[7]和SpikeProp[8]等。
[1] Hodgkin A L, Huxley A F. A quantitative description of membrane current and its application to conduction and excitation in nerve[J]. The Journal of physiology, 1952, 117(4): 500.
[2] Izhikevich E M. Simple model of spiking neurons[J]. IEEE Transactions on neural networks, 2003, 14(6): 1569-1572.
[3] Gerstner W, Kistler W M. Spiking neuron models: Single neurons, populations, plasticity[M]. Cambridge university press, 2002.
[4]. Markram H, Lübke J, Frotscher M, et al. Regulation of synaptic efficacy by coincidence of postsynaptic APs and EPSPs[J]. Science, 1997, 275(5297): 213-215.
[5]. Bi G, Poo M. Synaptic modifications in cultured hippocampal neurons: dependence on spike timing, synaptic strength, and postsynaptic cell type[J]. Journal of neuroscience, 1998, 18(24): 10464-10472.
[6]. Gütig R, Sompolinsky H. The tempotron: a neuron that learns spike timing–based decisions[J]. Nature neuroscience, 2006, 9(3): 420-428.
[7]. Ponulak F. ReSuMe-new supervised learning method for Spiking Neural Networks[J]. Institute of Control and Information Engineering, Poznan University of Technology.(Available online at: http://d1. cie. put. poznan. pl/~ fp/research. html), 2005.
[8]. Bohte S M, Kok J N, La Poutre H. Error-backpropagation in temporally encoded networks of spiking neurons[J]. Neurocomputing, 2002, 48(1): 17-37.
轉自:http://jacoxu.com/tempotron/