• Ultralow Latency Spiking Neural Networks with SpatioTemporal Compression and Synaptic Convolutional Block


    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

    (2022)

    Abstract

      脉冲神经网络(SNN)作为类脑模型之一,具有时空信息处理能力、低功耗特征和高生物学合理性。有效的时空特征使其适用于事件流分类。然而,神经形态数据集,例如NMNIST、CIFAR10-DVS、DVS128-gesture,需要将单个事件聚合到具有新的更高时间分辨率的帧中以用于事件流分类,这会导致高训练和推理延迟。在这项工作中,我们提出了一种时空压缩方法,将单独事件聚合成突触电流的几个时间步骤,以减少训练和推理延迟。为了在高压缩比下保持SNN的准确性,我们还提出了一个突触卷积块来平衡相邻时间步骤之间的剧烈变化。并引入了具有可学习膜时间常数的多阈值LIF模型,以提高其信息处理能力。我们在神经形态N-MNIST、CIFAR10-DVS、DVS128手势数据集上评估所提出的事件流分类任务方法。实验结果表明,我们提出的方法在几乎所有数据集上都优于最先进的精度,使用更少的时间步骤。

    Keywords: Leaky Integrate-and-Fire model, multi-threshold, spatio-temporal compression, synaptic convolutional block, spiking neural network

    1. Introduction

      受人类神经元工作模式的启发,脉冲神经网络(SNN)被认为是第三代人工神经网络[1]。随着SNN的发展,已经展示了广泛的应用,包括图像分类[2][3]、视频处理[4][5]、姿势和手势识别[6][7]、语音识别[8][9]。与传统的由静态和连续值神经元模型组成的人工神经网络(ANN)相比,脉冲神经网络(SNN)具有独特的事件驱动计算特性,能够以几乎无延迟和功耗节省的方式[10][11]响应事件,自然更适合处理事件流类。

      为了充分利用脉冲神经网络的事件驱动优势,神经形态传感器,如DVS(动态视觉传感器)[12][13]、异步基于时间的图像传感器(ATIS)[14],通常用于通过对亮度变化的时间、位置和极性进行编码,将数据集转换为神经形态数据集。然而,基于神经形态传感器的相机记录的事件流通常在时间维度上是冗余的,这是由高时间分辨率和不规则的动态场景变化造成的[15]。这一特性使得事件流几乎不可能被基于密集计算的深度脉冲神经网络直接处理。

      为了使神经形态数据集适用于深度脉冲神经网络,提出了可变预处理方法。用于预处理神经形态数据集的事件到帧集成方法被广泛使用。在[16]中,事件被分成N个切片,每个切片中的事件数量几乎相同,并将事件集成到帧中。事件到帧的整合方法最多可以将事件流转换成几十帧。否则,SNN的准确度将显著下降。在[7]中,提出了一种时间压缩方法,该方法可以通过缩小输入事件序列的持续时间来减少事件流的长度。然而,这种方法仅适用于经过训练的SNN,这限制了它的潜力。在[17]中,将静态图片的归一化像素直接作为输入电流并应用多阈值神经元模型,这使得SNN只需两个时间步骤即可获得良好的性能。该方法适用于静态图像分类,但难以直接应用于事件流分类。

      在本文中,我们提出了一种时空压缩方法,将事件流聚合成突触电流的几个时间步骤,以减少训练和推理延迟。为了在高压缩比下保持SNN的准确性,我们还提出了一个突触卷积块,其中应用了一个突触层来平衡相邻时间步骤之间的剧烈变化。为了提高神经元模型的信息处理能力,我们的SNN中引入了参数化多阈值LIF模型。我们在N-MNIST[14]、CIFAR10DVS[13]、DVS128-gesture[12]等神经形态数据集上评估我们的方法,实验结果表明,我们的方法在几乎所有测试数据集上都优于最先进的准确度,且使用更少的时间步骤。

    2. Approach

      在本节中,我们首先在第2.1和2.2节中介绍了所提出的时空压缩方法和突触卷积块。然后在第2.3节中介绍了具有可学习膜常数的多阈值LIF模型。最后,我们描述了所提出的SNN网络结构。

    2.1. Spatio-temporal compression method

      时空压缩块,如图1所示,用于预处理神经形态数据集,如N-MNIST[14]、DVS128 Gesture[12]、CIFAR10-DVS[13]等神经形态数据,通常以E(xi, yi, ti, pi)的形式表示,表示事件的坐标、时间和极性。我们将事件的时间Tevent分成 T 个切片,每个切片中的时间间隔几乎相同,并将这些事件整合在一起。请注意,T 也是仿真时间步骤。如图1所示,在每个切片中,脉冲事件在时间维度上被均匀地划分为Nr个部分。Nr是用户可以根据自己的要求更改的分辨率。相同部分中的那些脉冲事件将首先积分并乘以权重,如公式(1)所示。由于脉冲事件具有两个极性,因此使用两个通道帧来表示压缩的神经形态数据。

    其中 jl 和 ju 分别是第 j 个切片的下界和上界,floor()是将元素四舍五入到最接近负无穷大的整数的函数,并且IE(x, y, t, p)(xi, yi, ti, pi)是事件的指示函数,只有当(x, y, t, p) = (xi, yi, ti, pi)时才等于1。

    2.2. Synaptic convolutional block

    2.3. Parametric Multi-threshold Leaky Integrate-and-Fire models(PMLIF)

    2.4. Error Backpropagation of PMLIF

    2.5. Network architecture

    3. Experiments and results

    3.1. Experiment settings

    3.2. Dataset experiments

    3.2.1. N-MNIST

    3.2.2. DVS128-gesture

    3.2.3. Cifar10-DVS

    3.3. Ablation Study

    3.4. Performance analysis

    3.4.1. Influence of compression ratio

    3.4.2. Distribution of τmem after training

    4. Conclusion

  • 相关阅读:
    powerdesigner简单使用
    linux进程间通信方式
    linux中fork()函数详解(原创!!实例讲解)
    platform_device与platform_driver
    当心不静的时候
    linux移植简介[MS2]
    使用maven的tomcat:run进行web项目热部署
    SpringMVC & Struts2
    开放产品开发(OPD):OPD框架
    【Android个人理解(八)】跨应用调用不同组件的方法
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/16062250.html
Copyright © 2020-2023  润新知