Eshraghian J K, Ward M, Neftci E O, et al. Training spiking neural networks using lessons from deep learning[J]. Proceedings of the IEEE, 2023.
Abstract
大脑是寻找灵感以开发更高效神经网络的完美场所,其内部突触和神经元的内部运作(原理)让我们得以看到深度学习未来可能的模样。
本文作为教程展示如何将过去十几年的在
- 深度学习
- 梯度下降
- 反向传播
- 神经科学研究的经验
运用到生物学上合理的脉冲神经网络
。
我们还探讨了
- 将数据编码为脉冲信号与学习过程之间的微妙相互作用;
- 将基于梯度的学习应用于脉冲神经网络 (SNN) 的挑战与解决方案。
- 时间反向传播和脉冲时间依赖性可塑性(Spike-Timing-Dependent Plasticity, STDP)之间的微妙联系
- 深度学习如何走向生物学上合理的在线学习
脉冲时序依赖性可塑性(Spike-Timing-Dependent Plasticity, STDP)是一种突触可塑性的机制,它基于脉冲神经元之间的脉冲时序关系来调整突触权重。具体来说,STDP的规则如下:
- 时间前后关系:当一个突触前神经元的脉冲(输入脉冲)在突触后神经元的脉冲(输出脉冲)之前到达时,突触权重会增加,这种现象称为长时程增强(Long-Term Potentiation, LTP)。
- 时间前后关系反转:当突触前神经元的脉冲在突触后神经元的脉冲之后到达时,突触权重会减小,这种现象称为长时程抑制(Long-Term Depression, LTD)。
这种 基于时间的调节机制 使得神经网络能够根据输入脉冲的时序信息进行学习和适应,这与生物神经系统中的学习和记忆过程非常相似。
STDP的重要性在于它不仅考虑了脉冲的频率,还考虑了脉冲的时序,这使得神经网络能够捕捉到时间依赖性的模式,从而在处理时间序列数据或动态环境中表现得更好。在脉冲神经网络的研究中,STDP是实现生物学上合理的学习规则的关键之一,它为理解和模拟大脑的学习机制提供了重要的理论基础。
一些想法在神经形态工程社区中已被广泛接受和常用,而另一些则是首次在此提出或得到证实。
深度学习和脉冲神经网络发展非常迅速;(所以说)我们努力将本文档视为一个"动态"手稿,随着训练脉冲神经网络 (SNN) 的常见实践的变化,本文档也将不断更新。
与本文相辅相成的一系列互动教程也已提供,这些教程使用我们的 Python 包 snnTorch。
Introduction
深度学习已经解决了计算机视觉、语音识别和自然语言处理等领域的许多问题。神经网络在许多游戏中的表现超越了世界冠军,包括从围棋到星际争霸;它们现在在许多医疗任务中正在超越临床专家的诊断能力。然而,尽管每天都有最先进的模型被设计出来,但在针对最先进能源效率的 Kaggle 竞赛中,最终胜出的永远是大脑。一种新一代的受大脑启发的脉冲神经网络(SNNs)有望弥补这一效率差距。
从2012年到2019年,运行性能最佳的深度学习模型所需的计算能力 每年增长了10倍,数据生成率同样呈指数级增长;OpenAI 的 ChatGPT 语言模型的核心,GPT-3,包含 1750 亿个可学习参数,据估计训练它需要大约 190,000 千瓦时(度)的电力。与此同时,我们的大脑运行只需大约 12-20 瓦的功率。除此之外,大脑还处理大量的感官输入,同时确保我们的非自主生物过程不停止运行。如果我们的大脑像最先进的深度学习模型那样散发热量,那么自然选择早就会在我们发明机器学习之前将人类淘汰了。公平地说,没有任何作者能够模仿莎士比亚的风格,或者像 GPT-4 那样以同样的艺术风格编写吉他谱。
1.1 神经形态计算:快速概览
神经形态("类似大脑")工程致力于模仿大脑的计算原理,以降低人工智能系统的能耗。为了复制生物系统,我们建立在三个部分的基础上:
- 神经形态传感器 受到生物传感器的启发,例如视网膜或耳蜗,通常记录信号的变化而不是在规则间隔内对其进行采样。只有在发生变化时才会生成信号,这种信号被称为"脉冲"。
- 神经形态算法 学习如何理解脉冲被称为脉冲神经网络(SNNs)。SNNs 不使用浮点值,而是使用
单比特
、二进制激活
(脉冲),在时间上编码信息,而不是强度(intensity)。因此,SNNs 利用低精度参数和高时空稀疏性。
一个微妙的注意事项是,SNN 可以接受非脉冲 的连续值输入,并训练模型找到最有效的基于脉冲的表示。
- 这些模型在设计时考虑到了在专用 神经形态硬件 上的高能效执行。稀疏激活减少了芯片内外的数据移动,以加速神经形态工作负载,与传统硬件上的相同任务相比,这可以带来巨大的功耗和延迟增益。
拥有(Armed with)这三个组成部分,神经形态系统已经具备了填补当前智能系统与未来智能系统之间效率差距的能力。
从大脑中可以学到哪些教训,以构建更高效的神经网络呢?我们是否应该复制基因神经元的构成一直到分子水平?我们是否应该研究记忆和处理在神经元和突触内是如何融合的呢?还是应该致力于提取支撑大脑的学习算法呢?
本文重点研究了训练受大脑启发的神经形态算法的复杂性,最终朝着利用自然智能进一步改善我们对人工智能的使用的目标迈进。脉冲神经网络(SNNs)已经可以利用深度学习社区提供的工具进行优化。但这些新兴传感器、神经元模型和训练方法的受大脑启发的性质足够不同,足以保证深入研究受生物启发的神经网络。
1.2 原始的神经形态系统(Neuromorphic Systems in the Wild)
总体目标是将已在广泛领域证明其价值的人工神经网络(ANNs)与脉冲神经网络(SNNs)的潜在效率
相结合。到目前为止,脉冲神经网络已经在一系列需要极高功耗效率的应用中占据了一席之地。
图1:脉冲神经网络(SNNs)已经渗透(pervaded)到许多需要低功耗、资源受限且通常是便携操作的深度学习领域。SNNs 的实用性甚至扩展到了对单个神经元和更高级别神经系统的神经动态建模。
图1展示了脉冲神经网络的用途,而它们的应用领域只会不断扩大。脉冲算法已被用于在医疗、机器人技术、混合现实等领域实现低功耗人工智能算法,还有许多其他领域也在使用。鉴于它们的功耗效率,最初的商业产品通常针对边缘计算应用
,靠近数据记录的地方。
在生物信号监测中,用于脑机接口或生物信号接口的神经植入物必须在本地以最低功耗
预处理信息,并且缺乏传输云计算数据的带宽。在这一方向上使用脉冲神经网络(SNNs)的工作包括芯片上的脉冲分类( on-chip spike sorting)、生物信号异常检测和脑机接口。SNNs的高效能使得它们特别适合于这些需要低功耗和高实时性的应用。除了生物医学干预之外,脉冲神经网络(SNN)模型还用于 机器人技术 ,以使其更类似于人类,并降低操作成本。 无人机 也必须在低功耗环境下运行,以最大限度地利用轻量电池的价值,并从使用神经拟态处理器中受益。 音频信号 可以在神经形态硬件上以亚毫瓦(sub-mW)的功耗和低延迟进行处理,因为脉冲神经网络(SNNs)为时间信号处理提供了一种高效的计算机制。
参考文献中回顾了使用脉冲神经网络(SNNs)的多种高效计算机视觉应用。
Guillermo Gallego, Tobi Delbrück, Garrick Orchard, Chiara Bartolozzi, Brian Taba, Andrea Censi, Stefan Leutenegger, Andrew J Davison, Jörg Conradt, Kostas Daniilidis, et al. Event-based vision: A survey. IEEE transactions on pattern analysis and machine intelligence, 44(1):154--180, 2020
脉冲神经网络(SNNs)同样适用于跟踪天空中的卫星以进行空间态势感知,科学计算,并已被研究用于促进人工智能的可持续利用,例如监测智能建筑中的材料应变和在电力传输困难的偏远地区进行风力预测。在2018-19年的Telluride Neuromorphic and Cognition Workshops上,甚至建造了一台会踢足球的神经形态机器人!
除了神经形态应用之外,脉冲神经网络(SNNs)还用于测试关于自然智能如何产生的理论,从大脑的高级学习规则和记忆的形成,到低级别的神经元和突触动态
1.3 论文概述(Overview of Paper)
大脑的神经电路是神经算法的物理表现,理解其中的一个也会促进对另一个的理解;本文将集中探讨神经模型的一个特定方面:那些与现代深度学习兼容的模型。
图2:论文结构概述
图2提供了本文结构的图示概览,我们将从基础开始
- 在第2节中,我们将解释使用脉冲的常见优势,并从基本原理推导出一个脉冲神经元模型。
- 在第3节中,我们将通过探索各种脉冲编码策略赋予这些脉冲意义,研究它们如何影响学习过程,并讨论如何使用目标和正则化函数来调整SNN的脉冲模式。
- 在第4节中,我们将探讨使用基于梯度优化来训练SNNs的挑战,并推导出几种解决方案。这些解决方案包括在脉冲时间定义导数以及使用梯度的近似值。
- 在这样做的过程中,我们将揭示反向传播算法与脉冲时序依赖性可塑性(STDP)学习规则之间的细微联系,并在随后的部分中利用这一联系推导出朝着生物学上合理的学习机制迈进的在线反向传播变体(见图2)。
目标是将已经在广泛领域中证明其价值的人工神经网络(ANNs)与脉冲神经网络(SNNs)的潜在效率结合起来。这种结合有望在保留ANNs强大功能
的同时,利用SNNs的高效能
和低功耗
特点,推动更加节能和高效的智能系统的开发。