基于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)} } \)   … 继续阅读