Advertisement

[IEEE 2024] TCJA-SNN: Temporal-Channel Joint Attention for Spiking Neural Networks【文献精读、翻译】

阅读量:

TCJA-SNN: 时空联合注意力机制在脉冲神经网络中的应用

Zhu R J, Zhang M, Zhao Q, et al. Tcja-snn: Temporal-channel joint attention for spiking neural networks[J]. IEEE Transactions on Neural Networks and Learning Systems, 2024.

摘要

脉冲神经网络 (Spiking Neural Networks, SNNs) 因其生物合理性、能量效率和强大的时空(spatio-temporal)信息表示能力而受到广泛关注。鉴于注意力机制在提升神经网络性能中的重要作用,将注意力机制整合到 SNNs 中展示了巨大的潜力,可以实现高效能和高性能计算。

在本文中,我们提出了一种新颖的 SNNs 时空联合注意力机制,称为 TCJA-SNN。所提出的 TCJA-SNN 框架能够 有效地从空间和时间两个维度评估脉冲序列的重要性

具体来说,我们的主要技术贡献包括:

1)我们通过压缩操作将脉冲流(spike stream)压缩为一个平均矩阵,然后利用基于高效一维卷积(1-D convolutions)的两种局部注意力机制,分别在时间和通道层面促进全面的 特征提取

2)我们引入了一种新方法——交叉卷积融合 (Cross Convolutional Fusion, CCF) 层,用于建模时间和通道范围之间的相互依赖性。这一层有效地打破了这两个维度的独立性,实现了特征之间的交互。

实验结果表明,所提出的 TCJA-SNN 在所有标准静态和神经形态数据集(包括 FashionMNIST、CIFAR10、CIFAR100、CIFAR10-DVS、N-Caltech 101 和 DVS128 Gesture)上均优于现有最先进的方法。此外,我们通过利用变分自编码器 (Variational Autoencoder, VAE) 将 TCJA-SNN 框架有效地应用于 图像生成任务 。据我们所知,这是首次将 SNN-注意力机制用于高层分类和低层生成任务。我们的实现代码可在 ridgerchu/TCJA: [TNNLS 2024] Implementation of "TCJA-SNN: Temporal-Channel Joint Attention for Spiking Neural Networks"获取。

关键词

脉冲神经网络(Spiking neural networks),时空信息(Spatiotemporal information),注意力机制(Attention mechanism),神经形态数据集(Neuromorphic datasets.)

I. 介绍

脉冲神经网络 (Spiking Neural Networks, SNNs) 因其相比传统人工神经网络 (Artificial Neural Networks, ANNs) 更低的能耗和更高的鲁棒性而成为一个有前途的研究领域 [1], [2]。这些特性使得 SNNs 在时间数据处理和功耗关键应用中具有很大潜力 [1], [3]。

近年来,通过将 反向传播 引入 SNNs 中取得了显著进展 [3]–[10],这使得可以将各种 ANN 模块整合到 SNN 架构中,包括批归一化块 [11] 和残差块 [12]。通过这些基于 ANN 的方法,我们可以在保留 SNN 二进制脉冲特性所带来的能效的同时,训练大规模的 SNNs。

尽管取得了显著进展,但由于其独特的训练模式,SNNs 尚未能充分利用深度学习的卓越表示能力,主要是因为它们 难以有效地建模复杂的通道时间关系

为了解决这一问题,Zheng 等人 [11] 引入了一种用于时间维度的批归一化方法,克服了梯度消失和阈值输入平衡问题。

[11] H. Zheng, Y. Wu, L. Deng, Y. Hu, and G. Li, “Going Deeper With Directly-Trained Larger Spiking Neural Networks,” in Proceedings of the AAAI Conference on Artificial Intelligence (AAAI), 2021, pp. 11 06211 070.

另一方面,Wu 等人 [13] 提出了一种名为 NeuNorm 的方法,解决了通道层面的挑战。NeuNorm 包括一个辅助神经元,该神经元调整由前一层生成的刺激强度,在提高性能的同时,模拟视网膜(retina)和附近细胞的活动,以增加生物合理性。

如何理解通道方面的挑战?

[13] Y. Wu, L. Deng, G. Li, J. Zhu, Y. Xie, and L. Shi, “Direct Training for Spiking Neural Networks: Faster, Larger, Better,” in Proceedings of the AAAI Conference on Artificial Intelligence (AAAI), 2019, pp. 13111318.

然而,现有的方法分别处理时间和通道信息,导致联合信息提取的能力有限。

鉴于 SNNs 在每个时间步重用(reuse)网络参数,存在未开发(untapped)的潜力,可以在时间和通道维度上进行重新校准。

特别是 Yao 等人 [14] 提出的 TA-SNN。在 ANNs 中的先前研究 [15], [16] 经常利用注意力机制来解决多维动态问题带来的挑战 。注意力机制受人类认知过程的启发,使得选择性地关注相关信息,同时忽略无关数据。这种方法在 SNNs 领域显示出潜力,值得进一步探索 [14]。

[14] M. Yao, H. Gao, G. Zhao, D. Wang, Y. Lin, Z. Yang, and G. Li, “Temporal-wise Attention Spiking Neural Networks for Event Streams Classification,” in Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2021, pp. 10 201–10 210.

例如,在神经科学领域,Bernert 等人 [17] 提出了一种基于注意力的脉冲时序依赖性可塑性 (Spike-Timing-Dependent Plasticity, STDP) SNN 来解决脉冲分类问题。

[17] M. Bernert and B. Yvert, “An Attention-Based Spiking Neural Network for Unsupervised Spike-Sorting,” International Journal of Neural Systems, vol. 29, no. 8, pp. 1 850 059:1–1 850 059:19, 2019.

此外,Yao 等人 [14] 将通道注意力块整合到 SNN 的时间输入中,如图 1-a 所示,在训练期间评估帧的重要性,并在推理期间排除无关帧。
在这里插入图片描述

尽管仅在时间维度上使用了注意力,但是这种注意力机制也显著提高了网络性能。

在本文中,我们在 SNNs 中引入了时间和通道注意力机制,并通过高效的一维卷积实现;图 1-b 显示了整体结构。
在这里插入图片描述

图 1. 我们的时间-通道联合注意力与现有的时间注意力 [14] 有何不同,后者通过 挤压激励 模块估计每个时间步骤的显着性。

  • T 表示时间步骤
  • C 表示通道
  • H、W 表示空间分辨率。

通过利用两个独立的 1-D 卷积层和交叉卷积融合 (CCF) 操作,我们的时间-通道联合注意力建立了时间步骤和通道之间的关联。

我们认为这种协同机制可以增强学习特征的区分能力,使得 SNNs 中的时间通道学习变得更加容易。

本工作的主要贡献可以总结如下:

1)我们通过协同考虑时间和通道注意力,将一个即插即用(plug-and-play)块引入 SNNs 中,这在同一阶段建模时间和通道信息,达到更好的适应性和生物解释性。据我们所知,这是 首次尝试将时间通道注意力机制整合到最广泛使用的基于 LIF 的 SNNs 中 。

2)提出了一种具有交叉感受野的交叉卷积融合 (Cross Convolutional Fusion, CCF) 操作,以利用关联信息。它不仅利用卷积的优点来最小化参数,还有效地整合了时间和通道维度的特征。

3)实验结果表明,TCJA-SNN 在静态和神经形态数据集的分类任务中优于以往的方法,并且在 生成任务 中也表现良好。

II. 相关工作和动机

A. 脉冲神经网络的训练技术

近年来,直接应用各种人工神经网络 (Artificial Neural Networks, ANNs) 算法来训练深度脉冲神经网络 (Spiking Neural Networks, SNNs) 的方法,包括基于梯度下降的方法,已经得到了广泛关注。然而,脉冲的不可微性是一个重大挑战。

用于触发脉冲的 Heaviside 函数的导数在除原点外的所有地方都为零,使得基于梯度的学习不可行 。为克服这一障碍,常用的解决方案是

  • ANN 到 SNN [18][20]
  • 代理梯度下降方法 (Surrogate Gradient Descent Method) [21]–[28]。

在前向传递过程中,保留 Heaviside 函数,而在反向传递过程中,用代理函数替代它。代理函数的 一种简单选择是脉冲操作符 (Spike-Operator) [29],其梯度类似于平移后的 ReLU 函数

[29] J. K. Eshraghian, M. Ward, E. Neftci, X. Wang, G. Lenz, G. Dwivedi, M. Bennamoun, D. S. Jeong, and W. D. Lu, “Training Spiking Neural Networks Using Lessons From Deep Learning,” ArXiv, 2021.

在我们的工作中,我们超越了传统的代理梯度方法,引入了另外两种代理函数

  • ATan 代理函数
  • 由 [30] 和 [31] 设计的三角形代理函数。

[30] W. Fang, Z. Yu, Y. Chen, T. Masquelier, T. Huang, and Y. Tian, “Incorporating Learnable Membrane Time Constant To Enhance Learning of Spiking Neural Networks,” in Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2021, pp. 26612671.
[31] G. Bellec, D. Salaj, A. Subramoney, R. Legenstein, and W. Maass, “Long short-term memory and learning-to-learn in networks of spiking neurons,” in Advances in Neural Information Processing Systems (NeurIPS), vol. 31, 2018.

这些代理函数具有 激活特定样本范围的能力,使其特别适合训练深度 SNNs 。通过扩展代理函数的种类,我们旨在增强训练过程并提高深度 SNNs 的性能。

B. 注意力机制在卷积神经网络中的应用

在人工神经网络 (ANNs) 领域,Hu 等人 [15] 引入的挤压与激励 (Squeeze and Excitation, SE) 块已被证明是增强表示的高效模块。 SE 块可以无缝地整合到网络中,仅需增加少量参数即可重新校准通道信息

通过挤压和全连接操作,SE 块允许网络为每个通道学习一个可训练的缩放因子。这个重新校准(recalibration)过程显著提高了各个通道的区分能力。

最近,Yao 等人 [14] 将 SE 块的应用 扩展到脉冲神经网络 (SNNs) 中,形成了一种时间注意力机制 。这一创新方法使 SNNs 能够 识别关键的时间帧 ,而不受噪声或干扰的影响。

通过整合时间注意力机制,该方法在各种数据集上实现了最先进的性能。这一成就提供了有力的证据,证明注意力机制在 SNNs 中具有巨大的潜力。SE 块的利用和时间注意力机制的引入代表了 SNNs 领域的重大进展。这些技术不仅增强了 SNNs 的表示能力,还提供了有效利用注意力机制以提升性能的见解。

在第三节中,我们将探索并进一步利用这些注意力机制,以提高 SNNs 的性能并充分释放其在复杂时间数据处理任务中的潜力。

C. 动机

基于上述分析,在 SNNs 中利用时间注意力机制在有效处理与时间相关的数据流方面取得了显著进展。

此外,在生物神经网络 [32] 和人工神经网络 (ANNs) [15] 中,重新校准卷积层内的通道特征具有相当大的提升性能的潜力。

然而,现有的基于 SNNs 的工作仅处理时间或通道维度的数据,从而限制了联合特征提取的能力。为了说明时间步骤和通道维度之间的关系,我们提供了一个可视化表示。这是通过显示输入帧以及来自初始 2-D 卷积层的几个相邻通道输出实现的,如图 2 所示。
在这里插入图片描述

图 2. 接近时间步长与通道之间的相关性。

  • 顶行是从 DVS128 手势数据集中选择的输入帧。
  • 底行九格中的每个图形表示第一个 2-D 卷积层的通道输出。

很明显,在具有不同时间步长的通道中存在显着的相关性,这促使我们合并时间和通道信息。

正如圆圈所示,可以从周围的时间步和通道中区分出类似的脉冲模式。

为了充分利用这些关联信息,我们提出了 TCJA 模块,这是一种新方法,用于建模时间和通道帧关联。此外,考虑到注意力机制不可避免地增加模型参数,我们尝试采用 1-D 卷积操作,在模型性能和参数之间取得合理的平衡

为什么使用一维卷积就可以取得平衡?这是干了什么?

此外,现有的 SNN 注意力机制主要优先考虑分类任务,忽视了生成任务的需求。我们的目标是引入一种注意力机制,能够熟练处理分类和生成任务,从而建立一种通用的 SNNs 注意力机制。

III. 方法论

A. 泄露-积分与发放模型 (Leaky-Integrate-and-Fire Model)

为了模拟生物神经元的功能,已经提出了多种脉冲神经元模型 [33], [34],其中漏积积分与发放 (Leaky-Integrate-and-Fire, LIF) 模型 [35] 在简洁性和生物合理性之间取得了很好的平衡。LIF 神经元的膜电位动态可以描述为 [13]:

\tau \frac{dV(t)}{dt} = -(V(t) - V_{reset}) + I(t) \tag{1}

其中

  • \tau 表示时间常数
  • V(t) 表示时间 t 时神经元的膜电位
  • I(t) 表示来自突触前神经元的输入。

为了更好地进行计算,该 LIF 模型可以描述为一个显式迭代版本 [1]:

\begin{cases} V_n^t = H_n^{t-1} + \frac{1}{\tau} (I_n^{t-1} - (H_n^{t-1} - V_{reset})) \\ S_n^t = \Theta(V_n^t - V_{threshold}) \\ H_n^t = V_n^t \cdot (1 - S_n^t) \end{cases} \tag{2}

其中

  • V_n^t 表示第 n 层神经元在时间 t 的膜电位
  • \tau 是时间常数
  • S 是具有二进制值的脉冲张量
  • I 表示来自上一层的输入
  • Θ(·) 表示 Heaviside 阶跃函数
  • H 表示脉冲后的复位过程。

作为一种主流的神经元模型, 基于 LIF 的脉冲神经网络 (SNN) 模型可以直接使用代理梯度方法 [24] 进行训练 ,以达到最先进的性能 [14], [30], [36]。

此外,LIF 模型非常适合常见的机器学习框架,因为它允许在空间和时间维度上进行前向和反向传播。在我们的方法中,LIF 模型的参数设置如下:

  • \tau = 2
  • V_{reset} = 0
  • V_{threshold}= 1

B. 时空联合注意力机制 (TCJA)

如前所述,我们认为当前时间步的帧与其在通道和时间维度上的相邻帧存在显著的关联。这种关联使得我们可以采用一种机制来建立这两个维度之间的联系。

最初,我们使用全连接层来建立时间和通道信息之间的关联,因为它提供了这两个维度之间最直接和显著的联系。然而,随着通道数和时间步数的增加,参数数量以 T² × C² 的比率迅速增长,如图 3 所示。
在这里插入图片描述

图 3. 当通道大小 C = 64 时全连接(FC)层和 TCJA 层之间的参数增长曲线。

我们随后尝试利用 2-D 卷积层来构建这种注意力机制。然而,由于固定的核大小,这种方法遇到了局限性,限制了感受野到一个有限的局部区域。在传统的卷积神经网络 (CNN) 中,通过增加层数可以扩展感受野 [37], [38]。

然而,在注意力机制的背景下,类似于卷积网络的层堆叠的可行性受到限制,从而在采用 2D 卷积时限制了感受野(the receptive field)。

出于这个原因,有必要 在增加感受野的同时减少参数数量

在第 IV-G5 节中,我们提供了关于感受野的详细理论分析。

为了在最小化参数使用的同时有效地结合时间和通道注意力维度,并最大化感受野,我们提出了一种新颖的注意力机制,称为时空联合注意力机制 (Temporal-Channel Joint Attention,TCJA)。这种注意力机制以其全局交叉感受野(global crossreceptive field)为特征,并能够以相对较少的参数 (具体为 T² + C² ) 实现有效的结果。
在这里插入图片描述

图 4. 带有 TCJA 模块的 SNN 框架。
在 SNN 中,信息以脉冲序列的形式传输,涵盖时间(temporal)和空间(spatial)维度。

  • 在时间方面,脉冲神经元具有膜电位(V)和脉冲(S)的阈值前馈(如公式 2 所示),并使用代理函数进行反向传播。
  • 在空间方面,数据以 ANN 的形式在层之间流动。TCJA 模块首先沿时间和空间维度压缩信息,然后应用 TLA 和 CLA 在时间和通道维度上建立关系,并通过 CCF 层将它们混合。

图 4 显示了所提出的 TCJA 的整体结构,我们将在下面详细介绍其关键组成部分。在第 III-B1 节中,我们利用输入帧上的压缩(squeezing)操作。接下来,在第 III-B2 和 III-B3 节中,我们分别介绍了时间局部注意力 (TLA) 机制和通道局部注意力 (CLA) 机制。最后,在第 III-B4 节中,我们介绍了交叉卷积融合 (CCF) 机制,以共同学习时间和通道的信息。

整个过程包括以下几个关键步骤:

  • 压缩脉冲序列 :首先将脉冲序列压缩成平均矩阵 Z
  • 时间局部注意力(TLA) :对平均矩阵 Z 的每一行应用1-D卷积,以建立时间维度上的局部关联,得到 T 矩阵。
  • 通道局部注意力(CLA) :对平均矩阵 Z 的每一列应用1-D卷积,以建立通道维度上的局部关联,得到 C 矩阵。
  • 交叉卷积融合(CCF) :将 TC 矩阵进行元素级乘法,通过 Sigmoid 函数处理得到融合信息矩阵 F
  • Tensor Broadcasting :利用广播机制将 F 矩阵扩展到与输入数据相同的维度,以便进行特征校准。

重新校准的特征用于增强网络对重要信息的关注 ,同时抑制不相关的信息,从而提高模型的性能。

模型的最终输出是通过累积脉冲活动来生成的:

  1. 计算每个神经元的发放率 :通过累积脉冲活动,计算每个神经元在时间 𝑇 内的平均发放率。
  2. 定义预测标签 :通过选择发放率最高的神经元的索引,来确定预测标签。
  3. 池化和投票 :在最后一层添加一个 1-D 平均池化投票层,通过对每个类别的输出脉冲进行平均池化,生成一个 10 维向量。选择投票值最大的类别作为最终分类结果。
1. 通过压缩得到平均矩阵

为了有效捕捉帧之间在时间和通道维度上的关联,我们首先对输入帧流 X ∈ R^{T × H × W × C} 的空间特征图进行压缩操作,其中 C 表示通道大小,T 表示时间步。

压缩步骤计算一个平均矩阵 Z ∈ R^{C × T} ,平均矩阵 Z 的每个元素 Z_{(c,t)} 计算如下:

Z(c,t) = \frac{1}{H × W} \sum_{i=1}^{H} \sum_{j=1}^{W} X (c,t)_{i,j} \tag{3}

其中,X^{(c,t)}c 通道在时间步 t 的输入帧。

2. 时间局部注意力 (Temporal-wise Local Attention,TLA)

在压缩操作之后,我们提出了 TLA 机制来建立帧之间的时间关系。我们认为, 在特定时间步的帧与其相邻位置的帧有很大互动

因此,我们采用 1-D 卷积操作来建模时间维度上的局部对应关系,如图 4 所示。
在这里插入图片描述

图 4. 带有 TCJA 模块的 SNN 框架。
在 SNN 中,信息以脉冲序列的形式传输,涵盖时间和空间维度。

  • 在时间方面,脉冲神经元具有膜电位(V)和脉冲(S)的阈值前馈(如公式 2 所示),并使用代理函数进行反向传播。
  • 在空间方面,数据以 ANN 的形式在层之间流动。TCJA 模块首先沿时间和空间维度压缩信息,然后应用 TLA 和 CLA 在时间和通道维度上建立关系,并通过 CCF 层将它们混合。

具体来说,为了在时间层面捕捉输入帧的关联性,我们对平均矩阵 Z 的每一行执行 C 通道的 1-D 卷积,然后累积通过卷积平均矩阵 Z 的不同行得到的特征图。整个 TLA 过程可以描述为:

T_{i,j} = \sum_{n=1}^{C} \sum_{m=0}^{K_T -1} W_{(n,i)}^m Z_{(n,j+m)} \tag{4}

  • T_{i,j} :卷积后的输出矩阵 T 的第 i 通道、第 j 个时间步。
  • Z :输入的平均矩阵,维度为 C \times T(通道数 × 时间步数)。
  • W :卷积核,包含多个可学习参数,维度为 C \times K_T(通道数 × 卷积核大小)。
  • C:通道数。
  • K_T:卷积核大小,表示卷积操作考虑的时间步数。
  • W_{(n,i)}^m :卷积核的第 n 行、第 i 通道的第 m 个参数。
  • Z_{(n,j+m)}:输入矩阵 Z 的第 n 行、第 j+m 个时间步。

这里,K_T (K_T 表示卷积核的大小,表示卷积操作考虑的时间步数。参数 W_{(n,i)}^m 是一个可学习参数,表示在对输入张量 Zn 行执行 C 通道 1-D 卷积时第 i 通道的第 m 个参数。T ∈ R^{C × T} 是 TLA 机制后的注意力得分矩阵。

3. 通道局部注意力 (Channel-Wise Local Attention,CLA)

如前所述,帧到帧的显著性得分不仅应考虑时间维度,还应考虑通道维度上相邻帧的信息。为了构建不同帧与其邻近通道的关联,我们提出了 CLA 机制。
在这里插入图片描述

图 4. 带有 TCJA 模块的 SNN 框架。
在 SNN 中,信息以脉冲序列的形式传输,涵盖时间和空间维度。

  • 在时间方面,脉冲神经元具有膜电位(V)和脉冲(S)的阈值前馈(如公式 2 所示),并使用代理函数进行反向传播。
  • 在空间方面,数据以 ANN 的形式在层之间流动。TCJA 模块首先沿时间和空间维度压缩信息,然后应用 TLA 和 CLA 在时间和通道维度上建立关系,并通过 CCF 层将它们混合。

同样,如图 4 所示,我们对矩阵 Z 的每一列执行 T 通道的 1-D 卷积,然后对每一行的卷积结果进行求和。这个过程可以描述为:

C_{i,j} = \sum_{n=1}^{T} \sum_{m=0}^{K_C -1} E_{(n,j)}^m Z(i+m,n) \tag{5}

其中,K_C (K_C 表示卷积核的大小,E_{(n,j)}^m 是一个可学习参数,表示在对 Zn 列执行 T 通道 1-D 卷积时第 i 通道的第 m 个参数。C ∈ R^{C × T} 是 CLA 机制后的注意力得分矩阵。

为了保持输入输出之间的维度一致性,在 TLA 和 CLA 机制中均采用“same padding”技术。这种填充策略通过在输入数据两侧添加适当数量的零,确保输出维度与输入维度匹配。具体来说,这种技术涉及在输入数组的两侧填充零,添加的零的数量基于卷积核大小和步幅来确定。

4. 交叉卷积融合 (Cross Convolutional Fusion,CCF)

在 TLA 和 CLA 操作之后,我们分别得到了输入帧及其相邻帧的时间 (TLA 矩阵 T ) 和通道 (CLA 矩阵 C ) 显著性得分。

接下来,为了联合学习时间和通道帧之间的关联性,我们提出了一种跨域信息融合机制,即 CCF 层。CCF 的目标是计算一个融合信息矩阵 FF(i, j) 用于衡量第 i 通道的第 j 个输入时间帧与其他帧之间的潜在关联性。

具体来说,通过对 TC 进行元素级乘法可以得到帧之间的联合关系,如下所示:

\begin{array}{r}\mathcal{F}_{i, j}=\boldsymbol{\sigma}\left(\mathcal{T}_{i, j} \cdot \mathcal{C}_{i, j}\right)=\boldsymbol{\sigma}\left(\sum_{n=1}^{C} \sum_{m=0}^{K_{T}-1} W_{(n, i)}^{m} \mathcal{Z}_{(n, j+m)}\right. \\ \left.\sum_{n=1}^{T} \sum_{m=0}^{K_{C}-1} E_{(n, j)}^{m} \mathcal{Z}_{(i+m, n)}\right)\end{array} \tag{6}

其中 σ 表示 Sigmoid 函数。图 5 提供了整个计算过程的理解。
在这里插入图片描述

图 5. 所提 TCJA 示意图。

我们给出一个平均矩阵 Z ∈ R^{6×5} ,TCJA 的目标是计算一个融合时间和通道信息的融合矩阵 F

例如,对于 F 中的特定元素:F_{3,2},其计算流程如下:

1)通过 TLA 机制(式 4)计算 T_{3,2}
2)利用 CLA 机制(式 5)计算 C_{3,2},计算结果如图中黑色虚线框所示;
3)采用 CCF 机制(式 6)联合学习时间和通道信息得到 F_{3,2}

此外,我们还可以发现,经过 CCF 机制后,F_{3,2} 将交叉感受野(F 中的彩色区域)中元素的信息作为锚点进行融合,这表明交叉卷积融合

C. 训练框架

我们将 TCJA 模块集成到现有的基准 SNNs 中,提出了 TCJA-SNN。

由于神经元发放过程是不可微的,我们利用了推导出的

  • ATan 代理函数 σ′(x) = \frac{α}{2(1+(\frac{π}{2 α x})^2)}
  • 推导出的类似三角形的代理函数 ε′(x) = \frac{1}{γ^2} \max(0, γ − |x − 1|)

进行反向传播,分别由 [30] 和 [31] 提出。后者函数特别应用于 TCJA-TET-SNN,与基于 TET 架构的默认代理函数规范一致。在我们的方法中,选择了 Spike Mean-Square-Error (SMSE) [21], [30] 作为损失函数 ,其表达式为:

[21] W. Fang, Z. Yu, Y. Chen, T. Huang, T. Masquelier, and Y. Tian, “Deep Residual Learning in Spiking Neural Networks,” in Advances in Neural Information Processing Systems (NeurIPS), vol. 34, 2021, pp. 21 05621 069.
[30] W. Fang, Z. Yu, Y. Chen, T. Masquelier, T. Huang, and Y. Tian, “Incorporating Learnable Membrane Time Constant To Enhance Learning of Spiking Neural Networks,” in Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2021, pp. 26612671.

L = \frac{1}{T} \sum_{t=0}^{T-1} L_t = \frac{1}{T} \sum_{t=0}^{T-1} \frac{1}{E} \sum_{i=0}^{E-1} (s_{t,i} − g_{t,i})^2 \tag{7}

其中

  • T 表示模拟时间步长
  • E 是标签的数量
  • s 表示网络输出
  • g 表示 one-hot 编码的目标标签。

我们还采用了时间高效训练 (Temporal Efficient Training, TET) [36] 损失函数,其表达式为:

L = \frac{1}{T} \sum_{t=1}^{T} L_{CE}[s(t), g(t)] \tag{8}

其中

  • T 是总模拟时间
  • L_{CE} 表示交叉熵损失
  • s 是网络输出
  • g 表示目标标签。

交叉熵损失的表达式为:

L_{CE}(p, y) = − \sum_{c=1}^{M} y_{o,c} \log(p_{o,c}) \tag{9}

其中

  • M 是类别数量
  • y_{o,c} 是二进制指示器 (0 或 1),如果类别 c 是观测 o 的正确分类,则 y_{o,c} 为 1
  • p_{o,c} 是观测 o 属于类别 c 的预测概率。

为了估计分类准确率,我们定义预测标签 l_p 为发放率最高的神经元的索引
l_p = \arg \max_i \frac{1}{T} \sum_{t=0}^{T-1} s_{t,i}
由于 TCJA 模块只使用了 1-D 卷积层和 Sigmoid 函数,可以轻松作为即插即用模块(plug-and-play)引入当前网络架构,而无需调整反向传播。

IV. 实验

我们在神经形态数据集 (CIFAR10-DVS、N-Caltech 101 和 DVS128 Gesture) 和静态数据集 (Fashion-MNIST、CIFAR10、CIFAR100) 上评估了 TCJA-SNN 的分类性能。请注意,所有神经形态数据集都是从事件传感器收集的。为了验证所提方法的有效性,我们将 TCJA 模块集成到几种性能竞争的架构中 [30], [36] ,以查看集成架构是否能产生显著改进。

[30] W. Fang, Z. Yu, Y. Chen, T. Masquelier, T. Huang, and Y. Tian, “Incorporating Learnable Membrane Time Constant To Enhance Learning of Spiking Neural Networks,” in Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2021, pp. 26612671.
[36] S. Deng, Y. Li, S. Zhang, and S. Gu, “Temporal Efficient Training of Spiking Neural Network via Gradient Re-weighting,” in International Conference on Learning Representations (ICLR), 2021.

A. 数据集

1) 数据集介绍

我们在事件流(event-stream)和静态数据集上进行了对象分类实验。实验涉及的数据集总结如下。

CIFAR10-DVS
CIFAR10-DVS [39] 数据集是从流行的静态数据集 CIFAR10 改编而来的事件驱动(event-driven)版本。该数据集将 10 个类别的 10,000 张帧图像转换为动态视觉传感器的事件流。由于 CIFAR10-DVS 数据集没有划分训练集和测试集,我们将数据集分成 9,000 张训练图像和 1,000 张测试图像,并将空间分辨率从 128 × 128 降低到 48 × 48,如 [36], [40]–[42] 所述。

N-Caltech 101
N-Caltech 101 [43] 数据集也是从 Caltech 101 [44] 的原始版本转换而来的,略微改变了对象类别以避免混淆。N-Caltech 101 包含 100 个对象类别加一个背景类别。我们采用与 CIFAR10-DVS 相同的 9:1 训练测试划分。

DVS128 Gesture
DVS128 Gesture [45] 数据集是一个事件流数据集,由 29 个受试者在三种不同照明条件下的 11 种手势组成,直接用 DVS128 相机捕获。在本文中,我们使用所有 11 个手势类别进行分类。

Fashion-MNIST
Fashion-MNIST [46] 是一个小但具有挑战性的静态数据集,旨在作为原始 MNIST 数据集的直接替代,用于更复杂的视觉模式。Fashion-MNIST 数据集包含 70,000 张 28 × 28 尺寸的 10 种时尚产品的灰度图像。

CIFAR10/100
CIFAR10/100 数据集 [47] 包含 60,000 张 32 × 32 尺寸的 3 通道图像,分为 10/100 类。训练图像有 50,000 张,测试图像有 10,000 张。

2) 神经形态数据集预处理

我们使用集成(integrating)方法将事件流转换为帧数据,这在 SNNs 中常用 [13], [14], [30], [48] ,以预处理神经形态数据集。事件的坐标可以描述为:

E(x_i, y_i, p_i) \tag{10}

其中 x_iy_i 是事件的坐标,p_i 表示事件。

为了减少计算消耗,我们将事件分组为 T 片,其中 T 是网络的时间模拟步。

集成帧数据中的帧,表示为 F (j),表示位置 (p, x, y) 的像素值,表示为 F (j, p, x, y) 。它是通过从事件流中整合索引在 j_lj_r 之间的事件获得的,其中 j_l 表示积累的初始时间戳,j_r 表示最终时间戳。该过程可以描述为:

\begin{aligned} j_{l} & =\left\lfloor\frac{N}{T}\right\rfloor \cdot j \\ j_{r} & =\left\{\begin{array}{ll} \left\lfloor\frac{N}{T}\right\rfloor \cdot(j+1) & \text { if } j \tag{11}

其中 ⌊·⌋ 是取整运算,I_{p,x,y}(p_i, x_i, y_i) 是指示函数,当且仅当 (p, x, y) = (p_i, x_i, y_i) 时等于 1。函数 F (j) 主要设计用于在指定范围内积累事件数据。然后将这种积累分割成帧,便于 SNNs 的模拟。这种结构化的数据框架不仅增强了与 SNNs 的兼容性,还使事件数据的分析和处理更加高效,与 SNNs 内在的时间动态相一致。

3) 数据增强

为了减轻 CIFAR10-DVS 数据集上的明显过拟合,我们采用了神经形态数据增强,这在训练相同数据集时也使用了 [36], [40]–[42]。我们遵循与 [41] 相同的增强设置:在每帧中使用水平翻转和混合 (Mixup) [49],翻转概率设为 0.5,混合插值因子从 α = 0.5β = 0.5 的 beta 分布中采样。

然后,我们在滚动(Rolling)、旋转(Rotation)、剪切(Cutout)和切割 (Shear) 四种增强方法中随机选择一种,其中随机滚动范围为 5 像素,旋转角度从 α = −15β = 15 的均匀分布中采样,剪切边长从 α = 1β = 8 的均匀分布中采样,剪切角度也从 α = −8β = 8 的均匀分布中采样。

B. 网络架构

各数据集对应的网络架构列于表 I 中。
在这里插入图片描述

表1:每个数据集的网络架构设置。

  • xCy/MPy/APy 表示输出通道数 = x 且核大小 = y 的CONV2D/MAXPOOLING/AVGPOOLING 层。
  • nFC 表示输出特征 = n 的全连接层
  • mDP 表示 DROPOUT 率为 m 的 SPIKING DROPOUT 层。
  • 投票层是一维平均池化层。

在每个网络的构建过程中,系统地将 Kaiming 初始化方法 [50] 应用于卷积层和全连接层。对于 DVS128 数据集,我们使用与 [30] 相同的网络结构和超参数,并在最后两个池化层之前添加 TCJA 模块。根据原始网络,Dropout (DP) [51] 率设为 0.5。

我们在 最后一层添加了一个 1-D 平均池化投票层,生成一个 10 维向量作为投票结果 。这是因为 DVS128 Gesture 的预处理模拟了较长的时间步长 (T=20),通过这样的投票层可以提高网络的鲁棒性 [13]。

对于 CIFAR10-DVS 数据集,我们采用 TET [36] 引入的 VGG11 类架构。由于显著的过拟合,我们采用了与 [41] 和 [36] 相同的数据增强。为了保持与 [36] 相同的 TCJA-TET-SNN 训练设置,我们使用三角代理函数,去除最后一层 LIF 层,并将 SMSE 损失替换为 TET 损失。对于 TCJA-SNN,在最后两个池化层之前添加 TCJA 模块,而对于 TCJA-TET-SNN,在第一个池化层之前加入 TCJA 模块,作为代理函数和损失的替代。

对于 N-Caltech 101 数据集,我们结合了两种架构,并在最后两个池化层之前添加了 TCJA 模块。我们首先为每层保留一个池化层;然后,随着网络的深入,空间分辨率随着通道数量的增加而减少。为了减轻明显的过拟合,第一个 Dropout 层的比例增加到 0.8。

对于 Fashion-MNIST 数据集,我们遵循 [30] 的网络结构。请注意,第一个卷积层是一个静态编码层,将静态图像转换为脉冲。

对于 CIFAR10/100 数据集,我们采用了 Ref. [52] 中详细介绍的 MS-ResNet 架构,以验证 TCJA 在深度残差神经网络上的有效性。具体而言,我们利用标准的 MS-ResNet-18 架构对 CIFAR 数据集进行分类。TCJA 模块集成在每个 MS-ResNet 模块的底部。

C. 网络实现

我们在配备两块 Tesla P4 和两块 Tesla P10 GPU 的工作站上训练和测试我们的模型。由于内存消耗问题,我们使用 Tesla P10 来训练和测试 CIFAR10-DVS、N-Caltech 101 和 DVS128 Gesture 数据集,使用 Tesla P4 来训练和测试 Fashion-MNIST 和 CIFAR10/100 数据集。各个数据集的超参数详见表 II。

使用 Adam 优化器时,学习率设为 1 × 10^{−3} ;使用 SGD 优化器训练 ResNet 时,学习率设为 1 × 10^{−1},因为 SGD 优化器需要更高的学习率。除了 N-Caltech 101 数据集,我们的训练 epoch 数与文献 [30] 中相同。在 N-Caltech 101 和 DVS128 Gesture 数据集上,由于分辨率较高 (180 × 240 和 128 × 128),我们启用了自动混合精度。为了优化 SNNs,我们在反向传播过程中策略性地分离了复位过程,这一技术已经被证明可以提高网络性能,减少不必要的计算复杂性 [2], [21], [30]。这个过程确保保留必要的学习动态,同时最大限度地减少不必要的计算复杂性,从而提高网络的整体效率。

D. 与现有分类 SOTA 工作的比较

在这里插入图片描述

表 III 所提出的方法与现有 SOTA 技术在三个主流神经形态数据集上的比较。 (粗体:最好的)

在这里插入图片描述

表 IV 在静态 CIFAR 数据集上所提方法与现有 SOTA 技术之间的比较。(粗体:最佳)

在这里插入图片描述

表 V 静态 FASHION-MNIST 准确性。

在表 III、表 IV 和表 V 中,我们将两种 TCJA-SNN 变体的性能与一些 SOTA 模型进行了比较。我们使用基于 PyTorch 框架的 SpikingJelly [53] 包来训练和测试两种变体,并在所有任务中都取得了更好的性能。

一些研究 [14], [21], [55] 采用浮点脉冲代替二进制脉冲以提高分类准确性。

因此,我们设计了两种变体来验证 TCJA-SNN 使用 TET 损失函数的有效性。

  • 在 CIFAR10-DVS 数据集上,我们比之前的方法提高了 1.7%;
  • 在 N-Caltech 101 数据集上,我们的分类准确率为 82.5%,比之前的工作提高了 1.6%;
  • 在 DVS128 数据集上,我们的准确率达到了 99.0%,比 TA-SNN [14] 使用三倍更少的仿真时间步长还要高。
  • 在静态数据集 Fashion MNIST 上,使用基本的 7 层 CNN,我们的方法在最少的仿真时间步长内达到了最高的分类准确率。
  • 在 CIFAR10 和 CIFAR100 数据集上,TCJA 的实现显著提高了基线模型 [52] 的分类准确率,分别提升了 2.08% 和 3.83%。

此外,我们的方法超过了当前的 SOTA 模型,如参考文献 [56] 所述,在 CIFAR10 和 CIFAR100 上分别提高了 0.84% 和 0.93%。总体来说,使用二进制脉冲的 TCJA-SNN 在仿真时间步长不增加的情况下获得了更高的性能。此外,通过采用非二进制脉冲技术,我们的方法可以实现更高的分类准确率。

E. 与现有图像生成工作的比较

在这个实验中,我们构建了一个用于图像生成的完全脉冲变分自编码器 (FSVAE) 并应用了 TCJA。此外,我们通过计算 TCJA 块后时间维度的平均输出替换了原始的图像解码方法。
在这里插入图片描述

图 6. FSVAE 的架构以及 TCJA 的应用方式。
在训练期间,输入图像被编码为脉冲输入,经过 SNN 编码器后获得特征 μ_1:Tσ_1:T

潜在编码 z_1:T 是随机生成的,服从正态分布。

最后,可以通过对称 SNN 解码器重建输出图像。通过充分利用输出脉冲丰富的时间信息,我们的 TCJA 图像解码性能更佳。

图 6 展示了这种应用于图像解码的 FSVAE 与 TCJA 的工作流程图。我们应用对数似然证据下界 (log-likelihood evidence lower bound,ELBO) 作为损失函数:

\begin{align}ELBO = E_{p(z_1:T|x_1:T)}[\log_{}{p(x_{1:T}|z_{1:T}} ] \\ -KL[q(z_{1:T} | x_{1:T}) || p(z_{1:T})],\end{align} \tag{12}

其中

  • 第一项是原始输入和重构之间的重构损失,在该模型中是均方误差 (MSE)。
  • 第二项是 Kullback-Leibler (KL) 散度,表示先验和后验的接近程度。

我们使用 AdamW 优化器 [68] 进行图像生成任务,在 0.001 学习率和 0.001 权重衰减下训练 300 个 epoch。批量大小设为 256。时间步长设为 16。
在这里插入图片描述

表 VI 与原始 SNN 在每个数据集的图像生成方面的工作比较。

表 VI 中比较了 TCJA 图像解码与一些 SOTA 模型的性能。

由于该方法可以充分利用强大的时间信息,与原始 FSVAE [69] 和相同结构的 ANN 相比,Inception Score (IS) 显示了 SOTA 结果。我们的 TCJA 图像解码在 CIFAR10 数据集上的所有指标上表现更好。
在这里插入图片描述

图 7. 在 MNIST 数据集上生成的 ANN VAE、FSVAE 和我们的 TCJA 图像。

在这里插入图片描述

图 8. 在 CelebA 数据集上生成的 ANN VAE、FSVAE 和我们的 TCJA 图像。

此外,图 7 和图 8 中展示了在 CelebA 和 MNIST 上的结果,证明我们生成的图像在视觉上优于之前的方法 [69]。

除了主要的评估,我们的模型还与其他基于 Spiking VAE 的方法进行了比较,例如最近提出的基于时间注意力的图像解码 (TAID) [70] 和高效 Spiking VAE (ESVAE) [71]。尽管这些方法是专门为低级图像重建任务设计的,我们的方法仍然表现出强劲的性能,反映了其在与这些专门模型的比较中的适应性和有效性。

F. 消融研究

为了彻底检查 TLA 和 CLA 模块的影响,我们进行了系列消融研究。
在这里插入图片描述

表 VII 不同模块的精度。

表 VII 中的结果表明 CLA 模块在提高性能方面起着至关重要的作用。这是因为,在大多数 SNN 设计中, 仿真时间步长的数量显著少于通道数量

因此,CLA 模块能够提取比 TLA 模块更多的相关特征。此外,值得注意的是,TCJA 模块在所有测试数据集上均表现优于其他模型。这一结果进一步加强了 CCF 层在 TCJA 模块中的有效性,进一步证明了其在实现卓越性能方面的潜力。

CLA 模块

复制代码
 * 在三个数据集上,CLA 模块的性能均优于 TLA 模块。
 * CLA 模块在提升分类精度方面具有显著作用,尤其是在仿真时长较短的情况下效果更佳。这可能是因为 CLA 模块能够提取更多的相关特征。

TCJA 模块

复制代码
 * 在所有测试数据集上,TCJA 模块的性能均优于 TLA 和 CLA 模块。
 * TCJA 模块结合了 CCF 层的优势,使其在实现卓越性能方面具有较大的潜力。

G. 讨论

  1. 核大小(Kernel Size)

我们首先调查了 TCJA 模块中的核大小。直观上,当核大小增加时,局部注意力机制的感受野也会扩大,这可能有助于提高 TCJA-SNN 的性能。
在这里插入图片描述

图 10:DVS128 手势数据集的测试精度随着内核大小的增加而变化。

然而,图 10 中的实验结果推翻了这一猜想。随着核大小的增加,模型性能波动。当核大小超过 4 时,总体性能明显下降。一个合理的解释是,一个帧主要与其附近的帧相关,过大的感受野可能会导致不必要的噪声

  1. 乘法 vs. 加法(Multiplication vs. Addition)

为了验证我们提出的 CCF 机制的有效性,我们设计了一种替代方法,用加法代替公式 (6) 中 T_{i,j}C_{i,j} 的乘法。

\begin{array}{r}\mathcal{F}_{i, j}=\boldsymbol{\sigma}\left(\mathcal{T}_{i, j} \cdot \mathcal{C}_{i, j}\right)=\boldsymbol{\sigma}\left(\sum_{n=1}^{C} \sum_{m=0}^{K_{T}-1} W_{(n, i)}^{m} \mathcal{Z}_{(n, j+m)}\right. \\ \left.\sum_{n=1}^{T} \sum_{m=0}^{K_{C}-1} E_{(n, j)}^{m} \mathcal{Z}_{(i+m, n)}\right)\end{array} \tag{6}

在这里插入图片描述

表 VIII 使用不同的 CCF 操作测试三个数据集的准确性。

表 VIII 中显示了结果。如我们所见,加法操作表现良好,但与乘法操作相比,最终计算结果缺少交叉项,无法构建帧之间的强相关性,因此表现较差。

  1. 收敛性(Convergence)

我们还从经验上证明了我们提出的方法的收敛性,如图 9 所示。
在这里插入图片描述

图 9. DVS128 手势上比较 SNN 方法的收敛性。

具体来说,图 9 展示了 vanilla LIFSNN、没有 TCJA 块的参数化 LIF 基于 SNN [30] 和我们提出的 TCJA-SNN 的 1000 个 epoch 的性能趋势。

随着训练 epoch 的增加,我们提出的方法的性能趋势变得更加稳定,并收敛到更高的水平。此外,TCJA-SNN 在仅训练约 260 个 epoch 时就可以实现 SOTA 性能,这证明了 TCJA 的有效性。

  1. 复杂性分析(Complexity Analysis)

最后,我们尝试分析 TLA 和 CLA 的时间和空间复杂性。

T_{i,j} = \sum_{n=1}^{C} \sum_{m=0}^{K_T -1} W_{(n,i)}^m Z_{(n,j+m)} \tag{4}

对于 TLA,从公式 (4) 可以得出,获取 T 的每个元素的时间复杂度为 O(CK) (K:核大小)

因此,整个 TLA 机制的时间复杂度为 O(TC^2K)

此外,空间复杂度由参数和变量占用的内存组成。一方面,对于参数,C 通道 1-D 卷积在 Z 的每一行上执行,因此所需的参数总量为 C ∗ C ∗ K;另一方面,对于变量,在整个过程中,我们只需要维护一个维度为 C ×T 的矩阵。

总之,空间复杂度为 O(C^2K +CT)。同样,对于 CLA,时间复杂度为 O(T^ 2CK),空间复杂度为 O(T^2K + CT)

  1. 感受野的理论分析(Theoretical Analysis on Receptive Field)

全局感受野是我们创新 TCJA 方法的一个基本特征。我们的方法通过使用更少的参数来实现全局感受野,超过了密集层的限制。此外,它通过有效地获取更大的感受野,超越了仅使用 2D 卷积的能力。为了更深入地理解我们提出方法的显著方面,我们提供了以下关于网络在训练阶段感知和处理信息的特定区域(即感受野)的理论分析。

Lemma 1. (1-D 卷积的交叉相关范围 (CCS))

对于输入特征图 I ∈ R^{C×T} ,如果定义 1-D 卷积核的大小为 k ,则其 CCS 可以描述为 P ∈ R^{k×T} ,其中 T 涉及 I 的第二维度上的信息。

Lemma 2. (两个正交 1-D 卷积的 CCS)

对于输入特征图 I ∈ R^{C×T},在 I 上执行的两个正交 1-D 卷积的点乘相当于将 CCS 扩展为一个交叉形状,即其 CCS 可以用两个交叉叠加的矩阵 P ∗ Q
在这里插入图片描述

图 5. 所提 TCJA 示意图。

我们给出一个平均矩阵 Z ∈ R^{6×5} ,TCJA 的目标是计算一个融合时间和通道信息的融合矩阵 F

例如,对于 F 中的特定元素:F_{3,2},其计算流程如下:

1)通过 TLA 机制(式 4)计算 T_{3,2}
2)利用 CLA 机制(式 5)计算 C_{3,2},计算结果如图中黑色虚线框所示;
3)采用 CCF 机制(式 6)联合学习时间和通道信息得到 F_{3,2}

此外,我们还可以发现,经过 CCF 机制后,F_{3,2} 将交叉感受野(F 中的彩色区域)中元素的信息作为锚点进行融合,这表明交叉卷积融合

(例如,图 5 的彩色区域 F) 描述,其中 P ∈ R^{k_1×T},Q ∈ R^{k_2×C}k_1k_2 分别是两个卷积核的大小。

\begin{array}{r}\mathcal{F}_{i, j}=\boldsymbol{\sigma}\left(\mathcal{T}_{i, j} \cdot \mathcal{C}_{i, j}\right)=\boldsymbol{\sigma}\left(\sum_{n=1}^{C} \sum_{m=0}^{K_{T}-1} W_{(n, i)}^{m} \mathcal{Z}_{(n, j+m)}\right. \\ \left.\sum_{n=1}^{T} \sum_{m=0}^{K_{C}-1} E_{(n, j)}^{m} \mathcal{Z}_{(i+m, n)}\right)\end{array} \tag{6}

参考公式 (6)、引理 1 和引理 2,我们可以得到以下推论:

推论

根据 TCJA 获得的广泛 CCS,在 TC 之间存在信息流,同时考虑时间和通道的相关性,这在公式 6 中有所体现。

T_{i,j} = \sum_{n=1}^{C} \sum_{m=0}^{K_T -1} W_{(n,i)}^m Z_{(n,j+m)} \tag{4}

C_{i,j} = \sum_{n=1}^{T} \sum_{m=0}^{K_C -1} E_{(n,j)}^m Z(i+m,n) \tag{5}

回顾公式 4 和公式 5,通过沿不同维度的两个 1-D 卷积,我们在垂直关系中构建了两个 CCS,分别存储在 TC 中。

特别是,TCJA 旨在构建一个 CCS,该 CCS 可以感知更大的区域,同时实现不同方向的特征交互。这个交叉感受野能够消除单一维度引起的限制,从而提升网络性能。作为推论,当两个维度的核大小相同时,我们可以获得类似于传统 2-D 卷积的方形交叉感受野 ,这在 2-D 卷积中是一种有效的方案。

  1. 注意力可视化(Attention Visualization)

为了更好地理解注意力机制,我们将 TCJA-SNN 在处理 DVS128 Gesture 数据集时第一个 TCJA 模块的输出进行了可视化,如图 11 所示。
在这里插入图片描述

图 11. 时间步长和通道之间的注意力分布。

顶行是使用 DVS128 手势数据集的 TCJA-SNN 中第一个 TCJA 模块的权重。

我们在底行中分别在时间方面(T = 3, 6)和通道方面(C = 33, 77)选择了稀疏和密集注意力帧

注意力权重的变化主要集中在通道之间,进一步验证了 CLA 在 TCJA 模块中的重要作用。为了展示注意力权重,我们提取了一些时间和通道的帧。相比于时间维度,通道维度的发放模式差异更明显。

  1. 能耗分析(Energy Consumption Analysis)

与 ANNs 相比,由于 SNNs 的发放更稀疏且处理精度较低,其能耗较少 。

由于二进制脉冲,SNNs 中的每次操作由一次浮点 (FP) 加法组成。

另一方面,在 ANNs 中,每次操作计算一个点积作为乘加 (MAC) 计算,由一次浮点 (FP) 乘法和一次 FP 加法组成。因此,在相同的网络设计中,SNNs 比 ANNs 消耗更少的能量。这种差异在 45nm CMOS 技术中也得到了验证,其中每次 SNN 操作的能量成本是每次 32 位 ANN MAC 操作的 5.1 倍 (0.9pJ 对 4.6pJ) [72]。

我们评估了 ANN 和 SNN 在分类 DVS128 数据集时的能耗,首先评估了每层的脉冲率和每秒浮点操作数 (FLOPS),结果如表 IX 所示。
在这里插入图片描述

表 IX 用于对 DVS128 数据集进行分类的网络中每层的峰值速率、浮点运算次数和 SNN 单次操作能量成本

其中

  • CONVx 表示第 x 个二维卷积层
  • ATTy 表示第 y 个 TCJA 模块
  • FCz 表示 z − 网络的全连接层。

请注意,第一个二维卷积层是一个编码层,用于将模拟输入转换为尖峰。

对于 ANN,我们可以通过 FLOPS × MAC 能量成本 计算能耗;对于 SNN,能量成本应通过 FLOPS × SNN 操作能量成本 × 脉冲率 进行量化。

最终的能耗计算结果分别为 1.90 × 10^{−3}J (TCJA-SNN) 和 10.00 × 10^{−3}J (ANN),我们的 TCJA-SNN 比其 ANN 版本能耗低 5.26 倍。

  1. 传播模式(Propagation Pattern)

SNNs 中的前向传播过程涵盖了时间和空间域。直观上,SNN 前向传播的计算图可以被概念化为一个顺序的、逐步的模式,这在图 12 中有描绘。
在这里插入图片描述

图 12. 逐步传播模式和逐层传播模式。

  • X_m 表示第 m 个时间步的输入
  • M^i_j 表示第 j 个时间步的第 i 个中间层
  • Y_n 表示第 n 个时间步的输出。

“逐步”指的是在初始时间步评估网络输出,并更新脉冲神经元的隐藏状态。之后,后续时间步以类似方式评估,保持这种顺序。

此外,逐层模式也广泛使用,这意味着我们在所有时间步计算第一层的输出作为第二层的输入,然后检索最后一层在所有时间步的输出。

与 GPU 等并行计算环境不同,逐层模式更适合类脑计算设备 。可以证明,网络在这两种模式下的输出在数学上是等效的。

尽管我们在 TCJA 中使用逐层模式训练网络,但网络的卷积结构在逐步方式应用时仍然受益。在时间注意力方面,由于其卷积性质,TLA 模块只需计算几个相邻的时间步 ,而不像 squeeze 和 excitation 机制那样需要所有时间步的完整信息。前面的讨论揭示了当卷积核大小设置为 2 时,TCJA 达到最佳性能。在这种情况下,TLA 在逐步传播时只需缓冲一个时间步。

结论

本文提出了 TCJA 机制,该机制创新性地重新校准了 SNN 中的时间和通道信息。具体来说,我们使用 1-D 卷积而不是通用的全连接网络来构建帧之间的相关性,从而减少计算量并提高模型性能。

此外,我们提出了 CCF 机制,实现时间和通道信息之间的联合特征交互。
实验验证了我们的方法在四个数据集上的有效性,包括

  • CIFAR10-DVS (83.3%)
  • N-Caltech101 (82.5%)
  • DVS128 (99.0%)
  • Fashion-MNIST (94.8%)
  • CIFAR10 (95.9%)
  • CIFAR100 (78.3%)。

除了在分类任务中的出色表现外,TCJA-SNN 在图像生成任务中也表现出竞争力。据我们所知,这项研究 首次将 SNN 注意力机制应用于高层次分类和低层次生成任务 。值得注意的是,我们的方法在这两个领域都取得了最先进的性能,从而在该领域取得了显著进展。然而,插入 TCJA 仍然导致参数数量相对大幅增加。未来工作中,我们相信这种方法可以轻松集成到类脑芯片中,以实现硬件友好的 1-D 卷积操作和二进制脉冲网络结构。

全部评论 (0)

还没有任何评论哟~