脉冲神经网络(Spiking Neural Network, SNN)被誉为第三代神经网络,使用更低层次的生物神经系统的抽象,既是神经科学中研究大脑原理的基本工具,又因其稀疏计算、事件驱动、超低功耗的特性而备受计算科学的关注。随着深度学习方法的引入,SNN的性能得到大幅度提升,脉冲深度学习(Spiking Deep Learning)成为新兴的研究热点。传统SNN框架更多的关注生物可解释性,致力于构建精细脉冲神经元并仿真真实生物神经系统,并不支持自动微分,无法充分利用GPU的大规模并行计算能力,也缺乏对神经形态传感器和计算芯片的支持。  

  为了解决上述问题,中国科学院自动化研究所李国齐研究员与北京大学计算机学院田永鸿教授团队合作构建并开源了脉冲神经网络深度学习框架SpikingJelly(中文名:惊蜇)。SpikingJelly(惊蜇)提供了全栈式的脉冲深度学习解决方案,支持神经形态数据处理、深度SNN的构建、替代梯度训练、ANN转换SNN、权重量化和神经形态芯片部署等功能。  

  SpikingJelly(惊蜇)框架具有以下几个方面的主要优势。  

  第一,简单易用。脉冲深度学习作为计算神经科学与深度学习的交叉学科,要求研究者同时掌握两个领域的知识体系,但实际情况是研究者可能只对一个领域有深度了解。SpikingJelly(惊蜇)框架提供了简单易用的PyTorch风格的API、中英文双语编写的教程、活跃友善的讨论社区,常用的网络模型和训练脚本也一并给出,研究者可以快速进行跨领域的学习和使用,通过寥寥数行代码轻松构建并训练深度SNN  

  第二,扩展性强。通过模仿真实生物神经系统或借鉴人工神经网络的成熟经验,改进和提出新的SNN算法和模型,这种研究范式已经被广泛使用,成果颇丰。研究者期望能够自由地定义和扩展新模型,仅需少量代码改动就对模型行为产生巨大改变,这一开发理念与SpikingJelly(惊蜇)的设计哲学不谋而合。SpikingJelly(惊蜇)中的绝大多数模块都是通过层次清晰的多重继承实现,这既为开发者降低了开发成本,也给用户提供了完美的定义新模型的范例。  

  第三,性能卓越。深度学习涉及大规模数据处理、大尺度模型训练,脉冲深度学习亦不例外。而SNN特有的额外的时间维度,使其具有更高的计算复杂度,因而脉冲深度学习对计算资源的需求更高。考虑到ImageNet这样百万规模样本的数据集已经在SNN中广泛使用,研究者愈发关注网络的训练速度。SpikingJelly(惊蜇)充分利用SNN的特性,通过计算图遍历顺序优化、JIT (just-in-time compilation, 即时编译)、半自动CUDA代码生成等技术来加速SNN仿真,与其他框架相比可达11倍的训练加速。第三方独立社区Open Neuromorphic组织对多个SNN框架进行了精细的速度基准测试,参与评测的框架除了SpikingJelly(惊蜇)还包括来自Intel、SynSense时识科技、加州大学圣克鲁斯分校、海德堡大学、瑞典皇家理工学院等科技公司和学术机构的框架,结果表明SpikingJelly(惊蜇)具有最快的仿真速度,比其他框架快10倍以上。

  SpikingJelly(惊蜇)框架自2019年冬季一经推出就受到了研究者们的欢迎和广泛使用,基于SpikingJelly(惊蜇)的研究工作已经大量出版,将SNN的应用从简单的MNIST数据集分类扩展到人类水平的ImageNet图像分类、网络部署、事件相机数据处理等实际应用。此外,一些尖端前沿领域的探索也被报道,包括可校准的神经形态感知系统、神经形态忆阻器、事件驱动加速器硬件设计等。目前有超过95篇公开论文使用SpikingJelly(惊蜇)框架进行实验,其中25篇发表在CCF-A类人工智能顶级会议,5篇发表在IEEE Transactions1篇发表在Nature Communications。以上应用和研究表明,SpikingJelly(惊蜇)的开源,极大促进了脉冲深度学习领域的发展。  

  介绍SpikingJelly (惊蜇)框架的论文SpikingJelly: An open-source machine learning infrastructure platform for spike-based intelligence2023106号在Science子刊《科学进展》(Science Advances)在线发表。北京大学计算机学院田永鸿教授、中国科学院自动化研究所李国齐研究员为论文共同通讯作者,北京大学计算机学院直博生方维为论文第一作者。国家自然科学基金、鹏城云脑网络智能重大科技基础设施项目、北京市自然科学基金为此项研究提供了资助。SpikingJelly(惊蜇)框架在2020-2022连续三年获得科技部领导的启智社区优秀开源项目,启智社区亦为框架的发展提供了大力支持。  

图1. SpikingJelly论文发表于Science Advances

图2. SpikingJelly(惊蜇)框架的整体结构、示例代码、仿真速度、生态位以及典型应用

图3. SpikingJelly(惊蜇)框架中的典型模块

图4:SpikingJelly(惊蜇)框架的典型应用

 

 

      

  论文网址:  

  https://www.science.org/doi/full/10.1126/sciadv.adi1480  

  SpikingJelly(惊蜇)框架网址:  

  GitHub  https://github.com/fangwei123456/spikingjelly  

  启智社区:  https://openi.pcl.ac.cn/OpenI/spikingjelly  

附件: