跳转至

第20章 §03 · 神经形态计算 · 讲解稿

承接: Ch20 §02 量子 → §03 神经形态 篇幅: ~3500 字


一 · 一句话总览

神经形态 = 模拟生物神经元的硬件。事件驱动 + 低功耗 + 时序友好。SpiNNaker / Loihi / Akida 三大芯片 + SNN (脉冲神经网络), 让边缘 AI 功耗降低 10-100 倍。


二 · 为什么需要神经形态

2.1 传统瓶颈

  • 冯诺依曼瓶颈: CPU/GPU 与内存分离
  • 功耗: GPT-4 训练 1 GWh (≈ 1000 户家庭年用电)
  • 实时性: 边缘 AI 需 < 1ms 响应

2.2 神经形态优势

维度 传统 神经形态
架构 数字 + 冯诺依曼 模拟 + 事件驱动
功耗 100-700W 0.1-10W
延迟 毫秒 微秒
稀疏 不友好 天然
学习 离线训练 在线 + STDP

三 · 脉冲神经网络 (SNN)

3.1 第三代神经网络

代 模型 信息载体
1 Perceptron 二进制
2 CNN/RNN 连续值
3 SNN 脉冲 (spike)

3.2 LIF 模型

Leaky Integrate-and-Fire:

du/dt = -(u - u_rest) / τ + I(t)
当 u > u_threshold → fire spike, u = u_reset

import torch
import torch.nn as nn

class LIFNeuron(nn.Module):
    def __init__(self, tau=20.0, v_threshold=1.0):
        super().__init__()
        self.tau = tau
        self.v_threshold = v_threshold
        self.v = None

    def forward(self, I):
        if self.v is None:
            self.v = torch.zeros_like(I)
        self.v = self.v + (I - self.v) / self.tau
        spike = (self.v >= self.v_threshold).float()
        self.v = self.v * (1 - spike)
        return spike

3.3 STDP 学习

Spike-Timing-Dependent Plasticity: - 前突触脉冲先于后突触 → 权重增加 - 后突触先于前突触 → 权重减少 - 生物可信

3.4 SNN 编码

  • 频率编码: 脉冲数 = 信息
  • 时序编码: 脉冲时间 = 信息
  • 群体编码: 多神经元组合

四 · 主要神经形态芯片

4.1 Intel Loihi

Loihi 2 (2021): - 128K neurons / chip - 120M synapses - 异步 + 事件驱动 - 编程: Lava / NxSDK

4.2 Manchester SpiNNaker

SpiNNaker 2: - 152 ARM cores - 1M 神经元 - 百万核级 BrainScaleS - 编程: PyNN / sPyNNaker

4.3 IBM TrueNorth

  • 5.4 billion transistors
  • 1M neurons / 256M synapses
  • 70 mW 功耗

4.4 BrainChip Akida

  • 边缘 NPU
  • 1.2M neurons
  • on-device learning
  • 商业化最成熟

4.5 国内

  • 清华天机 (Tianjic) (2019): 异构融合
  • 浙大达尔文 (Darwin)
  • 时识智能 (SynSense): DYNAP-CNN

五 · 软件栈

5.1 Nengo / NengoDL

  • Python SNN 模拟
  • 跨硬件后端 (Loihi / SpiNNaker / CPU)

5.2 Lava (Intel)

  • Loihi 官方框架
  • magma + lava

5.3 snnTorch / Norse

  • PyTorch 风格
  • 学术研究主流

5.4 编程示例 (snntorch)

import snntorch as snn
from snntorch import surrogate

beta = 0.5
lif = snn.Leaky(beta=beta, spike_grad=surrogate.fast_sigmoid())

六 · 应用场景

6.1 边缘 AI

  • 智能摄像头 (事件触发)
  • 智能音箱 (语音唤醒, < 1mW)
  • 可穿戴设备 (心率 / 步态)

6.2 时序信号

  • EEG / ECG 分析
  • 音频事件检测
  • 振动监测 (工业)

6.3 机器人感知

  • 事件相机 (DVS)
  • SLAM
  • 触觉

七 · 与传统 ANN 桥接

7.1 ANN → SNN 转换

  • 训练 ANN → 转 SNN (主流)
  • 准确率损失 < 1%
  • 代表: Spiking-YOLO

7.2 直接训练 SNN

  • BPTT 改造
  • surrogate gradient
  • 代表: snnTorch

八 · 一句话总结

神经形态 = 生物启发 + 低功耗 + 时序。SNN + Loihi/SpiNNaker + Akida 让边缘 AI 功耗降 10-100×。未来 5 年: 智能音箱 / 可穿戴 / 工业传感 大规模商用。10-20 年: 通用 AI 协处理器。