当前位置: 首页 > article >正文

三种常见脉冲神经网络编码方式解读

速率编码(rate coding)

速率编码使用输入特征来确定尖峰频率,例如将静态输入数据(如 MNIST 图像)转换为时间上的脉冲(spike)序列。它是将神经元发放脉冲的频率与输入值(如像素强度)建立联系的一种编码方式(应用较为广泛)。其核心思想是:

  • 像素值越高,脉冲发放越频繁;

  • 像素值越低,发放越稀疏,甚至不发放。 

图1. MNIST数据集图像转化为脉冲编码。
  • 将输入图像转换为一个随时间变化的二值脉冲序列(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

调整方式可行性风险或挑战
添加扰动或噪声有限易引入不必要脉冲,增加误差
设计滑动窗口机制可行设计复杂度高,需任务定制
使用自然序列图像理想数据源要求变为动态数据(如视频)

综上分析,如果具体的任务本质是静态分类,使用速率编码延迟编码更自然。而若你是在开发低功耗、动态感知系统(如事件摄像头、安防感知设备),那么增量调制在真正的动态场景中会表现得更好。

http://www.lryc.cn/news/2385566.html

相关文章:

  • Go语言实战:使用 excelize 实现多层复杂Excel表头导出教程
  • STM32F103 HAL多实例通用USART驱动 - 高效DMA+RingBuffer方案,量产级工程模板
  • HTML回顾
  • 机器视觉6-halcon高级教程
  • YOLOv8 的双 Backbone 架构:解锁目标检测新性能
  • 1.4 TypeScript 编译是如何工作的?
  • 【HTML-4】HTML段落标签:构建内容结构的基础
  • 国际前沿知识系列五:时间序列建模方法在头部撞击运动学测量数据降噪中的应用
  • 未授权访问漏洞利用链实战总结
  • Centos上搭建 OpenResty
  • Web 服务、 Nfs 服务器以及 Dns 服务器综合实验
  • 保证数据库 + redis在读写分离场景中事务的一致性
  • 汇编语言的子程序魔法:解锁四则运算的奥秘
  • 快速解决Linux 中yum镜像拉取失败问题
  • C#核心概念解析:析构函数、readonly与this关键字
  • HarmonyOS基础组件:Button三种类型的使用
  • 深入理解设计模式之适配器模式
  • 预训练模型:深度学习的通用特征引擎
  • C++题解(33)2025年顺德区中小学生程序设计展示活动(初中组C++)U560876 美丽数(一)和 U560878 美丽数(二)题解
  • 产业互联网+三融战略:重构企业增长密码
  • centos yum源,docker源
  • 通过设备节点获取已注册的 i2c client
  • Centos系统资源镜像配置
  • 【Linux网络篇】:Socket网络套接字以及简单的UDP网络程序编写
  • 学习路之uniapp--unipush2.0推送功能--给自己发通知
  • Java面向对象 一
  • 怎么开发一个网络协议模块(C语言框架)之(二) 数据结构设计
  • 30天自制操作系统day5(vram和显存)(GDT和IDT)(c语言结构体)(汇编-c)(ai辅助整理)
  • 【音频】drc 限幅器、多带限幅器、压缩器、多带压缩器
  • leetcode hot100刷题日记——12.反转链表