Spiking Neural Networks (SNNs) have emerged as an attractive spatio-temporal computing paradigm for complex vision tasks. However, most existing works yield models that require many time steps and do not leverage the inherent temporal dynamics of spiking neural networks, even for sequential tasks. Motivated by this observation, we propose an \rev{optimized spiking long short-term memory networks (LSTM) training framework that involves a novel ANN-to-SNN conversion framework, followed by SNN training}. In particular, we propose novel activation functions in the source LSTM architecture and judiciously select a subset of them for conversion to integrate-and-fire (IF) activations with optimal bias shifts. Additionally, we derive the leaky-integrate-and-fire (LIF) activation functions converted from their non-spiking LSTM counterparts which justifies the need to jointly optimize the weights, threshold, and leak parameter. We also propose a pipelined parallel processing scheme which hides the SNN time steps, significantly improving system latency, especially for long sequences. The resulting SNNs have high activation sparsity and require only accumulate operations (AC), in contrast to expensive multiply-and-accumulates (MAC) needed for ANNs, except for the input layer when using direct encoding, yielding significant improvements in energy efficiency. We evaluate our framework on sequential learning tasks including temporal MNIST, Google Speech Commands (GSC), and UCI Smartphone datasets on different LSTM architectures. We obtain test accuracy of 94.75% with only 2 time steps with direct encoding on the GSC dataset with 4.1x lower energy than an iso-architecture standard LSTM.
翻译:Spik Spik Neal 网络( SNNS) 已成为复杂视觉任务具有吸引力的时空计算模式。 然而,大多数现有工程生成模型,需要许多时间步骤,而不是利用神经网络的内在时间动态,即使是相继任务也是如此。我们以这一观察为动力,提议了一个包含新颖的 ANN 到 SNNN转换框架的长线存储网络(LSTM) 培训框架。特别是,我们提议在源 LSTM 结构中新建启动功能,并明智地选择其中一部分模型,这些模型需要用最佳的偏差变化转换成集成和发火的神经网络网络。此外,我们从它们的非蒸发式的LSTM 短期内存网络(LSTM) 中转换出一个渗漏式的启动功能,这需要联合优化权重、阈限和泄漏参数。我们还提议一个包含 SNNNER 时间步骤的平行处理方案,显著改进系统内含的内存,特别是长序列的内存。 由此,SNNS C 的内存的内存的内存数据系统内存的内存系统内存的内存系统内存系统内存系统内存系统内存系统内存的内存中,, 需要大量内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存的内存, 。