Going Deeper in Spiking Neural Networks:VGG and Residual Architectures笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34886403/article/details/82534514

摘要

论文提出了一种将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

猜你喜欢

转载自blog.csdn.net/qq_34886403/article/details/82534514
今日推荐