try ai
科普
编辑
分享
反馈
  • 训练脉冲神经网络

训练脉冲神经网络

SciencePedia玻尔百科
核心要点
  • SNN 训练中的主要挑战是脉冲激活函数的不可微特性,这一问题通过在学习的反向传播过程中用一个平滑的“代理梯度”来替代而得以克服。
  • 代理梯度的设计涉及学习稳定性与精度之间的关键权衡,影响着梯度在网络中传播的有效性。
  • 使用代理梯度直接训练 SNN,使其能够在计算神经科学、低功耗机器人学、安全人工智能和高效联邦学习等领域实现强大的应用。
  • 经过训练的 SNN 可以实现突触巩固和三因子学习法则等受生物启发的机制,以实现持续学习,克服传统人工智能中常见的灾难性遗忘问题。

引言

脉冲神经网络 (SNNs) 代表了人工智能领域的一场范式转变,它们通过模仿大脑的事件驱动通信方式,有望实现无与伦比的能源效率。然而,这种类似大脑的优雅特性也带来了严峻的挑战。传统人工智能得益于梯度下降法平滑、连续的数学特性,而 SNN 的运作则是在一个由离散的、全有或全无的脉冲组成的世界里。这就产生了一个根本性的冲突:我们如何能训练一个其本质与现代深度学习的基础工具不相容的网络呢?本文旨在填补这一关键的知识空白,为那些解锁可训练 SNN 潜能的巧妙解决方案提供一份指南。

在接下来的章节中,您将首先深入了解 SNN 训练的“原理与机制”。我们将探讨不可微性这堵数学高墙,并引入代理梯度这一优雅概念——一个使学习成为可能的巧妙变通方法。然后,我们将研究如何驾驭这一复杂的学习过程以确保其稳定性。在此之后,“应用与跨学科联系”一章将揭示这些方法的变革性影响,展示可训练的 SNN 不仅可以作为机器人学和边缘计算的强大工程工具,还能作为理解大脑本身的革命性模型。

原理与机制

为了训练一个脉冲神经网络 (SNN),我们踏上了一段连接两个不同世界的旅程:一个是驱动现代人工智能的连续、流动的微积分数学世界,另一个是驱动我们大脑的离散、事件驱动的脉冲世界。我们将要探索的原理和机制不仅仅是一系列技术的集合;它们是一个关于创造力的故事,是一个看似不可逾越的障碍如何通过一个巧妙而深刻的“谎言”被克服的证明。

宏大的挑战:一个由事件而非数字组成的世界

传统的人工神经网络 (ANNs) 是数字世界的大师。信息以连续值的形式在其中流动——激活值可以是 0.1、0.8 或介于两者之间的任何数字。训练它们是一个精炼的过程,就像雕塑家轻轻地塑造一块大理石。我们使用梯度下降法,这是一种能够感知代表误差的数学景观的“斜率”,并推动网络参数朝着更优解的下坡方向前进的算法。

脉冲神经网络的运作原理则不同,它是一种优美而简约高效的原理。它们不使用数字进行计算,而是使用事件。其基本单位——​​脉冲神经元​​——是极简主义的实践。想象一个有小漏洞的桶——这就是我们的​​泄漏整合发放 (Leaky Integrate-and-Fire, LIF)​​ 神经元。输入信号就像注入桶中的水流,使其水位,即​​膜电位​​ V(t)V(t)V(t) 上升。漏洞代表着一种自然的衰减,即电位趋向于回到静息状态。如果水位达到一个特定的标记——​​阈值​​ VthV_{th}Vth​——会瞬间发生两件事:神经元发出一个单一、尖锐、全有或全无的信号,即一个​​脉冲​​,并且桶被清空到​​重置电位​​ VrV_rVr​,准备重新开始这个过程。神经元的全部输出就是这些离散时间点上的一系列脉冲。

这种事件驱动的特性非常高效。一个神经元除非有信息要传递,否则什么也不做——几乎不消耗能量。但正是这种效率带来了我们的宏大挑战:我们如何训练一个由这些极简通信者组成的网络?我们的那位依赖大理石平滑轮廓的、基于梯度的雕塑家,如何能处理一种由离散、坚硬的点组成的材料?

不连续之墙

当我们试图将梯度下降法应用于 SNN 时,我们一头撞上了一堵数学高墙。问题在于发放脉冲这一行为本身。神经元的输出要么是 0(无脉冲),要么是 1(一个脉冲)。不存在“半个脉冲”。这个二元决策由​​亥维赛阶跃函数​​ (Heaviside step function) s=H(V−Vth)s = H(V - V_{th})s=H(V−Vth​) 控制,它在膜电位 VVV 达到阈值 VthV_{th}Vth​ 的瞬间从 0 跳到 1。

让我们回到那个登山算法的比喻。为了找到通往误差山谷的路,它需要感知脚下地面的坡度。数学上的“坡度”就是导数。但是亥维赛阶跃函数的导数是什么呢?在阈值的两侧,函数是完全平坦的——其值恒定为 0 或 1——所以它的导数是零。在阈值的精确点上,函数瞬间跳跃,形成一个无限陡峭的悬崖。那里的导数是无限的,或者更正式地说,在经典微积分中是未定义的。

这意味着,对于一个基于梯度的优化器来说,SNN 的景观几乎完全是平坦的,中间点缀着无法逾越的悬崖。如果对突触权重的微小改变没有导致神经元越过其阈值,那么输出的脉冲序列就完全不会改变。损失保持不变,计算出的梯度为零。优化器得不到任何信息,没有任何方向感。这就像一个登山者站在一个向四面八方延伸数英里的完美水平的高原上。这就是臭名昭著的​​梯度消失问题​​,但在这里,它源于神经元模型自身的基本物理特性。在数学上,导数“几乎处处”为零——除了一个“宽度”为零的单点(一个勒贝格测度为零的集合)。在计算机的有限精度世界里,恰好落在这个无穷小的悬崖边缘的几率几乎为零。学习因此停滞不前。

“谎言”的艺术:代理梯度

解决这个僵局的方案是一个极其优雅的想法,一种被称为​​代理梯度​​ (surrogate gradient) 或​​直通估计器​​ (straight-through estimator) 的技术。这是我们对优化算法撒的一个巧妙的“谎言”——一个为 SNN 解锁了整个深度学习领域的谎言。

该方法通过将网络的操作分为两个阶段来工作:前向传播(运行网络)和反向传播(为学习计算梯度)。

  1. ​​前向传播:真相。​​ 当网络处理信息时,我们让它完全按照其应有的方式行事。我们使用真实、不连续的亥维赛函数来生成脉冲。这一点至关重要,因为它保留了事件驱动、稀疏和高效的计算方式,而这正是 SNN 如此吸引人的原因。

  2. ​​反向传播:“谎言”。​​ 当我们执行反向传播以计算梯度时,我们遇到了亥维赛函数的棘手导数。在这一点上,我们将其替换掉。我们不用真实的导数(几乎处处为零,在阈值处为无穷大),而是用一个“代理”来替代——一个表现良好、平滑的函数,它能提供一个有用的学习信号。

再次想象我们那位迷失在平坦高原上的登山者。代理梯度就像一个乐于助人的向导,他会说:“我知道这里的地面感觉是平的。但如果你的膜电位接近阈值,这里的地势就会像这个平缓的山丘。你何不假装这就是坡度,并朝着那个方向迈出一步呢?”这个“平缓的山丘”是一个连续函数,通常是一个以阈值为中心的钟形或三角形脉冲。它在最关键的区域——当神经元接近做出决策时——提供一个非零的、有限的梯度,从而让优化器能够完成其工作。

塑造“谎言”:代理函数的大观园

这个代理的“平缓山丘”应该是什么样子?这不仅仅是一个技术细节;这个“谎言”的形状对学习的稳定性和性能有着巨大的影响。存在着各式各样的代理导数函数,每一种都有其自身的特性和权衡。

常见的选择包括一个简单的矩形脉冲、一个三角形的“帽子”函数,或者一个从逻辑S型函数导数派生出的平滑钟形曲线。选择时需要平衡几个相互竞争的因素:

  • ​​精度与稳定性:​​ 我们的“谎言”应该多大程度上接近“真相”(即狄拉克δ函数)?我们可以通过调整一个陡峭度参数,我们称之为 β\betaβ,来使我们的代理成为一个非常高而窄的脉冲。一个大的 β\betaβ 值可以更“准确”地逼近真实导数的位置。然而,这是一场危险的游戏。一个非常窄的梯度脉冲意味着神经元只有在其阈值附近一个极小的窗口内才能获得学习信号,如果它不在此窗口内,就有梯度消失的风险。而如果它在窗口内,梯度可能会非常大,从而有梯度爆炸和训练不稳定的风险。一个较小的 β\betaβ 值会产生一个更宽、更平缓的脉冲,这更稳定,但提供的信号精度较低。

  • ​​有尾与无尾:​​ 代理梯度应该在某个窗口之外为零(具有“紧支撑”,如矩形或三角形),还是应该有延伸至无穷远的“尾巴”(如高斯或逻辑导数曲线)?具有紧支撑的代理是干净的;它确保远离其阈值的神经元对梯度绝对没有贡献。然而,如果神经元的电位始终处于该窗口之外,这可能导致它们“卡住”。另一方面,带有尾巴的代理为每个神经元提供了一个微小的梯度信号,这有助于防止它们“死亡”,但也可能从那些并未接近参与决策的神经元引入虚假、嘈杂的更新 [@problem-id:4045431]。这在嘈杂的环境中尤其重要,因为紧支撑的代理可以通过忽略那些仅因噪声而获得信号的、远离阈值的激活,从而表现得更鲁棒。

驯服野兽:确保稳定学习

代理梯度不仅影响单个神经元;其效应会在网络中从空间(跨层)和时间(在循环网络中)两个维度上扩散。理解这种传播是驾驭学习过程的关键。

在循环 SNN 中,神经元在下一个时间步的状态 Vt+1V_{t+1}Vt+1​ 取决于其当前状态 VtV_tVt​。这个关系的导数,即雅可比矩阵 ∂Vt+1∂Vt\frac{\partial V_{t+1}}{\partial V_t}∂Vt​∂Vt+1​​,控制着梯度如何随时间向后流动。对于一个 LIF 神经元,这个雅可比矩阵有两个相互竞争的部分:一个“泄漏”项(一个因子 α1\alpha 1α1),它自然地导致梯度收缩;以及一个由代理梯度驱动的“重置”项(如 −Vthσ′(Vt−Vth)-V_{th} \sigma'(V_t - V_{th})−Vth​σ′(Vt​−Vth​)),它可以放大梯度。这就产生了一种优美的动态张力:为了学习长期依赖关系,梯度信号必须在时间回溯的旅程中存活下来,这要求代理梯度是活跃的。但正是这种活跃性,如果过强,又可能导致信号爆炸。

这个原理也适用于深度前馈网络。跨越 LLL 层的反向传播的稳定性取决于梯度所经历的所有变换的乘积。这包括突触权重矩阵和每一层的代理梯度激活。一个来自理论的卓越见解表明,为了使学习稳定,代理梯度斜率的大小应该与网络权重的大小相平衡。为了防止梯度范数爆炸,代理的最大斜率 β⋆\beta_{\star}β⋆​ 理想情况下不应大于权重矩阵范数倒数的几何平均值:β⋆=(∏ℓ=1L∥W(ℓ)∥)−1/L\beta_{\star} = \left( \prod_{\ell=1}^{L} \|W^{(\ell)}\| \right)^{-1/L}β⋆​=(∏ℓ=1L​∥W(ℓ)∥)−1/L。这揭示了网络架构 (W(ℓ)W^{(\ell)}W(ℓ)) 与学习算法动力学 (β\betaβ) 之间深刻的统一性。

让火焰持续燃烧:高级训练策略

在训练 SNN 时,最常见的挫折之一是“沉默网络”。如果由于随机初始化的权重,没有神经元发放脉冲,那么所有的膜电位都远离阈值。代理梯度将全部为零,学习永远不会开始。我们必须找到一种方法来“启动”网络。

幸运的是,我们对这些原理的理解引出了一些巧妙的策略:

  • ​​阈值退火:​​ 我们可以从非常低的发放阈值开始,使神经元很容易发放脉冲。随着训练的进行和权重的变得更有组织,我们逐渐将阈值提高到其期望的操作水平。
  • ​​陡峭度退火:​​ 我们可以用一个非常宽、平缓的代理(一个小的 β\betaβ 值)开始训练。这提供了一个宽泛、容错性强的学习信号,有助于将权重调整到一个合理的范围。随着学习的稳定,我们可以逐渐增加 β\betaβ 值,使代理变得更尖锐,以实现更精确的学习。
  • ​​噪声注入:​​ 我们可以在神经元的膜电位中加入少量随机噪声。这会“抖动”系统,增加即使是远离阈值的神经元也可能随机进入其代理梯度的活动区域,从而接收到学习信号并加入计算的概率。

更大的图景:通往新前沿的钥匙

为什么要费这么多周折?代理梯度方法的发展是一个分水岭时刻,因为它为 SNN 这一受大脑启发的范式解锁了监督式深度学习的全部力量。

这与 SNN 中的其他学习形式有根本的不同。例如,​​脉冲时间依赖可塑性 (Spike-Timing-Dependent Plasticity, STDP)​​ 是一种优美的局部学习规则,其中突触强度根据突触前和突触后脉冲的相对时间进行调整。它是无监督的,不需要全局误差信号,但对于许多复杂的现实世界任务,它缺乏监督学习的指导能力。

另一种替代方法是 ​​ANN-to-SNN 转换​​,它提供了一条“捷径”,即取一个预训练好的 ANN,并将其参数转换为一个使用发放率来近似其功能的 SNN。虽然有用,但这种方法是僵化的。它本质上是一种基于发放率的近似,无法发现或利用可以编码在脉冲精确时间中的丰富信息。此外,它还面临着一个困难的准确性-延迟权衡:高准确性需要在长时间窗口内估计发放率,这会增加延迟。

使用代理梯度直接训练则没有这些限制。它是一种灵活、强大且通用的原则,允许我们使用与彻底改变了人工智能的、相同的基于梯度的机制,来训练任意深度和循环结构的 SNN,以完成复杂的任务。它是打开深度学习的连续世界与脉冲的美丽、高效、事件驱动的宇宙之间大门的钥匙。

应用与跨学科联系

现在我们已经了解了训练脉冲神经网络的复杂舞蹈——通过驾驭不可微脉冲的险恶地貌来说服它学习——我们可能会理所当然地问:“那又怎样?”我们能用这些受大脑启发的装置做什么?事实证明,答案不仅仅是一系列工程应用,而是一段将我们带到神经科学、机器人学以及人工智能定义本身前沿的旅程。通过学习训练 SNN,我们不仅创造了一种新型算法;我们还锻造了一种新工具来探索我们自己心智的奥秘,以及一种构建真正智能机器的新蓝图。

以大脑为缪斯和蓝图

SNN 最直接和最深刻的应用是在启发了它们的领域:神经科学。几十年来,科学家们一直在构建神经元模型,但要训练它们的大型循环网络来执行复杂的任务,就像大脑所做的那样,一直是一个巨大的挑战。随着代理梯度方法的出现,我们现在可以认真地开始这项对心智的逆向工程。

想象一下,取一小块皮层,一个由循环连接的神经元组成的错综复杂的网络,并试图理解其功能。我们现在可以构建这个微电路的数字孪生,一个循环 SNN,并训练它来重现生物组织中观察到的相同动态活动模式。通过要求模型在响应输入流时生成特定的输出序列,我们可以看到完成该任务需要什么样的突触权重、稳态机制和能量约束。网络是否需要惩罚过度的脉冲发放以节省代谢能量?它是否需要将发放率保持在稳定范围内的规则,这个过程类似于大脑中的突触稳态?通过成功训练这些模型,我们不仅得到了一个能够执行任务的网络;我们还得到了一个关于真实大脑回路可能如何组织和优化的、可测试的计算假设。

当我们考虑解码大脑的语言时,这座通往生物学的桥梁变得更加强大。脑机接口(BCI)中的一个经典挑战是将从大脑记录到的混乱的神经活动风暴转化为一个清晰、可用的命令——例如,移动一个机械臂。传统方法可能是试图找到几个关键神经元,其发放与预期的运动直接相关。但大脑很少如此简单。

在这里,一个来自 SNN 的优美概念,称为​​液态机 (Liquid State Machine, LSM)​​,提供了一个不同的视角。如果大脑“混乱”的循环动态是一种特性,而不是一个缺陷呢?LSM 由一个大型、固定、随机连接的循环 SNN 组成——即“液体”或“储层”——它根本不被训练。这个储层作为一个丰富的非线性滤波器,将输入信号转换为一个巨大的、高维的脉冲模式空间。神奇之处在于,如果储层具有正确的属性(比如对过去输入有“衰减的记忆”),那么复杂、纠缠的输入历史在这个高维空间中就会被解开。剩下要做的就是训练一个非常简单的线性读出层来解释这种复杂的活动。这比训练整个循环网络要容易得多。对于 BCI 来说,这意味着我们可以让一个固定的 SNN 储层模仿大脑自身的动力学来处理原始神经信号,然后我们只需要学习一个简单的映射来解码用户的意图。艰巨的工作由网络的物理特性完成,而不是学习算法的难度。

这种从自然界解决方案中学习的思想延伸到了我们如何随时间学习。人类和动物是持续学习的,而不会完全覆盖旧的记忆——这一壮举对于传统人工智能来说是出了名的困难,后者经常遭受“灾难性遗忘”。SNN 通过受生物启发的机制提供了一条前进的道路。我们可以实现​​三因子学习法则​​,其中突触强度的变化取决于两个相连神经元的局部活动和一个全局广播的“第三因子”。这个第三因子可以像神经调质信号(如多巴胺)一样,携带关于整体成功或失败(奖励)的信息。这使得 SNN 可以使用强化学习来训练控制机器人,其中每个突触的资格迹标记了哪些连接对最近的动作“负责”,等待全局奖励信号来使这些变化永久化。

为了真正解决持续学习问题,我们可以走得更深。我们可以为我们的 SNN 配备​​突触巩固​​机制,该机制识别并保护对过去任务很重要的突触,使它们不易发生变化。这就像在翻新高层建筑时保护建筑的基础。与此同时,我们可以引入​​元可塑性​​,或“学习如何学习”,即每个突触的可塑性随时间变化。变化很大的突触可以自动降低其学习率,以促进稳定性。通过将标准的塑性规则(如 STDP)与重要性加权的巩固和元可塑性相结合,我们可以创造出能够优雅地整合新知识同时保留旧知识的 SNN,向我们在生物学中看到的流畅、终身学习迈进了一步。

工程未来:神经形态系统的实际应用

虽然 SNN 帮助我们理解大脑,但它们独特的属性也使它们成为工程新一代智能、高效和鲁棒机器的强大工具。

机器人世界是 SNN 的天然家园。基于事件的计算的低功耗特性对于电池寿命有限的移动机器人来说是一个巨大的优势。此外,控制不仅关乎做什么,还关乎何时做。SNN 的内在时间特性使其非常适合需要精确时间控制的任务。通过定义对脉冲精确时间敏感的学习目标,我们可以训练网络生成具有毫秒级精度的复杂动作序列,这远远超出了许多传统模型的笨拙时间步。液态机架构对 BCI 非常有用,在机器人学中也证明了其价值,它提供了一个以最小的训练代价创建稳定、自适应控制器的框架。

对效率的需求已将计算从大型数据中心推向“边缘”——即数十亿小型、功耗受限的设备,如手机、传感器和可穿戴设备。这正是 SNN 在神经形态硬件上实现时真正大放异彩的地方。考虑一下​​联邦学习 (Federated Learning, FL)​​ 的挑战,即许多设备协同训练一个 AI 模型,而不共享其私有数据。每个设备在本地训练一个模型,并仅将其更新发送到中央服务器。为了在边缘设备上实现这一点,整个过程必须在能量和通信方面都极其高效。

SNN 是一个完美的选择。但在 FL 中使用它们揭示了更深层次的设计权衡。对于麦克风上的关键词识别任务,像​​首脉冲时间编码 (time-to-first-spike, TTFS)​​ 这样的稀疏编码方案是理想的,其中信息被编码在单个脉冲的延迟中。它功耗极低、延迟极低。因为它只依赖于本地时间参考,所以在设备内部时钟不同步的 FL 环境中也能完美工作。相比之下,对于从事件相机识别有节奏的手势,​​相位编码​​方案似乎更自然,它相对于本地振荡器编码信息。然而,FL 网络中设备之间缺乏相位同步会导致学习到的模型完全错位。这迫使我们共同设计系统,也许通过将相位不变性直接构建到网络架构中。这表明,在现实世界中部署 SNN 是一个丰富的、跨学科的挑战,融合了硬件约束、编码理论和分布式学习协议。

最后,随着人工智能越来越融入我们的生活,确保其可靠性和安全性至关重要。传统的神经网络是出了名的脆弱,容易受到“对抗性攻击”的影响,即对输入的微小、难以察觉的改变可能导致模型出现惊人的失败。你如何构建一个鲁棒的 SNN?攻击的概念必须在时间域中重新构想。对手不仅仅是改变像素值;他们正在巧妙地改变脉冲时间、删除脉冲或插入虚假脉冲。

为了防御这种情况,我们可以使用专为脉冲序列设计的度量(如 ​​Victor-Purpura 距离​​)来定义一个“威胁模型”,该度量量化了将一个脉冲序列转换为另一个的成本。然后我们可以使用​​对抗性训练​​,这是一个我们不断挑战网络的过程,使其不仅能正确分类干净的输入,还能正确分类对手在其预算内能创造的最坏扰动。这种最小-最大博弈迫使 SNN 对其输入的微小、恶意的抖动不敏感,从而学习到对世界更根本、更鲁棒的表示。对鲁棒性的追求将 SNN 从仅仅是类脑模仿者推向了关键系统中值得信赖的组件。

从模拟大脑到控制机器人,从在全球范围内实现分布式智能到构建更安全的人工智能,可训练 SNN 的应用既多样又深刻。它们代表了一种范式转变,迫使我们不仅从静态数据和层次的角度思考,还要从时间、动态和事件的角度思考。这段旅程才刚刚开始,但很明显,在学习脉冲语言的过程中,我们正在开启计算故事中一个强大的新篇章。