Spiking-YOLO: Spiking Neural Network for Energy-Efficient Object Detection

Spiking-YOLO: Spiking Neural Network for Energy-Efficient Object Detection

2021-04-19 21:18:15

 

Paperhttps://ojs.aaai.org/index.php/AAAI/article/view/6787/6641 

Code (Un-Official)https://github.com/cwq159/PyTorch-Spiking-YOLOv3 

 

1. Background and Motivation: 

本文提出一种基于 SNN 的物体检测方法,即从 ANN 到 SNN 的转换,从而实现低功耗的物体检测。为了解决在 ANN2SNN 转换过程中存在的如下两点问题:

  a). Inefficiency of conventional normalization methods; 

  b). Absence of an efficient implementation method of leaky-ReLU in an SNN domain. 

作者提出了两种对应的方法进行应对:Channel-wise normalization and signed neuron with an imbalanced threshold

 

2. Our Approach: 

2.1. Channel-wise data-based normalization 

  常规的脉冲神经元中,用到阈值的方法进行脉冲发放的控制。但是如何设置该阈值,是一个头大的问题,设置的太低和太高会导致过发放、欠发放的问题。为了解决该问题,权重和阈值权重,均需要仔细的选择,以进行充分平衡的激活。前人也提出了很多归一化的方法,其中,较为著名的是 Layer-wise normalization。但是,作者的实验表明,在 deep SNN 中采用这些方法进行归一化,会在物体检测任务上得到严重降低的结果。然后作者对这种现象进行了分析,如图1所示:

 

其中,x 轴是 channel index,y 轴是 normalized maximum activation values. 绿色和红色的线分别表示每一层归一化之后的激活 average 和 minimum values。可以发现,被处理后的激活值变得非常小,这使得在物体检测任务上,效果变得很差。为了解决该问题,作者提出了一个更加细粒度的归一化方法,称为 channel-wise normalization 来确保快速和高效的信息传递。与常规 layer-wise 的方式不同,作者这里用的是 channel-wise 的方式:

 

其中,i 和 j 均为 channel 的索引。

  

 

从具体做法的角度来说,第 l 层的权重 w,会被每一层的最大激活 \lambda_j^l 进行归一化。最大激活是从 training dataset 中计算得到的。在紧跟着的 layer,被归一化的激活再乘以上一层的最大激活,以得到归一化前的原始激活先验。算法的细节如 算法1  和 图2 所示。

关于为何会改善发射率,作者专门进行了分析,如图3  和 图4 所示,在多个卷积层上均得到了明显的改善。

 

2.2. Signed Neuron Featuring imbalanced threshold

作者提到在 SNN 领域中,有效地 leaky-ReLU 方法并没有得到广泛的讨论。作者提出了一种新的方法来达到 leak-ReLU 的效果(signed neurons with IBT, imbalanced threshold):

 

如图 6 所示,

 

 

 

 

3. Experimental results

 

 

 

 

 

 

  

 

 

  

==

posted @ 2021-04-19 21:21  AHU-WangXiao  阅读(487)  评论(0编辑  收藏  举报