ANN Converse to SNN|(1) 开篇之作

Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition

作者:Yongqiang Cao, Yang Chen,Deepak Khosla
期刊:International Journal of Computer Vision
发表时间:2015
原文链接:paper

Conversion方法的开山之作,(在此之前也有类似思想的几个工作,后续会补充),训练SNN的困难很大,诸如STDP等生物可解释性方法在无监督上尚且效果不佳,在监督学习中,如何引入监督信号也是一大困难。作者想到能否定制一个与SNN结构相同的ANN结构,使用反向传播算法训练定制好的ANN,然后将得到的权重直接映射到SNN中去,作者使用的网络也较简单。

ANN Converse to SNN|(1) 开篇之作

主要工作

作者指出,转换的方法遇到的一大困难是不可接受的精度损失,可能的原因有三个:

  • 一是CNN网络中的负值很难在SNN中准确的表达,负值的来源主要有三个:
    • tanh**函数的输出在-1和1之间
    • 每个卷积层输出的特征图来源于输入的加权和加上偏置,当权重和偏置同时为负时会导致输出为负(关于加权输出为负的情况有很多,作者这里只列出了一种显而易见的情况)
    • 对输入的预处理可能产生负值
  • SNN很难表示偏置,不管bias是正还是负,SNN中没有这个概念
  • Maxpooling在SNN中需要使用两层来表示,增加复杂性的同时会造成精度下降

对于网络中的负值,作者指出,一种可能的方法是使用抑制性神经元,建立一个双脉冲发放机制的网络,但是会double神经元的数量并使得SNN连接更加复杂,为避免上述困难,作者提出CNN的网络要进行如下处理:

  • 首先是确保网络各层输出为正值
    • 对输入的预处理结果使用abs函数
    • 将tanh**函数改用ReLU**函数(这在现在已经不再是问题)
  • 去除卷积和全连接层的偏置项
  • 使用均值池化(作者说的是Spatial Linear Subsampling)而不是空间最大池化,stride要无重叠

使用LIF神经元模型

V(t)=V(t1)+L+X(t)IfV(t)θ,spikeandresetV(t)=0IfV(t)<Vmin,resetV(t)=Vmin V(t)=V(t-1)+L+X(t)\\ If\quad V(t) \geq \theta,\quad spike\quad and\quad reset\quad V(t)=0\\ If\quad V(t)<V_{min} ,\quad reset\quad V(t)=V_{min} 对于SNN中的LIF(经过实验,作者后续指出使用IF神经元更好)的阈值,作者将其作为了超参数进行设置,后续许多工作探讨了阈值选择的重要性。

ANN Converse to SNN|(1) 开篇之作

SNN的对预处理的输入进行泊松编码,设像素强度为IijkI_{ijk},其中ij表示空间位置,k表示通道位置,该像素在时刻t对应的输入为
ifrand<cIijk,thenspike if \quad rand < c I_{ijk}, \quad then \quad spike 其中cc用来控制最大脉冲发放频率,若像素强度为0-1,当c=1c=1时,最大脉冲发放频率为1KHz;若c=0.8c=0.8,最大像素1仅有80%80\%的概率发放脉冲;如果c>1c>1则会使部分像素强度没有区别,故这里的泊松编码的最大脉冲发放频率为1KHz,作者此处设置c=13c = \frac{1}{3}

实验

作者在Tower Dasaset和CIFAR-10上进行了验证。

ANN Converse to SNN|(1) 开篇之作

ANN Converse to SNN|(1) 开篇之作

在cifar-10实验之后,作者指出在复杂网络和任务上通常需要更多的仿真时间来达到与ANN相同的性能,同时指出三点改进

  • 使用IF神经元模型
    V(t=V(t1)+I(t) V(t = V(t-1)+I(t)

  • 使用软重置方法(作者并未提出这种说法)
    ifspike,V(t)=V(t)θ if \quad spike, \quad V(t) = V(t) - \theta

  • 第一个卷积层的阈值要进行改动(后续工作有分析为什么改动)

基于IF神经元和软重置的有效行会在后续的文章中进行说明,基于阈值改动的原因在max-norm的博客中进行说明。

总结

作为第一个提出的转换的方法,其中像泊松编码、IF模型(包括负值截断)、软重置、均值池化、阈值调整等技术一直沿用到现在,虽然没有明确指出ANN到SNN映射的理论,但已经注意到负值对整个转换过程的影响。