TSSL-BP脉冲神经网络反向传播方法

Temporal Spike Sequence Learning via Backpropagation for Deep Spiking Neural Networks

通过反向传播的深层脉冲神经网络的时间性脉冲序列学习

摘要

  脉冲神经网络(SNNs)非常适用于时空学习和在高能效事件驱动的神经形态处理器上的实现。在高能效事件驱动的神经形态处理器上的实现。然而,现有的SNN错误反向传播(BP)方法缺乏正确处理 与传统人工神经网络的BP方法相比,现有的SNN误差反向传播(BP)方法缺乏对脉冲不连续的适当处理,并且性能低下。方法相比,性能较低。此外,通常需要大量的时间步长来实现体面的性能,导致高延迟并使基于脉冲的计算无法扩展到深度架构。 提出了一种新的时态脉冲序列学习反向传播(TSSL-BP) 训练深度SNN的方法,该方法将误差反向传播分解为 该方法打破了神经元间和神经元内两种类型的误差反向传播,从而提高了 epoch学习的精度。它通过突触前的泄露时间,考虑到泄漏激发活动的全有或全无的特点,捕捉到了神经元间的依赖性。并通过处理每个神经元状态的内部演变来捕捉神经元内部的依赖性。神经元状态的内部演化。TSSL-BP在一个更短的几步时间窗口内有效地训练了深度SNN,同时提高了在各种图像分类数据集上的准确性,包括CIFAR10。

2 Background

2.1 Existing Backpropagation methods for SNNs

  最近,使用BP在发射率(或活动水平)编码损失函数下训练SNN已被证明可提供具有竞争力的性能]。其中,《Training deep spiking neural networks using backpropagation》不考虑神经活动的时间相关性,并将尖峰时间视为噪声来允许误差梯度计算。一些论文通过执行时间反向传播(BPTT)捕获时间效应。然而,他们通过使用替代梯度法近似尖峰过程来绕过脉冲事件的不可微性《Surrogate gradient learning in spiking neural networks》。这些近似导致计算梯度和目标损失之间的不一致,从而降低训练性能。《Gradient descent for spiking neural networks》 提出了一种基于门函数和阈值触发突触模型的新组合的复发性SNN的BP方法,该模型用于处理脉冲的不可微性。在这项工作中,在低于放电阈值的狭窄活动区内,膜电位的去极化也会引起分级的突触后电流。[13,29]通过捕捉在脉冲序列水平聚集的脉冲神经元的效应,提出了脉冲序列水平的BP方法。然而,应用BP的脉冲序列的长度需要足够长,这导致了较长的推理延迟和较高的训练成本。
  《Direct training for spiking neural networks: Faster, larger, better. 》通过添加优化技术,如神经元归一化和群体解码,可以在相对较少的时间步长内训练snn。由于其核心是《Spatio-temporal backpropagation for training high-performance spiking neural networks》方法,它仍然通过一个连续的激活函数来近似脉冲神经元的全有或无放电特性,造成了前面介绍的相同问题。
LIF模型应用欧拉方法迭代,不再详细说明。
海维赛德阶跃函数Heaviside step function
在这里插入图片描述
从突触前神经元j到神经元i的输入峰值序列:在这里插入图片描述
神经元i在t时刻的神经元膜电压 u i ( t ) u_i(t) ui(t)为:在这里插入图片描述
R是有效的泄露电阻, τ m \tau _m τm是时间常数, w i j w_{ij} wij是从突触前神经元 j j j到神经元 i i i的突触权重, a j ( t ) a_j(t) aj(t)是由突触前神经元j的脉冲引起的(未加权)突触后电流(PSC),η(t)表示复位函数。
其中 t j ( f ) t_j^{(f)} tj(f)表示突触前神经元j的特定放电时间。输入的峰值通过突触模型转换为(未加权的)突触后电流(PSC) a j ( t ) a_j(t) aj(t)
突触后电流和复位函数可写为:
在这里插入图片描述
ϵ ( ⋅ ) \epsilon (\cdot ) ϵ()是脉冲响应核, υ ( ⋅ ) \upsilon (\cdot ) υ()是重置核,在本研究中,我们采用一阶突触模型作为脉冲响应核,其表示为:
在这里插入图片描述

神经元的放电输出表示为 s i [ t ] = H ( u i [ t ] − V t h ) s_i[t]=H(u_i[t]−V_{th}) si[t]=H(ui[t]Vth)

在这里插入图片描述

3.2 The Loss Function

  所提出的TSSL-BP方法的目标是训练一个给定的SNN,使每个输出神经元学习根据输入类标签产生由用户任意指定的期望的放电序列。表示 d = [ d [ t 0 ] 、 ⋅ ⋅ ⋅ 、 d [ t N t ] ] d=[d[t0]、···、d[t_Nt]] d=[d[t0]d[tNt]] s = [ s [ t 0 ] 、 s [ t N t ] s=[s[t_0]、s[t_Nt] s=[s[t0]s[tNt]在输出层中的期望和实际峰值序列,其中Nt是考虑的时间步数,d[t]和s[t]分别是时间t时所有输出神经元的期望的和实际发射事件。损失函数L可以用任何合适的测量d和s之间差的距离函数来定义。在这项工作中,损失函数由每个时间步长上每个输出神经元的总平方误差总和来定义:
在这里插入图片描述
其中E[t]是时间t的误差, ϵ ( . ) \epsilon (.) ϵ(.)是一个核函数,用于测量实际脉冲序列和期望脉冲序列之间的所谓Van Rossum
distance范罗素距离

3.3 Temporal Spike Sequence Learning via Backpropagation (TSSL-BP) Method

  从损失函数(7)中,我们定义了每个时间步长的误差E[tk]。E[tk]是基于tk处的输出层发射脉冲,它进一步依赖于所有的神经元状态u[t],t≤tk。下面我们考虑这些时间上的依赖性,并推导出拟议的TSSL-BP方法的主要步骤。
使用(7)和链式法则,可以得到:在这里插入图片描述

类似于传统的反向传播,我们使用δ来表示在tm时的反向传播误差表示为:在这里插入图片描述
δ(l)有两种情况:在这里插入图片描述
在这里插入图片描述
(10)将误差 δ \delta δ从第l+1层映射到第l层。它是由第l层神经元的膜电位 u(l)影响其(未加权)相应的突触后电流(PSCs)。a(l) 通过发射的脉冲,而a(l) 进一步影响下一层的膜电位u(l+1)。

3.3.1 Key challenges in SNN BackPropagation

  如上所示,对于输出层和隐藏层,一旦在这里插入图片描述

已知,就可以对误差δ进行反向传播,并计算每层的梯度。
重要的是,PSC对突触前神经元相应的膜电位的依赖性反映在式(i)中,是由于以下脉冲神经行为造成的:膜电位的变化可能使其达到发射阈值,从而通过产生脉冲激活相应的神经元,从而产生PSC。膜电位的变化可能使其达到发射阈值,从而通过产生一个尖峰来激活相应的神经元,进而产生PSC(突触后电位)。计算式(i)涉及到每个神经元的激活,即由于膜电位从下而上越过发射阈值而发射一个脉冲。触发阈值。遗憾的是,由于突发神经元的全有或全无发射特性 使得激活函数不可区分,从而引入了几个关键的挑战。
  处理激活的非可分性的典型策略是通过使用可分曲线[24]来平滑激活函数,如图2所示,或者使用连续概率密度函数[21],这与前一种方法的精神相似。然而,这些方法有效地将每个离散的发射脉冲在时间上连续分布,将一个实际的脉冲转换为多个 "虚构 "的脉冲,并产生多个 "虚构 "的PSC,在不同的时间点进行位移。
不同的时间点。我们强调,虽然平滑化规避了数字上的挑战 的非差异性,但它有效地改变了底层脉冲神经元的模型和发射时间。模型和发射时间,并导致误差梯度计算的准确性下降。重要的是要反映出脉冲时间是脉冲神经计算的标志,改变BP中的触发时间可能会阻碍本文所追求的目标触发序列的精确学习。

3.3.2 The Main Ideas Behind TSSL-BP

在这里插入图片描述

  TSSL-BP解决了先前BP方法的两个关键局限性:缺乏适当的脉冲处理 不连续(导致时间精度的损失)和需要许多时间步骤(即高延迟)以确保良好的性能。以确保良好的性能。TSSL-BP计算式(1)。在网络中的两类时空 网络中的两类时空依赖关系:神经元间和神经元内依赖关系。如图3所示。我们的主要观察结果是。1)突触后神经元对其任何突触前神经元的时间依赖性 神经元只通过突触前的尖峰发生,突触前的脉冲产生突触后电位到突触后的神经元。并应被视为神经元间的依赖关系;2)此外,一个突触前脉冲的时间会通过神经元内时间依赖影响同一突触前神经元紧接着的脉冲的时间。第一个突触前脉冲的时间影响第二个脉冲产生的PSC,并通过这一间接机制对突触后神经元产生额外影响。

3.3.3 Inter-Neuron Backpropagation

  我们没有进行有问题的激活平滑,而是批判性地注意到发射行为的全或无特征,即PSC波形只在突触前的发射时间被触发。特别是,如图4所示,u(l)i[tm]的扰动Δu(l)i,即由于权重更新,可能导致发射时间Δt的增量移动,这反过来又使对应于移位的尖峰的PSC波形的起始点移动,导致a(l)i[tk]的扰动Δa(l)i。我们认为这是一个神经元间的依赖关系,因为PSC的变化∆ai(l)改变了下一层突触后神经元的膜电位。
在这里插入图片描述
  我们提出了两个重要的观点:1)我们将通过(突触前放电时间的增量变化)捕捉神经元间的依赖,这精确对应于SNN中不同神经元如何相互作用;2)每个神经元 i i i t k t_k tk处的PSC ( a i ( l ) a_{i}^{(l)} ai(l) )依赖于其在 t m t_m tm处的膜电位 u i ( l ) u_{i}^{(l)} ui(l),只有当神经元在 t m t_m tm处放电时才会发生。一般来说,应考虑 a i l ( t k ) a_{i}^{l}(t_k) ail(tk)的神经元间对所有之前的放电时间的依赖性。图5显示了 a i l ( t k ) a_{i}^{l}(t_k) ail(tk)依赖于两个突触前发射时间 t m t_m tm t p t_p tp的情况。相反,如果 t k t_k tk< t m t_m tm或在 t m t_m tm处没有峰值,则神经元间依赖于 ∅ i ( l ) < 1 > ( t k , t m ) = 0 \varnothing _i(l)^{<1>}(t_k,t_m) =0 i(l)<1>(tk,tm)=0。假设突触前神经元 i i i t m t_m tm处达到峰值,神经元间的依赖性是在这里插入图片描述
其中,重要的是,链式法则是通过突触前发射时间 t m t_m tm来应用的。从(2)中,(11)的两部分可以计算为:在这里插入图片描述

3.3.4 Intra-Neuron Backpropagation

  现在我们考虑在任意时间tk和突触前放电时间 t m ( t m < t k ) t_m(t_m<t_k) tm(tm<tk)之间定义的神经元内依赖性 ∅ i ( l ) < 2 > ( t k , t m ) \varnothing _i^{(l)<2>}(t_k,t_m) i(l)<2>(tk,tm)。从第3.3.3节开始, t m t_m tm时刻突触前放电产生一个连续的PSC,它直接影响 t k t_k tk时的突触后电位,这是一种神经元间的依赖性。另一方面, ∅ i ( l ) < 2 > ( t k , t m ) \varnothing _i^{(l)<2>}(t_k,t_m) i(l)<2>(tk,tm)通过神经元内依赖性对突触后电位产生间接影响。
在这里插入图片描述

我们特别考虑 ∅ i ( l ) < 2 > ( t k , t m ) \varnothing _i^{(l)<2>}(t_k,t_m) i(l)<2>(tk,tm)的情况。所采用的LIF模型,如果突触前的神经元在 t m t_m tm之后的 t p t_p tp处发生脉冲,使 t m t_m tm < t p t_p tp < t k t_k tk。在这种情况下,突触前的膜电位在 t m t_m tm的突触前膜电位不仅对因神经元发射而产生的突触后电位有贡献,而且也影响到下一个脉冲时间 t p t_p tp的膜电位,而这个时间是发生在 (4)中所描述的那样,在下一个脉冲时间 t m t_m tm的膜电位。PSC a i ( l ) [ t k ] a_i^{(l)}[t_k] ai(l)[tk]对膜电位 u i ( l ) [ t p ] u_i^{(l)}[t_p] ui(l)[tp]有一个神经元间的依赖性,而 u i ( l ) [ t p ] u_i(l)[t_p] ui(l)[tp]由于突触前电位在 t m t_m tm的复位而进一步受到紧邻的发射时间 t m t_m tm的影响。回顾一下 s i ( l ) [ t ] = 1 s_i^{(l)}[t]=1 si(l)[t]=1,如果神经元 i i i t t t处发射,如(5)。更确切地说, ∅ i ( l ) < 2 > ( t k , t m ) \varnothing _i^{(l)<2>}(t_k,t_m) i(l)<2>(tk,tm)考虑到了这种间接的神经元内效应,如果 ∃ t p ∈ ( t m , t k ) \exists t_p\in (t_m,t_k) tp(tm,tk),使得 s i ( l ) [ t p ] = 1 s_i^{(l)}[t_p]=1 si(l)[tp]=1,并且 s i ( l ) [ t ] = 0 s_i^{(l)}[t]=0 si(l)[t]=0 ∀t ∈( t m t_m tm, t p t_p tp),也就是说,在 t m t_m tm t p t_p tp之间不存在其他突触前脉冲:
在这里插入图片描述
其中 ν ( ⋅ ) ν(·) ν是重置内核, ∂ t m ∂ u i ( l ) [ t m ] ] \frac{\partial t_m}{\partial u_i^{(l)}[t_m]]} ui(l)[tm]]tm由(12)计算。在(13)中, ∅ i ( l ) ( t k , t p ) \varnothing _i^{(l)}(t_k,t_p) i(l)(tk,tp)已经在反向传播过程中计算出来,因为 t p t_p tp t m t_m tm后的突触前发射时间。将神经元间和神经元内的依赖关系放在一起,BP过程中所需的 ∅ i ( l ) ( t k , t m ) = ∂ a i ( l ) [ t k ] ∂ u i ( l ) [ t m ] \varnothing _i^{(l)}(t_k,t_m)=\frac{\partial a_i^{(l)}[t_k]}{\partial u_i^{(l)}[t_m]} i(l)(tk,tm)=ui(l)[tm]ai(l)[tk] t m < t p < t k t_m<t_p<t_k tm<tp<tk的关键衍生物之一由:
在这里插入图片描述
在补充材料的第1节中提供了TSSL-BP的完整推导。有两个关键的区别,使我们的方法除了上述激活平滑。首先,神经元间的依赖只考虑在突触前放电时间,而不是所有之前的时间点,后者是用BPTT应用激活平滑的情况。TSSL-BP中采用的处理是峰值神经元全或无放电特征的表现。其次,如图4所示,反向传播的关键步骤是考虑峰值时间的增量变化,这在最近的SNNs BP工作中没有考虑到。

4 Experiments and Results

在这里插入图片描述

4.5 Firing Sparsity 激发稀疏性

在这里插入图片描述

  如上所述,该TSSL-BP方法可以训练低延迟的snn。同时,训练有素的网络中的发射活动也趋于稀疏。为了证明发射的稀疏性,我们选择了两个训练有素的snn,一个用于CIFAR10,另一个用于N-MNIST。
  对CIFAR10网络进行了超过5个时间步长的模拟。我们计算激发的分别是0,1,…5的5个时间步长,并将超过100个测试样本的百分比平均。如图所示,网络的触发活动是稀疏的。超过84%的神经元沉默,12%的神经元不止一次放电,约4%的神经元在每一个时间步都放电。
  这里演示的N-MNIST网络被模拟超过100个时间步。每个神经元的放电速率都被记录下来。在100个测试样本中计算出具有一定放电率范围的神经元的数量,并将其平均值计算出来。同样,如图8所示,N-MNIST网络的触发事件也是稀疏的,超过75%的神经元保持沉默。与此同时,约有5%的神经元放电率大于10%

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星光里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值