(笔记)脉冲深度残差网络Spiking Deep Residual Network
原文链接
https://arxiv.org/abs/1805.01352
摘要
本文提供一种有效的把ResNet转成脉冲神经网络(SNN)的方法。主要提出两个方法。
一,针对残差结构的归一化,把连续**函数值转成发射频率(firerate)。
二,分层的误差补偿。
方法一
针对残差结构的归一化,把连续**函数值转成发射频率(firerate)。
ResNet的基本block如下图
把ReLU123后的最大值(max1, max2, max3)找到,再通过下式进行归一化,可以算出每个神经的发射频率。
方法二
分层的误差补偿。
随着网络加深,抽样误差逐渐累积,减少了发射频率,导致表现变差,如下图。
为了解决这个问题,作者假设可以通过稍微放大每层的权重来减少抽样误差。 然后,我们将补偿因子λ应用于网络的每一层,以通过稍微放大权重来减少抽样误差。 在(1,τ_max)的区域内搜索补偿因子λ,其中τ_max是最后一层处最大发射频率的倒数。
实验
在MNIST,CIFAR-10,和CIFAR100达到SNN最优。
有和没有针对残差结构shortcut归一化的对比。
有残差和没有残差的脉冲CNN对比。
方法二误差补偿的效果。