探索尖峰神经网络 (SNN):用于时态数据和边缘人工智能的事件驱动、低功耗模型。了解 SNN 如何实现实时、高效的传感。
尖峰神经网络(SNN)是一种复杂的 神经网络架构,旨在比传统模型更接近地模拟人脑的生物过程。 比传统模型更接近人脑的生物过程。与标准的 人工神经网络(ANN)使用连续数值处理信息,与之不同的是 使用连续数值来处理信息,而 SNN 则使用被称为 "尖峰 "的离散事件来运行。这些 尖峰 "发生在特定的时间点,使网络能够以稀疏、事件驱动的方式处理信息。 的方式处理信息。这种方法符合 神经形态计算 神经形态计算是一个致力于创建仿真神经系统神经结构的计算机硬件和软件的领域。 通过利用时序和稀疏性,SNN 在能效和延迟方面都有显著改善,这使它们 对于资源受限的环境(如边缘人工智能)尤为重要。 边缘人工智能。
单核神经网络的基本运作围绕着膜电位的概念。在这个模型中,神经元 随着时间的推移不断累积输入信号,直到其内部电压达到特定的阈值。一旦 神经元就会向其邻近神经元 "发射 "一个尖峰信号,并立即重置其电位--这种机制通常被描述为 "整合-发射"。 这种机制通常被描述为 "整合-发射"(Integrate-and-Fire)。这与 ReLU 或 Sigmoid 等连续激活函数形成鲜明对比。 ReLU或 Sigmoid 等连续激活函数形成鲜明对比。 深度学习模型中的连续激活函数(如 ReLU 或 Sigmoid)形成鲜明对比。
由于 SNN 中的神经元在受到强烈刺激之前处于非活动状态,因此该网络的运行具有很高的稀疏性。这意味着 这意味着,在任何给定时刻,只有一小部分神经元处于活动状态,从而大大降低了功耗。 功耗。此外,SNN 将时间作为学习的核心维度。这些技术包括 尖峰计时可塑性(STDP) 等技术能让网络根据尖峰的精确时间调整连接强度,从而使系统有效地学习时间模式。 时间模式。
要充分了解 SNN 的用途,最好将其与广泛使用的机器学习架构区分开来。 机器学习架构:
尖峰神经网络的效率和速度使其适用于专门的高性能应用。
尽管 SNNs 前景广阔,但由于 "尖峰 "操作是无差别的,因此在训练过程中面临着挑战、 使标准的反向传播难以直接应用 直接应用。不过,代梯度方法和专业库(如 snntorch和Nengo 正在弥合这一差距。硬件创新 Intel的 Loihi 2芯片提供了高效运行 SNN 所需的物理 硬件创新,如英特尔 Loihi 2 芯片,提供了高效运行 SNN 所需的物理架构,摆脱了标准 CPU和 图形处理器。
对于对尖峰神经元行为感兴趣的用户,下面的代码演示了一个简单的 "泄漏 集成与发射 "机制 PyTorch, 模拟神经元如何累积电压和尖峰:
import torch
def lif_step(input_current, membrane_potential, threshold=1.0, decay=0.9):
"""Simulates a single step of a Leaky Integrate-and-Fire neuron."""
# Decay potential and add input
potential = membrane_potential * decay + input_current
# Fire spike if threshold reached (1.0 for spike, 0.0 otherwise)
spike = (potential >= threshold).float()
# Reset potential after spike, otherwise keep current value
potential = potential * (1 - spike)
return spike, potential
# Example simulation
voltage = torch.tensor(0.0)
inputs = [0.5, 0.8, 0.3] # Input sequence
for x in inputs:
spike, voltage = lif_step(torch.tensor(x), voltage)
print(f"Input: {x}, Spike: {int(spike)}, Voltage: {voltage:.2f}")
随着计算机视觉领域的发展,将 随着计算机视觉领域的发展,将 SNN 原理融入主流模型(如 YOLO11等主流模型中,可以为混合架构铺平道路。 的混合架构铺平道路。有关当前最先进的基于帧的检测,您可以 可以查看Ultralytics YOLO11 文档。