以前的Spking-ResNet模拟了ann中的标准残差块,只是简单地将ReLU激活层替换为spike神经元,存在退化问题,很难实现残差学习。这篇文章主要提出了spike-element-wise (SEW) ResNet来实现深度snn中的残差学习。
1. 引言
Spiking ResNet作为ResNet的spike版本,通过模拟ann中的残差块,用spike神经元替换ReLU激活层而提出。由ANN转换的spike ResNet在几乎所有的数据集上都达到了最高的精度,而直接训练的spike ResNet尚未得到验证以解决退化问题。
本文证明了spike ResNet并不适用于所有的神经元模型来实现身份映射。即使满足了单位映射条件,spike ResNet也面临着消失/爆炸梯度的问题。
3. 方法
残差块是ResNet的关键组件。图1(a)显示了ResNet的基本块,Spiking ResNet基本块只是模仿ann中的块,用Spiking神经元(SN)代替ReLU激活层,如图1(b)所示 ,提出了基于spike-element-wise (SEW)的残差块来实现残差学习它可以很容易地实现单位映射,同时克服消失/爆炸梯度问题。如图1(c)所示:
SEW残块可表示为:
SEW ResNet可以很容易地实现身份映射。利用spikes的二元性,我们可以找到满足恒等映射的不同元素函数g(如表1所示)。
当选择ADD和IAND作为元素函数g时,通过设置实现标识映射A[t]≡0可以简单地通过设置来实现Fl中最后一批归一化层(BN)的权重和偏置为零。这适用于所有的神经元模型。当使用AND作为元素函数g时,我们设Al[t]≡1得到单位映射。可以通过将最后一个BN的权值设为0,并将偏差设为一个足够大的常数来引起尖峰,例如,当最后一个SN是IF神经元时,将偏差设为Vth。