三种常见脉冲神经网络编码方式解读
速率编码(rate coding)
速率编码使用输入特征来确定尖峰频率,例如将静态输入数据(如 MNIST 图像)转换为时间上的脉冲(spike)序列。它是将神经元发放脉冲的频率与输入值(如像素强度)建立联系的一种编码方式(应用较为广泛)。其核心思想是:
-
像素值越高,脉冲发放越频繁;
-
像素值越低,发放越稀疏,甚至不发放。

-
将输入图像转换为一个随时间变化的二值脉冲序列(0 或 1),形成一个 spike train。
-
每个像素变成一串在若干时间步内可能为“1”的离散事件,值为1时代表该时间点有脉冲。
-
时间上的这些脉冲事件与原始像素强度成比例(这就是速率编码):强度高的像素在序列中出现1的概率更高。
例如:
-
一个像素值为0.9,可能在10个时间步中产生9次脉冲;
-
一个像素值为0.1,只会偶尔产生1次脉冲(10个时间步中)。
延迟编码(latency coding)
延迟编码使用输入特征来确定峰值时间。
机制
-
输入值会转换为单个脉冲,但脉冲的时间决定了输入值的大小。
-
例如,在MNIST数据集中,接近1的功能会更早触发,而接近0的功能会更晚触发。像素强度为0.9的像素可能在t=1时发放脉冲,而强度为0.2的像素在t=8发放脉冲。也就是说,在MNIST案例中,明亮的像素会更早发射,而黑暗的像素会更晚发射。一句话总结:输入大意味着峰值快;输入小意味着峰值晚。
-
时间窗口中只有一次发放(或不发),是时间稀疏型编码。
优点
-
高效:每个神经元只发一个脉冲,节省能量。
-
精确表达时间信息:适用于对时间敏感的任务(如声纹识别、动作感知等)。
缺点
-
对噪声敏感:小的时序误差可能会造成显著的识别错误。
-
需要高精度时钟同步。
原理分析:
效果展示:
增量调制(delta modulation)
增量调制使用输入特征的时间变化来产生尖峰。
机制
-
系统记录前一时刻的输入值,只在当前输入值与之前相比有显著变化时,发出脉冲。
-
脉冲信号表示“变化发生了”,而不是输入值本身。
-
可使用“正变化”和“负变化”两类脉冲。
优点
-
高能效:输入静止或缓慢变化时几乎不发脉冲,节省计算和能量。
-
更适合处理视频流、连续传感器数据等时变信号。
缺点
-
不适合静态图像(如 MNIST),因为没有“变化”就没有脉冲(与使用在速率编码rate coding中的增加时间步使得静态图像成为video的方式进行比较,置于“supplentary information”)。
-
初始状态需要校准,依赖上下文历史。
Supplementary Information:
增量调制不建议用于静态图像原因分析:
增量调制(Delta Modulation)的设计初衷是为动态、连续的信号输入服务,如传感器数据、视频帧、语音波形等。这些数据天然包含时间上的“变化”信息。由于只在输入有“明显变化”时发放脉冲,对于一帧静态图像,这种变化在时间上根本不存在,所以无法自然产生脉冲。如果使用类似rate coding的方式将静态图片中的各个像素在不同时间步作为网络输入,即实现像素值轻微波动制造人为的“变化”以触发脉冲,会引入噪声扰动而并非真实语义变化即“伪脉冲”;此外,增量调制依赖的时间关联将被破坏,导致脉冲分布偏离原始的图像特征。
速率编码适配静态图像原因分析:
rate coding并不依赖时间变化,只是将像素值映射为脉冲发放的频率,因此适用于非时间相关的数据,例如图片、结构化特征向量等。
Conclusion
调整方式 | 可行性 | 风险或挑战 |
---|---|---|
添加扰动或噪声 | 有限 | 易引入不必要脉冲,增加误差 |
设计滑动窗口机制 | 可行 | 设计复杂度高,需任务定制 |
使用自然序列图像 | 理想 | 数据源要求变为动态数据(如视频) |
综上分析,如果具体的任务本质是静态分类,使用速率编码或延迟编码更自然。而若你是在开发低功耗、动态感知系统(如事件摄像头、安防感知设备),那么增量调制在真正的动态场景中会表现得更好。