赞
踩
作者: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
背景:
问题:
工作:
总结:
人工神经网络发展迅速全面,但人工神经网络具有巨大的能量消耗,这使得在移动设备上部署变得困难。由于尖峰事件的稀疏性和事件驱动计算的特点,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使用具有不平衡阈值的通道归一化和带符号神经元来减少转换误差,并基于YOLOv3-tiny进行转换。
(这个分析与论文Low Latency of object detection for spikng neural network有些重合)
公式分析之后专门补
1.巨大的时间步长需求
2.截断误差
较大的时间步长可以减少量化误差、不均匀误差,从而降低转换损失。然而,更大的时间步长也带来了时间延迟的增加。我们提出了时间步压缩方法来缓解这个问题。
时间步长压缩意味着将多个时间步的信息压缩到一个时间步,并使用突发或二进制峰值传递信息。突发尖峰[44]-[46]是一组短尖峰间间隔(ISI)尖峰,可以在一个时间步发出多个尖峰。
图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),Vmem≥k∗Vthr,0,Vmem<Vthr,
虽然在上一节中,我们使用时间步压缩来减少模型推理过程中时间步的要求,但频率编码的使用使模型仍然效率低下。同时,据报道,即使尖峰放电速率相同,神经元也会以不同的方式协调动作电位。
在我们的工作中,我们使用 TS [31] 来避免对错误有序放电的负尖峰引起的准确性的破坏。TS 的使用将尖峰集中在时间步的开头,这让我们有机会将时间信息嵌入到尖峰训练中。因此,我们提出了一种称为尖峰时间相关集成 (STDI) 编码方法的编码方法,进一步提高了模型的推理速度和能量效率。
定义权重后,由发射尖峰表示的输入值变为s(t)*τ。图4(a)显示了加权峰值和输入值之间的对应关系。图图4(a)还表示,STDI可以使t∈[0,t]内的尖峰发射比远大于1,这解决了截断误差。当面临过多的截断误差时,STDI可以通过在一个时间步长中积分多个尖峰(突发尖峰)来消除这种误差,如图所示。当输入值为12时,第4(a)段。加权尖峰导致输入信息编码方式的改变。在以前的SNN对象检测工作中,我们需要在整个时间步长中保持恒定值的信息输入,然后使用SNN模型的第一层对其进行编码。在对尖峰进行加权的情况下,只需要在第一个时间步长将信息馈送到模型中。这在一定程度上降低了能源消耗。
图4:(a) 显示了输入值与尖峰发行时刻之间的对应关系。(b) 说明了使用 STDI 后信息传输的主要过程。
STDI的模型适应性
本研究采用了TS方案,观察到STDI的两个不同阶段,即累积阶段和发射阶段。
在积累阶段,根据Eq. 19将输入信息累积到膜上。在放电阶段,阈值根据时间减小。累积的膜电位搜索正确的放电时间释放尖峰。具体来说,当膜电位在当前时刻的峰值阈值小于峰值阈值时,峰值不会被触发并等待下一个时刻。当膜电位大于此时的峰值阈值时,峰值火灾和膜电位根据减法复位[36]减小。循环这个过程,直到膜电位低于Vthr。具体算法如算法1所示。在输出层,我们需要根据Eq. 20将峰值训练解码为峰值比。图4(b)说明了整个过程。
应用 STDI 的优点是可以通过很少的尖峰来完成细胞间消息传递。结合时间步压缩,我们可以用更少的峰值和更低的时间步来表达和传达信息。
图5:假设时间步长T为6,则分别使用频率编码、时间步长压缩和STDI来表示尖峰比率=1。其中黑色垂直线是二进制尖峰,红色垂直线是突发尖峰。这个例子表明,通过使用STDI和时间步长压缩,原本需要六个尖峰的信息可以仅用一个二进制或突发尖峰来表达,具有相应较低的时间步长。
在比较了YOLO系列模型后,我们选择YOLOv5s作为我们的ANN到SNN转换的主干。与Spiking YOLO使用的YOLOv3 mini相比,YOLOv5s具有更深的网络和优化的特征提取结构,如FPN+PAN(即SPPF),使其更易于开发。
图6:传统的SPPF(左图)包含两个CBR层和三个跨距为1的Maxpool层,并通过concat操作连接这些层。作为比较,Spike SPPF使用Spike-Conv.层和基于膜电位的Spike Maxpooling在Spike序列上实现相同的操作。右图中圆圈的扩展图显示了基于膜电位的Spike Maxpooling的具体方法,包括五个阶段。
Spike-Maxpooling According to Membrane Potential
SNN中现有的Maxpool方法主要包括两种:一种是“赢者通吃”,即池化神经元接受所有先前的尖峰并将其相加。通过这种池化方法获得的池化层值通常大于实际值。另一种是直接或间接计算最大放电率神经元的尖峰数量。这些方法很复杂,尤其是在压缩时间步长和STDI的情况下。提出了一种基于膜电位的Spike Maxpooling方法,该方法以一种简单的方式允许SNN在任何步长的Maxpool。
Spike-SPPF
使用Spike SPPF后,SNN模型的准确性提高了约3%。
基本就是数据分析,这段就略写了
配置: Intel Core i7-8700K CPU or NVIDIA RTX2080Ti GPU with CUDA 10.1.
数据集:PASCAL VOC 和 MS COCO
用于评估实验准确性的度量是mAP@0.5。
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=1∑nt=1∑Tsl(t)+∑pin,(23)
为了更合理地衡量SNN的能耗,我们使用基于转换样本数据集的平均FLOPs。
动态场景下的性能评估。(a)和(b)分别为数据集a和数据集b的检测结果。上面一行显示PC的结果,下面一行显示机器人的结果。©为视频流的检测结果,上行为PC上模拟实时视频流的检测结果,下行为机器人上实时机器人视频流的检测结果。
本文提出了三种优化SNN转换精度和运行速度的主要方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。