摘要: 脑启发的脉冲神经网络(Spiking Neural Networks, SNNs)在生物合理性和低功耗方面相比于人工神经网络(Artificial Neural Networks, ANNs)具有优势。然而,由于性能较差,SNNs 的应用目前仅限于简单的分类任务。在这项工作中,我们专注于缩小 ANNs 和 SNNs 在目标检测任务上的性能差距。我们的设计围绕网络架构和脉冲神经元展开。首先,当将 YOLO 系列模型转换为相应的脉冲版本时,过于复杂的模块设计会导致脉冲退化。我们通过简化原始 YOLO 并结合元 SNN 模块,设计了一种 SpikeYOLO 架构来解决这个问题。其次,在将膜电位转换为二进制脉冲的过程中,目标检测对量化误差更加敏感。为应对这一挑战,我们设计了一种新的脉冲神经元,该神经元在训练期间激活整数值,同时通过在推理过程中扩展虚拟时间步,保持脉冲驱动。我们在静态和神经形态目标检测数据集上验证了所提出的方法。在静态的 COCO 数据集上,我们获得了 66.2% 的 mAP@50 和 48.9% 的 mAP@50:95,分别比之前的最先进 SNN 提高了 15.0% 和 18.7%。在神经形态的 Gen1 数据集上,我们达到了 67.2% 的 mAP@50,比具有相同架构的 ANN 提高了 2.5%,并且能效提高了 5.7 倍。代码:https://github.com/BICLab/SpikeYOLO
1. Intro
目前Direct-Trained的SNN精度和ANN有差距,面临的问题包括:
- 量化误差
- 像YOLO这样比较深的网络直接插入Neuron,脉冲会逐渐退化,后面的neuron几乎不发放,导致模型精度很差
Contributions:
- SpikeYOLO :我们在 SNNs 中探索了适用于处理目标检测任务的架构,并提出了 SpikeYOLO,它简化了 YOLOv8 并结合了元 SNN 块。这启发我们,复杂的模块设计在 ANN 中可能适用,但不一定适合 SNN 的架构设计。
- I-LIF 脉冲神经元 :我们提出了 I-LIF 脉冲神经元,将整数值训练与脉冲驱动推理相结合。前者用于减少脉冲神经元的量化误差,后者则是 SNNs 低功耗特性的基础。
- 性能表现 :该方法在目标检测数据集上以低功耗实现了出色的准确性,展示了 SNNs 在复杂视觉任务中的潜力。在 COCO 数据集上,我们获得了 66.2% 的 mAP@50 和 48.9% 的 mAP@50:95,分别比之前的最先进 SNN 提高了 15.0% 和 18.7%。在 Gen1 数据集上,SpikeYOLO 比具有相同架构的 ANN 模型高出 2.5%,能效提高了 5.7 倍。
2. Related Works
SNN Training Method: 梯度替代,这边没有讨论STDP相关的内容。
SNN Architecture Design: 基于CNN的和基于transformer的,其中Spiking Resnet系列的网络长期占据主导地位,因为残差链接可以解决SNN随着深度增加出现的性能退化的问题。Transformer在最近流行起来并且成为SOTA。SpikeYOLO借鉴了YOLOv8的结构和Meta-SpikeFormer的元SNN块的思想。
Quantization Errors in SNNs: 转换的方法一般可以增加timestep来减少量化误差,但是直接训练的方法不能这么做,所以一般是通过调整threshold和膜电位的分布之间的关系。
Object Detection: 反正就是目前的SNN的精度都不是很好。
3. Method
3.1. Network Input
input: ,是timestep,是通道数,是空间分辨率。静态图像被重复编码成每个timestep上的重复输入,网络的第一层将输入的连续值编码成脉冲信号;来自DVS的数据一般是在固定的时间窗口内将事件聚合为一帧,然后逐帧输入网络。
3.2. SpikeYOLO Architecture
3.2.1 Network Output
输出个目标的,分别为置信度,类别,中心坐标和尺寸。
3.2.2. Macro Design
单阶段,划分为多个网格,每个网格分开识别。保留传统的backbone-neck-head架构,但是删除ANN中类似C2F这样的在同一个特征图上重复提取特征的操作, 因为这样的操作在ANN上可以提高精度,但是换成SNN之后表现很差。
3.2.3. Micro Design
模仿Meta-SpikeFormer构建了Meta-SNN Block,可以写作:
是输入,是一种 inverted separable convolution module,就是首先用11的卷积扩展通道数,然后在做其他卷积,然后再用11的卷积还原通道数。MobileNetv2是77然后33,可以写成
其中和 是深度卷积, 和 是点卷积。 是脉冲神经元层。 是通道混合器模块,促进了跨通道信息的融合。我们在目标检测任务中重新设计了 。
对于SNN-Block-1,有
其中 是一个扩展比例为 的标准卷积。相反,在处理高阶特征时,SNN-Block-2 使用重参数化卷积来最小化参数数量,其表达式为:
3.3. I-LIF Spiking Neuron
Integer-LIF的想法是在训练的时候保持整数的输入输出,而在推理的时候才变成spike的形式。
在训练的时候,膜电位计算到的数据只Clip之后四舍五入,然后发放一个整数给下一层也就是
D是支持的最大的整数。在推理的时候,每个timestep被拓展为D个timestep。
4. Experiments
在普通图片数据集COCO2017和DVS数据集Gen1上都做了实验。
消融实验:
5. Conclusion
本研究显著缩小了 SNNs 和 ANNs 在目标检测任务上的性能差距。我们通过网络架构和脉冲神经元的设计实现了这一目标。提出的 SpikeYOLO 架构摒弃了原始 YOLO 系列中的复杂模块设计,采用了简单的元脉冲块来构建模型。随后,提出了能够进行整数值训练和脉冲驱动推理的 I-LIF 脉冲神经元,以减少量化误差。我们在 COCO 数据集上将 SNN 领域的性能上限分别提高了 +15.0%(mAP@50)和 +18.7%(mAP@50:95)。在神经形态的 Gen1 数据集中,SpikeYOLO 在相同架构下比 ANN 达到了更好的性能和更低的功耗。此外,我们研究了在不同数据集中具有等效架构的 ANNs 和 SNNs 的性能,结果表明重新设计的 SNN 架构表现更佳。本研究使 SNNs 能够处理复杂的目标检测任务,并能激发 SNNs 在更多视觉场景中的应用。