RecDis-SNN: Rectifying Membrane Potential Distribution for Directly TrainingSpiking Neural Networks

摘要、背景、结论Abstract:The brain-inspired and event-driven Spiking Neural Network (SNN) aiming at mimicking the syn

摘要、背景、结论

Abstract:The brain-inspired and event-driven Spiking Neural Network (SNN) aiming at mimicking the synaptic activity of biological neurons has received increasing attention. It transmits binary spike signals between network units when the membrane potential exceeds the firing threshold. This bio-mimetic mechanism of SNN appears energy-efficiency with its power sparsity and asynchronous operations on spike events. Unfortunately, with the propagation of binary spikes, the distribution of membrane potential will shift, leading to degeneration, saturation, and gradient mismatch problems, which would be disadvantageous to the network optimization and convergence. Such undesired shifts would prevent the SNN from performing well and going deep. To tackle these problems, we attempt to rectify the membrane potential distribution (MPD) by designing a novel distribution loss, MPD-Loss, which can explicitly penalize the undesired shifts without introducing any additional operations in the inference phase. Moreover, the proposed method can also mitigate the quantization error in SNNs, which is usually ignored in other works. Experimental results demonstrate that the proposed method can directly train a deeper, larger, and better-performing SNN within fewer timesteps.

大背景:人工神经网络(ann)在图像分类[16,44,45]、目标检测[14,31,39]、机器翻译[2]、游戏[43,46]等许多应用领域取得了巨大的成功。然而,人工神经网络所需的计算资源的增加对延迟敏感的应用和能量有限的设备造成了负担[28,30,51]。近年来,峰值神经网络(SNN)因其生物学启发的神经行为和高效的计算能力而受到越来越多的关注,并被视为人工神经网络的潜在竞争对手[40]。snn利用二进制尖峰活动,即0表示无,1表示尖峰事件,来传输信息。这种传输方式弥补了人工神经网络基于真实值的信息处理与大脑基于峰值的信息处理之间的差距。snn具有基于二进制尖峰和稀疏时间通信机制的特点,在特定的神经形态硬件上实现具有较高的功耗效率[3,7,21,33],并且在神经形态计算[7]、模式识别[20]、机器人[18]、脑启发设备[33]等领域越来越有前景。

小背景:不连续和不可微的脉冲活动给反向传播中使用梯度下降直接训练snn带来了困难。目前用于避免不可微困境的SNN训练算法可分为(i) ann -SNN转换和(ii)代理梯度(SG)下降法。转换方法通常将预训练的非尖峰神经网络转换为具有相同架构的SNN[4,5,9,11,15,26,38,42]。虽然转换后的网络可以达到与原始人工神经网络相当的性能,但它们是以大量的推理时间步为代价的,这需要更多的时间和能量。

存在问题:SG下降法采用SGs(即1|x−Vth|<0.5或0,否则,其中Vth为触发阈值,通常为0.5)来替代脉冲函数中全有或者全无的梯度,存在梯度消失或者梯度爆炸的问题,从而限制网络规模。膜电位会出现三种不平衡的情况:

  • 退化:如果某一通道中几乎所有神经元的膜电位值都超出了发放阈值(firing threshold),那么该通道的脉冲输出将变得高度一致,可能全部是0(不发放脉冲)或全部是1(持续发放脉冲)。此时,该通道的特征信息几乎被忽略,因为神经元并没有展示出对输入的多样化响应,导致特征学习能力减弱。
  • 饱和:如果某一通道中几乎所有神经元的膜电位值都超出了区间[0, 1],这使得这些神经元的梯度为0。因此,当进行反向传播(back-propagation)时,这些神经元不会对权重更新产生任何贡献,造成学习过程中的“传播失效”,即无法有效更新网络权重。
  • 梯度不匹配:如果某一通道中几乎所有神经元的膜电位值都在区间[0, 1]内,那么相当于在所有的梯度计算中使用了某种简化的梯度(SGs)。这种情况下,由于简化梯度与真实梯度之间的差距,可能会导致近似误差增大,从而引起更严重的梯度不匹配问题。这意味着模型的更新方向和幅度可能不恰当,影响模型的训练效果。

作者贡献:基于以上三种情况,作者提出一种新的损失函数MPD-Loss。该损失函数是为了明确惩罚不应该出现的变化,调整膜电位分布。

  • MPD-Loss可以缓解梯度消失和梯度爆炸,调整脉冲速率,加速模型收敛速度。
  • MPD-Loss可以缓解量化误差的问题
  • MPD-Loss具有很好的兼容性,可以轻松的使用在不同的模型当中。并且作者分别在ANN和SNN中进行测试,均可以达到较优的性能。

相关知识点

神经元模型

LIF模型是SNN中经常使用的一种模型,用来模拟人脑神经元一个突触将信号传递给另一个突触,使用以下微分方程来描述LIF神经元:

由于具有连续变化的差分电压在机器学习框架中不容易表示,因此有以下方程

表示当前时刻的膜电位;为时间衰减因子,使用表示;可以表示为突触信号的加权和。经过修改后膜电位更新公式如下:

本文将放电阈值Vth设为0.5,泄漏因子τ设为0.2,静息电位ureset为0。

当LIF神经元作为最后一层时,会影响模型性能,本文修改LIF神经元来取代LIF神经元,使得模型只累计输入,而不发生任何泄露和发放脉冲,修改后的神经元节点如下:

反向传播

反向传播中的代理梯度,采用矩形函数,可以表示为:

本文贡献MPD-Loss

使用来表示第b批数据中第l层第c通道中所有时间步长的膜电位,表示U中升序元素的q分位数。

  • 退化:
  • 饱和:
  • 梯度失配:

解决退化问题:,其中()+表示取最大值,是一个孤立的值。为了增强鲁棒性,惩罚可以通过一对分位数,和来放松,重写上述公式。将其转化为可微分的形式,假设U的值可以从高斯分布中采样,其中和可以通过U的平均值和标准值来估计。因此分位数可以使用来表示。损失进一步可以更新为:

解决饱和问题:饱和问题大多是发生在电位超过[0,1]区间,可以使用:

同理可以带入高斯采样:

解决梯度失配问题

膜电位处于[0,1]这个区间内越多,梯度失配问题越严重,可以采用以下损失:

或者是

求最小值会使得电势分布偏向0,1,求最大值可以拉开U(0),U(1),两者都可以缓解梯度不匹配的问题,但是求最小值的方法会使得模型过拟合和欠拟合,因此选择求最大值的方法。将其按上述原理转化为连续值:

最后,定义损失函数:

在实践中,除最后一层外,在训练的每个阶段都会对每层的每个通道做出相应的惩罚,具体公式如下:

最后考虑分类损失,总的损失可以表示为:

其中为交叉熵损失函数,为平衡系数,本文设为2。在实现中,只有在训练过程中引入了CE-MPD损失函数,为了惩罚退化、饱和、梯度失配,分别设置为1,0.25,1.25。

以下为训练过程的伪代码:

实验结果分析

MPD-Loss方法与批归一技术相比的优势:

在推理阶段不会引入额外的操作;解决梯度失配的问题;减少量化误差

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754378313a5153532.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信