脉冲神经网络(SNN)的核心原理是什么?

5 人参与

脉冲神经网络(SNN)把信息视作离散的电压尖峰,而不是连续的数值向量,这一点决定了它的全部行为都围绕“何时发放”而展开。每一次尖峰都是一次事件,只有在膜电位跨越阈值的瞬间才会触发,这种异步、稀疏的通信模式让能耗直接与活动率挂钩,也正是大脑超低功耗的根本原因。

脉冲神经元的动力学

最常用的模型是泄漏积分-发放(Leaky Integrate‑and‑Fire,LIF),其离散化更新式可以写成

V[t+1] = α·V[t] + (1‑α)·R·I[t];  
if (V[t+1] ≥ V_thr) { spike(); V[t+1] = V_reset; }

其中 α=exp(‑Δt/τ_m) 表示膜电位的自然衰减,R·I[t] 为外部输入电流。每一步只做一次乘加和一次阈值比较,硬件实现时可以用电容放电和比较器完成,几乎不需要时钟。

信息的时序编码

把连续的感知信号映射为尖峰流,常见的方案有三种:

  • 速率编码:单位时间内的尖峰数目与信号幅度成正比,易于实现但会产生大量冗余。
  • 时间编码(Time‑to‑First‑Spike):越强的刺激越早产生第一颗尖峰,信息压缩率极高。
  • 相位编码:在全局振荡基准下,用相位差表征特征,适配事件相机的自然输出。

事件相机直接输出像素级的亮度变化事件,这些事件天然符合 AER(地址‑事件表示)协议,省去任何帧缓存和像素采样的中间步骤。

可塑性与学习机制

SNN 的学习核心在于突触权重的时序可塑性。两类方法在实践中最常碰到:

  • STDP(尖峰时序依赖可塑性):若前突触尖峰先于后突触尖峰出现,权重增强;相反则削弱。公式化后可以在硬件中用电流脉冲的宽度直接调制电阻,实现在线学习。
  • 替代梯度(Surrogate Gradient):在前向传播中保留硬脉冲的非线性,在反向传播时用光滑函数(如 Sigmoid)近似其梯度,使得误差可以通过链式法则传递到每个时间步。

这两者的区别在于前者完全局部、无需全局误差信号,后者则兼顾了深层网络的端到端优化能力,近年来的实验表明在 MNIST、DVS‑Gesture 等数据集上,两者的能耗-精度比均优于传统卷积网络。

综上,脉冲神经网络的核心原理可以归结为:用积分‑发放动力学把连续信号转化为稀疏尖峰,用时序编码把信息压缩进时间维度,用事件驱动的可塑规则完成学习。这套机制让 SNN 在边缘感知、实时控制等场景里,能够以毫瓦级的功耗完成与人脑相似的计算任务,这正是脉冲神经网络区别于传统网络的根本所在

参与讨论

5 条评论
  • 软糖小公主

    LIF模型里的α衰减因子用硬件实现时,是不是可以省掉乘法器啊?

  • 狂沙逐日

    之前试过用STDP做手势识别,调参真的头大,搞了半天才收敛

  • The Ghost

    这编码方式讲得挺清楚,之前看别的文章总把速率和时间编码混为一谈

  • 雾语巫女

    感觉事件相机和SNN简直是绝配,一个出事件流一个吃事件流,省电逻辑闭环了

  • 话痨星球

    看公式头疼,但大概懂了为啥说它省电,不放电就不算功耗呗