脉冲神经网络(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] 为外部输入电流。每一步只做一次乘加和一次阈值比较,硬件实现时可以用电容放电和比较器完成,几乎不需要时钟。
把连续的感知信号映射为尖峰流,常见的方案有三种:
事件相机直接输出像素级的亮度变化事件,这些事件天然符合 AER(地址‑事件表示)协议,省去任何帧缓存和像素采样的中间步骤。
SNN 的学习核心在于突触权重的时序可塑性。两类方法在实践中最常碰到:
这两者的区别在于前者完全局部、无需全局误差信号,后者则兼顾了深层网络的端到端优化能力,近年来的实验表明在 MNIST、DVS‑Gesture 等数据集上,两者的能耗-精度比均优于传统卷积网络。
综上,脉冲神经网络的核心原理可以归结为:用积分‑发放动力学把连续信号转化为稀疏尖峰,用时序编码把信息压缩进时间维度,用事件驱动的可塑规则完成学习。这套机制让 SNN 在边缘感知、实时控制等场景里,能够以毫瓦级的功耗完成与人脑相似的计算任务,这正是脉冲神经网络区别于传统网络的根本所在
参与讨论
LIF模型里的α衰减因子用硬件实现时,是不是可以省掉乘法器啊?
之前试过用STDP做手势识别,调参真的头大,搞了半天才收敛
这编码方式讲得挺清楚,之前看别的文章总把速率和时间编码混为一谈
感觉事件相机和SNN简直是绝配,一个出事件流一个吃事件流,省电逻辑闭环了
看公式头疼,但大概懂了为啥说它省电,不放电就不算功耗呗