Ternary Spike: Learning Ternary Spikes for Spiking Neural Networks
TL;DR 精炼摘要
本文提出了三元脉冲神经元来解决脉冲神经网络中二元激活的信息容量不足问题。通过引入$ ext{-1, 0, 1}$三元脉冲,增强了信息容量,同时保留了事件驱动和无乘法运算的优点。此外,文章嵌入了可训练因子,以适应不同层的膜电位分布。实验结果表明,性能显著优于现有方法。
摘要
The Spiking Neural Network (SNN), as one of the biologically inspired neural network infrastructures, has drawn increasing attention recently. It adopts binary spike activations to transmit information, thus the multiplications of activations and weights can be substituted by additions, which brings high energy efficiency. However, in the paper, we theoretically and experimentally prove that the binary spike activation map cannot carry enough information, thus causing information loss and resulting in accuracy decreasing. To handle the problem, we propose a ternary spike neuron to transmit information. The ternary spike neuron can also enjoy the event-driven and multiplication-free operation advantages of the binary spike neuron but will boost the information capacity. Furthermore, we also embed a trainable factor in the ternary spike neuron to learn the suitable spike amplitude, thus our SNN will adopt different spike amplitudes along layers, which can better suit the phenomenon that the membrane potential distributions are different along layers. To retain the efficiency of the vanilla ternary spike, the trainable ternary spike SNN will be converted to a standard one again via a re-parameterization technique in the inference. Extensive experiments with several popular network structures over static and dynamic datasets show that the ternary spike can consistently outperform state-of-the-art methods. Our code is open-sourced at https://github.com/yfguo91/Ternary-Spike.
思维导图
论文精读
中文精读
1. 论文基本信息
1.1. 标题
Ternary Spike: Learning Ternary Spikes for Spiking Neural Networks (三元脉冲:学习用于脉冲神经网络的三元脉冲)
1.2. 作者
Yufei Guo, Yuanpei Chen, Xiaode Liu, Weihang Peng, Yuhan Zhang, Xuhui Huang, Zhe Ma† (来自中国科学院航空航天信息科学与技术研究院)
1.3. 发表期刊/会议
预印本,发表于 arXiv。arXiv 在计算机科学领域,尤其是机器学习和人工智能方向,是重要的预印本服务器,许多前沿研究成果在此首发。
1.4. 发表年份
2023年
1.5. 摘要
脉冲神经网络 (SNN) 作为一种受生物学启发的神经网络架构,近年来受到越来越多的关注。它采用二元脉冲 (binary spike) 激活来传输信息,从而可以将激活与权重的乘法替换为加法,这带来了高能效。然而,本文从理论和实验上证明,二元脉冲激活图无法承载足够的信息,从而导致信息丢失和精度下降。为了解决这个问题,我们提出了一种三元脉冲 (ternary spike) 神经元来传输信息。三元脉冲神经元也可以享受二元脉冲神经元的事件驱动 (event-driven) 和无乘法运算 (multiplication-free) 的优点,但会提高信息容量。此外,我们还在三元脉冲神经元中嵌入了一个可训练因子 (trainable factor),以学习合适的脉冲幅度 (spike amplitude),从而使我们的 SNN 在不同层采用不同的脉冲幅度,这可以更好地适应膜电位 (membrane potential) 分布在不同层之间存在差异的现象。为了保持原始三元脉冲的效率,可训练三元脉冲 SNN 在推理 (inference) 阶段将通过重参数化 (re-parameterization) 技术再次转换为标准形式。在静态和动态数据集上使用几种流行网络结构进行的广泛实验表明,三元脉冲可以持续优于最先进的方法。我们的代码已在 https://github.com/yfguo91/Ternary-Spike 上开源。
1.6. 原文链接
原文链接: https://arxiv.org/abs/2312.06372v2 PDF 链接: https://arxiv.org/pdf/2312.06372v2.pdf 发布状态:预印本
2. 整体概括
2.1. 研究背景与动机
背景: 人工神经网络 (ANN) 在许多领域取得了巨大成功,但其日益增长的模型规模带来了高能耗问题。脉冲神经网络 (SNN) 作为下一代神经网络的候选者,通过模仿大脑信息处理方式,利用离散的脉冲 (spike) 信号传输信息,将乘法运算转换为加法,并利用事件驱动 (event-driven) 的计算方式,展现出更高的能效,尤其在神经形态硬件 (neuromorphic hardwares) 上具有优势。
动机:
- 二元脉冲信息容量不足: 现有 SNN 通常采用二元脉冲()进行信息传输。论文指出,这种二元激活图与 ANN 的全精度激活图相比,信息容量非常有限,在膜电位 (membrane potential) 量化 (quantization) 过程中会导致显著的信息丢失,从而降低模型精度。
- 膜电位分布的层间差异被忽略: 论文观察到,SNN 中不同层的膜电位分布差异很大。然而,以往的工作往往将这些不同分布的膜电位统一量化为相同的二元脉冲值,这被认为是不合理的,并且未能充分利用各层膜电位的特性。
2.2. 核心贡献/主要发现
- 提出三元脉冲神经元 (Ternary Spike Neuron): 作者从理论和实验上证明了二元脉冲信息容量的局限性,并提出了一种新的三元脉冲神经元,使用 脉冲来传输信息。这种神经元显著增加了信息容量,同时保留了 SNN 事件驱动和无乘法运算的能效优势。
- 引入可训练三元脉冲 (Trainable Ternary Spike): 为了解决不同层膜电位分布差异的问题,作者进一步提出了可训练三元脉冲。它允许脉冲幅度 (spike amplitude) 成为一个可学习的层级 (layer-wise) 因子,即脉冲值为 。这样,不同层的神经元可以根据其膜电位分布学习和发射不同幅度的脉冲,更好地适应网络内部的动态特性。
- 重参数化技术保持推理效率: 为了在引入可训练因子 后仍能保持 SNN 的高能效,论文提出在推理阶段 (inference phase) 通过重参数化 (re-parameterization) 技术将可训练因子 折叠 (fold) 到权重中。这使得训练后的可训练三元脉冲 SNN 在推理时可以转换回标准的(即 值为 1 的)三元脉冲 SNN,从而继续享受无乘法运算的优势。
- 卓越的实验性能: 在静态数据集 (CIFAR10/100, ImageNet) 和动态数据集 (CIFAR10-DVS) 上,使用多种流行网络结构 (ResNet20/19/18/34) 进行的广泛实验表明,所提出的三元脉冲方法能够持续优于现有的最先进方法,并在较低时间步 (timestep) 下取得显著的精度提升。例如,在 ImageNet 上,使用 ResNet34 和 4 个时间步,该方法取得了 70.74% 的 Top-1 精度,比其他最先进的 SNN 模型提升了约 3%。
3. 预备知识与相关工作
3.1. 基础概念
3.1.1. 脉冲神经网络 (Spiking Neural Networks, SNNs)
SNN 是一种模仿生物神经元工作方式的神经网络模型。与传统人工神经网络 (ANN) 使用连续值激活函数不同,SNN 中的神经元通过发射离散的、异步的“脉冲”来传递信息。只有当神经元的膜电位 (membrane potential) 累积到某个阈值 (threshold) 时,它才会发射一个脉冲,并将膜电位重置。这种事件驱动 (event-driven) 的特性使得 SNN 在处理时序信息和能效方面具有潜在优势。
3.1.2. 膜电位 (Membrane Potential)
膜电位是 SNN 神经元的一个内部状态变量,它随着输入脉冲的到来而累积,并随着时间推移而泄漏 (leakage)。当膜电位达到预设的阈值时,神经元会发射一个脉冲。
3.1.3. LIF 神经元模型 (Leaky-Integrate-and-Fire Neuron Model)
LIF 神经元模型是 SNN 中最常用的神经元模型之一,它模拟了生物神经元的膜电位动态:膜电位对输入电流进行积分 (integrate),同时以一定的速率泄漏 (leak),当达到阈值时发放脉冲 (fire) 并重置 (reset)。
3.1.4. 二元脉冲 (Binary Spike)
传统的 SNN 中,神经元发射的脉冲通常是二元的,即只有两种状态:0(不发放脉冲)或 1(发放脉冲)。这代表了信息的有无。
3.1.5. 事件驱动 (Event-Driven)
事件驱动是 SNN 的一个重要特性。神经元只在接收到输入脉冲或自身膜电位达到阈值时才进行计算和通信,而不是像 ANN 那样在每个时间步都进行全连接层的计算。这种按需计算的模式可以显著降低能耗。
3.1.6. 无乘法运算 (Multiplication-Free)
在 SNN 中,如果脉冲激活是二元的(0或1),那么激活与权重的乘法 (activation * weight) 可以简化为加法或不操作 (0 * weight = 0, 1 * weight = weight)。这大大减少了计算的复杂性和能耗。本文的目标是扩展脉冲表示,同时保留这一优势。
3.1.7. 信息熵 (Information Entropy)
信息熵是衡量信息量或不确定性的一个指标。在信息论中,一个随机变量的信息熵越大,表示它可能的状态越多,每个状态出现的概率越均匀,因此它能够携带的信息量越大。 数学公式: 符号解释:
- : 集合 的信息熵。
- : 集合 中的一个样本。
- : 样本 出现的概率。
3.2. 前人工作
3.2.1. SNN 的学习方法
SNN 的训练主要分为两大类:
- ANN-SNN 转换 (ANN-SNN Conversion): 将预训练好的 ANN 模型转换为 SNN。其核心思想是匹配 ANN 的激活值与 SNN 的平均发放率。这种方法通常需要较长的时间步才能达到与 ANN 相似的精度,并且 SNN 的性能无法超越原始 ANN,也难以处理神经形态数据集。
- 直接训练 SNN (Direct Training of SNNs): 直接从头开始训练 SNN。这种方法更适合神经形态数据集,并且可以在较少的时间步下获得良好的性能。本文关注的正是通过减少信息损失来提高直接训练 SNN 的性能。
- 混合学习 (Hybrid Learning): 结合了 ANN-SNN 转换和直接训练的优点。
3.2.2. SNN 中的信息损失
现有研究已经注意到 SNN 中存在信息损失问题,并提出了多种尝试来缓解:
- InfLoR-SNN (Guo et al. 2022b): 认为 SNN 的量化过程导致信息损失,提出了膜电位整流器 (membrane potential rectifier) 在发放脉冲前调整膜电位,使其更接近量化脉冲。
- RMP-Loss (Guo et al. 2023a): 通过损失函数调整膜电位,以减少量化误差。
- IM-Loss (Guo et al. 2022a): 提出通过最大化激活信息熵 (activation information entropy) 来减少信息损失。
- RecDis-SNN (Guo et al. 2022c): 引入膜电位分布损失,惩罚不希望的分布偏移,以实现双峰膜电位分布,从而缓解信息损失。
- MT-SNN (Wang, Zhang, and Zhang 2023): 在 LIF 神经元中引入多阈值 (multiple threshold) 算法,部分恢复量化过程中的信息损失。
与本文的差异化分析: 上述所有工作,尽管致力于减少信息损失,但都仍将膜电位量化为二元脉冲,并且忽略了不同层膜电位分布的差异。本文的创新点在于:
- 突破二元限制: 首次提出了使用 三元脉冲来传输信息,从根本上提高了激活的信息容量。
- 考虑层间差异: 通过引入可训练因子,使不同层的神经元能够学习和适应其独特的膜电位分布,发出不同幅度的脉冲,这在现有工作中是未被考虑的。
值得注意的是,此前 Sun et al. (2022) 也曾提出三元脉冲神经元,但其脉冲为 { 0, 1, 2 },这无法享受 SNN 的无乘法运算优势。本文提出的 脉冲则能完美保留这一优势。
3.3. 技术演进
SNN 的发展大致经历了从理论模型到大规模应用,从手工设计脉冲编码到端到端学习优化的过程。早期 SNN 主要关注生物合理性,模型复杂且难以训练。随着 ANN 深度学习的兴起,SNN 领域也开始探索如何借鉴其成功经验,出现了 ANN-SNN 转换和直接训练两种主要范式。信息损失一直是 SNN 精度提升的瓶颈,许多工作都试图在保持 SNN 能效特性的前提下,减少从连续膜电位到离散脉冲的量化误差。本文正是在这一背景下,通过扩展脉冲的表示范围(从二元到三元)并引入学习机制来适应层间异质性,以期在根本上解决信息容量不足的问题,从而推动 SNN 的性能更接近 ANN。
4. 方法论
4.1. 信息损失在脉冲神经网络中的体现
本文首先从理论上分析了传统 SNN 中二元脉冲导致的信息损失问题。
4.1.1. 传统 LIF 神经元模型
在本文中,考虑常用的 LIF (Leaky-Integrate-and-Fire) 神经元模型。其工作机制通过以下迭代模型描述:
膜电位更新: 脉冲发放后的膜电位重置: 输出脉冲: 符号解释:
-
: 在 时刻脉冲发放处理前的膜电位。
-
: 在 时刻脉冲发放处理后的膜电位。
-
: 在 时刻的输出脉冲。
-
dt: 时间常数。 -
: 膜电位泄漏常数。
-
: 由输入电流 和电阻 导致的充电电压,代表来自前一层信号的输入。
-
: 神经元的发放阈值。
由于 是一个常数,可以简化表示为 (在本文中设置为 0.25)。输入电压 可以展开为前一层脉冲信号的加权和 。其中 是连接前一层第 个神经元和当前神经元的权重, 是前一层第 个神经元在 时刻的二元脉冲。 因此,LIF 模型可以简化为: 膜电位更新(考虑泄漏和输入): 输出脉冲: 符号解释:
-
: 膜电位泄漏因子 (简化表示,原论文中设置为 0.25)。
-
: 上一时间步的膜电位。
-
: 上一时间步的输出脉冲。当 时,表示神经元在
t-1时刻发放了脉冲,膜电位 被重置为 0,因此 项为 0。 -
: 来自前一层神经元在 时刻的加权输入脉冲和。
-
: 连接前一层第 个神经元和当前神经元的权重。
-
: 前一层第 个神经元在 时刻的二元脉冲。
-
: 发放阈值。
4.1.2. 二元脉冲的信息容量分析
为了验证二元脉冲信息容量不足的假设,作者使用信息熵 (Information Entropy) 的概念进行理论分析。给定一个集合 ,其表示能力 可以通过 的信息熵 来衡量: 符号解释:
-
: 集合 的表示能力。
-
: 集合 的信息熵。
-
: 集合 中的一个样本。
-
: 样本 出现的概率。
命题 1: 当
p_S(s_1) = p_S(s_2) = \dots = p_S(s_N)时, 达到其最大值 。这里 表示 中样本的总数。
基于此,可以计算二元脉冲特征图和实值膜电位图的表示能力:
-
对于一个二元脉冲输出 ,它可以用 1 比特表示,因此 的样本数为 2。
-
设 为一个二元特征图,其中
C, H, W分别是通道数、高度和宽度。 -
则 的样本数为 。
-
其表示能力为 。
-
对于一个实值膜电位,通常需要 32 比特表示,这意味着它包含 个样本。
-
设 为一个实值膜电位图。
-
则 的表示能力为 。
结论: 二元脉冲特征图的表示能力远低于实值膜电位图(相差 32 倍)。将实值膜电位量化为二元脉冲会导致过多的信息损失。
解释时间步的作用: 增加 SNN 的时间步 (timestep) 可以提高精度,这也可以用信息论来解释。增加时间步相当于通过时间维度增加了神经元输出脉冲的比特数,从而提高了输出特征图的表示能力。
4.2. 三元脉冲神经元模型 (Ternary Spike Neuron Model)
为了提高信息容量同时保留 SNN 的能效优势,本文提出了三元 LIF 脉冲神经元。
膜电位更新和脉冲发放: 符号解释:
- : 当前时间步的膜电位。
- : 膜电位泄漏因子。
- : 上一时间步的膜电位。
- : 上一时间步的输出脉冲。注意这里使用 ,因为三元脉冲可以是 -1 或 1,这两种情况都表示神经元发放了脉冲并需要重置膜电位,因此 在发放脉冲时为 0,否则为 1。
- : 来自前一层神经元在 时刻的加权输入脉冲和。
- : 连接前一层第 个神经元和当前神经元的权重。
- : 前一层第 个神经元在 时刻的三元脉冲(可以是 -1, 0, 1)。
- : 发放阈值。当膜电位高于 时发放正脉冲 (1),低于 时发放负脉冲 (-1),否则不发放脉冲 (0)。
4.2.1. 表示能力提升
通过引入三元脉冲(),神经元的表示能力得到显著提升。
- 设 为一个三元特征图。
- 每个三元脉冲可以用 比特表示。
- 则 的样本数为 。
- 其表示能力为 。 与二元脉冲的表示能力 相比,三元脉冲的表示能力提高了约 58%,显著增强了 SNN 的信息表达能力。
4.2.2. 保留事件驱动和无乘法运算优势
- 事件驱动: 三元脉冲神经元同样享受事件驱动特性。只有当膜电位大于 或小于 时,神经元才会被激活并发放 1 或 -1 脉冲。否则,神经元保持静默(发放 0 脉冲),不进行后续计算。
- 无乘法运算: 对于传统的二元脉冲神经元,脉冲与权重的乘法 可以替换为加法 。对于三元脉冲神经元,其脉冲为 1 或 -1,乘法 或 同样可以替换为加法 或 。因此,三元脉冲仍然保留了 SNN 的无乘法运算优势。
4.3. 可训练三元脉冲 (Trainable Ternary Spike)
考虑到不同层的膜电位分布差异很大(如论文图 2 所示),统一的脉冲幅度是不合理的。因此,本文提出了可训练三元脉冲神经元,允许脉冲幅度 成为一个可学习的层级因子。
膜电位更新和脉冲发放: 符号解释:
-
: 可训练因子,一个层级 (layer-wise) 可学习的值。
-
:标准的三元脉冲值。
-
: 当前时间步的输出脉冲,其幅度由可训练因子 调节。
通过学习层级的 值,神经元可以找到更合适的脉冲幅度,并针对不同层的发放活动采取不同的策略,以更好地适应膜电位分布的差异。
4.3.1. 重参数化技术 (Re-parameterization Technique)
可训练因子 的引入会导致脉冲与权重的乘法不再是简单的加减法,从而失去 SNN 的计算效率优势。为了解决这个问题,本文遵循训练-推理解耦技术 (training-inference decoupled technique),通过重参数化技术在推理阶段将不同幅度的脉冲转换为标准化的脉冲。
以卷积层为例:
-
输入特征图为 ,输出特征图为 。
-
卷积操作表示为: 符号解释:
-
: 输出特征图。
-
: 卷积核张量。
-
: 输入特征图。
-
*: 卷积操作。对于可训练三元 SNN,输入特征图 包含由可训练因子 调节的脉冲: 符号解释:
-
: 对应于输入特征图各通道(或层)的可训练因子。
-
: 由标准化三元脉冲构成的特征图(即脉冲幅度为 1 或 -1)。
在推理阶段,可以将可训练因子 从特征图 中提取出来,并折叠到卷积核 中,形成新的卷积核 : 符号解释:
-
: 经过重参数化后包含因子 的新卷积核。
-
: 包含标准化三元脉冲(即 )的输入特征图。
通过这种重参数化,推理时 SNN 的输入特征图 再次由标准化的三元脉冲组成,从而恢复了乘法-加法转换的优势。这意味着可训练三元脉冲 SNN 在训练时可以灵活学习脉冲幅度,而在推理时又能以标准三元脉冲 SNN 的高效方式运行,实现了训练与推理的解耦。
4.4. 膜电位分布差异的实验观察
下图 (原文 Figure 2) 展示了在 CIFAR-10 数据集上训练的 ResNet20 SNN,在 1 和 2 个时间步 (timesteps) 下,不同层的膜电位分布。
该图像是一个示意图,其中展示了不同情况下的分布直方图,包括八个子图(a)至(h),展示了信息传输过程中的信息容量变化。这些变化与三元脉冲神经元的性能相关。
yeF usher hirr yeet w e py.
从图中可以看出,不同层的膜电位分布确实存在显著差异,例如有些层膜电位集中在零附近,有些则呈现更宽的分布。这证实了作者的观点,即统一的脉冲幅度对于所有层可能不是最优选择,需要引入可训练因子以适应这种层间异质性。
5. 实验设置
本文在多种数据集和网络结构上对提出的三元脉冲方法进行了广泛评估,并与现有最先进的方法进行了比较。
5.1. 数据集
-
静态数据集 (Static Datasets):
- CIFAR10 (Krizhevsky, Nair, and Hinton 2010): 包含 60,000 张 32x32 彩色图像,分为 10 个类别,每类 6,000 张。其中 50,000 张用于训练,10,000 张用于测试。
- CIFAR100 (Krizhevsky, Nair, and Hinton 2010): 与 CIFAR10 类似,但包含 100 个类别,每个类别 600 张图像。
- ImageNet (Deng et al. 2009): 大型图像数据集,包含超过 100 万张高分辨率图像,分为 1000 个类别。常用于评估模型在大规模、复杂数据集上的性能。
-
动态数据集 (Dynamic Datasets):
- CIFAR10-DVS (Li et al. 2017): 这是 CIFAR10 的神经形态版本,由事件相机 (event camera) 捕捉,而非传统帧相机。数据以异步事件流 (event stream) 的形式表示,每个事件记录像素位置、时间和极性(亮度变化)。这类数据集更能体现 SNN 处理时序信息的优势。
5.2. 评估指标
-
Top-1 准确率 (Top-1 Accuracy):
- 概念定义: 在分类任务中,模型预测的概率最高的类别与真实标签一致的样本比例。它是衡量模型在单个预测中正确性的最常用指标。
- 数学公式:
- 符号解释:
Number of correctly predicted samples: 模型将样本预测为其真实类别且置信度最高的样本数量。Total number of samples: 数据集中的总样本数量。
-
能耗 (Energy Estimation):
- 概念定义: 衡量模型在硬件上执行一次推理所需的能量消耗。对于 SNN,能耗是其核心优势之一,通常通过计算浮点运算 (FLOPs)、突触运算 (SOPs) 和符号运算 (Sign) 的加权和来估计。
- 数学公式: 本文依照 (Hu, Tang, and Pan 2021) 的方法,将总能耗估计为:
- 符号解释:
FLOPs: 浮点运算次数 (floating point operations)。在 SNN 中,通常指不享受无乘法运算优势的部分(如第一层的率编码)。SOPs: 突触运算次数 (synaptic operations)。指 SNN 中脉冲与权重的加法/减法操作。计算方式为 ,其中 是平均稀疏度 (mean sparsity), 是时间步 (timestep), 是 ANN 中对应的加法次数。Sign: 符号函数运算次数。- : 单次浮点运算的能量消耗 (本文取 12.5 pJ)。
- : 单次突触运算的能量消耗 (本文取 77 fJ)。
- : 单次符号运算的能量消耗 (本文取 3.7 pJ)。
- 备注: 能量单位 pJ (picojoule) = J,fJ (femtojoule) = J。
5.3. 对比基线
论文将自己的方法与以下类型的最先进方法进行了比较:
-
基于 ANN-SNN 转换的方法: 例如 SpikeNorm (Sengupta et al. 2019), RMP (Han, Srinivasan, and Roy 2020)。
-
直接训练 SNN 的方法: 这是主要的对比类型,包括但不限于:
- TSSL-BP (Zhang and Li 2020)
- PLIF (Fang et al. 2021b)
- DSR (Meng et al. 2022)
- KDSNN (Xu et al. 2023)
- Joint A-SNN (Guo et al. 2023b)
- Diet-SNN (Rathi and Roy 2020)
- Dspike (Li et al. 2021b)
- STBP-tdBN (Zheng et al. 2021)
- TET (Deng et al. 2022)
- RecDis-SNN (Guo et al. 2022c)
- RMP-Loss (Guo et al. 2023a)
- OTTT (Xiao et al. 2022)
- GLIF (Yao et al. 2022)
- IM-Loss (Guo et al. 2022a)
- Real Spike (Guo et al. 2022d)
- MPBN (Guo et al. 2023c)
- InfLoR-SNN (Guo et al. 2022b)
- SEW ResNet (Fang et al. 2021a)
-
混合学习方法: 例如 Hybrid-Train (Rathi et al. 2020), LTL (Yang et al. 2022)。
这些基线模型涵盖了 SNN 领域的最新进展,包括不同的训练策略、神经元模型改进以及信息损失缓解技术,能够全面评估本文方法的性能。
6. 实验结果与分析
6.1. 消融实验 (Ablation Study)
以下是原文 Table 1 的结果:
| Architecture | Method | Time-step | Accuracy |
|---|---|---|---|
| ResNet18 | Binary spike | 2 | 58.30% |
| Ternary spike | 2 | 65.87% | |
| Trainable ternary spike | 2 | 66.40% | |
| Binary spike | 4 | 61.07% | |
| Ternary spike | 4 | 66.90% | |
| Trainable ternary spike | 4 | 67.68% | |
| ResNet34 | Binary spike | 2 | 62.81% |
| Ternary spike | 2 | 69.48% | |
| Trainable ternary spike | 2 | 69.51% | |
| Binary spike | 4 | 63.82% | |
| Ternary spike | 4 | 70.12% | |
| Trainable ternary spike | 4 | 70.74% |
分析: 该表展示了在 ImageNet 数据集上,使用 ResNet18 和 ResNet34 作为主干网络,在不同时间步下,二元脉冲、三元脉冲和可训练三元脉冲的消融实验结果。
-
三元脉冲相较于二元脉冲的显著提升:
- 对于 ResNet18,在 2 个时间步下,从二元脉冲的 58.30% 提升到三元脉冲的 65.87%,提升了约 7.57%。在 4 个时间步下,从 61.07% 提升到 66.90%,提升了约 5.83%。
- 对于 ResNet34,在 2 个时间步下,从 62.81% 提升到 69.48%,提升了约 6.67%。在 4 个时间步下,从 63.82% 提升到 70.12%,提升了约 6.30%。 这些结果有力地证明了,仅仅将脉冲从二元扩展到三元,就能大幅度提升 SNN 的性能,验证了作者关于二元脉冲信息容量不足的理论分析。
-
可训练三元脉冲的进一步提升:
- 在三元脉冲的基础上,引入可训练因子后,性能可以得到进一步提升。
- 例如,ResNet18 在 4 个时间步下,从 66.90% 提升到 67.68%。
- ResNet34 在 4 个时间步下,从 70.12% 提升到 70.74%。 这表明,允许网络学习层级的脉冲幅度,能够更好地适应不同层膜电位分布的差异,进一步优化信息传输,从而带来额外的性能增益。
-
时间步的影响: 无论是哪种脉冲类型,增加时间步通常都能带来性能提升(例如 ResNet34 从 2 个时间步的 69.51% 提升到 4 个时间步的 70.74%)。这与信息论分析中“增加时间步相当于增加信息比特”的结论一致。然而,即使在较低的时间步(如 2 个时间步),三元脉冲的表现也显著优于二元脉冲在更高时间步的表现(例如 ResNet18 的三元脉冲 2T 达到 65.87%,高于二元脉冲 4T 的 61.07%),表明三元脉冲在信息效率上具有优势。
6.2. 与最先进方法的比较 (Comparison with SoTA methods)
6.2.1. CIFAR-10 和 CIFAR-100 数据集
以下是原文 Table 2 的结果:
| Dataset | Method | Type | Architecture | Timestep | Accuracy |
| CIFAR-10 | SpikeNorm (Sengupta et al. 2019) | ANN2SNN | VGG16 | 2500 | 91.55% |
| Hybrid-Train (Rathi et al. 2020) | Hybrid training | VGG16 | 200 | 92.02% | |
| TSSL-BP (Zhang and Li 2020) | SNN training | CIFARNet | 5 | 91.41% | |
| TL (Wu et al. 2021b) | Tandem Learning | CIFARNet | 8 | 89.04% | |
| PTL (Wu et al. 2021c) | Tandem Learning | VGG11 | 16 | 91.24% | |
| PLIF (Fang et al. 2021b) | SNN training | PLIFNet | 8 | 93.50% | |
| DSR (Meng et al. 2022) | SNN training | ResNet18 | 20 | 95.40% | |
| KDSNN (Xu et al. 2023) | SNN training | ResNet18 | 4 | 93.41% | |
| Joint A-SNN (Guo et al. 2023b) | SNN training | ResNet18 | 4 | 95.45% | |
| Diet-SNN (Rathi and Roy 2020) | SNN training | ResNet20 | 10 | 92.54% | |
| Dspike (Li et al. 2021b) | SNN training | ResNet20 | 2 | 93.13% | |
| Dspike (Li et al. 2021b) | SNN training | ResNet20 | 4 | 93.66% | |
| STBP-tdBN (Zheng et al. 2021) | SNN training | ResNet19 | 2 | 92.34% | |
| STBP-tdBN (Zheng et al. 2021) | SNN training | ResNet19 | 4 | 92.92% | |
| TET (Deng et al. 2022) | SNN training | ResNet19 | 2 | 94.16% | |
| TET (Deng et al. 2022) | SNN training | ResNet19 | 4 | 94.44% | |
| RecDis-SNN (Guo et al. 2022c) | SNN training | ResNet19 | 2 | 93.64% | |
| RecDis-SNN (Guo et al. 2022c) | SNN training | ResNet19 | 4 | 95.53% | |
| RMP-Loss (Guo et al. 2023a) | SNN training | ResNet19 | 2 | 95.31% | |
| 4 | 95.51% | ||||
| 5 | 91.78% | ||||
| Ternary Spike | SNN training | ResNet20 | 1 | 91.89% | |
| ResNet20 | 2 | 94.29%±0.08 | |||
| ResNet19 | 2 | 95.60% ±0.09 | |||
| Trainable Ternary Spike | SNN training | ResNet20 | 4 | 94.46%±0.08 | |
| ResNet19 | 1 | 95.58%±0.08 | |||
| ResNet19 | 2 | 95.80%±0.10 | |||
| CIFAR-100 | RMP (Han, Srinivasan, and Roy 2020) | ANN2SNN | ResNet20 | 2048 | 67.82% |
| Real Spike (Guo et al. 2022d) | SNN training | ResNet20 | 2 | 94.48%±0.09 | |
| Real Spike (Guo et al. 2022d) | SNN training | ResNet20 | 4 | 94.96%±0.10 | |
| LTL (Yang et al. 2022) | Tandem Learning | ResNet20 | 5 | 66.60% | |
| Diet-SNN (Rathi and Roy 2020) | SNN training | ResNet20 | 31 | 76.08% | |
| RecDis-SNN (Guo et al. 2022c) | SNN training | ResNet19 | 4 | 74.10% | |
| Dspike (Li et al. 2021b) | SNN training | ResNet20 | 2 | 71.68% | |
| TET (Deng et al. 2022) | SNN training | ResNet19 | 2 | 72.87% | |
| TET (Deng et al. 2022) | SNN training | ResNet19 | 4 | 73.35% | |
| Ternary Spike | SNN training | ResNet19 | 1 | 78.13%±0.11 | |
| ResNet19 | 2 | 79.66%±0.08 | |||
| ResNet19 | 4 | 74.47% | |||
| Trainable Ternary Spike | SNN training | ResNet20 | 2 | 73.00%±0.08 | |
| ResNet20 | 4 | 73.85% ±0.11 | |||
| ResNet19 | 1 | 78.45% ±0.08 | |||
| ResNet19 | 2 | 80.20%±0.10 | |||
| Trainable Ternary Spike | SNN training | ResNet20 | 2 | 73.41%±0.12 | |
| Trainable Ternary Spike | SNN training | ResNet20 | 4 | 74.02%±0.08 |
分析:
- CIFAR-10 表现:
- 在 CIFAR-10 上,与现有最先进的方法相比,本文提出的方法取得了卓越的性能。
- 例如,在 ResNet19 结构上,RecDis-SNN (4T) 达到 95.53%,RMP-Loss (4T) 达到 95.51%。而本文的
Ternary Spike(ResNet19, 2T) 达到 95.60%±0.09,在更少的时间步下超越了这些基线。 Trainable Ternary Spike(ResNet19, 2T) 更是达到了 95.80%±0.10,成为表格中的最高点。- 即使在极低时间步 (1T) 下,
Trainable Ternary Spike(ResNet19, 1T) 也能达到 95.58%±0.08,显示出惊人的效率。
- CIFAR-100 表现:
- 在更复杂的 CIFAR-100 数据集上,本文方法也展示了显著优势。
Trainable Ternary Spike(ResNet19, 2T) 达到了 80.20%±0.10,显著高于许多基线方法(如 TET (4T) 的 73.35%,RecDis-SNN (4T) 的 74.10%)。- 与 ANN-SNN 转换方法(如 RMP 2048T 的 67.82%)相比,本文方法在极少时间步下性能大幅领先,凸显了直接训练 SNN 的优势。
6.2.2. ImageNet 数据集
以下是原文 Table 3 的结果:
| Method | Type | Architecture | Timestep | Accuracy |
|---|---|---|---|---|
| STBP-tdBN (Zheng et al. 2021) | SNN training | ResNet34 | 6 | 63.72% |
| TET (Deng et al. 2022) | SNN training | ResNet34 | 6 | 64.79% |
| RecDis-SNN (Guo et al. 2022c) | SNN training | ResNet34 | 6 | 67.33% |
| OTTT (Xiao et al. 2022) | SNN training | ResNet34 | 6 | 65.15% |
| GLIF (Yao et al. 2022) | SNN training | ResNet34 | 4 | 67.52% |
| DSR (Meng et al. 2022) | SNN training | ResNet18 | 50 | 67.74% |
| IM-Loss (Guo et al. 2022a) | SNN training | ResNet18 | 6 | 67.43% |
| Real Spike (Guo et al. 2022d) | SNN training | ResNet18 | 4 | 63.68% |
| ResNet34 | 4 | 67.69% | ||
| RMP-Loss (Guo et al. 2023a) | SNN training | ResNet18 | 4 | 63.03% |
| ResNet34 | 4 | 65.17% | ||
| MPBN (Guo et al. 2023c) | SNN training | ResNet18 | 4 | 63.14% |
| ResNet34 | 4 | 64.71% | ||
| InfLoR-SNN (Guo et al. 2022b) | SNN training | ResNet18 | 4 | 64.78% |
| ResNet34 | 4 | 65.54% | ||
| SEW ResNet (Fang et al. 2021a) | SNN training | ResNet18 | 4 | 63.18% |
| ResNet34 | 4 | 67.04% | ||
| Ternary Spike | SNN training | ResNet18 | 4 | 66.90%±0.19 |
| ResNet34 | 4 | 70.12%±0.15 | ||
| Trainable Ternary Spike | SNN training | ResNet18 | 4 | 67.68%±0.13 |
| ResNet34 | 4 | 70.74%±0.11 |
分析:
- ImageNet 是一个规模更大、复杂度更高的数据集,对模型性能提出了更高的要求。
- 本文提出的
Trainable Ternary Spike方法在 ResNet34 (4T) 上达到了 70.74%±0.11 的 Top-1 准确率,显著超越了所有列出的 SNN 基线方法。 - 例如,与 RecDis-SNN (6T) 的 67.33% 相比,本文方法在更少的时间步下取得了近 3.4% 的提升。
- 与 GLIF (4T) 的 67.52% 相比,本文方法也提高了 3.22%。
- 即使是
Ternary Spike(ResNet34, 4T) 也达到了 70.12%±0.15,表现出强大的竞争力。 - 这些结果表明,三元脉冲及其可训练版本在处理大规模复杂数据集时依然非常有效和高效,验证了其在通用性方面的优势。
6.2.3. CIFAR10-DVS 数据集
以下是原文 Table 4 的结果:
| Method | Type | Architecture | Timestep | Accuracy |
|---|---|---|---|---|
| DSR (Meng et al. 2022) | SNN training | VGG11 | 20 | 77.27% |
| GLIF (Yao et al. 2022) | SNN training | 7B-wideNet | 16 | 78.10% |
| STBP-tdBN (Zheng et al. 2021) | SNN training | ResNet19 | 10 | 67.80% |
| RecDis-SNN (Guo et al. 2022c) | SNN training | ResNet19 | 10 | 72.42% |
| Real Spike (Guo et al. 2022d) | SNN training | ResNet19 | 10 | 72.85% |
| Ternary Spike | SNN training | ResNet19 | 10 | 78.40%±0.21 |
| ResNet20 | 10 | 78.70%±0.17 | ||
| Trainable Ternary Spike | SNN training | ResNet19 | 10 | 79.80%±0.16 |
| ResNet20 | 10 | 79.80%±0.19 |
分析:
- CIFAR10-DVS 是一个神经形态数据集,特别适合评估 SNN 处理事件流数据的能力。
- 本文提出的
Trainable Ternary Spike方法在 ResNet19 (10T) 和 ResNet20 (10T) 上都取得了 79.80% 左右的准确率。 - 这一性能显著高于表格中其他 SNN 方法,例如 DSR (20T) 的 77.27% 和 GLIF (16T) 的 78.10%,尽管 DSR 和 GLIF 使用了更多的时间步或不同的网络结构。
- 与 RecDis-SNN (10T) 的 72.42% 和 Real Spike (10T) 的 72.85% 相比,本文方法提升了约 7% 左右。
- 这表明,三元脉冲不仅在静态数据集上表现出色,在处理神经形态事件流数据时也具有强大的信息表达和处理能力,进一步证明了其普遍适用性。
6.3. 能耗估计 (Energy Estimation)
以下是原文 Table 5 的结果:
| Method | #Flops | #Sops | #Sign | Energy |
|---|---|---|---|---|
| Binary Spike | 3.54M | 71.20M | 0.11M | 50.14uJ |
| Ternary Spike | 3.54M | 79.21M | 0.23M | 51.20uJ |
分析:
- 该表对比了二元脉冲和三元脉冲在 ResNet20 (CIFAR10, 2T) 上的能耗估计。
- 两种方法拥有相同的 FLOPs (3.54M),因为率编码层不享受无乘法运算优势。
- 三元脉冲的 SOPs (79.21M) 略高于二元脉冲 (71.20M),因为三元脉冲可能导致更高的稀疏度 (sparsity)(文中提到三元脉冲的稀疏度为 18.27% 而二元脉冲为 16.42%)。更高的稀疏度意味着更多的非零脉冲,因此在 计算中 增加了。
- 三元脉冲的
Sign运算次数 (0.23M) 也高于二元脉冲 (0.11M),因为三元脉冲需要判断两个阈值来决定发放 +1, -1 还是 0。 - 尽管 SOPs 和
Sign运算有所增加,但三元脉冲的总能耗 (51.20uJ) 仅比二元脉冲 (50.14uJ) 增加了 2.11% (约 1.06uJ)。 - 这表明,即使在引入了额外的脉冲状态和更复杂的发放逻辑后,三元脉冲 SNN 仍然保持了极高的能效,其带来的性能提升远超能耗的微小增加。这验证了三元脉冲在能效和性能之间找到了一个良好的平衡点。
7. 总结与思考
7.1. 结论总结
本文提出了 Ternary Spike (三元脉冲) 神经元,解决了传统 SNN 中二元脉冲信息容量不足导致的信息丢失和精度下降问题。通过理论分析和实验验证,证明了三元脉冲 (使用 脉冲) 能够显著提高信息容量,同时完美保留了 SNN 事件驱动和无乘法运算的能效优势。进一步,本文引入了 Trainable Ternary Spike (可训练三元脉冲),通过在神经元中嵌入可学习的层级因子,使 SNN 能够适应不同层膜电位分布的差异,发出不同幅度的脉冲。为了在推理时保留效率,还结合了重参数化技术。在多个静态和动态数据集上,使用流行网络结构进行的大量实验结果表明,本文方法能够持续超越现有最先进的 SNN 模型,在实现高效率的同时,显著提升了分类准确率。
7.2. 局限性与未来工作
论文作者没有明确指出其方法的局限性或未来的工作方向。然而,从内容和 SNN 领域的发展来看,可以推断出一些潜在的局限性和未来研究方向:
潜在局限性:
- 训练复杂度: 引入可训练因子 虽然提高了灵活性,但可能增加训练的复杂性,例如需要更精细的优化策略或更长的训练时间。虽然论文提及重参数化解决了推理效率问题,但训练阶段的计算成本和收敛性可能仍是挑战。
- 更复杂的脉冲编码: 尽管三元脉冲比二元脉冲提供了更高的信息容量,但与 ANN 的实值激活相比仍有差距。未来可能探索更复杂、多级的脉冲编码,但同时需要维持能效优势,这是一个权衡的挑战。
- 神经形态硬件的适配: 尽管理论上三元脉冲可以享受无乘法运算的优势,但在实际神经形态硬件上实现 -1 脉冲和相应的逻辑可能需要特定的硬件设计或额外的开销。这可能需要更深入的硬件-软件协同设计研究。
- 动态数据集的进一步优化: 尽管在 CIFAR10-DVS 上表现出色,但对于更复杂的、大规模的神经形态数据集(如事件流视频分类),三元脉冲的优势是否能持续保持,以及如何进一步优化以处理高时空复杂度的事件流,仍是值得探索的方向。
未来工作方向:
- 自适应阈值和泄漏: 本文引入了可训练的脉冲幅度。未来可以进一步探索将发放阈值 和泄漏因子 也设计为可学习或自适应的参数,以更精细地建模神经元行为。
- 理论分析的扩展: 进一步深化对信息容量和信息流的理论分析,探索更广义的脉冲表示(例如,利用脉冲时间编码或频率编码)在信息论上的边界和能效权衡。
- 硬件实现与验证: 将三元脉冲 SNN 部署到实际的神经形态芯片上,并进行功耗和性能的实际测量,以验证其在真实硬件环境中的能效优势。
- 模型可解释性: 研究三元脉冲如何影响 SNN 内部特征表示和决策过程,提升 SNN 的可解释性。
- 与其他 SNN 优化技术的结合: 将三元脉冲与现有的其他 SNN 优化技术(如更先进的替代梯度、正则化方法、网络架构搜索等)相结合,探索更大的性能提升空间。
7.3. 个人启发与批判
个人启发:
- 信息容量的价值: 这篇论文再次强调了信息容量在深度学习模型中的核心地位。即使是看似微小的比特数增加(从 1 比特到 比特),如果发生在基础信息传输单元上,也能带来巨大的性能提升。这提示我们,在设计模型时,除了关注计算复杂度和参数量,对信息流和信息容量的优化也至关重要。
- 生物学启发的灵活运用: SNN 的核心是模仿生物大脑,但并非要完全复制。本文在保留 SNN 能效优势的前提下,大胆引入非生物学上严格定义的“负脉冲”和“可训练幅度”,这是一种工程上的创新,表明在受生物学启发的模型中,适度的抽象和工程优化可以突破生物学原型的限制,达到更好的性能。
- 层级特性的重要性: 论文通过实验发现不同层膜电位分布的差异,并据此设计了层级可训练的脉冲幅度。这提供了一个重要的设计原则:神经网络内部各层的功能和特性往往是异质的,一刀切的策略可能无法达到最优,针对层级特性进行定制化设计可以带来额外收益。
- 训练-推理解耦的优雅: 通过重参数化技术,实现了训练时的灵活性(可训练脉冲幅度)和推理时的效率(标准化脉冲)。这种解耦思想在深度学习优化中非常常见,提示我们可以在训练阶段引入复杂性以提高模型能力,只要能在推理阶段有效地消除这些额外开销即可。
批判:
- 负脉冲的生物合理性存疑: 尽管文章从工程和数学角度论证了 -1 脉冲的有效性和能效保持,但在严格的生物学合理性上,负脉冲(表示抑制性信号)通常通过抑制性突触而非神经元主动发放一个“负值”脉冲来实现。这种抽象在一定程度上偏离了 SNN “生物学启发”的初衷。虽然这在工程上是合理的,但对于追求更高生物合理性的 SNN 研究而言,可能需要进一步解释或改进。
- 稀疏度与能耗的权衡: 实验结果显示,三元脉冲导致了更高的 SOPs 和
Sign运算次数,尽管总能耗只略微增加。这是因为引入 -1 脉冲使得更多的神经元可能被激活(无论是 +1 还是 -1),从而降低了整体稀疏度。在某些极端稀疏计算场景下,这种稀疏度的下降可能会导致比二元脉冲更高的实际能耗。论文需要更详细地讨论稀疏度的变化及其对不同硬件平台能效的影响。 - 可训练因子的收敛性与稳定性: 可训练因子 的引入,增加了模型的自由度,但其训练过程的收敛性、稳定性以及超参数敏感性如何?论文未深入探讨。在实际应用中,如果 值的训练过程不稳定或难以收敛,可能会影响模型的鲁棒性。
- 泛化性评估: 尽管在多个数据集和网络结构上进行了验证,但 SNN 领域还有更广阔的应用场景,例如时间序列预测、事件流处理的非分类任务等。三元脉冲在这些任务上的表现如何,仍需进一步验证。
- 与更高级脉冲编码的对比: 现有 SNN 研究也在探索其他更复杂的脉冲编码方式(如时间编码、速率编码的变体)。本文主要关注离散脉冲值,但并未与这些更高级的编码方式进行深入对比,未来可探索三元脉冲与其他编码方式的结合或替代性。
相似论文推荐
基于向量语义检索推荐的相关论文。