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


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

文章目录

  • TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers
    • Abstract
    • I Introduction
    • II Preliminary Backgrounds
      • A.Spiking Neural Networks theory
      • B. ANN to SNN conversion
    • III. Our Contribution
      • A. The trade-off between accuracy and latency![在这里插入图片描述](https://img-blog.csdnimg.cn/20210616173205610.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NzZHNzZG4=,size_16,color_FFFFFF,t_70)
      • B. Trainable Clipping Layer
    • IV. Experimental Results
      • A. The Effect of a L2-regularization Coefficient
    • V. Conclusion

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 ,第 lthl^{th}lth 层中的神经元i具有如下加权尖峰输入 zilz_i^lzil​ 的总和。如下所示:

其中 WijlW_{ij}^lWijl​ 是突触权重, bilb_i^lbil​ 表示神经元的偏置,θjl−1\theta_j^{l-1}θjl−1​ 是来自前一层中神经元 jjj 的尖峰输入。在底层,神经元的脉冲输出 θjl\theta_j^lθjl​ 保持为零,直到膜电位 VilV_i^lVil​ 达到阈值 VthrlV^l_{thr}Vthrl​ 。当 VilV_i^lVil​ 变得大于或等于 VthrlV^l_{thr}Vthrl​ 时,触发脉冲输出。因此,

脉冲发放以后,膜电位 ViV_iVi​ 被重置。重置 ViV_iVi​ 有两种方法:重置为零和减法重置。由于归零重置会造成相当大的信息损失[10],因此在整个工作中都采用了减法重置。在这种情况下,在 t 的时间步长处, VilV_i^lVil​ 可以如下建模。

B. ANN to SNN conversion

ReLU函数被广泛用作ANN的激活函数,如下所示。

通过比较(4)和(1),可以得到ANN到SNN的转换算法。在SNN中,尖峰输出信号是二进制的,只有‘1’或‘0’,这意味着尖峰输出没有负值。因此,通过将ReLU输出转换为SNN的尖峰速率,(4) 可以简单地映射到 (1) 。对于转换,权重和偏差都需要被归一化,即数据归一化,其中权重( WlW^lWl )和偏差( blb^lbl )被归一化(5),然后,神经元的阈值电压被设置为1.0。

其中 λl\lambda^lλl 是当前层的归一化因子,即所谓的范数因子,λl−1\lambda^{l-1}λl−1 是上一层的范数因子。归一化因子的决定在第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的激活 aia_iai​ 被映射到SNN的脉冲发放速率 fif_ifi​。脉冲发放速率 fif_ifi​可以通过以下方程来估计。

其中,alimita_{limit}alimit​ 是映射到最大尖峰速率( fmaxf_{max}fmax​ = 1 )的激活的最大值,Δ\DeltaΔ 是量化分辨率。在ANN到SNN的转换中,ANN的激活被量化,然后量化后的激活被映射到它们对应的脉冲发放速率,其中一些量化误差是不可避免的。为了减小由ANN-SNN转换引起的量化误差,我们需要使 Δ\DeltaΔ 更小,这可以通过增加延迟、T或降低 alimita_{limit}alimit​ 来获得。这就是为什么经过ANN-to-SNN转换后,时延和准确度之间存在权衡关系的原因。在数据归一化后的ANN-SNN转换中,λ\lambdaλ 与 alimita_{limit}alimit​ 成正比,而固定T的λ越小,alimita_{limit}alimit​ 越小。这导致量化误差的减小。然而,从某种程度上说,alimita_{limit}alimit​ 低于amaxa_{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的精度显著降低。

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

B. Trainable Clipping Layer

为了确定某一层的范数因子,我们不分析相应ANN层的激活,而是在ANN层的ReLU后面增加一个剪切层,如图2所示。剪切层的正向功能如 (9) 所示。请注意,剪贴层有一个可训练参数 λ\lambdaλ ,它成为数据归一化的标准因子。当处理ANN的反向计算时,λ\lambdaλ 的梯度表示为 (10)。λ\lambdaλ 基于 (11) 的学习规则进行训练,其中使用L2L_2L2​正则化来优化 λ\lambdaλ 。

其中 η 是学习率,α 是 L2L_2L2​ 正则化系数,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} }∂a∂L​ 会增加 λ 以弥补训练损失。经过一段时间后,λ开始稳定到训练损失的最佳值。图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 技术的有效性。

TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers相关推荐

  1. 脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法

    原文链接:CSDN-脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法 Optimal ANN-SNN Conversion for High-accuracy and ...

  2. ANN Converse to SNN|(1) 开篇之作

    Spiking Deep Convolutional Neural Networks for Energy-Efficient Object Recognition 作者:Yongqiang Cao, ...

  3. SNN ANN 多模态融合 神经网络发展过程的两个分支

    人工神经网络ANN和脉冲神经网络SNN, 所谓的ANN和SNN, 事实上是神经网络发展过程的两个分支. 欲了解其背景先了解其历史. 作者:许铁-巡洋舰科技 链接:https://www.zhihu.c ...

  4. 如何看待第三代神经网络SNN?详解脉冲神经网络的架构原理、数据集和训练方法 原创

    作者丨科技猛兽 编辑丨极市平台 本文首发于极市平台公众号,转载请获得授权并标明出处. 本文目录 1 脉冲神经网络简介 2 脉冲神经网络原理 3 脉冲神经网络数据集 4 脉冲神经网络训练方法 5 脉冲神 ...

  5. 2022年顶会、顶刊SNN相关论文----------持续更新中

    原文链接:https://blog.csdn.net/qq_43622216/article/details/124163883 2022年顶会.顶刊SNN相关论文 目录 说明 AAAI2022(共7 ...

  6. 脉冲神经网络_【强基固本】脉冲神经网络(SNN)

    "强基固本,行稳致远",科学研究离不开理论基础,人工智能学科更是需要数学.物理.神经科学等基础学科提供有力支撑,为了紧扣时代脉搏,我们推出"强基固本"专栏,讲解 ...

  7. 强化学习中的脉冲神经网络

    简 介: 脉冲强化学习是最近兴起的将脉冲神经网络应用到强化学习中的一个研究领域.固然脉冲神经网络的引入会给强化学习带来一些新的东西,但目前的研究仍然仅仅满足于如何让算法收敛,而没有发挥出脉冲神经网络独 ...

  8. Mapping Spiking Neural Networks的论文汇总以及思考

    首先感谢CSDN平台,发现不是我一个人在SNN Mapping方面纠结着.去年看了Mapping方面的内容后感觉想创新还是有点难度的,毕竟优化就是生物进化算法类似的套路,可是你会发现自己实现的结果就是 ...

  9. 开源项目推荐 | 中科院自动化所历时9年打造的类脑认知智能引擎“智脉”正式开源部署至OpenI启智社区

    ​人脑能够自组织地协同数百项认知功能,灵活适应复杂多变的环境.如何整合多尺度生物可塑性法则来构建具有生物合理性和计算高效性的神经网络模型是类脑人工智能和计算神经科学领域共同关注和面临的重要挑战. 中国 ...

  10. 清华大学施路平:双脑驱动的人工通用智能

    来源:AI科技评论 本文约3300字,建议阅读7分钟 本文重点讨论了如何将脑科学和计算机融合推动人工通用智能的研究. 11月1日上午,在第十九届中国计算语言学大会(CCL2020)上,清华大学类脑计算 ...

最新文章

  1. 机器学习拓展知识(数学/统计/算法)
  2. windows 上ping输入到指定文件中
  3. DVWA手记——取消登录
  4. 第一章 TestNG框架自动化简述
  5. SAP Commerce Cloud 新一代 UI Spartacus 和 Customer Data cloud 的集成
  6. 全民上云时代,如何降低成本?
  7. Android 通过baidu借口 获得移动基站方法
  8. 【C语言】23-typedef
  9. 简单的python爬虫爬取国内机场的三字代码
  10. 在linux上将ape转成mp3,以及MP3 大小转换
  11. 分享干货——数控加工中常用的三种补偿方法
  12. Work breakdown structure 简介
  13. Repeated DNA
  14. 金行健:进门就被抓拍人脸自动注册会员,杭州一大学生将商场告上法庭
  15. 业务知识 - 行业笔记
  16. python春节集五福_2017支付宝集五福 2017年支付宝五福活动的python生福脚本
  17. java虚数复数计算_虚部?从搞懂虚数开始....
  18. 这次,易语言彻底“输了”,而另一新式中文编程却胜券在握
  19. arm-openwrt-linux-musl 交叉编译cyassl
  20. 娃娃专用开源系统Qimo OS

热门文章

  1. 简单CRM系统开发(一)
  2. html怎么设置拉伸图片大小,html – 如何在不拉伸的情况下调整图像大小?
  3. 小码哥C++_反汇编分析
  4. mysql取出的日期数据缺少时分秒_datetimepicker只显示日期,不显示时分秒
  5. tk.mybatis.mapper.MapperException: 无法获取实体类com.对应的表名
  6. 《物理世界》公布2022年度十大突破
  7. F.conv2d实现代码
  8. 手机影像ISP流程:AWB(1)
  9. cout 常用成员函数简介(C++输出格式控制)
  10. 三阶魔方层先还原方法图解