Enabling Spike-Based Backpropagation for Training Deep Neural Network Architectures
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!
Frontiers in neuroscience, 2020: 119
Abstract
脉冲神经网络(SNN)最近已成为一种突出的神经计算范式。然而,典型的浅层SNN架构表达复杂表示的能力有限,而使用输入脉冲训练深层SNN迄今为止尚未成功。已经提出了多种方法来解决这个问题,例如将现成训练的深度人工神经网络(ANN)转换为SNN。然而,ANN-SNN转换方案未能捕获脉冲系统的时间动态。另一方面,由于脉冲生成函数的不连续、不可微性质,使用输入脉冲事件直接训练深度SNN仍然是一个难题。为了克服这一问题,我们提出了一种近似导数方法来解释LIF神经元的泄漏行为。该方法能够使用基于脉冲的反向传播直接(利用输入脉冲事件)训练深度卷积SNN。我们的实验通过在MNIST、SVHN和CIFAR-10数据集中实现最佳分类精度,证明了所提出的基于脉冲的学习在深度网络(VGG和残差架构)上的有效性。此外,我们分析了基于稀疏事件的计算,以证明所提出的SNN训练方法在脉冲域中用于推理操作的有效性。
Keywords: spiking neural network, convolutional neural network, spike-based learning rule, gradient descent backpropagation, leaky integrate and fire neuron
1. INTRODUCTION
2. MATERIALS AND METHODS
2.1. The Components and Architecture of Spiking Neural Network
2.1.1. Spiking Neural Network Components
2.1.2. Deep Convolutional Spiking Neural Network
2.1.2.1. Building blocks
2.1.2.2. Deep convolutional SNN architecture: VGG and residual SNNs
2.2. Supervised Training of Deep Spiking Neural Network
2.2.1. Spike-Based Gradient Descent Backpropagation Algorithm
2.2.1.1. Forward propagation
2.2.1.2. Backward propagation and weight update
2.2.2. Dropout in Spiking Neural Network
Dropout(Srivastava et al., 2014)是训练深度ANN时流行的正则化技术之一。该技术以给定的概率(p)随机地断开某些单元,以避免单元过拟合和过度适应给定的训练数据。已有先前的工作(Kappel et al., 2015, 2018; Neftci et al., 2015)研究了突触随机性如何在SNN中提供类似dropout的功能益处的生物学见解。在这项工作中,我们采用了dropout技术的概念,以有效地正则化深度SNN。注意,dropout技术仅在训练期间应用,在推理期间评估网络性能时不使用。与ANN相比,SNN中dropout的应用方式存在细微差异。在ANN中,每个训练阶段都有几个小批量的迭代。在每次迭代中,随机选择的单元(dropout率为p)与网络断开连接,同时通过其后验概率()进行加权。然而,在SNN中,根据脉冲序列的时间长度,每个迭代都有不止一个前向传播。我们只在最后一个时间步骤反向传播输出误差并修改网络参数。为了使dropout在我们的训练方法中有效,必须确保小批量数据迭代中的连接单元集不变,从而使神经网络在单个迭代中的每个前向传播期间由相同的随机单元子集构成。另一方面,如果单元在每个时间步骤随机连接,则在迭代内的整个前向传播时间内,dropout的影响将被平均。然后,一旦输出误差向后传播并且在最后一个时间步骤更新了参数,dropout效应就会消失。因此,我们需要在迭代的整个时间窗口中保持随机连接单元的集合。在实验中,我们使用SNN版本的dropout技术,省略单位的概率(p)等于0.2-0.25。注意,与ANN相比,SNN前向传播中的激活要稀疏得多,因此SNN的最佳p需要小于典型的ANNdropout率(p=0.5)。算法1中规定了SNN前向传播中dropout的细节。
3. RESULTS
3.1. Experimental Setup
3.1.1. Benchmarking Datasets
3.1.2. Network Topologies
3.1.3. ANN-SNN Conversion Scheme
3.1.4. Spike Generation Scheme
3.1.5. Time-Steps
3.1.5.1. Optimal #time-steps for Training
3.1.5.2. Optimal #time-steps for inference
3.2. Results
3.2.1. The Classification Performance
3.2.2. Accuracy Improvement With Network Depth
4. DISCUSSION
4.1. Comparison With Relevant Works
4.2. Spike Activity Analysis
4.2.1. Spike Activity per Layer
4.2.2. #Spikes/Inference
4.3. Inference Speedup
4.4. Complexity Reduction
4.5. Iso-Spike Comparison for Optimal Condition
5. CONCLUSION
在这项工作中,我们为流行的深度SNN架构提出了一种基于脉冲的反向传播训练方法。该方法使深度SNN能够在标准图像识别任务上实现类似的分类精度。我们的实验表明,所提出的学习策略在深度SNN(7-11层VGG和ResNet网络架构)上的有效性,在迄今为止使用基于脉冲的学习训练的其他网络中,在MNIST、SVHN和CIFAR-10数据集中实现了最佳的分类精度。通过应用我们提出的方法,ANN和SNN之间在质量方面的性能差距大大减少。此外,当在合适的神经形态硬件上使用深度SNN(用所提出的方法训练)进行推断时,预计会显著节省计算能量。