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

这篇文章是2019年发在frontiers in Neuroscience的《Going Deeper in Spiking Neural Networks:VGG and Residual Architectures》,作者来自于普渡大学的Kaushik Roy组(负责Nanoelectronics Research Laboratory),第一作者是Abhronil Sengupta(18年毕业,现在在宾州州立做助理教授),还有和facebook reality labs的人员参与。

文章提出了一种将更深层的ANN转化成SNN的算法,可以实现VGG和ResNet的转化,在CIFAR-10和ImageNet上测试。

方法

SNN模型

  • 输入使用泊松随机产生500-1000个timesteps
  • 使用了激活后降低到0的neuron模型

网络限制

  • 不用bias
    • BN层换成dropout来做正则化
  • Pooling层使用avgpool

VGG转化

  • 激活阈值Vthr设置成最大ReLU的激活值
    • 被叫做”weight-normalization”或者”threshold-balancing”
      • weight normalization是将weight scale到和最大neural activation,Vthr设置为1
      • threshold-balancing是保持weight大小,Vthr设置到最大激活
  • Spike-Norm
    • 由于使用了降低到0的neuron模型,输入信息会有损失
    • 一层一层单独来转,保证最小化neuron的temporal delay,同时保证阈值不会太小
      • temporal delay是由于evidence integration导致的输入spike到输出spike的时间差
      • evidence integration(证据整合),就是乘累加计算
    • 每层的weight-normalization/threshold-balancing根据spike的输入来确定
      • Vthr=max(Vthr,max(Wx))

ResNet转化

  • 在加法之后加入ReLU
    • 因为ReLU才会Spike,因此ResBlock的第二层Conv和输入共同evidence integration,整合后转化成IF
    • 提供了一个时序balancing的作用
  • 输入layers使用相同threshold
    • 因为网络第一层conv出来的threshold比较高,但是ResBlock的conv出来的threshold比较低,junction layer的spike会被identity mapping的输入主导,需要balance
    • 两支的threshold都设为1
  • 7x7转为3x3的卷积
    • threshold-balancing更好

实验

  • VGG CIFAR-10 ANN 91.7%,SNN 91.5%
  • VGG ImageNet ANN 70.5% SNN 70%
  • ResNet-20 CIFAR-10 ANN 89.1% SNN 87.5%
  • ResNet-34 ImageNet ANN 70.7% SNN 65.5%

总结

论文将ANN全转化到SNN上,通过对VGG和ResNet的实践,发现不同网络需要特定处理。并且提供了一层一层转化的思路,直接利用Spike的信息,值得借鉴。

#
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×