【读论文】Spiking-YOLO Spiking Neural Network for Energy-Efficient Object Detection

news2025/1/8 5:24:34

请添加图片描述
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时会出现这样的问题:

  1. 传统归一化方法效率低下;
  2. SNN中缺乏有效的Leaky-ReLU的实现方法;

主要贡献

  1. 首次提出基于深度SNN的目标检测模型(Spiking-YOLO)
  2. 通道归一化(快速准确的信息传递)
  3. 具有不平衡阈值的带符号神经元(准确高效模拟Leaky-ReLU)

主要内容与做法

常规的归一化方法(避免神经元过度激活或激活不足而导致信息损失):

  1. Data-based normalization
  2. Layer-based normalization
  3. 扩展Layer-based normalization(使用最大激活值的第99.9百分位 Rueckauer et al. 2017)【这个我也没太懂,回头读一下原文】

但是在目标检测中使用常规的归一化方法,模型性能会明显下降,主要是因为,越小的激活值,SNN越需要更长的时间步长来准确传输,不够长的话就不准。

本文提出的通道归一化(Channel-norm)

本文的方法以通道方式而不是传统的分层方式,通过最大可能的激活值(99.9百分位)来进行权重归一化;可以消除极小的激活(即激活不足)
请添加图片描述
其中,i , j 是通道的下标,λ是该通道的最大激活值(通过训练集算的)
图示如下:
请添加图片描述
具体算法如下:
请添加图片描述

具有不平衡阈值的带符号神经元(对于Leaky-ReLU的模拟)

请添加图片描述
其中α是Leaky-ReLU中的泄露项系数;
请添加图片描述

总结

本文提出Spiking-YOLO,这是首次在目标检测上达到与源DNN相当精度的SNN模型,为此本文也提出了通道归一化和具有不平衡阈值的带符号神经元模型两个新方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/181094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指针与数组

目录指针运算(补)指针指针指针的关系运算(补)指针与数组数组名二级指针指针数组指针运算(补) 指针指针 上一篇博客我们介绍了指针运算中的三种常见运算:指针整数,指针关系运算&…

23.1.27打卡 Codeforces Round #846 (Div. 2) A~D

https://codeforces.com/contest/1780A题给你一个长度为n的数组, 问你是否能找出三个数字, 使得这三个数字之和为奇数简单的小学数学奇偶奇偶偶偶所以我们只要找到三个奇数或者两个偶数一个奇数就好了/* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿…

简单复现 残差网络、Googlenet、mobilenet、SqueezeNet、ShuffleNet

1.残差网络 1)网络结构 当对x求偏导的时候,F(x)对x求偏导的值很小的时候,对整体求x的偏导会接近于1 这样解决了梯度消失问题,我们可以对离输入很近的层进行很好的更新。 要注意的是F(x&#…

【REACT-redux】

1. redux介绍 1.1 描述 Redux最主要是用作应用状态的管理。简言之,Redux用一个单独的常量状态树(state对象)保存这一整个应用的状态,这个对象不能直接被改变。当一些数据变化了,一个新的对象就会被创建(使…

JDK SPI 和 Dubbo SPI

SPI (Service Provider Interface),简单翻译就是服务提供接口,这里的“服务”泛指任何一个可以提供服务的功能、模块、应用或系统,会预留一些口子或者扩展点,只要按照既定的规范去开发,就可以动…

MES和金蝶云星空接口打通对接实战

四化智造MES(WEB)和金蝶云星空接口打通对接实战数据源平台:四化智造MES(WEB)MES建立统一平台上通过物料防错防错、流程防错、生产统计、异常处理、信息采集和全流程追溯等精益生产和精细化管理,帮助企业合理安排生产排…

机器视觉_HALCON_HDevelop用户指南_2.Getting Started

文章目录前言二、Getting Started2.1. 运行HDevelop2.2. 运行示例程序前言 标题本来想用“开始使用”或“快速上手”,不过感觉怪怪的,干脆就叫Getting Started吧,因为许多开发手册,开始上手的那节就叫这个名字。 本文是接上一篇…

【人工智能原理自学】LSTM网络:自然语言处理实践

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解LSTM网络:自然语言处理实践,一起卷起来叭! 目录一、“RNN”二、编程实验一、“RNN” 上节课我们利用词嵌入把句子转化为词向量序列…

手把手本地搭建服务器笔记1

需要的下载的东西: vmware (百度网盘)银河麒麟镜像xshell,xftp安装vmware: 下载的包里有密钥,安装的时候就直接把密钥扔里面就好了 镜像处理: vmware左上角文件-新建虚拟机-典型,下一步 -安装程序光盘映像文件&am…

基于嵌入式物联网技术的智慧病房方案设计

文章目录前言1、要求2、系统设计3、功能模块3、系统功能模块图一、stm32控制模块原理图二、各功能模块的实现1、整个系统的基本配置2、RTOS多任务1、设计线程2、配置主函数代码3、温湿度读取模块(I2C)4、LED定时开关灯(pwm)5、按键实现报警信号6、脉搏&血氧数据读取7、UART…

【HTML】基础的入门学习

HTML 菜鸟教程 简介 一般结构&#xff1a; <!DOCTYPE html> 声明为 HTML5 文档<html> 元素是 HTML 页面的根元素<head> 元素包含了文档的元&#xff08;meta&#xff09;数据&#xff0c;如 <meta charset"utf-8"> 定义网页编码格式为 ut…

proteus仿真软件中芯片的命名规则与封装方法(详细版)

第一&#xff1a;PCB封装库命名规则 1、集成电路&#xff08;直插&#xff09; 用DIP-引脚数量尾缀来表示双列直插封装​ 尾缀有N和W两种,用来表示器件的体宽​ 为体窄的封装&#xff0c;体宽300mil,引脚间距2.54mm​ 为体宽的封装, 体宽600mil,引脚间距2.54mm​ 如&#…

11、关联数据库

文章目录11、关联数据库11.1 常规方式11.2 常规操作【尚硅谷】idea实战教程-讲师&#xff1a;宋红康 生活是属于每个人自己的感受&#xff0c;不属于任何别人的看法 11、关联数据库 11.1 常规方式 找到数据库选项&#xff1a; 添加指定数据库&#xff1a; 配置MySQL数据库…

5. 网络编程之UDP编程

1. UDP协议的特点 相比与TCP协议来说&#xff0c;UDP协议就显得相对比较简单了。 (1) UDP是无连接的   即发送数据之前不需要建立连接(当然&#xff0c;发送数据结束时也没有连接可释放)&#xff0c;因此减少了开销和发送数据之前的时延。 (2) UDP使用尽最大努力交付   即…

78、Points2NeRF: Generating Neural Radiance Fields from 3D point cloud

简介 github&#xff1a;https://github.com/gmum/points2nerf 由于点云的大小和复杂性&#xff0c;处理这些点云具有挑战性&#xff0c;现有的方法通过将网格拟合到点云并渲染来解决这个问题&#xff0c;这种方法导致结果可视化的保真度降低&#xff0c;并遗漏了在计算机图形…

HashTable HashMap ConcurrentHashMap 的介绍以及区别

目录 &#x1f407;今日良言:投资自己才是最好的投资 &#x1f409;一.HashMap. &#x1f415;二.HashTable &#x1f40d;三.ConcurrentHashMap &#x1f402;四.三者的区别 &#x1f407;今日良言:投资自己才是最好的投资 时隔四十多天,今天博主要更新了. 后续内容也是精…

[机器学习]损失函数DLC

一、损失函数的概念 损失函数(Loss Function)是用于评估预测结果和真实结果之间差距的一个公式&#xff0c;为模型优化指明方向。在模型优化过程中一般表述为&#xff1a;或 与针对整个训练集的代价函数(Cost Function)不同&#xff0c;损失函数通常仅针对单个训练样本。可以归…

RK3568平台开发系列讲解(驱动基础篇)Linux 内核源码介绍

🚀返回专栏总目录 文章目录 一、目录树概览二、快速确定主板关联代码2.1、基础代码2.2、驱动代码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢进行嵌入式 Linux 产品开发,往往需要对内核进行裁剪和定制,以满足嵌入式产品的功能和性能需求。 一、目录树概览 解压…

Python---学生管理系统(pyinstaller)

专栏&#xff1a;python 个人主页&#xff1a;HaiFan. 专栏简介&#xff1a;本专栏主要更新一些python的基础知识&#xff0c;也会实现一些小游戏和通讯录&#xff0c;学时管理系统之类的&#xff0c;有兴趣的朋友可以关注一下。 学生管理系统前言创建入口函数新增学生insert展…

行为型模式-迭代器模式

1.概述 定义&#xff1a;提供一个对象来顺序访问聚合对象中的一系列数据&#xff0c;而不暴露聚合对象的内部表示。 2.结构 迭代器模式主要包含以下角色&#xff1a; 抽象聚合&#xff08;Aggregate&#xff09;角色&#xff1a;定义存储、添加、删除聚合元素以及创建迭代器…