郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!
Abstract
人工神经网络(ANN)是通向人工智能的一种流行途径,它已经通过成熟的模型,各种基准,开源数据集和强大的计算平台获得了非凡的成功。脉冲神经网络(SNN)是一类有前途的模型,可以模拟大脑的神经元动态,已受到脑启发式计算的广泛关注,并已广泛部署在神经形态设备上。但是,很长一段时间以来,关于SNN在实际应用中的价值的争论和怀疑不断。除了从脉冲驱动处理中获得的低功率属性外,SNN的性能通常比ANN差,特别是在应用准确性方面。最近,研究人员试图通过借鉴ANN的学习方法(例如反向传播)来解决此问题,以训练高精度SNN模型。随着该领域的快速发展,随着网络规模的不断扩大,其结果不断取得惊人的发展,其增长路径似乎与深度学习的发展相似。尽管这些方法赋予SNN逼近ANN精度的能力,但由于使用面向ANN的工作量和简化的评估指标,SNN的天然优势和优于ANN的方式可能会丢失。
在本文中,我们将视觉识别任务作为案例研究,以回答“什么样的工作量最适合SNN,如何评估SNN才有意义”的问题。我们使用不同类型的数据集(面向ANN和面向SNN),不同的处理模型,信号转换方法和学习算法,设计了一系列对比测试。我们提出了有关应用程序精度以及内存和计算成本的综合指标,以评估这些模型,并进行广泛的实验。我们证明了这样一个事实,即在面向ANN的工作量上,SNN无法击败其ANN对应体。而在面向SNN的工作量上,SNN可以充分发挥更好的性能。我们进一步证明,SNN在应用程序精度和执行成本之间存在折衷,这将受到仿真时间窗口和发放阈值的影响。基于这些丰富的分析,我们为每种情况推荐最合适的模型。据我们所知,这是第一项使用系统比较来明确揭示从ANN迁移到SNN的直接工作量是不明智的工作,尽管许多工作都在这样做,并且进行全面评估确实很重要。最后,我们强调迫切需要为SNN建立具有更多任务,数据集和指标的基准框架。
1. Introduction
人工神经网络(ANN)(LeCun, Bengio, &Hinton, 2015)能够通过深度层次结构从大量输入数据中学习高级功能。这种强大的表征在无数的人工智能(AI)应用程序中带来了惊人的成功。例如,研究人员报告了基于多层感知器(MLP)或基于卷积神经网络(CNN)的图像识别(He, Zhang, Ren, &Sun, 2016),语音识别(Abdel-Hamid et al., 2014),语言处理(Hu, Lu, Li, &Chen, 2014;Young, Hazarika, Poria, &Cambria, 2018),物体检测(Redmon&Farhadi, 2017),太阳辐射估计(Jahani&Mohammadi, 2018),医疗诊断(Esteva et al., 2017),游戏(Silver et al., 2016)等,基于递归神经网络(RNN)的语音识别(Lam et al., 2019),语言处理(Ghaeini et al., 2018),状态控制(Graves et al., 2016)等,有时还包括CNN和RNN的组合(Caglayan & Burak Can, 2018;Zhang, Bai, &Zhu, 2019;Zoph, Vasudevan, Shlens, &Le, 2018)。除了各种模型和学习算法之外,大数据资源(例如用于图像识别的ImageNet数据集(Deng et al., 2009))和高性能计算平台(例如GPU)进一步促进了人工神经网络的发展。上述成功激发了对ANN特定加速器的众多研究(Chen et al., 2014;Chen, Krishna, Emer, &Sze, 2017;Jouppi et al., 2017;Yin et al., 2017)。
2. Preliminaries
2.1. Artificial neural networks
2.2. Spiking neural networks
2.3. Typical network topologies
2.4. Benchmark datasets
3. Benchmarking methodology
3.1. Data signal conversion
3.2. ANN-oriented workloads
3.3. SNN-oriented workloads
3.4. Training algorithms
3.5. Evaluation metrics
4. Experimental results
4.1. Experimental setup
在我们的实验中,我们全面评估了几种ANN和SNN模型在不同类型的基准工作负载(面向ANN和面向SNN)上的视觉识别性能。首先,为了简单起见,我们将讨论更多关于MLP和(纯)CNN的结果,并仅在最后提供面向SNN的工作负载的其他模型(例如RNN和时间CNN)的结果。 在面向ANN的工作负载上,我们评估MNIST和CIFAR10数据集上Model-1 / 2/3的性能。 由于MLP无法处理较大规模的CIFAR10,我们仅在此数据集上显示CNN结果。 在面向SNN的工作负载上,我们在上述数据集的神经形态版本(即N-MNIST和DVS-CIFAR10)上评估了Model-4 / 5/6的性能。 请注意,为什么我们主要比较自己实现的模型1-6的结果,是因为我们可以轻松地控制许多因素(例如,网络结构和大小,培训技术,学习超参数等)以保证公平性。 否则,由于该领域的建模多样性,很难与其他人进行公平的比较。
图7给出了整个实验流程图,表1给出了主要的网络结构。此外,表2和3分别提供了面向ANN和SNN的工作负载的参数配置。 由于这些工作负载通常具有用于输入转换的不同编码格式,因此为了清楚起见,我们仅显示隐藏层的参数配置。 在所有Conv图层中,我们将填充值设置为1。由于Model-4的输入量较大,因此我们在此处将跨步值设置为2,在其他模型中将跨步值设置为1。 在所有SNN模型(Model-2 / 3/6)中,池化层中的每个单元都是一个独立的神经元,这保证了池化层的输出仍为尖峰格式。 此池配置与以前的工作不同(Wu等人,2018,2019)。 在模型3/6中,我们使用等式中描述的完整LIF神经元模型。 (4),而在Model-2中,我们使用的是IF神经元模型(LIF中没有泄漏项),这是先前转换的SNN的一种流行选择(Diehl等,2015; Sengupta等,2019)。
我们在Pytorch框架中实现所有模型。 在MNIST和N-MNIST数据集上,我们采用具有默认参数设置(α= 0.0001,β1= 0.9,β2= 0.999,ϵ = 10-8)的Adam(自适应矩估计(Kingma&Ba,2014))优化器; 而在CIFAR10和DVS-CIFAR10数据集上,我们使用SGD(随机梯度下降)优化器,其初始学习率r = 0.1,动量为0.9,其中r每35个训练周期衰减10倍。
4.2. Accuracy analysis
4.3. Cost analysis
4.4. Additional comparison
5. Conclusion and discussion
5.1. Brief summary
5.2. Future opportunities