大改Yolo框架 | 能源消耗极低的目标检测新框架(附论文下载)

点击上方“小白学视觉”,选择加"星标"或“置顶”

重磅干货,第一时间送达

作者:Edison_G

使用常规深度神经网络到脉冲神经网络转换方法应用于脉冲神经网络域时,性能下降的很多,深入分析后提出了可能的解释:一是来自逐层归一化的效率低,二是用于leaky-ReLU函数的负激活缺乏表示。

56c8623758e09b931f936f9198aa3d4f.jpeg

1.前言

在过去的十年中,深度神经网络(DNNs)在各种应用中表现出显著的性能。当我们试图解决更艰难和最新的问题时,对计算和电力资源的需求增加已经成为不可避免的。

Spiking neural networks(SNNs)作为第三代神经网络,由于其事件驱动(event-driven)和低功率特性,引起了广泛的兴趣。

bf8027ea2b716bb8482a495679d4a813.png

然而,SNN很难训练,主要是因为它们的神经元复杂的动力学和不可微的尖峰操作。此外,它们的应用仅限于相对简单的任务,如图像分类。

在今天的分享中,作者研究了SNN在一个更具挑战性的回归问题(即对象检测)。通过深入分析,引入了两种新的方法:channel-wise normalizationsigned neuron with imbalanced threshold,这两种方法都为深度SNN提供了快速的信息传输。因此,提出了第一个基于尖峰的目标检测模型,称为Spiking-YOLO

2.新框架贡献

尽管SNN有很多好处,但目前仅能处理相对简单的任务,由于神经元复杂的动态性以及不可导的操作,暂时没有一个可扩展的训练方法。DNN-to-SNN是近期广泛的SNN训练方法,该方法将目标DNN转化成SNN的中间DNN网络进行训练,然后转成SNN并复用其训练的参数,在小数据集分类上能达到不错的性能,但是在大数据集上分类结果不太理想
论文打算使用DNN-to-SNN转化方法将SNN应用到更复杂的目标检测领域中,图片分类只需要选择分类就好,而目标检测则需要神经网络进行高度准确的数字预测,难很多。在深入分析后,论文实现YOLO的转换主要面临以下两个问题:

  • 常用的SNN归一化方法过于低效,导致脉冲发射频率过低。由于SNN需要设定阈值进行脉冲发射,所以要对权值进行归一化,这样有利于阈值的设定,而常用的SNN归一化方法在目标检测中显得过于低效,后面会详细阐述

  • 在SNN领域,没有高效leaky-ReLU的实现,因为要将YOLO转换为SNN,YOLO中包含大量leaky-ReLU,这是很重要的结构,但目前还没有高效的转换方法

来自韩国的比较冷门或者前沿一点的文章,研究方向是脉冲神经网络(Spiking Neural Networks)YOLO算法的融合,发现韩国人特别擅长对YOLO,SSD等算法进行魔改啊。

  • 提出一种在深度SNN中能够进行快速精确信息传输的Spiking-YOLO算法。这是第一次将深度SNN成功应用于目标检测任务的工作;

  • 为深度SNN开发了一种成为逐通道归一化的精细归一化技术。所提出的方法使得在多个神经元中更高的发射率成为可能,这促成了快速并且精确的信息传输;

  • 提出了一种新颖的方法,其特点在于具有不平衡阈值的带符号神经元,这些神经元让SNNs中的leakyReLU得以实现。这给深度SNN应用于各种模型和应用创造了机会。

3.新框架

Channel-wise data-based normalization

在SNN中,根据输入的幅度产生脉冲序列进行无损的内容传递是极为重要的。但在固定时间,激活过度或激活不足的神经元内将可能导致内容损失,这和临界电压outside_default.png的设置有关。设置过高,神经元需要累积很长时间的电压才能发射脉冲,相反则会过多地发射脉冲。发射频率通常定义为outside_default.pngoutside_default.pngoutside_default.png个timestep的脉冲发射总数,最大的发射率为100%,即每个timestep都发射脉冲:

080ba214703bbac8e9ea611141855005.jpeg

为了防止神经元的激活过度和激活不足,权值和临界电压都需要精心地选择。为此,很多研究提出了归一化的方法,比如常用的Layer-wise normalization(layer-norm)。该方法通过该层的最大化激活值来归一化层的权值,如上公式,outside_default.pngoutside_default.png为权重,outside_default.png为输出特征图最大值。

经过归一化后,神经元的输出就归一到outside_default.png,方便设定临界电压。由于最大激活值outside_default.png从训练集得到的,所以测试集和训练集需要有相同的分布,但论文实验发现这种常规的归一化方法在目标检测任务上会导致明显的性能下降。

基于数据的逐通道归一化

传统的脉冲神经网络中,需要确保神经元根据其输入大小产生脉冲序列,其中权值和阈值电压分别负责神经元激活的充足度和平衡度,这会导致要么欠激活要么过激活,从而使信息丢失和性能不佳。

作者深入分析并证明了细粒度的通道正则化可以通过极小的激活来提高神经元的发射率。换句话说,非常小的激活被正确归一化,将在更短的时间内准确地传输信息。文章认为通道正则化的应用可以带来更快更准确的深度SNN,这将使深度SNN应用于更高级机器学习问题成为可能。

5aac67c822fb867f5fa232cb2fefa767.png

上图展示了通过layer-norm后的各层每个channel的最大激活值,蓝色和红色的线分别为每层的平均激活值和最小激活值。可以看到每层的归一化后的激活值偏差较大,总体而言,layer-norm使得神经元的channel偏向激活不足,这在仅需选择分类的图片分类任务是不被察觉的,但对于需要预测准确值的检测任务的回归则不一样。比如传递0.7,则需要在10个timestep脉冲7次,0.007则需要在1000timestep脉冲7次。当tempstep本身就很少时,过低的发射率可能会因发射不到足够的脉冲而导致信息丢失。

Proposed normalization method

19b44b20dbabb04c6a7333b9becdcae2.png

整个流程如下:

311b25f9540ae4456f4ab56a42bf727c.png

具体的逻辑如上图和算法,channel-wise的归一化方法能够消除激活值特别小的问题,即得到更高但合适的发射频率,在短时间内也能准确地传递信息。

1338b682029e8ae30198c2981fbdba04.png

7b7ccc2c38a5525a24e75656d2cfc08d.png

97f5c179ac4a2f5d36b760fe9c5f2d65.png

Signed neuron featuring imbalanced threshold

582b0e03020973763006f3bd64d7ab1c.png

具有不平衡阈值特征的带符号神经元

引入了一种具有不平衡阈值(即IBT)的带符号神经元,它不仅可以对正负激活进行解释,还可以对leakyReLU负激活值区域的渗漏项进行补偿。如下图所示,作者增加了另外一个Vth负责对负激活响应。

0caec7b2067ae7662a79b6f867ac0ac3.png

其中,具有IBT的带符号神经元的基本动力学公式如下所示。

99667b355c4f41d222eee5ae1e57096e.png

通过使用上述具有IBT的带符号神经元,可以在SNN中使用leakyReLU,从而将各种DNN模型转换为广泛应用的SNN。

4.实验结果与评估

作者使用Tiny YOLO的实时目标检测模型,在脉冲神经网络中实现最大池化层和BN层。模型在PASCAL VOC2007和2012上训练,在PASCAL VOC2007上测试。所有代码基于Tensorflow Eager框架,在V100的GPU上进行实验。

文章通过实验的设计验证并分析了使用通道正则化和有符号神经元的IBT存在的用处。如下图所示,当通道正则化和有符号神经元都使用时,脉冲-YOLO能够达到51.61%的mAP,这个性能比较高了。

ff3ee2e4ab9b7ad997619500fe902ac5.png

此外,逐层正则化的mAP仅仅46.98%,而通道正则化优势明显,收敛速度也更快。如果不使用本文提出的这两种方法,Spiking-YOLO无法检测目标,如果仅仅使用有符号神经元的话,mAP仅仅7.3%,这表明有符号神经元可以补偿leakyReLU的不足项,并且在解决深度SNN中这种高数值精度问题中起着关键作用。

在上图中,作者还在两种输出编码方案上进行了额外的对比实验,一种基于累计Vth,一种基于脉冲数量。实验结果表明基于Vth的输出编码方案在解释尖峰序列时将更精确,也体现出收敛更快的特点。

aab6e85172803987a634c9feaeeaa942.png

实验的目的是无损地将Tiny-YOLO的转移为SNN,结果如上图所示,使用channel-norm和IBT能有效地提升性能,且使用的timestep更少。

6236b1534fbd5c50c007487f04d5fbc9.png

作者尝试了不同的解码方式,分别为膜电压outside_default.png和脉冲数outside_default.png,由于脉冲数的余数要舍弃,这会带来误差和信息损失,所以基于膜电压进行解压会更准确。

bfce3e2bcba11f18f886eb799352d216.png

3f1e65ebce9e19993191d3625a719723.png

5663062fcf34a5fb9b698aef8d04f0f0.png

5.总结

在今天分享中,作者提出了Spiking-YOLO,第一个SNN模型,通过在non-trivial datasets、PASCALVOC和MSCO上获得与原始DNN相似的结果来成功地执行目标检测。 

我认为,这项研究代表了解决深度SNN中更高级的机器学习问题的第一步。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值