摘要
论文提出了一种将ANN网络转换成SNN的算法,并证明了该算法在复杂视觉识别问题(如cifar-10和ImageNet)中的有效性。
介绍
将ANN直接转换成SNN时,在SNN上的性能远低于ANN,这是因为应为SNN中拥有处理时序信息的能力,这点与ANN有很大的区别
相关工作
略
主要贡献
1、针对ANN转SNN,提出几个ANN结构的约束。
2、提出ANN转SNN的normalization方法
3、提出一种可以用在SNN的残差结构块
准备工作
1、用频率编码的方式产生脉冲(泊松脉冲),论文中time-step为2500。
2、在ANN采用ReLU函数,在SNN使用IF模型
3、明确在ANN转SNN的关键在于调整SNN的阈值与突触权重。太高的阈值需要更长的时间才能产生一个脉冲,阈值太小就难以区分输入的差距。
ANN结构约束
1、不设置bias,因为bias在SNN中会增大阈值参数调整的难度,由于没有bias,所以BN也用不了,所以在ANN用drop out来替代BN。
2、使用average pool
深度卷积SNN体系结构:VGG
之前就有人提出“Data-Based Normalization”,具有实现方式有两种:“weight-normalization”和“threshold-normalization”,他们最终的目的是一致的,只是实现过程不同。
SPIKE-NORM,这是论文中提出的Normalization,它是基于“Data-Based Normalization”所提出,“Data-Based Normalization”所作的Normalization是在ANN中做的,而“SPIKE-NORM”是在SNN中做的。为什么要SNN做呢?论文中作者提出这样一个问题:在ANN中,假如有两个分别为1,0.5的输入,假设权重都是1,这是网络的输出为1.5。而在SNN中,经过脉冲编码,假如输入1编码成每个time-step都产生脉冲,而输入0.5就编码成一半time-step产生脉冲,在SNN运行当中就会出现最大值2(每个脉冲用1表示),所以提出要根据SNN来做Normalization。
残差网络构建
网络结构约束
1、在残差结构两条通路连接处加入ReLU函数
2、所有FAN-IN 的层应该设置相同的阈值,即残差结构的两条通路应具备相同的阈值,确保两通路的信息平衡。
3、在使用残差结构前采用卷积核较小卷积层
实验
CIFAR-10的图片要做减去均值的预处理操作,ImageNet采用224X224的输入操作。由于没有使用BN,所以权重初始化有要求。
同时对于VGG网络,在每个ReLU后面都设置drop out,除了pooling层。对于残差网络,drop out只用在non-identity的ReLU的后面。
VGG实验:在执行Normalization时只需随机选着256张图片。2500time-steps之后,分类错误率就不变了,所以Normalization只需根据这个时间段来进行。
RESNET实验
能耗计算
总结与未来工作
往SNN加入batch,用些函数更接近生物神经元的来训练ANN