脉冲神经网络(SNN)论文阅读(五)-----AAAI-2024 时间步长逐渐收缩的SNN

本文主要是介绍脉冲神经网络(SNN)论文阅读(五)-----AAAI-2024 时间步长逐渐收缩的SNN,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文链接:CSDN-脉冲神经网络(SNN)论文阅读(五)-----AAAI-2024 时间步长逐渐收缩的SNN

Shrinking Your TimeStep: Towards Low-Latency Neuromorphic Object Recognition with Spiking Neural Networks

  • 目录
    • 论文信息
    • 主要贡献
    • Timestep Shrinkage
    • Early Classifier
    • 完整的SSNN训练算法
    • 实验验证及对比

目录

论文信息

论文地址
arXiv版本(带有附录)地址
由电子科技大学(左琳教授团队)研究人员发表于AAAI 2024。

主要贡献

  • 第一个具有异质性时间步长的SNN
  • 论文提出了Shrinking SNN (SSNN),SNN的时间步长逐渐收缩,相比于普通的SNN,SSNN的平均时间步长更低,从而实现低延迟、高性能的神经形态目标识别;Timestep Shrinkage方法
  • 论文在SNN的多个阶段后引入额外的分类器辅助训练,推理时则无需辅助分类器。从而缓解了代理梯度和真实梯度的误差以及梯度消失/爆炸问题。Early Classifier方法
    在这里插入图片描述

Timestep Shrinkage

将SNN划分为多个阶段,其中每个阶段的时间步长逐渐收缩降低。
初始阶段的时间步长稍大,以使得SNN能够提取到充分有价值的信息;后面的阶段时间步长较小,以降低整体的推理时延。
MLF方法基于LIF神经元,其主要思路为使用MLF unit(可以理解为新的脉冲神经元)替换掉SNN中的LIF神经元。

Temporal Transformer转换时间步长收缩前后两个阶段的信息维度

  • 时间步长收缩需要解决的问题:假设前后两个阶段的时间步长分别为 T 1 T_1 T1 T 2 T_2 T2,则两个阶段传递的数据维度分别为 T 1 × C × H × W T_1 \times C \times H \times W T1×C×H×W T 2 × C × H × W T_2 \times C \times H \times W T2×C×H×W。需要在时间步长收缩的同时转换前一个阶段的输出维度,以使其能够用作后一个阶段的输入。

  • Temporal Transformer:设计了轻量化的Temporal Transformer来转换信息的维度,并最大化地保留有价值的信息。

    • 对于前一个阶段的输出 O 1 ∈ R T 1 × C × H × W \boldsymbol{O}_1 \in \mathbb{R}^{T_1 \times C \times H \times W} O1RT1×C×H×W先计算 T 1 T_1 T1个时间步长内每个时间步长的总信息 O 1 a v g ∈ R T 1 × 1 \boldsymbol{O}_1^{avg} \in \mathbb{R}^{T_1 \times 1} O1avgRT1×1
      O 1 a v g = 1 C × H × W ∑ i = 1 C ∑ j = 1 H ∑ k = 1 W O 1 , i , j , k , \boldsymbol{O}_1^{avg} = \frac {1}{C \times H \times W} \displaystyle \sum_{i=1}^{C} \sum_{j=1}^{H} \sum_{k=1}^{W}\boldsymbol{O}_{1,i,j,k}, O1avg=C×H×W1i=1Cj=1Hk=1WO1,i,j,k,
      然后使用非线性转换以及softmax计算 T 2 T_2 T2个时间步长的重要性分数 d ∈ R T 2 × 1 \boldsymbol{d} \in \mathbb{R}^{T_2 \times 1} dRT2×1
      d = softmax ( W O 1 a v g ) , \boldsymbol{d} = \text{softmax} (\boldsymbol{W}\boldsymbol{O}_1^{avg}), d=softmax(WO1avg),
      其中 W ∈ R T 2 × T 1 \boldsymbol{W} \in \mathbb{R}^{T_2 \times T_1} WRT2×T1是非线性转换的可学习权重。softmax函数保证 T 2 T_2 T2个时间步长的重要性分数之和为1,确保后续的信息分配的完整性。
      另一方面,计算 O 1 O_1 O1 T 1 T_1 T1个时间步长内的信息之和(所有时间步长的数据累加) O 1 t o t a l ∈ R C × H × W \boldsymbol{O}_1^{total} \in \mathbb{R}^{C \times H \times W} O1totalRC×H×W,并依据 d d d将其分配至 T 2 T_2 T2个时间步长内,得到用于后续阶段的输入 I 2 ∈ R T 2 × C × H × W \boldsymbol{I}_2 \in \mathbb{R}^{T_2 \times C \times H \times W} I2RT2×C×H×W
      I 2 , t = O 1 t o t a l ⊙ d t = ∑ t ′ = 1 T 1 O 1 , t ′ ⊙ d t , \boldsymbol{I}_{2,t} = \boldsymbol{O}_1^{total} \odot \boldsymbol{d}_t = \sum_{t^{'}=1}^{T_1}\boldsymbol{O}_{1,t^{'}} \odot \boldsymbol{d}_t, I2,t=O1totaldt=t=1T1O1,tdt,
      从而在实现时间步长收缩的同时保留有效信息。
  • 平均时间步长

    • 假设SNN被分为 n n n个阶段,每个阶段有 n i n_i ni个计算单元(一个卷积层以及脉冲神经元层),每个阶段的时间步长是 T i T_i Ti,则使用时间步长收缩得到的SNN的平均时间步长可计算为:
      T a v g = ∑ i n n i T i ∑ i n n i . T_{avg}=\frac {\sum_i^n {n_iT_i}} {\sum_i^n n_i}. Tavg=inniinniTi.
    • 由于上式不包含用于分类的全连接层,而全连接层以最小的时间步长 T n T_n Tn运行,因此实际的时间步长要比上式计算得到的结果更小。
  • 额外开销

    • 每次时间步长收缩时的Temporal Transformer仅需要一个线性层来实现,所需的开销极小。

Early Classifier

  • 基于代理梯度训练SNN遭受着代理梯度和真实梯度不匹配的问题,从而限制了SNN的性能。另外,梯度消失/爆炸问题始终影响着SNN的性能。这些问题对高性能SNN的训练造成了极大的困扰。
  • 为了缓和以上问题,受到ANN领域部分方法的启发,提出在训练时候在SNN的每个阶段后添加一个early classifier,early classifier与标签计算损失并且在反向传播时传递梯度。
  • 由于这些early classifier比SNN最终的分类器更靠近网络的前面层,因此这些early classifier传递的梯度受到梯度不匹配、梯度爆炸/消失的影响更小,从而促进了SNN的训练。
  • 每个early classifier都由卷积层、脉冲神经元层和全连接层组成。进一步地,可以为每一个early classifier设置不同的结构以探索更优的性能增益或是设置一个全局共享的early classifier降低训练期间的开销。
  • SNN训练的最终损失由多个early classifier和最终的输出与标签计算损失并加权得到:
    L t o t a l = ∑ i n λ i L i ( 1 T i ∑ t T i Y i , t , Y ^ ) \mathcal{L}_{total}=\sum_i^n {\lambda_i \mathcal{L}_i(\frac{1}{T_i}\sum_t^{T_i} {\boldsymbol{Y}_{i,t},\hat{\boldsymbol{Y}}})} Ltotal=inλiLi(Ti1tTiYi,t,Y^)
  • 额外开销:early classifier仅在推理时引入了部分计算及参数开销,不影响推理时SNN的效率。

完整的SSNN训练算法

在这里插入图片描述

实验验证及对比

  • 在CIFAR10-DVS、N-Caltech101和DVS-Gesture三个神经形态数据集上使用ResNet、VGG架构进行消融实验,平均时间步长设置为5,其性能比baseline大幅提升:
    在这里插入图片描述
  • 在消融实验部分探究了控制多个early classifier的loss权重对性能的影响,实验结果表明只要权重在合理的范围内,SSNN对不同的权重组合并不敏感,始终具有较好的性能:
    在这里插入图片描述* 在消融实验部分探究并验证了所提出的Temporal Transformer的效果:
    在这里插入图片描述
  • 基于VGG-9,探究了SSNN划分阶段数量和每个阶段的时间步长对性能的影响,实验结果表明SSNN对阶段划分数量和每个阶段的时间步长设置并不敏感:
    在这里插入图片描述
  • 在不同的平均时间步长下,SSNN始终比普通的SNN具有更好的效果:
    在这里插入图片描述
  • 与现有的SNN方法或架构对比,SSNN基于VGG-9、ResNet架构都取得了更好的效果,甚至超出了Spikformer:
    在这里插入图片描述
  • SSNN与普通的SNN进行脉冲发射率的可视化对比,SSNN能够精确地关注到与识别最相关的区域(DVS-Gesture中的手势部分):
    在这里插入图片描述

本文由CSDN-lan人啊原创,转载请注明!

这篇关于脉冲神经网络(SNN)论文阅读(五)-----AAAI-2024 时间步长逐渐收缩的SNN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/599607

相关文章

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听