当前位置:   article > 正文

SNN论文阅读笔记(1):SHUD

SNN论文阅读笔记(1):SHUD

Spiking Neural Network for Ultra-low-latency and High-accurate Object Detection

作者:Jinye Qu, Zeyu Gao, Tielin Zhang, Yanfeng Lu, Member, IEEE,Huajin Tang, Member, IEEE, and Hong Qiao, Fellow, IEEE

发表日期:2023.6.27

发表刊物(会议):没找到

关键词:Spiking neural network, Object detection, Low latency, Timesteps compression

[连接]: https://doi.org/10.48550/arXiv.2306.12010

摘要

背景:

  • 脉冲神经网络(SNNs)因其能量效率和受大脑启发的事件驱动特性而受到广泛关注。

问题:

  • 虽然SpikingYOLO等最近的方法已将SNN扩展到更具挑战性的对象检测任务,但它们往往存在高延迟和低检测精度的问题,使其难以部署在对延迟敏感的移动平台上。
  • 从人工神经网络到神经网络的转换方法很难保持神经网络的完整结构,导致特征表示较差,转换误差较大。

工作:

  • 提出了两种方法:时间步长压缩尖峰时间相关集成(STDI)编码。前者通过压缩信息来减少ANN-SNN转换所需的时间步长,而后者设置时变阈值来扩展信息保持能力。
  • 提出了一种基于SNN的超低延迟和高精度目标检测模型(SUHD),该模型在PASCAL VOCMS COCO等非平凡数据集上实现了最先进的性能,与MS COCO数据集上的SpikingYOLO相比,时间步长减少了约750倍,平均精度(mAP)提高了30%

总结:

  • 据我们所知,SUHD是迄今为止最深的基于脉冲的目标检测模型,它实现了超低的时间步长来完成无损转换。

I.介绍

人工神经网络发展迅速全面,但人工神经网络具有巨大的能量消耗,这使得在移动设备上部署变得困难。由于尖峰事件的稀疏性和事件驱动计算的特点,snn具有显著的能量效率,是神经形态芯片的首选神经网络。
由于snn的非微分性,梯度不能直接在反向传播过程中计算,这使得直接训练snn是困难的
目前获得snn主要有两种方法,一种是ANN-SNN的转换获得的,即处理训练好的ann权重以获得可用的snn,另一种是通过峰值时间相关可塑性(STDP)或峰值时间依赖反向传播(STDB),从头学习snn权重。

Q.Yu等人在MNIST、FashionMNIST和CIFAR10[14]中使用了双阈值方案和增强尖峰方案来实现无损转换。C.Hong等人提出了一种改进的SpikeProp学习算法,确保了SNN更好的学习稳定性[26]。N.Rathi等人提出使用第一卷积层作为编码层,并使用基于梯度下降的训练方法,使SNN的精度接近具有相同结构的ANN的精度[27]。

背景:

  • Spiking-YOLO是第一个基于SNN的目标检测模型,该模型基于YOLOv3-tiny骨干网在时间步长=8000处实现接近无损的ANN到SNN的转换,突破了该领域的界限。然而,该网络的实用性和部署受到其过多的时间步长要求的阻碍,23层的深度限制了其检测性能。
  • FSHNN 结合 STDP、STBP 和 Monte Carlo Dropout 方法,使 FSHNN 超过其基于异构 ANN 的 RetinaNet 的准确性。将时间步长从数千个减少到 300,显着提高了能源效率。然而,300个时间步仍然不足以模型在移动机器人平台上运行,模型在COCO数据集上的目标检测精度仍然无法与当前主流ANN模型(如YOLOv5)的性能相匹配。

动机:

  • 以往的大部分工作中snn难以在对延迟敏感的移动终端设备上部署。
  • 如何将深度神经网络的完整结构转化为具有超低时间步长和高精度的SNN是一个重要的问题。

贡献:

  • 提出了一种时间步长压缩方法,将多个时间步长压缩为一个时间步长,减少了人工神经网络对SNN转换和推理的时间步长要求,为SNN在工程应用中的部署提供了可能。
  • 提出了一种**基于时变阈值神经元模型的峰值时变集成编码(STDI)**方法。
  • 所提出的 Spike-SPPF 结构和 Spike-Maxpooling 方法提供了一种解决空间金字塔池快速 (SPPF) 结构转换问题的方法,实现了任何步幅的 Maxpool 层的无损转换并实现SPPF 的无损转换。
  • 提出了一种基于超低延迟、高精度的SNN的目标检测模型SUHD。SUHD 在两个 challgening 数据集(PASCAL VOC 和 MS COCO)上展示了出色的性能,以 4 个时间步长实现了最先进的结果。

II.相关工作

2.1 神经元编码

  • 频率编码
  • 时间编码

2.2 转换方法(ANN-SNN)

  • 时间分离
  • 膜电位初始化理论

2.3 Spiking-YOLO

Spiking-YOLO使用具有不平衡阈值的通道归一化和带符号神经元来减少转换误差,并基于YOLOv3-tiny进行转换。

III.方法

A.人工神经网络到SNN的转换算法及误差分析

(这个分析与论文Low Latency of object detection for spikng neural network有些重合)

公式分析之后专门补

1.巨大的时间步长需求

2.截断误差

B. 时间步长压缩

较大的时间步长可以减少量化误差、不均匀误差,从而降低转换损失。然而,更大的时间步长也带来了时间延迟的增加。我们提出了时间步压缩方法来缓解这个问题。

时间步长压缩意味着将多个时间步的信息压缩到一个时间步,并使用突发或二进制峰值传递信息。突发尖峰[44]-[46]是一组短尖峰间间隔(ISI)尖峰,可以在一个时间步发出多个尖峰。

image-20240229100017807

图3:提出的时间步压缩和传统方法之间的过程比较。我们首先将压缩尺度表示为 fc,这表明每个压缩时间步长包含来自 fc 未压缩时间步长的信息。例如,fc 设置为 3。然后我们将压缩时间步长和发射比表示为 Tc 和 rc。

时间步压缩由 i) 输入压缩、ii) 层压缩和 iii) 输出解压缩组成。

输入压缩和层压缩相当于将多个时间步压缩到一个时间步,这是时间步压缩的核心。这种关系如图 3 中的层压缩阶段和层传输阶段所示。通过输入压缩和层压缩,发射比从 r ∈ [0, 1] 映射到 rc ∈ [0, fc],过大的发射比与 fc times 未压缩时间步长下的发射比不匹配。输出解压缩通过将发射比从rc∈[0,fc]重新映射到r∈[0,1]来解决这个问题。

如上所述,时间步压缩提高了单个时间步的信息承载能力,减少了量化误差。

s c = { m i n ( k , f c ) , V m e m ≥ k ∗ V t h r , 0 , V m e m < V t h r , ( 12 ) s_c={min(k,fc),VmemkVthr,0,Vmem<Vthr,

\quad(12) sc={min(k,fc),0,VmemkVthr,Vmem<Vthr,(12)

C.尖峰时间相关集成编码

虽然在上一节中,我们使用时间步压缩来减少模型推理过程中时间步的要求,但频率编码的使用使模型仍然效率低下。同时,据报道,即使尖峰放电速率相同,神经元也会以不同的方式协调动作电位。

在我们的工作中,我们使用 TS [31] 来避免对错误有序放电的负尖峰引起的准确性的破坏。TS 的使用将尖峰集中在时间步的开头,这让我们有机会将时间信息嵌入到尖峰训练中。因此,我们提出了一种称为尖峰时间相关集成 (STDI) 编码方法的编码方法,进一步提高了模型的推理速度和能量效率。

  1. 加权脉冲

定义权重后,由发射尖峰表示的输入值变为s(t)*τ。图4(a)显示了加权峰值和输入值之间的对应关系。图图4(a)还表示,STDI可以使t∈[0,t]内的尖峰发射比远大于1,这解决了截断误差。当面临过多的截断误差时,STDI可以通过在一个时间步长中积分多个尖峰(突发尖峰)来消除这种误差,如图所示。当输入值为12时,第4(a)段。加权尖峰导致输入信息编码方式的改变。在以前的SNN对象检测工作中,我们需要在整个时间步长中保持恒定值的信息输入,然后使用SNN模型的第一层对其进行编码。在对尖峰进行加权的情况下,只需要在第一个时间步长将信息馈送到模型中。这在一定程度上降低了能源消耗。

image-20240229201314856

图4:(a) 显示了输入值与尖峰发行时刻之间的对应关系。(b) 说明了使用 STDI 后信息传输的主要过程。

  1. STDI的模型适应性

    本研究采用了TS方案,观察到STDI的两个不同阶段,即累积阶段和发射阶段。

    在积累阶段,根据Eq. 19将输入信息累积到膜上。在放电阶段,阈值根据时间减小。累积的膜电位搜索正确的放电时间释放尖峰。具体来说,当膜电位在当前时刻的峰值阈值小于峰值阈值时,峰值不会被触发并等待下一个时刻。当膜电位大于此时的峰值阈值时,峰值火灾和膜电位根据减法复位[36]减小。循环这个过程,直到膜电位低于Vthr。具体算法如算法1所示。在输出层,我们需要根据Eq. 20将峰值训练解码为峰值比。图4(b)说明了整个过程。

    应用 STDI 的优点是可以通过很少的尖峰来完成细胞间消息传递。结合时间步压缩,我们可以用更少的峰值和更低的时间步来表达和传达信息。

    image-20240229202241232

图5:假设时间步长T为6,则分别使用频率编码、时间步长压缩和STDI来表示尖峰比率=1。其中黑色垂直线是二进制尖峰,红色垂直线是突发尖峰。这个例子表明,通过使用STDI和时间步长压缩,原本需要六个尖峰的信息可以仅用一个二进制或突发尖峰来表达,具有相应较低的时间步长。

D.SPPF结构转换

在比较了YOLO系列模型后,我们选择YOLOv5s作为我们的ANN到SNN转换的主干。与Spiking YOLO使用的YOLOv3 mini相比,YOLOv5s具有更深的网络和优化的特征提取结构,如FPN+PAN(即SPPF),使其更易于开发。

image-20240229202504757

图6:传统的SPPF(左图)包含两个CBR层和三个跨距为1的Maxpool层,并通过concat操作连接这些层。作为比较,Spike SPPF使用Spike-Conv.层和基于膜电位的Spike Maxpooling在Spike序列上实现相同的操作。右图中圆圈的扩展图显示了基于膜电位的Spike Maxpooling的具体方法,包括五个阶段。

  1. Spike-Maxpooling According to Membrane Potential

    SNN中现有的Maxpool方法主要包括两种:一种是“赢者通吃”,即池化神经元接受所有先前的尖峰并将其相加。通过这种池化方法获得的池化层值通常大于实际值。另一种是直接或间接计算最大放电率神经元的尖峰数量。这些方法很复杂,尤其是在压缩时间步长和STDI的情况下。提出了一种基于膜电位的Spike Maxpooling方法,该方法以一种简单的方式允许SNN在任何步长的Maxpool。

    • 积累阶段:对输入的峰值训练进行解码,得到输入电压U_in并累积到膜上。
    • 恢复归一化 V r = m a x i n ∗ U i n , ( 21 ) V_r=max_{in}*U_{in},\quad\quad\quad\quad\quad(21) Vr=maxinUin,(21)
    • 池化阶段:我们将参与V_r竞争的神经元所在的区域命名为候选区域,如图6中圆圈内所示。候选区域的神经元进行V_r竞争。获胜者的V_r将被传递。
    • 重新归一化阶段:通过Eq. 22将V_r值归一化为输出电压U_out。
    • 点火阶段:对输出信号进行编码,然后释放它。
  2. Spike-SPPF

    使用Spike SPPF后,SNN模型的准确性提高了约3%。

IV.实验

基本就是数据分析,这段就略写了

A. Experiments Setup

配置: Intel Core i7-8700K CPU or NVIDIA RTX2080Ti GPU with CUDA 10.1.

数据集:PASCAL VOC 和 MS COCO

用于评估实验准确性的度量是mAP@0.5。

B. Ablation Study of Spike-SPPF

image-20240229204453600

C. Optimization of Accuracy and Speed Ablation Experiments

image-20240229204519842

image-20240229204536534

D. Compared with the-State-of-the-Arts

image-20240229204805808

image-20240229204747149

E. Model Robustness

image-20240229204836148

image-20240229204848811

F. Energy Efficiency

F L O P s = ∑ l = 1 n ∑ t = 1 T s l ( t )   +   ∑ p i n , ( 23 ) FLOPs=\sum_{l=1}^n\sum_{t=1}^Ts^l(t)\:+\:\sum p_{in},\quad\quad\quad(23) FLOPs=l=1nt=1Tsl(t)+pin,(23)

为了更合理地衡量SNN的能耗,我们使用基于转换样本数据集的平均FLOPs。

image-20240229205054312

G. Algorithm Deployment and Evaluation in Robot Platform

image-20240229205130583

动态场景下的性能评估。(a)和(b)分别为数据集a和数据集b的检测结果。上面一行显示PC的结果,下面一行显示机器人的结果。©为视频流的检测结果,上行为PC上模拟实时视频流的检测结果,下行为机器人上实时机器人视频流的检测结果。

V.总结

本文提出了三种优化SNN转换精度和运行速度的主要方法。

  • 第一种方法是时间步压缩,在无损转换过程中,这将所需的时间步显着减少到最小时间步。
  • 第二种方法是 STDI,通过增加单个尖峰的信息容量,在 CPU 上平均提高了 38%,在 GPU 上提高了 17%。
  • 第三种方法是一种基于膜电位的Spike-Maxpooling机制,便于人工神经网络中复杂高效结构的无损转换。通过结合时间步压缩和 STDI,我们获得了比初始转换方法(频率编码 + TS)在 CPU 上快 34 倍的结果。
  • 我们进一步构建了基于尖峰的高性能目标检测SUHD,它可以在移动平台上运行,并与最先进的技术相比具有综合性能。特别是SUHD是目前最深的目标检测模型,它可以在超低时间步长下实现无损神经网络到SNN的转换。

感悟

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/197240
推荐阅读
相关标签
  

闽ICP备14008679号