• Deep Spiking Neural Networks With Binary Weights for Object Recognition


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

    IEEE TRANSACTIONS ON COGNITIVE AND DEVELOPMENTAL SYSTEMS, VOL. 13, NO. 3, SEPTEMBER 2021

    Abstract

      脉冲神经网络(SNN)作为在神经形态硬件上实现超低功耗的解决方案已显示出巨大的潜力,但获得深度SNN仍然是一个具有挑战性的问题。现有的网络转换方法可以有效地从经过训练的卷积神经网络(CNN)中获得SNN,而性能损失很小,但是,转换后的SNN中的高精度权重会占用高存储空间,与有限的内存资源不友好。为了解决这个问题,我们分析了脉冲神经元的权重和阈值之间的关系,并提出了一种有效的权重-阈值平衡转换方法来获得具有二值权重的SNN,从而显著减少内存存储。在基准数据集上使用各种网络结构评估的实验结果表明,与高精度对应物相比,二值SNN不仅需要更少的内存资源,而且达到了与其他最先进的SNN相当的高识别精度。

    Index Terms—Binary-connect neural networks, deep spiking neural networks (SNNs), network conversion, neuromorphic computing, object recognition.

    I. INTRODUCTION

      在过去的几年里,深度卷积神经网络(CNN)[1]在许多领域取得了巨大的成功,例如对象识别[2]-[4]、对象检测[5][6]、语音识别[7]和自然语言处理[8]。然而,推理过程的高功耗和内存使用限制了CNN的嵌入式和移动应用。为了解决这个问题,已经进行了许多网络压缩工作以获得更有效的CNN推理过程。例如,Courbariaux et al. [9],Wu et al. [10]和Cai et al. [11]量化了CNN中的权重或激活,以加快计算速度并减少存储,Yang et al. [12],Zhang et al. [13]和Denton et al. [14]通过修剪冗余权重等压缩预训练的深度网络。

      相比之下,脉冲神经网络(SNN)采用脉冲神经元作为其计算单元[15],这在生物学上更合理且更节能。通常,脉冲神经元使用离散脉冲来编码信息,当突触前​​脉冲事件到达时,它们的状态会更新。大规模神经形态硬件系统,例如全数字设计SpiNNaker [16]、TrueNorth [17]和Loihi [18],以及混合信号VLSI实现NeuroGrid [19]可以通过基于事件的计算执行SNN的推理过程并保持低功耗。更重要的是,忆阻器的最新发展,例如[20]使用新颖的架构原语也是基于SNN。在这些系统中,由于存储资源的限制,经常需要低精度的权重。例如,Esser et al. [21]将具有三元权重(-1、0或1)和二值激活的降低精度神经网络映射到TrueNorth。Esser et al. [22]在运行时实现了一个二值网络,并显示出能源效率的显著提高。Stromatias et al. [23]研究了有限的权重精度将如何影响脉冲深度信念网络(DBN)的性能,并在SpiNNaker上实现了具有低精度权重的脉冲DBN。

      由于难以设计成本函数和不可微的脉冲动力学[24],到目前为止,训练深度SNN具有挑战性。为了解决这些问题,可以通过无监督的脉冲时序依赖可塑性(STDP)学习规则[25]和监督学习算法获得训练SNN,例如基于梯度的方法[26]和膜电位驱动[27]-[29]。现有研究不是直接训练SNN,而是提出通过转换训练的CNN [30]-[35]可以有效地获得训练良好的SNN。Cao et al. [30]提出了基本的CNN-SNN转换方法,其原理是转换后的SNN中脉冲神经元的发放率应等于CNN中神经元的激活,而原始网络的结构和权重保持不变。Diehl et al. [31]提出了一种权重归一化转换方法,以解决转换后的SNN中脉冲神经元的实际发放率与Cao等人的理论发放率不相等的问题。此外,发现在训练原始网络期间添加噪声将使转换过程更加稳健[32]。最近,Rueckauer et al. [33]实现了CNN中常见操作的脉冲等效项,例如最大池化、批归一化、softmax等,并为转换原理的有效性提供了分析解释。Xu et al. [34]提出了固定统一编码方法来减少转换损失和Sengupta et al. [35]扩展了转换方法以生成具有深度架构的SNN。

      受工作[30]和[31]的启发,已经报道了许多CNN-SNN转换方法。他们专注于最小化转换损失并扩展到更多样化和更深入的网络结构。它们主要用于具有高精度权重的CNN。然而,很少研究具有低精度权重的CNN的转换。最近,Rueckauer et al. [33]研究了BinaryConnects [9]的转换,这是一种高度量化的CNN模型,其权重被限制为两个可能的值(-1或1),而批归一化中的参数在推理过程中仍然是高精度的。但是由于[31]中提出的权重归一化转换方法和批归一化中的高精度参数,转换后的SNN中的最终权重在[33]中是高精度的。在现场可编程门阵列(FPGA)或神经形态硬件系统上实现SNN期间,实现SNN将需要大量内存。

      为了解决这个问题,我们不像现有的转换方法那样关注人工神经元的激活和脉冲神经元的发放率之间的近似,而是关注在BinaryConnect转换过程中脉冲神经元的权重和阈值之间的关系。在转换后的SNN中分析了高精度权重和脉冲神经元阈值之间的约束。基于该约束,我们提出了权重-阈值平衡转换方法,通过改变脉冲神经元的相应阈值,将高精度权重缩放为-1或1,从而有效地获得二值SNN。

      本文的主要贡献是利用所提出的权重-阈值平衡转换方法有效地获得具有二值权重的深度SNN,从而减少内存并保持深度SNN的高目标识别性能。对具有五个不同网络的MNIST、CIFAR-10和CIFAR-100数据集进行了对象识别实验,并将二值SNN的转换损失延迟和存储与高精度对应物进行了比较。结果表明,与高精度对应物相比,二值SNN可节省高达约86%的存储资源。在MNIST、CIFAR-10和CIFAR-100数据集上,二值SNN的最佳分类准确率分别达到99.43%、90.19%和62.02%。

      本文的其余部分组织如下。为了更好地解释所提出的转换方法,我们首先在第II节和第III节中提供了BinaryConnect和SNN的描述。然后,在第IV节中提供了所提出的权重-阈值平衡转换方法的详细信息。第V节给出了实验。第VI节和第VII节给出了讨论和结论。

    II. BINARYCONNECT

    III. SPIKING NEURAL NETWORKS

    IV. WEIGHTS-THRESHOLDS BALANCE CONVERSION METHOD

    V. EXPERIMENTAL RESULTS

    A. Data Set

    B. Classification Errors

    C. Conversion Loss Latency of Binary SNNs and High-Precision SNNs

    D. Memory Usage Comparison

    VI. DISCUSSION

    VII. CONCLUSION

  • 相关阅读:
    开源项目SMSS发开指南(四)——SSL/TLS加密通信详解(上)
    开源项目SMSS发开指南(三)——protobuf协议设计
    开源项目SMSS开发指南(二)——基于libevent的线程池
    开源项目SMSS开发指南
    萧瑟斩落叶,孤月伴影长
    TCP/IP和Socket开发经验分享
    Linux C++轻量级开发指南
    如何使用threejs实现第一人称视角的移动
    图形辅助,理解递归
    字节的游戏
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/15919152.html
Copyright © 2020-2023  润新知