基于BP的有监督脉冲学习算法:SpikeProp

在前面的工作中[http://jacoxu.com/tempotron/]已经介绍过脉冲神经元的基本特性。脉冲神经网络难以进行有监督学习的原因是其脉冲的离散特性和脉冲神经元的不可连续和微分性。文献[1]采用误差反向传播[2]进行多层脉冲神经网络模型(Multilayer SNNs)的训练,该方法假定神经元内部状态值在神经元发放脉冲时是在一个极短时间内线性增加的过程,通过这种近似,避免了脉冲无可微分的问题。后续的各种变种工作,甚至包括二值神经网络[3,4]和量化网络模型[5]均是采用近似的方式解决有监督训练过程中不可微分的问题。 首先,文献[1]中给出神经元的内部状态变量\({x_j}(t)\): \[{x_j}(t) = \sum\limits_{i \in {\Gamma _j}} {{w_{ij}}\varepsilon (t - {t_i})} \] 其中,\(\varepsilon (t)\)为脉冲响应函数,\({w_{ij}}\)为突触连接权重。突触响应函数的定义如下: \[\varepsilon (t) = \frac{t}{\tau }{e^{1 - t/\tau }}\] 如果考虑两个神经元之间有多个不同延时\({d^k}\)的突触连接,如下图所示。 图(A)前馈的脉冲神经网络模型;(B)多延时突触末梢的连接示例。 那么,考虑了多延时突触末梢连接的神经元内部状态变量重新定义如下: \({x_j}(t) = \sum\limits_{i \in {\Gamma _j}} {\sum\limits_{k = 1}^m {w_{ij}^ky_i^k(t)} } \)   … 继续阅读

脉冲神经网络及有监督学习算法Tempotron

接下来一段时间开启脉冲神经网络模型的探索之旅。脉冲神经网络有更强的生物学基础,尽可能地模拟生物神经元之间的连接和通信方式。其潜在能力较强,值得踏进一步探索。 构建脉冲神经网络模型,至少需要考虑三点: 1. 外界刺激编码 2. 构建神经元模型 3. 制定学习规则 外界刺激的编码方式主要有Rate Coding和Temporal Coding等,这里不在细述。而Hodgkin和Huxley两位研究员早在1952年就提出了第一个神经元模型:HH[1]。随后陆续有各种神经元模型被提出,其中具有代表性的为Izhikevich模型[2]和LIF(Leaky-Integrate-and-Fire)模型[3]。 以LIF神经元模型为例,其数学表达形式如下: \[\tau \frac{{dV}}{{dt}} = - (V - {V_r}) + RI\] 其中,\(\tau = RC\)为膜时间常数,\(R\)为膜电阻,\(C\)为膜电导,\(V\)为膜电位,\(V_r\)为复位电位,\(I\)为注入电流。当膜电位超过一个固定的阈值时,神经元发放一个脉冲,并很快地降至复位电位并维持一小段时间,然后接受前段突触的输入脉冲重新升高膜电位。各种神经元模型均类似于此过程。 学习规则又分为无监督和有监督,其中无监督学习方法以STDP(Spike-Timing-Dependent Plasticity)[4,5]为代表,而有监督学习包括Tempotron[6],ReSuMe(Remote Supervised Method)[7]和SpikeProp[8]等。 以Tempotron为例,阈值下的后突触膜电位(PSPs, Postsynaptic Potentials)为所有输入脉冲的加权和: \[V(t) = \sum\limits_i {{\omega _i}\sum\limits_{{t_i}} {K(t – {t_i}) + … 继续阅读