【读论文】Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition

论文标题
IJCV 2015 ANN2SNN的开山之作

摘要

本文提出一个将深度CNN转换为SNN的新方法,使得CNN可以直接映射到神经形态硬件上实现低耗高性能。首先将CNN裁剪满足SNN的要求,训练CNN,最后将CNN权重直接应用于SNN。在Neovision2 Tower and CIFAR-10数据集上达到与源CNN 相当的准确率。这种基于脉冲硬件比基于FPGA硬件上实现CNN节能两个数量级。

背景

CNN适合在具有显著数据处理能力的传统CPU上实现,尽管它很适合处理视觉问题并具有高准确率,但CNN变得越来越复杂,需要更多算力,限制了CNN的应用。而基于脉冲的硬件具有低能耗的优势,于是本文考虑将CNN转换为SNN。

主要内容与做法

CNN直接转换成SNN造成难以接受的精度损失原因:

  1. CNN中负输出值在SNN中很难准确表示,负值产生原因:
    a. tanh()输出在-1.0到1.0
    b. 卷积层输出是权重 * 输入 + 偏置,当权重与偏执均为负会造成输出为负
    c. 预处理可能产生负值
    尽管可以通过抑制性神经元表示负值,但会使神经元数量增加一倍,会带来更大的硬件资源与功耗,并不可取。
  2. SNN不好表示bias
  3. 最大池化需要两层SNN,增加复杂性可能导致精度损失

为使其适合SNN,对CNN结构的调整:

  1. 使所有层的输出值为正:
    a.对预处理结果使用abs()
    b.使用ReLU作为激活函数
  2. 去掉所有卷积层和全连接层的bias
  3. 使用平均池化代替最大池化
    【读论文】Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition_第1张图片
    图1. 源CNN结构
    【读论文】Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition_第2张图片
    图2. 调整后的CNN结构
    【读论文】Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition_第3张图片
    图3. 转换后的SNN结构
    【读论文】Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition_第4张图片
    图4. SNN具体结构(本文使用IF神经元模型)
    注意:本文提出的方法并不局限于IF神经元模型,也可以使用其他的脉冲神经元模型,但需要其特性与CNN激活函数匹配。

总结

本文提出了一种将CNN转换为SNN的新方法,适用映射到基于脉冲的神经形态硬件,可以将任意大小的CNN映射到SNN并获得源CNN的性能优势。

你可能感兴趣的:(ANN2SNN,深度学习,神经网络,ANN2SNN)