Event-Driven Learning for Spiking Neural Networks
<|reference_start|>Event-Driven Learning for Spiking Neural Networks: Brain-inspired spiking neural networks (SNNs) have gained prominence in the field of neuromorphic computing owing to their low energy consumption during feedforward inference on neuromorphic hardware. However, it remains an open challenge how to effectively benefit from the sparse event-driven property of SNNs to minimize backpropagation learning costs. In this paper, we conduct a comprehensive examination of the existing event-driven learning algorithms, reveal their limitations, and propose novel solutions to overcome them. Specifically, we introduce two novel event-driven learning methods: the spike-timing-dependent event-driven (STD-ED) and membrane-potential-dependent event-driven (MPD-ED) algorithms. These proposed algorithms leverage precise neuronal spike timing and membrane potential, respectively, for effective learning. The two methods are extensively evaluated on static and neuromorphic datasets to confirm their superior performance. They outperform existing event-driven counterparts by up to 2.51% for STD-ED and 6.79% for MPD-ED on the CIFAR-100 dataset. In addition, we theoretically and experimentally validate the energy efficiency of our methods on neuromorphic hardware. On-chip learning experiments achieved a remarkable 30-fold reduction in energy consumption over time-step-based surrogate gradient methods. The demonstrated efficiency and efficacy of the proposed event-driven learning methods emphasize their potential to significantly advance the fields of neuromorphic computing, offering promising avenues for energy-efficiency applications.<|reference_end|>
@article{wei2024event-driven,
    title={Event-Driven Learning for Spiking Neural Networks},
    author={Wenjie Wei, Malu Zhang, Jilin Zhang, Ammar Belatreche, Jibin Wu,
  Zijing Xu, Xuerui Qiu, Hong Chen, Yang Yang, Haizhou Li},
    journal={arXiv preprint arXiv:2403.00270},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.00270},
    primaryClass={cs.NE cs.CV}
}