脉冲神经网络学习笔记
一、 基本框架
脉冲神经网络的监督算法目标是实现对脉冲序列中包含的时空模式的信息的学习,脉冲序列的定义:
S(t)对一个Dirac函数进行求和,f代表发放的第f个脉冲,Dirac函数的运算规则:仅当X= 0函数输出1,其他情况函数输出0。
各种脉冲神经网络的监督算法的目标基本一致:对输入脉冲序列Si(t)和期望输出脉冲序列Sd(t),通过监督训练脉冲神经网络,调整权值W,实现神经网络实际输出脉冲序列So(t)与Sd(t)之间的差距尽可能小。
因此一般过程为:
(一) 确定编码方式,将样本数据编码为脉冲序列(得到Si(t));
(二) 将脉冲序列输入脉冲神经网络计算得输出脉冲序列So(t);
(三) 将期望脉冲序列和实际输出脉冲序列对比得到误差,并根据误差调整W。
从上面过程可总结脉冲神经网络的实现中有几个难点:
(一) 如何确定编码方式,即如何将样本信息合理地转化为脉冲序列进行训练;
(二) 如何设计脉冲神经元模型,如何模拟脉冲神经网络;
(三) 如何度量实际输出脉冲序列和期望输出脉冲序列误差,即误差函数的合理的定义。
当前对上述难点的解决方案:
(一) 延迟编码、相位编码、Time-to-First.Spike编码、BsA(Bens Spike AlgoIithm)编码等时间编码策略。
(二) LIF,IF,IM,HH模型等;
(三) 误差定义(举例):
二、 监督学习算法
2.1 SpikeProp算法
适用于多层前馈脉冲神经网络的误差反向传播算法,称为SpikeProp算法,该算法使用了具有解析表达式的脉冲反应模型(SpikeResponse Model,SRM),并为了克服神经元内部状态变量由于脉冲发放而导致的不连续性,限制网络中所有层神经元只能发放一个脉冲。该神经网络的误差函数定义为:
其中,to和td分别表示输出层神经元m的实际脉冲发放时间和目标脉冲发放时间。
监督规则上,对于多突触模型,从突触前神经元i到突触后神经元j的第k个突触权值的梯度计算如下:
其中,y表示无权的突触后电位,根据突触所在层的不同表现为不同的梯度下降学习规则。该算法具有非线性模式分类问题的求解能力。
2.2 Multi—SpikeProp算法
对SpikeProp算法改进,应用链式规则推导了输出层和隐含层突触权值的梯度下降学习规则,并将其应用到标准XOR问题,以及更加实际的Fisher Iris和脑电图的分类问题,实验结果表明Multi—SpikeProp算法比SpikeProp算法具有更高的分类准确率。
2.3Tempotron算法
Tempotron算法采用监督学习,训练目标是使得实际输出膜电位更符合期望输出膜电位。他认为神经元后突触膜电位(PSPs,Postsynaptic Potentials)是所有与之相连的突触前神经元脉冲输入的加权和:
即用核函数K(t)计算所有突触前神经元的脉冲输出贡献加权(w)求和,并加上复位电压得到当前t时间的膜电位,并据此判断该输出神经元是否需要发放脉冲。
因此该算法训练时,根据输出神经元输出的脉冲序列同期望输出脉冲序列的差别,不断调整w权重,权重调整的大小通过核函数计算:
Tempotron采用的神经元模型是Integrate-and-fire模型,成功实现了单脉冲的时空模式分类,但该神经元输出仅有0和1两种输出,此外它无法拓展到多层网络结构。
三、 突触可塑性学习算法
突出可塑性认为:如果两个神经元同时兴奋,则它们之间的突触得以增强,也就是说,在一个时间窗口内,当突触后神经元的脉冲出现在突触前神经元脉冲之后(也就是上一层发放脉冲之后,下一层相连的神经元跟着发放脉冲),那么就会因此长时程的增强(该突触权重增加),反之则引起长时程抑制(权重削弱)。STDP强调了发放时序不对称的重要性。,而且它是一种无监督的学习算法,能够使得突触权值自适应调整。
Ø 监督Hebbian学习算法
Ø 远程监督学习算法(ReSuMe)
四、 基于脉冲序列卷积的监督学习算法
由于脉冲序列是由神经元发放脉冲时间所构成的离散事件的集合,而离散的数据会导致函数不连续、无法求导数的数学问题,因此引入核函数应用卷积将脉冲序列唯一的转换为一个连续函数:
由上式可得卷积转化后的脉冲序列,可解释为神经元的突触后点位。
卷积的解释:假设当前时间为t,F(a)代表了在a时间是否有脉冲输入,G(t-a)表示了a时间的脉冲对t时间的贡献(影响),因此a时间是否有脉冲对t时间的影响是:
F(a)*G(t-a)
然后对该式积分可得卷积形式的结果,也就是说对每个t,新得到的S(t)的函数结果是对t之前所有发生过脉冲的时间的函数F(A)*G(t-a)的积分,实际意义就在于对之前发生的每次脉冲对当前时间下的影响进行累加,从而计算出当前时间下脉冲大小,于是卷积后,
S(t)就变成了连续的函数。
另外任意两个脉冲序列的内积:
算法:
Ø SPAN算法
Ø PSD算法