AAAI-20
摘要
本文提出两个新方法为深度SNN提供快速、准确的信息传递:通道归一化和具有不平衡阈值的带符号神经元;本文也提出了一个基于脉冲的目标检测模型:Spiking-YOLO,并且在non-trivial datasets, PASCALVOC 和 MS COCO数据集上达到了和Tiny YOLO相当的精度,而且神经形态芯片上的Spiking-YOLO比Tiny YOLO消耗的能量少280倍,收敛速度也比之前的SNN方法快2.3到4倍。
背景
深度神经网络(DNNs)可以解决更多现实中的复杂问题,但需要更加精确的模型与训练数据,这导致大量计算开销和能耗,为了解决这个挑战,很多研究者试图通过剪枝、压缩、量化等方法设计出计算-能量高效的DNN,并达到很ok的效果。但为了达到更高的精度,随着网络变深、变复杂,计算和能耗也不断增加。SNN作为第三代神经网络具有事件驱动计算的特点,具有稀疏性,可以提供出色的效率,是神经形态结构的首选神经网络。但SNN由于其脉冲神经元的复杂动力学与不可导而缺乏有效的训练算法,从而局限于小的数据集(MNIST和CIFAR)以及浅层结构。尽管DNN-SNN的方法在MNIST和CIFAR上达到了和DNN相当的精度,但在ImageNet数据集上的结果并不理想。
本文研究了深度SNN中一个更高级的机器学习问题,即使用DNN-SNN转换方法进行目标检测,并深度分析了目标检测应用于深度SNN时会出现这样的问题:
- 传统归一化方法效率低下;
- SNN中缺乏有效的Leaky-ReLU的实现方法;
主要贡献
- 首次提出基于深度SNN的目标检测模型(Spiking-YOLO)
- 通道归一化(快速准确的信息传递)
- 具有不平衡阈值的带符号神经元(准确高效模拟Leaky-ReLU)
主要内容与做法
常规的归一化方法(避免神经元过度激活或激活不足而导致信息损失):
- Data-based normalization
- Layer-based normalization
- 扩展Layer-based normalization(使用最大激活值的第99.9百分位 Rueckauer et al. 2017)【这个我也没太懂,回头读一下原文】
但是在目标检测中使用常规的归一化方法,模型性能会明显下降,主要是因为,越小的激活值,SNN越需要更长的时间步长来准确传输,不够长的话就不准。
本文提出的通道归一化(Channel-norm)
本文的方法以通道方式而不是传统的分层方式,通过最大可能的激活值(99.9百分位)来进行权重归一化;可以消除极小的激活(即激活不足)
其中,i , j 是通道的下标,λ是该通道的最大激活值(通过训练集算的)
图示如下:
具体算法如下:
具有不平衡阈值的带符号神经元(对于Leaky-ReLU的模拟)
其中α是Leaky-ReLU中的泄露项系数;
总结
本文提出Spiking-YOLO,这是首次在目标检测上达到与源DNN相当精度的SNN模型,为此本文也提出了通道归一化和具有不平衡阈值的带符号神经元模型两个新方法。