2. 南京农业大学 信息科技学院, 南京 210095
2. College of Information Science and Technology, Nanjing Agricultural University, Nanjing 210095, China
脉冲神经网络(Spiking Neural Network, SNN)被称为第三代神经网络, 是一种基于连续时间的多层全连接前馈网络, 其输入和输出均为脉冲时间序列, 通过自身的学习机制来调整网络参数, 从而在网络的输入和输出之间建立一种特定的映射关系。在神经元内部, 通过计算输入脉冲改变神经元内部状态值, 即膜电位, 当内部状态达到或超过设定的阙值时, 神经元会激发一个脉冲。脉冲神经元模型主要有脉冲反应模型(Spike Response Model, SRM)、漏积分(Leaky Integrate and Fire, LIF)模型和HH(Hodgkin-Huxley)模型。其中, SRM模型具有显式的膜电位表达式。本文基于有监督学习, 提出一种带延迟学习的梯度下降算法。以SRM为研究对象, 通过改进的梯度下降算法调整权值和延迟, 以提高脉冲神经元的学习精度。
1 相关工作有监督学习算法被广泛应用于梯度下降学习方法。该算法通过梯度下降法最小化误差函数, 使网络能够正确的输出, 但需要计算误差函数的偏导数, 要求网络的激活函数连续且必须可微。然而脉冲神经元的输出并不是其内部状态的值, 而是神经元在运行过程中所激发的各个脉冲时刻, 因此脉冲神经元不能根据输出对其内部状态进行求导。文献[2]提出一种基于梯度下降的脉冲神经网络有监督学习方法SpikeProp, 在输出脉冲激发时刻的一个小范围中, 通过假设神经元的内部状态是时间线性函数, 以解决对神经元内部状态的求导问题。在此基础上, 国内外学者提出带动量的反向传播SpikeProp的变形算法, 如QuickProp、Rprop、Levenberg-Marquardt BP等[3-5], 但只能处理单脉冲的情况, 即输入层、隐层和输出层神经元仅激发一个脉冲。文献[6]提出一种基于多脉冲的反向传播学习算法, 但只有隐层神经元可以激发多脉冲。文献[7]提出一种可以处理各层输出均为多脉冲情况的梯度下降有监督学习方法MSGDB, 该方法假设实际输出与期望输出有相同个数的脉冲, 并据此构造误差函数, 在神经元运行完成后得到所有的实际输出脉冲序列后调整权值, 属于离线学习方式。在线学习方法[8-9]在神经元激发出脉冲时, 根据当前激发和对应的期望激发构造实时误差函数, 并调整权值最小化误差函数。该方法比离线方法的学习性能强。文献[10]提出一种基于梯度下降的有监督学习算法, 该算法采用一种改进的VP度量[11]来衡量实际输出脉冲序列和目标脉冲序列之间的距离。
文献[12]提出一种基于脉冲时间依赖可塑性(Spike-Timing-Dependent-Plasticity, STDP)规则[12], 该规则是一种根据实际激发的脉冲以及输入脉冲自发调整突触作用大小的学习方法。基于此规则, 研究者提出一种称为ReSuMe (Remote Supervised Method)[13]的脉冲神经元学习算法, 其权值更新分为两部分:在期望输出时间点上权值的增强和在实际输出时间点上的权值减弱。ReSuMe方法具有较高的学习精度且窗口函数独立于神经元的内部状态表达式, 因此其可以适用于多种神经元模型, 具有较好的适用性[14]。I-learning方法[10]依据STDP规则调整权值, 但该方法以在线方式运行, 更符合生物神经元的行为特性。文献[15]提出一种基于感知机规则的脉冲神经元学习算法, 通过将有监督学习转换为两分类问题, 进而利用感知机规则来解决分类问题。SPAN (Spike Pattern Association Neuron)学习方法[16]基于Windrow-Hoff规则。该方法采用卷积方式将离散的脉冲序列时刻转换为所对应的实数值并将其代入Widrow-Hoff规则得到权值调整公式。另一种类似的方法PSD (Precise-Spike-Driven)[17]也是采用卷积方式来转换脉冲序列, 该方法基于LIF神经元模型并且只对输入脉冲进行卷积。文献[18]提出一种基于STK (Spike Train Kernels)的在线学习算法, 该算法利用卷积核与一个非线性函数相结合完成对输入脉冲序列的转换。文献[19]提出基于随机的脉冲序列学习方法, 该方法将期望与实际输出脉冲之间的误差通过滤镜函数处理后, 调整权值以减少滤镜作用后的误差。文献[20]指出, 基于梯度下降的方法具有较高的学习精度, 但由于多脉冲学习之间的互相干扰, 权值调整速率需要控制在一个较小的范围内, 这导致算法需要较多的学习周期, 收敛速度较慢。
以上学习算法均只对神经元的突触权值进行调整, 并没有涉及到突触延迟的调整。而生物学证据表明:在突触前神经元与突触后神经元之间的突触在传递信号时存在时间延迟, 这些时间延迟对于神经元的激发和转换行为的影响较大[21]。文献[22]对SpikeProp算法进行改进, 增加了延迟的梯度下降调整, 然而该算法仅适用于单脉冲的情况。文献[23]提出一种基于ReSuMe的带延迟学习的启发式神经元学习算法DL-ReSuMe, 其中采用的神经元模型为LIF。神经元初始延迟被设为0, 在延迟调整过程中, 有两类突触需要被加上延迟, 分别是激励突触(权值为正)和抑制突触(权值为负)。实验结果表明, 该算法相比ReSuMe算法提高了10%的学习精度且收敛速度较快。
2 SRM神经元梯度下降学习算法 2.1 SRM神经元模型本文神经元模型为脉冲反应模型, 神经元接收由多个突触传输的一串离散脉冲序列, 这些脉冲在到达神经元后会使神经元的内部状态值发生变化。神经元的内部状态值由2个部分组成:第1部分由输入脉冲产生的突触后电位(Postsynaptic Potential, PSP)与权值wi共同决定的, 第2部分是不应期函数η(t)。其计算公式如下:
$ u\left( t \right) = \sum\limits_{i = 1}^N {\sum\limits_{\begin{array}{*{20}{c}} {t_i^{\left( g \right)} \in {G_i}}\\ {t_i^{\left( g \right)} + {d_i} > {t^{\left( {fr} \right)}} + {R_a}} \end{array}} {{w_i}\varepsilon \left( {t - t_i^{\left( g \right)} - {d_i}} \right) + \eta \left( {t - {t^{\left( {fr} \right)}}} \right)} } $ | (1) |
其中, N表示神经元的输入突触个数, ti(g)表示第i个突触的第g个脉冲到达神经元的时间, di表示第i个突触的延迟, t(fr)表示神经元当前运行时刻t之前的最近一次激发时刻, Ra表示绝对不应期长度, 使突触输入在最近一次脉冲激发时刻t(fr)~t(fr)+Ra时间内对神经元内部状态影响无效。反应函数有多种形式, 本文选用一种较常用的反应函数, 其表达式为:
$ {\varepsilon _1}\left( t \right) = \left\{ \begin{array}{l} \frac{t}{\tau }\exp \left( {1 - \frac{t}{\tau }} \right),t > 0\\ 0,t \le 0 \end{array} \right. $ | (2) |
其中, τ是决定反应函数形态的时间延迟常数。
当神经元不断接收输入脉冲时, 其内部状态值会逐渐增加直到超过特定阙值ϑ, 神经元会激发出一个脉冲, 且内部状态值立即降为0。绝对不应期长度Ra使神经元在[t(fr), t(fr)+Ra]时间段内不会连续激发, 这个时间段被称为绝对不应期。随后神经元会进入一个相对不容易再次激发脉冲的时期, 这个时间段称为相对不应期。相对不应期对内部状态值的影响由η(t)函数描述。
$ \eta \left( t \right) = \left\{ \begin{array}{l} - 2\vartheta {{\rm{e}}^{ - \frac{t}{{{\tau _R}}}}},t > 0\\ 0,t \le 0 \end{array} \right. $ | (3) |
其中, τR是决定不应期函数性态的延迟常数。可以看出, η(t)是一个恒负的函数, 其作用是当神经元有激发时, 会产生一个较大的负值, 以降低神经元的内部状态值, 使其难以连续激发, 离上次激发时间越远, 抑制作用会越小。
2.2 多脉冲神经元梯度下降学习算法多脉冲序列学习算法通过梯度下降方法最小化根据实际输出和期望输出所构造的误差函数。由于脉冲神经元的输出是一个脉冲序列, 因此当神经元有多个脉冲输出时, 神经元的实际脉冲输出个数可能和期望输出的不相等。为解决该矛盾, 通常采用动态选取脉冲的方法。MSGDB有2种运行方式:在线和离线学习方式。在离线学习方式中, 权值调整发生于神经元已激发出所有的脉冲后。假设神经元的期望输出由
$ E = \left\{ \begin{array}{l} \frac{1}{2}\sum\limits_{f = 1}^{\hat F} {{{\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)}^2}} ,F \ge \hat F\\ \frac{1}{2}\sum\limits_{f = 1}^F {{{\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)}^2}} ,F < \hat F \end{array} \right. $ | (4) |
在线学习方式中, 每当神经元激发出一个脉冲就基于此输出立刻调整权值。假设当前神经元在时刻t(f)激发出第f个脉冲, 而相应的第f个期望输出为
$ E = \frac{1}{2}{\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)^2} $ | (5) |
根据以上构造的误差函数, 基于梯度下降的调权规则为:
$ \Delta w = - \alpha \nabla E = - \alpha \frac{{\partial E}}{{\partial w}} $ | (6) |
其中, 导数∂E/∂w的求解需要利用求导的链式法则, 并假设神经元的内部状态在当前输出时刻附近为线性函数。
3 带延迟学习的梯度下降算法时间延迟是生物神经系统的固有特性之一, 在神经元的脉冲激发以及神经元之间的信息传递中具有重要的作用。脉冲神经元的时间延迟在神经元的运行过程中会随着内部状态的变化而变化, 促进神经元的同步、异步。脉冲神经元的各个输入突触在时间ti传递过来的脉冲经过延迟di后到达神经元的时间变为ti+di, 再与各突触的权值共同决定神经元的内部状态值。带延迟学习的梯度下降算法依据脉冲神经元的此生物特征, 在每一次学习中调整权值和延迟, 且调整幅度通过梯度下降计算。
以离线学习方式为例, 延迟学习中神经元的第i个突触延迟di的调整规则为:
$ \begin{array}{l} \Delta {d_i} = - {\alpha _d}\frac{{\partial E}}{{\partial {d_i}}} = - \frac{{{\alpha _d}}}{2}\sum\limits_{f = 1}^F {\frac{{\partial \left( {{{\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)}^2}} \right)}}{{\partial {d_i}}}} = \\ \;\;\;\;\;\;\;\; - \frac{{{\alpha _d}}}{2}\sum\limits_{f = 1}^F {\frac{{\partial \left( {{{\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)}^2}} \right)}}{{\partial {t^{\left( f \right)}}}}\frac{{\partial {t^{\left( f \right)}}}}{{\partial {d_i}}}} = \\ \;\;\;\;\;\;\;\; - {\alpha _d}\sum\limits_{f = 1}^F {\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)\frac{{\partial {t^{\left( f \right)}}}}{{\partial {d_i}}}} \end{array} $ | (7) |
其中, αd为延迟的调整速率。可以看出, 与权值梯度下降的结果类似, 第i个突触延迟di的调整幅度主要由实际输出脉冲和期望输出脉冲之差与∂t(f)/∂di决定, 该偏导数采用权值梯度下降的递归方法计算。
$ \begin{array}{l} \frac{{\partial {t^{\left( f \right)}}}}{{\partial {d_i}}} = \frac{{\partial {t^{\left( f \right)}}}}{{\partial u\left( {{t^{\left( f \right)}}} \right)}}\left( {\frac{{\partial u\left( {{t^{\left( f \right)}}} \right)}}{{\partial {d_i}}} + \frac{{\partial u\left( {{t^{\left( f \right)}}} \right)}}{{\partial {t^{\left( {f - 1} \right)}}}}\frac{{\partial {t^{\left( {f - 1} \right)}}}}{{\partial {d_i}}}} \right)\\ \frac{{\partial {t^{\left( {f - 1} \right)}}}}{{\partial {d_i}}} = \frac{{\partial {t^{\left( {f - 1} \right)}}}}{{\partial u\left( {{t^{\left( {f - 1} \right)}}} \right)}}\left( {\frac{{\partial u\left( {{t^{\left( {f - 1} \right)}}} \right)}}{{\partial {d_i}}} + \frac{{\partial u\left( {{t^{\left( {f - 1} \right)}}} \right)}}{{\partial {t^{\left( {f - 21} \right)}}}}\frac{{\partial {t^{\left( {f - 2} \right)}}}}{{\partial {d_i}}}} \right)\\ \;\;\; \vdots \\ \frac{{\partial {t^{\left( 1 \right)}}}}{{\partial {d_i}}} = \frac{{\partial {t^{\left( 1 \right)}}}}{{\partial u\left( {{t^{\left( 1 \right)}}} \right)}}\frac{{\partial u\left( {{t^{\left( 1 \right)}}} \right)}}{{\partial {d_i}}} \end{array} $ | (8) |
该递归过程与延迟相关的仅是其中的偏导数∂u(t(f))/∂di的计算, 其余各部分的计算均可以直接利用权值调整过程的中间结果。神经元内部状态值u(t(f))中含有反应函数, 而反应函数ε(t)并不是连续可微函数, 求导时需分段考虑。
$ \frac{{\partial \varepsilon \left( t \right)}}{{\partial t}} \to \left\{ \begin{array}{l} 存在,t > 0\\ 不存在,t = 0\\ 0,t < 0 \end{array} \right. $ | (9) |
当t=0时, 反应函数对t的导数不存在, 在梯度下降的计算过程中只考虑神经元突触前输入脉冲, 即满足条件t(f)≠ti(g)+di。当t≤0时, ε(t)=0, 在选取参加神经元内部状态值计算的有效输入脉冲时加入条件ti(g)+di < t(f), 该条件不影响内部状态值计算, 且能够避免导数不存在的情况。式(8)中内部状态值对于各个延迟的偏导数计算过程如下:
$ \begin{array}{l} \frac{{\partial u\left( {{t^{\left( f \right)}}} \right)}}{{\partial {d_i}}} =\\ \frac{{\partial \left( {\sum\limits_{i = 1}^N {\sum\limits_{\begin{array}{*{20}{c}} {t_i^{\left( g \right)} \in {G_i}}\\ {{t^{\left( {f - 1} \right)}} + {R_a} < t_i^{\left( g \right)} + {d_i} < {t^{\left( f \right)}}} \end{array}} {{w_i}\varepsilon \left( {{t^{\left( f \right)}} - t_i^{\left( g \right)} - {d_i}} \right)} } + \eta \left( {{t^{\left( f \right)}} - {t^{\left( {f - 1} \right)}}} \right)} \right)}}{{\partial {d_i}}} = {w_i}\frac{{\partial \left( {\sum\limits_{\begin{array}{*{20}{c}} {t_i^{\left( g \right)} \in {G_i}}\\ {{t^{\left( {f - 1} \right)}} + {R_a} < t_i^{\left( g \right)} + {d_i} < {t^{\left( f \right)}}} \end{array}} {\varepsilon \left( {{t^{\left( f \right)}} - t_i^{\left( g \right)} - {d_i}} \right)} } \right)}}{{\partial {d_i}}} = \\ {w_i}\sum\limits_{\begin{array}{*{20}{c}} {t_i^{\left( g \right)} \in {G_i}}\\ {{t^{\left( {f - 1} \right)}} + {R_a} < t_i^{\left( g \right)} + {d_i} < {t^{\left( f \right)}}} \end{array}} {\left( {\frac{{{t^{\left( f \right)}} - t_i^{\left( g \right)} - {d_i}}}{{{\tau ^2}}}{{\rm{e}}^{\left( {1 - \frac{{\left( {t\left( f \right) - t_i^{\left( g \right)} - {d_i}} \right)}}{\tau }} \right)}} - \frac{{{{\rm{e}}^{\left( {1 - \frac{{\left( {t\left( f \right) - t_i^{\left( g \right)} - {d_i}} \right)}}{\tau }} \right)}}}}{\tau }} \right)} = \\ {w_i}\sum\limits_{\begin{array}{*{20}{c}} {t_i^{\left( g \right)} \in {G_i}}\\ {{t^{\left( {f - 1} \right)}} + {R_a} < t_i^{\left( g \right)} + {d_i} < {t^{\left( f \right)}}} \end{array}} {\varepsilon \left( {{t^{\left( f \right)}} - t_i^{\left( g \right)} - {d_i}} \right) \cdot \left( {\frac{1}{\tau } - \frac{1}{{{t^{\left( f \right)}} - t_i^{\left( g \right)} - {d_i}}}} \right)} \end{array} $ | (10) |
∂t(f)/∂u(t(f))和∂u(t(f))/∂t(f-1)的计算方法如下:
$ \frac{{\partial {t^{\left( f \right)}}}}{{\partial u\left( {{t^{\left( f \right)}}} \right)}} = \frac{{ - 1}}{{\partial u\left( {{t^{\left( f \right)}}} \right)/\partial {t^{\left( f \right)}}}} $ | (11) |
$ \begin{array}{l} \frac{{\partial u\left( {{t^{\left( f \right)}}} \right)}}{{\partial {t^{\left( f \right)}}}} = \\ \left\{ \begin{array}{l} \sum\limits_{i = 1}^N {\sum\limits_{\begin{array}{*{20}{c}} {t_i^{\left( g \right)} \in {G_i}}\\ {t_i^{\left( g \right)} + {d_i} < {t^{\left( 1 \right)}}} \end{array}} {{w_i}\varepsilon \left( {{t^{\left( 1 \right)}} - t_i^{\left( g \right)} - {d_i}} \right)} } \times \\ \;\;\;\;\;\;\;\left( {\frac{1}{{{t^{\left( 1 \right)}} - t_i^{\left( g \right)} - {d_i}}} - \frac{1}{\tau }} \right),f = 1\\ \sum\limits_{i = 1}^N {\sum\limits_{\begin{array}{*{20}{c}} {t_i^{\left( g \right)} \in {G_i}}\\ {{t^{\left( {f - 1} \right)}} + {R_a} < t_i^{\left( g \right)} + {d_i} < {t^{\left( f \right)}}} \end{array}} {{w_i}\varepsilon \left( {{t^{\left( f \right)}} - t_i^{\left( g \right)} - {d_i}} \right)} } \times \\ \;\;\;\;\;\;\;\left( {\frac{1}{{{t^{\left( f \right)}} - t_i^{\left( g \right)} - {d_i}}} - \frac{1}{\tau }} \right) - \frac{1}{{{\tau _R}}}\eta \left( {{t^{\left( f \right)}} - {t^{\left( {f - 1} \right)}}} \right),f > 1 \end{array} \right. \end{array} $ | (12) |
$ \frac{{\partial u\left( {{t^{\left( f \right)}}} \right)}}{{\partial {t^{\left( {f - 1} \right)}}}} = \eta \left( {{t^{\left( f \right)}} - {t^{\left( {f - 1} \right)}}} \right)/{\tau _R} $ | (13) |
对于在线学习方式, 一旦神经元激发出一个输出脉冲时就立刻调整相应的权值和延迟。当神经元在t(f)时刻激发出第f个脉冲且相对应的第f个期望脉冲为
$ \begin{array}{l} \Delta {d_i} = - {\alpha _d}\frac{{\partial E}}{{\partial {d_i}}} = - \frac{{{\alpha _d}}}{2}\frac{{\partial \left( {{{\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)}^2}} \right)}}{{\partial {d_i}}} = \\ \;\;\;\;\;\;\;\; - \frac{{{\alpha _d}}}{2}\frac{{\partial \left( {{{\left( {{t^{\left( f \right)}} - {{\hat t}^{\left( f \right)}}} \right)}^2}} \right)}}{{\partial {t^{\left( f \right)}}}}\frac{{\partial {t^{\left( f \right)}}}}{{\partial {d_i}}} = \\ \;\;\;\;\;\;\;\;{\alpha _d}\left( {{{\hat t}^{\left( f \right)}} - {t^{\left( f \right)}}} \right)\frac{{\partial {t^{\left( f \right)}}}}{{\partial {d_i}}} \end{array} $ | (14) |
在生物神经系统中, 神经元的延迟均为正数, 通过延迟梯度下降调整后, 部分突触的延迟可能出现负值, 与生物学基础并不相符, 有2种解决方案:一种是在延迟调整过程中加入非负限制, 当延迟调整使该突触的延迟小于0时, 则取消此次延迟调整以保证延迟的非负性, 但在每一轮的学习过程中只能调整部分延迟, 学习效果会受到影响; 另外一种是在模型中忽略该限制, 允许负值延迟, 与突触性质在模拟脉冲神经网络模型中的改变类似, 生物神经元的输入突触有激励突触和抑制突触两类(正值权值和负值权值), 且在运行过程中其类型不会发生变化。而现有研究中多数采用可变的突触权值, 以提高脉冲神经网络的学习性能。突触的时间延迟被认为是传统神经网络中的偏置, 正值延迟表示该脉冲输入要延后到达, 负值延迟表示该输入要提前到达。基于此, 为获取更好的学习能力, 对神经元的延迟性质进行修改。在延迟梯度下降调整后, 神经元突触的延迟不是离散的整数值, 而是更为精确的小数值, 这使神经元的输入脉冲到达时间不再是整数的时间点。由于脉冲神经元的运行时间连续, 为便于计算机模拟, 人为将神经元运行时间离散化, 一般取精度为1 ms, 这并不违背生物神经元的行为特征。另外, 在延迟梯度下降时, 可以直接利用权值梯度下降的中间结果, 因此该算法没有大幅增加算法的复杂度。在下文中, MSGDB-D1代表无正负限制的带延迟的梯度下降算法, MSGDB-D2代表非负带延迟的梯度下降算法。
4 实验结果与分析为验证本文提出的带延迟学习的梯度下降算法, 通过实验验证在不同输入脉冲和不同期望脉冲序列下算法的学习效果。部分参数设置为:τ=7 ms, τR=80 ms, ϑ=1, Ra=1 ms, 神经元的输入和输出分别为给定激发频率的Poisson过程产生的脉冲序列, Fin和Fout分别代表脉冲序列的输入和输出激发频率, rw和rd代表权值和延迟的学习速率, Tt代表神经元的运行时间。具体实验描述如下:
1) 验证在线和离线学习方式的区别。神经元有200个输入突触, Tt=200 ms, Fin=5 Hz, Fout=80 Hz, rw=0.2×10-2, rd=1, 突触的初始权值为均匀分布于区间(0, 0.2)中的随机数。图 1、图 2给出MSGDB和MSGDB-D1这2种算法在离线方式和在线方式下的学习精度对比结果。
![]() |
Download:
|
图 1 离线方式下2种算法的学习精度对比结果 |
![]() |
Download:
|
图 2 在线方式下2种算法的学习精度对比结果 |
从图 1、图 2可以看出, 在线学习方式下的MSGDB-D1算法仅需50步就学会了目标序列, 而离线方式下2种算法需要更多的步数, 在线方式明显优于离线方式。无论离线还是在线学习, 带延迟学习的梯度下降学习算法均优于不带延迟的学习算法。因此, 下文实验均为在线学习方式。
2) 验证非负延迟限制对算法的影响。神经元的输入突触个数为200, Tt=100 ms, Fout=100 Hz, 神经元的输入脉冲在运行时间内均匀分布, 突触的初始权值为均匀分布在区间(0, 0.45)中的随机数, 这种初始权值的设置使初始神经元激发脉冲的个数与期望激发脉冲个数相似。图 3给出MSGDB算法及2种带延迟调整的梯度下降算法的精度对比结果。可以看出, 2种带延迟调整的算法精度均明显高于MSGDB算法。其中MSGDB-D1算法只需30步就收敛于精度1, 优于MSGDB-D2算法。
![]() |
Download:
|
图 3 3种算法精度对比结果1 |
图 4和图 5分别显示在学习结束时2种带延迟调整算法的延迟大小。其中, 权值调整速率rw=0.03, 延迟调整速率rd=1。从图 4可以看出, MSGDB-D1算法的延迟有正有负, 对于神经元行为, 正值延迟表示该算法尽可能降低该突触输入对神经元的影响, 负值延迟说明算法尽可能增大该突触输入的作用。从图 5可以看出, MSGDB-D2算法限制延迟为非负, 导致有些突触在学习结束时的延迟变得非常大, 这在一定程度上破坏了梯度下降的结果, 因此效果差于MSGDB-D1算法。
![]() |
Download:
|
图 4 MSGDB-D1算法学习结束时的突触延迟时间1 |
![]() |
Download:
|
图 5 MSGDB-D2算法学习结束时的突触延迟时间1 |
3) 验证当期望输出序列中脉冲个数与神经元初始输出中脉冲个数相差较大时, 延迟调整是否仍然能有效提高学习效果。这组实验中包含2个子实验:第1个将初始权值设为(0, 0.15)中的随机数, 第2个设为(0, 1)中的随机数, 其余参数与第2组实验相同。这2种初始权值的设置可以分别使神经元初始的激发脉冲个数约为期望输出的一半和两倍左右。图 6给出3种梯度下降算法在第1个子实验中精度对比结果。图 7、图 8分别为MSGDB-D1算法和MSGDB-D2算法在第1个子实验中学习结束时突触延迟。图 9给出3种梯度下降算法在第2个子实验中精度对比结果。图 10、图 11分别为MSGDB-D1算法和MSGDB-D2算法在第2个子实验中学习结束时突触延迟。可以看出, 在初始激发个数多于或少于期望激发个数的情况下, 2种带延迟的梯度下降算法均能大幅提高学习效果。在图 9中, 2种带延迟的梯度下降算法的结果非常接近, MSGDB-D1算法在15步时收敛到精度1, 而MSGDB-D2算法需要18步收敛到精度1。观察2种算法结束时的延迟, 可以看出, MSGDB-D1算法结束时大部分延迟均为正数, 只有少部分为负值, 说明期望脉冲输出大部分在神经元实际输出, 这是导致MSGDB-D1算法和MSGDB-D2两种算法的精度非常接近的主要原因。
![]() |
Download:
|
图 6 3种算法精度对比结果2 |
![]() |
Download:
|
图 7 MSGDB-D1算法学习结束时突触延迟时间2 |
![]() |
Download:
|
图 8 MSGDB-D2算法学习结束时突触延迟时间2 |
![]() |
Download:
|
图 9 3种算法精度对比结果3 |
![]() |
Download:
|
图 10 MSGDB-D1算法学习结束时突触延迟时间3 |
![]() |
Download:
|
图 11 MSGDB-D2算法学习结束时突触延迟时间3 |
第3组实验较前两组实验更为复杂, 将神经元突触个数增加到400个, Tt=400 ms, Fin=20 Hz, Fout=60 Hz, rw=1.5×10-4, rd=0.3。初始权值设为区间(0, 0.05)的均匀分布随机数, 结果如图 12~图 14所示, 可以看出, 当序列变长且输入为多脉冲时, 原始的梯度下降算法精度明显下降, 在700步时仍只能达到0.75左右的精度, 然而MSGDB-D2算法可以达到0.82, MSGDB-D1算法最高达到0.93。这说明在学习任务更为复杂的情况下, 带延迟的梯度下降法仍然可以达到较好的效果。由于输入突触个数比较多, 因此采用较小的学习速率, 可以降低各输出脉冲之间的相互干扰。
![]() |
Download:
|
图 12 3种算法精度对比结果4 |
![]() |
Download:
|
图 13 MSGDB-D1算法学习结束时突触延迟时间4 |
![]() |
Download:
|
图 14 MSGDB-D2算法学习结束时突触延迟时间4 |
本文提出一种带延迟学习的梯度下降脉冲神经元算法, 在每一轮学习过程中, 通过梯度下降算法调整神经元的输入延迟和权值。在离线学习和在线学习方式中, 利用权值调整部分中间结果。实验结果表明, 该算法能大幅提升梯度下降的学习精度, 收敛速度较高, 且MSGDB-D1算法的学习精度高于MSGDB-D2算法。下一步可将延迟学习应用于脉冲神经网络, 以降低算法的复杂度。
[1] |
PONULAK F, KASINSKI A. Introduction to spiking neural networks:information processing, learning and applications[J]. Acta Neurobiologiae Experimentalis, 2011, 71(4): 409-433. ( ![]() |
[2] |
BOHTE S M, KOK J N, LA POUTR'E J A. Error-backpropagation in temporally encoded networks of spiking neurons[J]. Neurocomputing, 2002, 48(1/4): 17-37. ( ![]() |
[3] |
MCKENNOCH S, LIU D, BUSHNELL L G.Fast modifications of the spikeprop algorithm[C]//Proceedings of International Joint Conference on Neural Networks.Washington D.C., USA: IEEE Press, 2006: 3970-3977.
( ![]() |
[4] |
SILVA S M, RUANO A E.Application of levenberg-marquardt method to the training of spiking neural networks[C]//Proceedings of the International Conference on Neural Networks and Brain.Washington D.C., USA: IEEE Press, 2005: 1354-1358.
( ![]() |
[5] |
SCHRAUWEN B, CAMPENHOUT J V.Extending spike-prop[C]//Proceedings of International Joint Conference on Neural Networks.Washington D.C., USA: IEEE Press, 2004: 471-476.
( ![]() |
[6] |
BOOIJ O, NGUYEN H T. A gradient descent rule for multiple spiking neurons emitting multiple spikes[J]. Information Processing Letters, 2005, 95(6): 552-558. DOI:10.1016/j.ipl.2005.05.023 ( ![]() |
[7] |
XU Yan, ZENG Xiaoqin, HAN Lixin, et al. A supervised multi-spike learning algorithm based on gradient descent for spiking neural networks[J]. Neural Networks, 2013, 43(4): 99-113. ( ![]() |
[8] |
徐彦. 基于梯度下降的脉冲神经元在线学习方法[J]. 计算机工程, 2015, 41(12): 150-155, 160. ( ![]() |
[9] |
XU Yan, YANG Jing, ZHONG Shuiming. An online supervised learning method based on gradient descent for spiking neurons[J]. Neural Networks, 2017, 93: 7-20. DOI:10.1016/j.neunet.2017.04.010 ( ![]() |
[10] |
FLORIAN R V.The chronotron: a neuron that learns to fire temporally precise spike patterns[EB/OL].[2018-05-21].https://www.ncbi.nlm.nih.gov/pubmed/22879876.
( ![]() |
[11] |
VICTOR J D, PURPURA K P. Nature and precision of temporal coding in visual cortex:a metric-space analysis[J]. Journal of Neurophysiology, 1996, 76(2): 1310-1326. ( ![]() |
[12] |
MARKRAM H, TSODYKS M. Redistribution of synaptic efficacy between neocortical pyramidal neurons[J]. Nature, 1996, 382(6594): 807-810. DOI:10.1038/382807a0 ( ![]() |
[13] |
PONULAK F, KASINSKI A. Supervised learning in spiking neural networks with ReSuMe:sequence learning, classification and spike shifting[J]. Neural Computation, 2010, 22(2): 467-510. DOI:10.1162/neco.2009.11-08-901 ( ![]() |
[14] |
徐彦, 杨静. 脉冲神经元序列学习方法的影响因素研究[J]. 计算机工程, 2015, 41(11): 194-201. DOI:10.3969/j.issn.1000-3428.2015.11.034 ( ![]() |
[15] |
XU Yan, ZENG Xiaoqin, ZHONG Shuiming. A new supervised learning algorithm for spiking neurons[J]. Neural Computation, 2013, 25(6): 1472-1511. DOI:10.1162/NECO_a_00450 ( ![]() |
[16] |
MOHEMMED A, SCHLIEBS S, MATSUDA S, et al. Training spiking neural networks to associate spatio-temporal input-output spike patterns[J]. Neurocomputing, 2013, 107(4): 3-10. ( ![]() |
[17] |
YU Qiang, TANG Huajin, TAN K C, et al.Precise-spike-driven synaptic plasticity: learning hetero-association of spatiotemporal spike patterns[EB/OL].[2018-05-21].https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0078318.
( ![]() |
[18] |
LIN Xianghong, ZHANG Ning, WANG Xiangwen.An online supervised learning algorithm based on nonlinear spike train kernels[C]//Proceedings of International Conference on Intelligent Computing.Berlin, Germany: Springer, 2015: 106-115.
( ![]() |
[19] |
GARDNER B, GRÜNING A.Supervised learning in spiking neural networks for precise temporal encoding[EB/OL].[2018-05-21].https://www.ncbi.nlm.nih.gov/pubmed/27532262.
( ![]() |
[20] |
徐彦, 熊迎军, 杨静. 脉冲神经元脉冲序列学习方法综述[J]. 计算机应用, 2018, 38(6): 1527-1534. ( ![]() |
[21] |
XU Bo, GONG Yubing, WANG Baoying. Delay-induced firing behavior and transitions in adaptive neuronal networks with two types of synapses[J]. Science China Chemistry, 2013, 56(2): 222-229. DOI:10.1007/s11426-012-4710-y ( ![]() |
[22] |
SCHRAUWEN B, CAMPENHOUT J V.Extending SpikeProp[C]//Proceedings of IEEE International Joint Conference on Neural Network.Washington D.C., USA: IEEE Press, 2004: 471-475.
( ![]() |
[23] |
TAHERKHANI A, BELATRECHE A, LI Yuhua, et al.DL-ReSuMe: a delay learning-based remote supervised method for spiking neurons[C]//Proceedings of International Conference on Neural Information Processing.Berlin, Germany: Springer, 2015: 190-197.
( ![]() |