科学家构建深度脉冲神经网络学习框架
| 来源: 【字号:大 中 小】
脉冲神经网络(Spiking Neural Network,SNN)被誉为第三代神经网络,使用更低层次的生物神经系统的抽象。它既是神经科学中研究大脑原理的基本工具,又因稀疏计算、事件驱动、超低功耗的特性,备受计算科学的关注。随着深度学习方法的引入,SNN的性能得到大幅提升,脉冲深度学习(Spiking Deep Learning)成为新兴的研究热点。传统SNN框架更多地关注生物可解释性,致力于构建精细脉冲神经元并仿真真实生物神经系统,不支持自动微分,无法充分利用GPU的大规模并行计算能力,并缺乏对神经形态传感器和计算芯片的支持。
中国科学院自动化研究所研究员李国齐与北京大学计算机学院教授田永鸿团队合作,构建并开源了脉冲神经网络深度学习框架SpikingJelly(中文名为“惊蜇”)。“惊蜇”提供了全栈式的脉冲深度学习解决方案,支持了神经形态数据处理、深度SNN的构建、替代梯度训练、ANN转换SNN、权重量化和神经形态芯片部署等功能。
“惊蜇”具有如下主要优势。第一,简单易用。脉冲深度学习作为计算神经科学与深度学习的交叉学科,要求研究人员同时掌握两个领域的知识体系,但实际情况是研究人员可能只对一个领域有深度了解。“惊蜇”提供了简单易用的PyTorch风格的API、中英文双语编写的教程、活跃友善的讨论社区,以及常用的网络模型和训练脚本,因此科研人员可以快速进行跨领域的学习和使用,通过寥寥数行代码轻松构建并训练深度SNN。第二,扩展性强。通过模仿真实生物神经系统或借鉴人工神经网络的成熟经验,改进和提出新的SNN算法和模型。这种研究范式已被广泛使用、成果颇丰。研究人员期望能够自由地定义和扩展新模型,仅需少量代码改动便对模型行为产生改变。这一开发理念与“惊蜇”的设计哲学不谋而合。“惊蜇”中的多数模块均是通过层次清晰的多重继承实现,既为开发者降低了开发成本,也给用户提供了定义新模型的范例。第三,性能卓越。深度学习涉及大规模数据处理、大尺度模型训练、脉冲深度学习。而SNN特有的额外的时间维度,使其具有更高的计算复杂度,因而脉冲深度学习对计算资源的需求更高。考虑到ImageNet这样百万规模样本的数据集已在SNN中广泛使用,研究愈发关注网络的训练速度。“惊蜇”利用SNN的特性,通过计算图遍历顺序优化、JIT(just-in-time compilation,即时编译)、半自动CUDA代码生成等技术来加速SNN仿真,与其他框架相比可达11倍的训练加速。第三方独立社区Open Neuromorphic组织对多个SNN框架进行精细的速度基准测试。结果表明,“惊蜇”具有最快的仿真速度,比其他框架快10倍以上。
基于“惊蜇”的研究工作已大量出版,将SNN的应用从简单的MNIST数据集分类扩展到人类水平的ImageNet图像分类、网络部署、事件相机数据处理等实际应用。此外,一些尖端前沿领域的探索亦被报道,包括可校准的神经形态感知系统、神经形态忆阻器、事件驱动加速器硬件设计等。上述应用和研究表明,“惊蜇”的开源促进了脉冲深度学习领域的发展。
10月6日,关于“惊蜇”的研究论文(SpikingJelly: An open-source machine learning infrastructure platform for spike-based intelligence),在线发表在《科学进展》(Science Advances)上。研究工作得到国家自然科学基金、“鹏城云脑”网络智能重大科技基础设施项目、北京市自然科学基金的支持。“惊蜇”在2020年至2022年连续获得科技部领导的启智社区优秀开源项目。启智社区亦为这一框架的发展提供了支持。
“惊蜇”的整体结构、示例代码、仿真速度、生态位及典型应用
“惊蜇”中的典型模块
“惊蜇”的典型应用