Skip to main content
QUICK REVIEW

[论文解读] Training Deep Spiking Neural Networks

Eimantas Ledinauskas, Julius Ruseckas|arXiv (Cornell University)|Jun 8, 2020
Advanced Memory and Neural Computing参考文献 25被引用 26
一句话总结

该论文提出了一种使用代理梯度和输入电流批归一化直接反向传播训练深度脉冲神经网络(SNNs)的方法,使ResNet50在CIFAR100和Imagenette上训练成为可能,且推理时间步数显著减少(低至10步),远低于典型转换得到的SNNs(通常约1000步),尽管与等效的人工神经网络(ANNs)相比仍存在性能差距,但准确率具有竞争力。

ABSTRACT

Computation using brain-inspired spiking neural networks (SNNs) with neuromorphic hardware may offer orders of magnitude higher energy efficiency compared to the current analog neural networks (ANNs). Unfortunately, training SNNs with the same number of layers as state of the art ANNs remains a challenge. To our knowledge the only method which is successful in this regard is supervised training of ANN and then converting it to SNN. In this work we directly train deep SNNs using backpropagation with surrogate gradient and find that due to implicitly recurrent nature of feed forward SNN's the exploding or vanishing gradient problem severely hinders their training. We show that this problem can be solved by tuning the surrogate gradient function. We also propose using batch normalization from ANN literature on input currents of SNN neurons. Using these improvements we show that is is possible to train SNN with ResNet50 architecture on CIFAR100 and Imagenette object recognition datasets. The trained SNN falls behind in accuracy compared to analogous ANN but requires several orders of magnitude less inference time steps (as low as 10) to reach good accuracy compared to SNNs obtained by conversion from ANN which require on the order of 1000 time steps.

研究动机与目标

  • 为克服直接使用反向传播训练非常深的SNN所面临的挑战,该挑战源于SNN固有的递归性质导致的梯度爆炸或消失问题。
  • 通过调整代理梯度函数并对接收输入电流的神经元应用批归一化,提升深度SNN的训练稳定性和性能。
  • 证明无需依赖ANN到SNN转换,即可实现深度SNN的端到端训练,从而实现更快的推理速度并支持在线学习。
  • 探究从零开始训练的SNN是否在时间步数和能效效率方面优于转换得到的SNN,尤其在效率方面具有优势。

提出的方法

  • 使用代理梯度——特别是具有可调宽度参数γ的分段线性形式——在反向传播过程中近似非可微的脉冲激活函数。
  • 对接收输入电流的SNN神经元应用批归一化,类似于其在人工神经网络(ANNs)中的应用,以稳定并加速训练。
  • 通过时间反向传播直接训练具有ResNet50等架构的深度SNN,由于膜电位累积,将SNN视为递归网络处理。
  • 微调代理梯度宽度参数γ,以缓解深层SNN中的梯度爆炸或消失问题。
  • 使用标准反向传播算法并结合针对脉冲神经元的自定义梯度计算,实现与现有深度学习框架的集成。
  • 在CIFAR100和Imagenette数据集上使用所提改进方法进行端到端反向传播训练,评估不同时间步数下的推理性能。

实验结果

研究问题

  • RQ1能否通过使用代理梯度的反向传播成功训练深度SNN,从而克服SNN中固有的梯度消失/爆炸问题?
  • RQ2调整代理梯度宽度参数γ是否能显著提升深度SNN的训练稳定性和性能?
  • RQ3对接收输入电流的SNN神经元应用批归一化是否能提升训练收敛速度和准确率,类似于其在ANNs中的作用?
  • RQ4直接训练的SNN在实现良好性能所需推理时间步数与通过ANN转换得到的SNN相比如何?
  • RQ5与基于转换的方法相比,从零开始直接训练SNN是否能实现更高的推理效率并更好地支持在线学习?

主要发现

  • 通过调节代理梯度函数的宽度参数γ,可有效缓解深度SNN中的梯度爆炸或消失问题。
  • 对接收输入电流的SNN神经元应用批归一化可提升训练稳定性和性能,其作用机制与在ANNs中的应用类似。
  • 从零开始直接训练的SNN在CIFAR100和Imagenette上仅需10个推理时间步即可达到良好测试准确率,而转换得到的SNN通常需要约1000个时间步。
  • 即使梯度未出现爆炸或消失,直接训练的SNN性能随深度增加的增长速度也慢于ANNs,且最终开始下降。
  • 从零开始训练的SNN在某些情况下甚至可超越其对应的ANNs,尤其是在浅层架构中,表明其在时间编码和效率方面可能存在潜在优势。
  • SNN在训练过程中时间步数越多,其最大测试准确率反而越低,表明存在与使用时间反向传播训练RNN类似的缩放问题。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。