脉冲神经网络(Spiking Neural Network, SNN)被誉为第三代神经网络,使用更低层次的生物神经系统的抽象,既是神经科学中研究大脑原理的基本工具,又因其稀疏计算、事件驱动、超低功耗的特性而备受计算科学的关注。随着深度学习方法的引入,SNN的性能得到大幅度提升,脉冲深度学习(Spiking Deep Learning)成为新兴的研究热点。传统SNN框架更多的关注生物可解释性,致力于构建精细脉冲神经元并仿真真实生物神经系统,并不支持自动微分,无法充分利用GPU的大规模并行计算能力,也缺乏对神经形态传感器和计算芯片的支持,难以用于脉冲深度学习任务。
图1:SpikingJelly(惊蜇)框架的整体结构、示例代码、仿真速度、生态位以及典型应用
为了解决上述问题,北京大学计算机学院田永鸿教授团队构建并开源了脉冲神经网络深度学习框架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(惊蜇)具有最快的仿真速度,“more than 10 times faster than libraries that rely on pure PyTorch acceleration (比其他纯PyTorch加速的框架快10倍以上)”。
图2:SpikingJelly(惊蜇)框架中的典型模块
SpikingJelly(惊蜇)框架自2019年冬季一经推出就受到了研究者们的欢迎和广泛使用,基于SpikingJelly(惊蜇)的研究工作已经大量出版,将SNN的应用从简单的MNIST数据集分类扩展到人类水平的ImageNet图像分类、网络部署、事件相机数据处理等实际应用。此外,一些尖端前沿领域的探索也被报道,包括可校准的神经形态感知系统、神经形态忆阻器、事件驱动加速器硬件设计等。目前有超过123篇公开论文使用SpikingJelly(惊蜇)框架进行实验,其中包括3篇ICCV、3篇IJCAI、5篇NeurIPS、4篇CVPR、4篇ICLR、3篇AAAI、2篇ICML、3篇ECCV、1篇TMLR、1篇ACM MM、1篇PR、7篇IEEE Transactions (含1篇TPAMI),以及1篇子刊Nature Communications,此外还有3篇非计算机领域的一区期刊文章。以上应用和研究表明,SpikingJelly(惊蜇)的开源,极大促进了脉冲深度学习领域的发展。
图3:SpikingJelly(惊蜇)框架的典型应用
SpikingJelly(惊蜇)框架的论文 “SpikingJelly: An open-source machine learning infrastructure platform for spike-based intelligence” 已经正式发表于Science子刊《科学·进展》(Science Advances)。北京大学计算机学院田永鸿教授、中国科学院自动化所李国齐教授为共同通讯作者,北京大学计算机学院2019级直博生方维、2019级直博生陈彦骐、2020级直博生丁健豪分别为第一、第二、第三作者,2020级直博生黄力炜亦为共同作者并对该研究做出重要贡献。本文的作者还包括北京大学人工智能研究院余肇飞研究员、法国国家科学研究中心Timothée Masquelier研究员、上海交通大学计算机科学与工程系2019级直博生陈鼎、鹏城实验室研究员周晖晖等人。国家自然科学基金、鹏城云脑网络智能重大科技基础设施项目、北京市自然科学基金为此项研究提供了资助。SpikingJelly(惊蜇)框架在2020-2022连续三年获得科技部领导的启智社区优秀开源项目,启智社区亦为框架的发展提供了大力支持。
论文网址:https://www.science.org/doi/10.1126/sciadv.adi1480
框架GitHub主页: https://github.com/fangwei123456/spikingjelly
框架启智社区主页: https://openi.pcl.ac.cn/OpenI/spikingjelly
框架出版物:https://github.com/fangwei123456/spikingjelly/blob/master/publications.md