TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers

TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers

在这里插入图片描述
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!


Abstract

脉冲神经网络(SNNs)在边缘设备中很有前途,因为脉冲神经网络的事件驱动操作提供的功率比模拟神经网络(ANNs)低得多。虽然很难有效地训练人工神经网络,但已经开发了许多将训练好的人工神经网络转换成人工神经网络的技术。然而,转换后,SNNs中存在准确性和延迟之间的权衡关系,这在大规模数据集(如 ImageNet)中导致了相当大的延迟。我们提出了一种名为 TCL 的技术来缓解这一权衡问题,它使 ImageNet 的准确率达到 73.87% (VGG-16) 和 70.37% (ResNet-34),而SNNs的中等延迟为250个周期。

I Introduction

在过去的十年中,模拟神经网络( ANNs )得到了迅速而广泛的发展。在图像处理、语音识别和语言翻译等许多应用中, ANNs 的精确度都超过了人类水平,从而展示了它们的卓越性能。然而,这样的 ANN 性能是以相当大的功耗为代价的。这使得在资源受限的边缘设备上使用ANN变得困难。与 ANNs 不同,脉冲神经网络( SNNs )具有事件驱动的行为,提供显著较低的功耗。因此,对于资源受限的边缘设备,研究人员认为 SNN 可以作为 ANN 的替代方案之一。
然而,由于很难有效地训练 SNN,因此 SNN 的部署是有限的。由于 SNNs 的非可微性和间断性,反向传播不能用于 SNNs 的训练。一些研究人员已经通过使用近似技术(如基于脉冲的反向传播 [1] - [4] 和替代梯度 [5] - [7] )克服了这个问题。然而,这些技术仅适用于针对小数据集的小规模网络的训练。此外,当基于上述技术训练SNN时,与ANN不同的是,需要计算每个时间步的前向和后向传播。因此,SNN的直接训练方法在计算复杂度和训练时间方面存在相当大的开销。
近年来,人们提出了一些间接训练神经网络的方法,将ANNs的训练结果转换为SNN。例如,Y. Cao et al. [8]通过将ANN中的整流线性单元(ReLU)的输出映射到SNN中的脉冲发放速率,成功地将ANN转换为SNNs。他们的技术在 MNIST 和 CIFAR-10 的数据集上表现出了良好的性能。P.U.Diehl et al. [9] 开发了数据归一化技术,利用神经网络的模型和数据集来估计归一化因子,得到了更好的转换结果。文献 [10] - [13] 的作者通过分析神经网络的激活与神经元的峰率之间的关系,确定了更为准确的归一化因子。结果,他们成功地将 ImageNet 数据集训练的大型 ANN 转换为 SNN。然而,在转换后的 SNN 的准确性和延迟之间存在权衡关系,这个问题在 ImageNet 数据集中更为突出。因此,通过上述技术转换的 SNN 在低延迟约束下遭受相当大的精度下降。N. Rathi et al. [14],[15]提出了一种称为混合训练的新技术,它对由ANN到SNN转换得到的SNN进行再训练,缓解了权衡关系。然而,如前所述,混合训练技术的附加 SNN 训练阶段的计算量非常大,大约是ANN训练阶段的10倍[14]。
与 [8]-[15]相比,我们的工作有以下重大贡献。
1)我们阐述了转换后的SNN的精度和时延之间存在权衡关系的原因,指出了如何缓解这种权衡关系。
2)我们提出了一种基本技术来改善 SNN 的准确性和延迟之间的权衡关系,即可训练剪贴层(TCL),其中不需要像[14],[15]那样直接训练 SNN。我们确保其裁剪区域经过训练的裁剪层跟随 ReLU 层,从而找到最佳的数据归一化因子来同时考虑 SNN 中的准确性和延迟。
3)通过适当控制 L2 正则化系数,在很低的时延约束下进一步提高了 SNN 的精度。
在我们的实验中,基于 TCL 技术的 SNN 在 CIFAR-10、VGG-16和ResNet-20上的分类准确率分别为 93.33%、93.33%和92.06%,其中 VGG-16 和 ResNet-20 的分类准确率分别为93.33%、92.06%和92.06%。对于 ImageNet 数据集,VGG-16和ResNet-34的准确率分别为73.87%和70.37%,延迟为250个周期。在40个周期以下的极低延迟下,VGG-16对 CIFAR-10 的 SNN 准确率为92.60%,对 ImageNet 的 SNN 准确率为70.75%,很好地验证了我们提出的技术。

II Preliminary Backgrounds

A.Spiking Neural Networks theory

我们可以考虑两种具有代表性的SNN模型,即 integrate-and-fire (IF)和leaky-integrate-and-fire(LIF)模型。众所周知,IF模型很容易从人工神经网络转换而来,在我们的工作中一直被认为是SNN模型。在IF模型中,在时间步 t ,第 l t h l^{th} lth 层中的神经元i具有如下加权尖峰输入 z i l z_i^l zil 的总和。如下所示:
在这里插入图片描述
其中 W i j l W_{ij}^l Wijl 是突触权重, b i l b_i^l bil 表示神经元的偏置, θ j l − 1 \theta_j^{l-1} θjl1 是来自前一层中神经元 j j j 的尖峰输入。在底层,神经元的脉冲输出 θ j l \theta_j^l θjl 保持为零,直到膜电位 V i l V_i^l Vil 达到阈值 V t h r l V^l_{thr} Vthrl 。当 V i l V_i^l Vil 变得大于或等于 V t h r l V^l_{thr} Vthrl 时,触发脉冲输出。因此,
在这里插入图片描述
脉冲发放以后,膜电位 V i V_i Vi 被重置。重置 V i V_i Vi 有两种方法:重置为零和减法重置。由于归零重置会造成相当大的信息损失[10],因此在整个工作中都采用了减法重置。在这种情况下,在 t 的时间步长处, V i l V_i^l Vil 可以如下建模。
在这里插入图片描述

B. ANN to SNN conversion

ReLU函数被广泛用作ANN的激活函数,如下所示。
在这里插入图片描述
通过比较(4)和(1),可以得到ANN到SNN的转换算法。在SNN中,尖峰输出信号是二进制的,只有‘1’或‘0’,这意味着尖峰输出没有负值。因此,通过将ReLU输出转换为SNN的尖峰速率,(4) 可以简单地映射到 (1) 。对于转换,权重和偏差都需要被归一化,即数据归一化,其中权重( W l W^l Wl )和偏差( b l b^l bl )被归一化(5),然后,神经元的阈值电压被设置为1.0。
在这里插入图片描述
其中 λ l \lambda^l λl 是当前层的归一化因子,即所谓的范数因子, λ l − 1 \lambda^{l-1} λl1 是上一层的范数因子。归一化因子的决定在第III-A.节中有更多的讨论。

众所周知,在SNN中很难对最大池和批归一化进行建模[10]。最大池化可以被其他池化技术所取代,例如,在SNN中建模良好的平均池化(AveragePooling)。文[10]的作者在人工神经网络训练后,去掉了(6)的批归一化。
在这里插入图片描述
其中a是输入, µ 和 σ 是小批量的均值和方差,γ 和 β 是批量归一化的两个学习参数。为了防止由于取消批归一化而造成的 ANNs 精度损失,它们通过使用以下公式来缩放相应卷积层的权重和偏差:
在这里插入图片描述
我们的 ANN-SNN 转换就是基于上述讨论。我们应用了基于 (5) 的数据归一化,并使用 (7) 去掉了批归一化。我们用平均池化的层代替最大池化的层。我们不使用soft-max层(没有在SNN中建模),而是简单地计算尖峰信号的数量,并取最大值来对输出进行分类。在第一层SNN中,我们向输入信号馈送模拟值,即所谓的实数编码,与[10]、[13]、[15]中使用的技术相同。

III. Our Contribution

在这一部分中,我们将讨论我们的 TCL 技术如何缓解 SNN 延迟和准确性间的权衡关系。在此之前,我们解释了 ANN 到 SNN 转换后存在权衡关系的原因。

A. The trade-off between accuracy and latency在这里插入图片描述

(A)ANN激活的分布(以对数比例绘制),(B)小λ的转换,©大λ的转换。

在ANN到SNN的转换中,如上所述,ANN的激活 a i a_i ai 被映射到SNN的脉冲发放速率 f i f_i fi。脉冲发放速率 f i f_i fi可以通过以下方程来估计。
在这里插入图片描述
其中, a l i m i t a_{limit} alimit 是映射到最大尖峰速率( f m a x f_{max} fmax = 1 )的激活的最大值, Δ \Delta Δ 是量化分辨率。在ANN到SNN的转换中,ANN的激活被量化,然后量化后的激活被映射到它们对应的脉冲发放速率,其中一些量化误差是不可避免的。为了减小由ANN-SNN转换引起的量化误差,我们需要使 Δ \Delta Δ 更小,这可以通过增加延迟、T或降低 a l i m i t a_{limit} alimit 来获得。这就是为什么经过ANN-to-SNN转换后,时延和准确度之间存在权衡关系的原因。在数据归一化后的ANN-SNN转换中, λ \lambda λ a l i m i t a_{limit} alimit 成正比,而固定T的λ越小, a l i m i t a_{limit} alimit 越小。这导致量化误差的减小。然而,从某种程度上说, a l i m i t a_{limit} alimit 低于 a m a x a_{max} amax,然后,我们又有由于激活的剪裁而造成的转换损失,如图1.B所示,这也降低了转换后的SNN的准确性。另一方面,更大的 λ \lambda λ 伴随着量化误差的增加,如图1.C所示。

文 [9] 中的工作通过取各层活化参数中的最大值来确定各层的范数因子。然而,为了减少量化误差,该方法需要较大的SNN延迟。[10] 和 [13] 的作者通过以下技术降低了 λ \lambda λ 。在ANN中,大多数激活 (大约99.0%到99.99%) 放在[0,max/3]的范围内。根据这一观察结果,他们通过选择99.9%的值来决定 λ \lambda λ 。文献[11]和[12]的作者根据SNN的运算选择了 λ \lambda λ 。它们按顺序运行SNN层,并取 λ \lambda λ 的最大加权脉冲输出,然后以 0.7∼0.9 的因子进行缩放。虽然由于这些技术导致的较小的 λ \lambda λ 减小了量化误差,但是由于限幅误差引起的转换损失仍然导致SNN的精度显著降低。

在这项工作中,我们提出了一种新的技术来缓解量化和裁剪误差之间的权衡,在保持神经网络精度的同时,我们尽可能地减小 a m a x a_{max} amax。这种方法在SNN中提供了低延迟和高精度,如 III-B. 部分所述。

B. Trainable Clipping Layer

为了确定某一层的范数因子,我们不分析相应ANN层的激活,而是在ANN层的ReLU后面增加一个剪切层,如图2所示。剪切层的正向功能如 (9) 所示。请注意,剪贴层有一个可训练参数 λ \lambda λ ,它成为数据归一化的标准因子。当处理ANN的反向计算时, λ \lambda λ 的梯度表示为 (10)。 λ \lambda λ 基于 (11) 的学习规则进行训练,其中使用 L 2 L_2 L2正则化来优化 λ \lambda λ
在这里插入图片描述
其中 η 是学习率,α 是 L 2 L_2 L2 正则化系数,L 是 ANN 损失。我们可视化了范数因子的训练过程,如图3所示。结果是通过对CIFAR-10和ImageNet两个数据集 VGG-16 的训练得到的。在(11)中,L2正则化项 (−ηαλ) 倾向于减小 λ ,这是当前层的norm-fact,如前所述。从某种意义上讲,λ 的降低会造成训练损失。在这种情况下,优化项 - η \eta η ∂ a ‾ ∂ λ \frac{\partial \overline{a}}{\partial \lambda } λa ∂ L ∂ a ‾ \frac{\partial L }{\partial \overline{a} } aL 会增加 λ 以弥补训练损失。经过一段时间后,λ开始稳定到训练损失的最佳值。图4显示了每个训练期的训练和测试损失。我们将未使用 TCL 的原始 ANN 训练的训练和测试损失与基于 TCL 的 ANN训练的训练和测试损失进行比较。此外,我们观察到每个 epoch 的验证精度,如图5所示,清楚地表明我们的TCL几乎不影响VGG-16的训练结果。
为了进一步证明我们的 TCL的有效性,我们通过将我们的 TCL 引起的转换损失与图6所示的各种范数(99.99%、99.9%、99.8%、99.7%和99.5%)进行比较,研究了我们的 TCL 是如何影响 ANN 到 SNN 转换的损失的。与其他方法相比,我们的 TCL 的转换损失要小得多,这很好地表明了我们的 TCL 与 [10]-[13] 相比提高了 SNN 的准确性。
在这里插入图片描述
在这里插入图片描述

IV. Experimental Results

我们在 Pytorch 框架上实现了我们的 TCL [16]。我们使用随机梯度下降算法来训练神经网络。我们确保 CIFAR-10 的总训练 epochs 为200个,ImageNet 为100个。 除了 VGG-16 和 CNET 外,我们还使用 初始学习率为0.01的CIFAR-10 在 [100,150] epochs 时将学习率初始设置为 0.1 和 ImageNet 的 [30,60,80] 的训练时期。对于同时具CIFAR-10 和 ImageNet 数据集的所有网络,λ 的初始值设置为4.0。

A. The Effect of a L2-regularization Coefficient

在我们的TCL中,(11) 的 L2 正则化系数 α 通过以下两种方式影响 SNN 的精度。首先,如 图7 所示,较大的 α 倾向于提供较小的范数因子,导致在低于50个周期的非常小的延迟约束下提高 SNN 的准确性。其次,在我们的基于 TCL的训练中,随着 α 的增加,神经网络的准确率有下降的趋势,当中等延迟条件下超过 200 时,可能会降低相应的SNN 准确率。以上两种趋势在我们的实验结果中都有明显的体现,如表I所示。由于以上两种趋势对神经网络的精度有相反的影响,所以我们需要找到最优的 α,即最大值来不影响神经网络的精度。然而,在以往的研究中,寻找 L2-正则化系数等超参数的最优值的算法还不成熟,本文也没有对其进行探索。从一些试验和错误中,我们在本工作中恰当地选择了 α 的值。
在这里插入图片描述
B. Experiment results and discussion
总结了我们的实验结果,并与表 II 中与 ANN 到 SNN 转换相关的最新技术 (SOTAS) 的结果进行了比较。对CIFAR-10,[8]、[10]、[11] 和 [12] 在 ANN 到 SNN 转换后获得了良好的 SNN 精度。但是,这些技术需要很大的延迟。虽然[14]、[15]的作者通过使用他们提出的混合训练技术来缓解大延迟问题,其中他们将延迟减少到20~250个周期,但是由于 ANN 到 SNN 的转换而造成的精度损失仍然很大,超过0.5%.。与SOTAS相比,我们的TCL技术取得了以下两个重大成就。
1)尽管我们的TCL技术限制了激活的范围,但它几乎不影响神经网络的准确性。
2)在ANN到SNN转换后,SNN显示出与具有中等延迟条件的ANN对应的准确度相当的精度。

在CIFAR-10的数据集上,SNN在100~150个周期的延迟下,ANN到SNN转换的精度损失几乎可以忽略不计,小于0.5%。ImageNet的结果进一步验证了我们的贡献,其中基于TCL的神经网络的训练结果与它们的原始精度几乎相同。此外,在250个循环的中等延迟下,我们获得了很好的SNN精度,几乎可以与ANN的相同实现相媲美。

对于低于50个周期的非常低的延迟,我们使用稍大的α来训练ANN。结果表明,精度几乎可以与[15]的混合训练相媲美,该混合训练针对小延迟约束进行了优化。与[15]不同的是,除了ANN的训练阶段之外,直接SNN训练阶段还需要非常大的计算开销,我们的TCL通过唯一的ANN训练阶段提供了良好的SNN精度,这也是我们的重大贡献。

V. Conclusion

许多研究表明,ANN 到SNN 的转换可以成为 SNN 定向训练的一种现实选择。然而,SNN存在较大的延迟,对于像ImageNet这样的大数据集来说问题更大,从而限制了 SNN 的可能性。在这项工作中,我们提出了一种基于ANN到SNN转换的可训练剪贴层技术,即 TCL,缓解了SNN的准确性和时延之间的权衡关系。我们的实验结果表明,即使在250个时钟周期的小延迟下,我们的基于TCL的SNN的准确率也几乎与基于 ImageNet 的 ANN 相当,这很好地验证了我们的 TCL 技术的有效性。
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值