第八章:脉冲神经网络有监督学习 — 知识点笔记

综合来源:课件8(PDF,127页)、课堂笔记(CSDN)、期末复习课录音


占位图
在这里插入图片描述

超级压缩

在这里插入图片描述

8.1 经典ANN学习算法回顾(BP)

反向传播两步

  1. 前向传播:输入→各层线性变换+激活→输出预测
  2. 反向传播:损失函数→链式法则逐层求梯度→梯度下降更新参数

更新规则

θt+1=θt−α∇J(θt)\theta_{t+1} = \theta_t - \alpha \nabla J(\theta_t)θt+1=θtαJ(θt)

  • SGD:每次随机选一个/小批量样本计算梯度→更快但具随机性

BP实例推导(课件重点)

  • 2输入→2隐藏→1输出的简单网络
  • 手动推导各权重梯度→更新→验证损失下降

【图片:BP实例推导网络结构 — 课件8 第9-22页】


8.2 单层SNN学习算法

(1) Tempotron ⭐

核心思想:电压驱动,利用膜电位动态演化,将输入脉冲序列映射到膜电位峰值。

膜电位模型
V(t)=∑iωi∑tiK(t−ti)+VrestV(t) = \sum_i \omega_i \sum_{t_i} K(t - t_i) + V_{rest}V(t)=iωitiK(tti)+Vrest

K(t−ti)=V0[exp⁡(−(t−ti)/τm)−exp⁡(−(t−ti)/τs)]K(t-t_i) = V_0[\exp(-(t-t_i)/\tau_m) - \exp(-(t-t_i)/\tau_s)]K(tti)=V0[exp((tti)/τm)exp((tti)/τs)]

  • 双指数核函数:τm\tau_mτm膜时间常数,τs\tau_sτs突触电流衰减常数

二分类规则

  • 正样本(应发放)→未发放→找到V(tmax)V(t_{max})V(tmax)→增加权重使其超过阈值
  • 负样本(不应发放)→发放了→降低权重

学习规则(假设tmaxt_{max}tmax附近导数为零):
Δωi=λ∑ti<tmaxK(tmax−ti)\Delta \omega_i = \lambda \sum_{t_i < t_{max}} K(t_{max} - t_i)Δωi=λti<tmaxK(tmaxti)

多分类扩展

  • C个类别→C个输出神经元
  • 推理:发放最早的神经元→对应类别;或选最大膜电位类别

(2) ReSuMe(远程监督学习)⭐

核心特点

  • 神经元模型无关,仅依赖输入输出脉冲序列和STDP
  • 关注整个脉冲序列而非单个发放
  • 希望输出序列与目标序列同时发放

学习规则
Δw=STDP相关项(输入-输出)+反STDP相关项(目标-输出)\Delta w = \text{STDP相关项(输入-输出)} + \text{反STDP相关项(目标-输出)}Δw=STDP相关项(输入-输出)+STDP相关项(目标-输出)

  • 早发放→降低权重 | 晚发放→增加权重
  • 本质:将STDP无监督机制→"监督化"

Tempotron vs ReSuMe

Tempotron ReSuMe
驱动信号 膜电位峰值 脉冲序列时序
关注点 是否发放(单次) 整个脉冲序列
模型依赖 依赖特定PSP核函数 与神经元模型无关
分类 二分类→可扩展多分类 多分类

8.3 深度SNN学习算法 ⭐⭐⭐

浅层 vs 深层SNN

浅层SNN 深层SNN
隐藏层 1~2 ≥3
表征能力 简单特征 复杂抽象特征
训练难度 易收敛 难收敛
挑战 梯度消失/爆炸、时间依赖、高计算成本、数据稀疏

两类梯度方法

  1. 代理梯度(Surrogate Gradient):用平滑曲线近似阶跃函数导数
  2. 脉冲发放时间反传:通过脉冲发放时间传播梯度

8.4 STBP算法 ⭐⭐⭐(时空反向传播)

三要素

  1. 迭代LIF模型
  2. 时空反向传播训练框架
  3. 代理梯度函数

(1) 迭代LIF模型

LIF微分方程:τdudt=−u+I\tau \frac{du}{dt} = -u + Iτdtdu=u+I

迭代形式:
uit+1,n=uit,n⋅f(oit,n)+xit+1,nu_i^{t+1,n} = u_i^{t,n} \cdot f(o_i^{t,n}) + x_i^{t+1,n}uit+1,n=uit,nf(oit,n)+xit+1,n

或等价:ut+1=τut(1−ot)+xt+1u^{t+1} = \tau u^t (1 - o^t) + x^{t+1}ut+1=τut(1ot)+xt+1

  • 遗忘门f(⋅)f(\cdot)f():控制膜电位的漏电程度(时间域记忆TD)
  • 输出门g(⋅)g(\cdot)g():触发脉冲发放(阶跃函数)
  • xxx:来自前一层的突触输入 xi=∑jWijojx_i = \sum_j W_{ij} o_jxi=jWijoj

(2) 时空反向传播框架

损失函数:时间窗口T内所有样本输出平均发放率与标签的MSE
L=12S∑s∥ys−1T∑tost∥2L = \frac{1}{2S}\sum_s \|y_s - \frac{1}{T}\sum_t o_s^t\|^2L=2S1sysT1tost2

四种反向传播情形(Case 1-4)

Case t n 误差来源 特点
Case 1 T N 仅来自损失L(无未来时间+无上层) 最后一个时间步、输出层
Case 2 T <N 仅来自空间域SD(无未来时间) 最后时间步、隐藏层
Case 3 <T N 来自时间域TD + 损失L(无上层) 输出层、非最后时间步
Case 4 <T <N 来自SD + TD 隐藏层、非最后时间步

梯度回传路径

  • 空间域(SD)∂oit,n∂xjt,n+1\frac{\partial o_i^{t,n}}{\partial x_j^{t,n+1}}xjt,n+1oit,n → 层间传递
  • 时间域(TD)∂uit+1,n∂uit,n=τ(1−oit,n)\frac{\partial u_i^{t+1,n}}{\partial u_i^{t,n}} = \tau(1-o_i^{t,n})uit,nuit+1,n=τ(1oit,n) → 同层时刻间传递

(3) 代理梯度函数 ⭐

问题:脉冲发放函数g(u)g(u)g(u)是阶跃函数→导数=狄拉克函数δ(u)→不可微

解决:用平滑曲线近似δ函数(四种):

类型 特点
矩形函数 窗口内=α,外=0
多项式函数 平滑衰减
Sigmoid函数导数 类似高斯型
高斯累积分布导数 连续光滑

共同特点

  1. 中心在阈值VthV_{th}Vth附近
  2. 远离阈值时接近0(防梯度消失)
  3. 阈值附近有较大值(允许梯度通过)
  4. 积分面积为1(狄拉克函数的近似)

【图片:四种代理梯度函数曲线对比 — 课件8 第78页】

代码实现(Forward/Backward):

  • Forward:硬阈值→0/1 spike输出;保存膜电位
  • Backward:取出膜电位→判断是否在阈值附近窗口内→用代理梯度值替代真实导数

8.5 ANN-SNN转换算法 ⭐⭐

核心思想

  1. 用BP训练好ANN(ReLU激活)
  2. 将训练好的权重直接映射到结构相同的SNN
  3. 用SNN进行低功耗推理

Rate-Based转换

原理:ANN激活值 ≈ SNN脉冲发放率
ril≈∑jWijlrjl−1θir_i^l \approx \frac{\sum_j W_{ij}^l r_j^{l-1}}{\theta_i}rilθijWijlrjl1

  • ReLU = 无不应期IF神经元的发放率近似
  • 若输入值相同→输出发放率≈ANN激活值

转换流程

  1. 使用ReLU激活训练ANN
  2. 训练时偏置固定为零
  3. 权重直接映射至IF网络
  4. 权重归一化以获得接近无损精度

精度损失三个来源

问题 原因
欠激活 输入太弱→膜电位达不到阈值→发放率偏低
过激活 输入太强→单步需>1个spike→SNN每步最多1个
脉冲随机性 Poisson编码的随机波动

归一化方法 ⭐

方法 依据 优点 缺点
Model-Based 仅看网络最大权重 安全,无需数据 过于保守,可能发放不足
Data-Based 训练集统计最大激活值 精度高,延迟低 依赖训练集代表性

Data-Based缩放因子
λl=max⁡(max⁡_actltarget_rate,max⁡_wtl)\lambda^l = \max\left(\frac{\max\_act^l}{\text{target\_rate}}, \max\_wt^l\right)λl=max(target_ratemax_actl,max_wtl)

需引入previous_factor传递到下一层→保证层间发放率一致性。

TTFS-Based转换 ⭐

与Rate-Based的区别

维度 Rate-Based TTFS-Based
信息编码 脉冲数量(频率) 脉冲时间(首次发放)
时间窗口 长(需统计稳定性) (低延迟)
ANN激活函数 ReLU ReLU1(限制[0,1])
脉冲数 多个 1个
对应关系 激活值→发放率 激活值→发放时刻(越大越早)

TTFS特有三大问题与解决

问题 现象 解决方案
过早放电 正输入先到→在负输入到达前就发放 动态阈值:窗口开始前阈值=∞
漏放电 多个小正输入分散→窗口内达不到阈值 窗口末端边界处理→强制发放
时间扭曲 权重和不同→同一激活值→不同spike time Soft约束(正则项L_w)+Hard约束(权重和=1)

8.6 Conversion vs Direct Training对比

对比项 Conversion-based Direct Training
核心思想 先训ANN→转换SNN 直接训练SNN
训练难度 较低 较高
时间动态 未充分优化 显式建模优化
精度 转换误差小→高精度 取决于代理梯度
生物合理性 较弱 相对更强
适用场景 分类、转换友好任务 时序、事件数据、动态任务

思考题(课件)

Q1:STBP代码中forward和backward分别实现什么?为什么不能用真实阶跃函数导数?

Q2:Data-Based Normalization中转换后的SNN权重应如何缩放?

Q3:比较Rate-Based和TTFS-Based ANN-SNN转换的主要区别。


笔记中的图片索引

序号 图片内容描述 来源位置
图1 BP实例推导完整网络结构 课件8 第9-22页
图2 Tempotron膜电位与PSP核函数 课件8 第26页
图3 迭代LIF模型示意图 课件8 第56-57页
图4 STBP四种Case误差回传路径图 课件8 第59-74页
图5 四种代理梯度函数曲线 课件8 第78页
图6 ANN-SNN转换原理对比图 课件8 第99页
图7 欠激活/过激活示意图 课件8 第102页
图8 TTFS过早放电问题 课件8 第115页
图9 Conversion vs Direct Training对比 课件8 第126页

笔记整理时间:2026年6月25日

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐