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

速率编码(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.pswp.cn/bicheng/82210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selenium 测试框架 - Python

🚀Selenium Python 实战指南:从入门到进阶 Selenium 是 Web 自动化测试中最受欢迎的工具之一,支持多种浏览器和语言。本文将从环境搭建到多浏览器兼容、测试框架集成、元素定位方式、常用操作、浏览器配置等多个方面进行详细讲解,并分享常见的最佳实践建议。 📦一、环境…

第四十九节:图像分割-基于深度学习的图像分割

1. 引言 在计算机视觉领域,图像分割(Image Segmentation)是一项基础且关键的技术,其目标是将图像划分为多个具有特定语义的区域。随着深度学习技术的突破,基于神经网络的图像分割方法在精度和效率上都实现了质的飞跃。本文将重点介绍如何利用OpenCV结合深度学习模型实现高…

【GESP】C++三级真题 luogu-B4039 [GESP202409 三级] 回文拼接

GESP三级真题,字符串相关题目,难度★★✮☆☆。 题目题解详见:https://www.coderli.com/gesp-3-luogu-b4039/ 【GESP】C三级真题 luogu-B4039 [GESP202409 三级] 回文拼接 | OneCoderGESP三级真题,字符串相关题目,难…

什么是深度学习中的层次分类问题?

深度学习中的层次分类问题(Hierarchical Classification)是指分类任务中存在类别间的层次结构,且模型需要根据这种层次关系进行预测的问题。与传统的扁平分类(Flat Classification)不同,层次分类要求模型在…

黑马点评-乐观锁/悲观锁/synchronized/@Transactional

文章目录 全局ID生成器超卖乐观锁 一人一单悲观锁 当我们确认订单时,系统需要给我们返回我们的订单编号。这个时候就会出现两个大问题。 1.订单id采用数据库里的自增的话,安全性降低。比如今天我的订单是10,我明天的订单是100,那…

python下通过wmic设置程序的优先级~~~

在开发过程中,经常会碰到需要设置程序优先级,这时候可以手动到任务管理器中调整,但是这多多少少有些不方便,那么这时候我们就可以通过subprocess调用wmic命令来实现,方法如下: step 1 必要的引用: import subprocess…

在Mac中使用pyenv管理Python版本:从安装到虚拟环境的全流程指南

# 在Mac中使用pyenv管理Python版本:从安装到虚拟环境的全流程指南 ## 一、为什么选择pyenv? 在开发过程中,不同项目往往需要不同的Python版本(如3.8 vs 3.10),而系统默认的Python环境难以满足灵活切换的需…

FFT Shift

在频域图像处理中,交换四个象限实现FFT移位(也称为FFT Shift)是一种将频域图像的低频成分移动到中心的标准化操作。 1. 为什么需要FFT移位? 原始FFT输出特性: 二维FFT的直接计算结果中: 低频分量(图像的整体亮度和平滑部分)位于频谱图的四个角落 高频分量(边缘、细节…

python打卡day34@浙大疏锦行

知识点回归: CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直接写作self.fc1(x) ①CPU性能查…

Windows 配置 ssh 秘钥登录 Ubuntu

在 Windows 上推送 SSH 公钥到远程服务器(类似于 Linux 上的 ssh-copy-id)可以通过以下几种方法实现: ** 手动复制公钥内容** 查看本地公钥内容:type $env:USERPROFILE\.ssh\id_rsa.pub登录远程服务器,将公钥内容粘贴…

SAP全面转向AI战略,S/4HANA悄然隐身

在2025年SAP Sapphire大会上,SAP首席执行官Christian Klein提出了一个雄心勃勃的愿景:让人工智能(AI)无处不在,推动企业数字化转型。SAP的AI战略核心是将AI深度融入其业务应用生态,包括推出全新版本的AI助手…

Athena 执行引擎:在线服务计算的效率王者

引言 在在线服务领域,计算任务呈现出独特的特性:一方面,数据量通常不会过于庞大,因为在线服务对耗时和响应速度有着严苛要求;另一方面,计算任务具有可控性,其大多并非由用户实时输入动态生成&a…

传奇各种怪物一览/图像/爆率/产出/刷新地/刷新时间/刷怪时间

名称图像显示名等级血量攻击可召唤产出刷新蝙蝠蝙蝠530-22,0,0可诱惑回城卷(1.00%) 金币(1.00%*500)鸡鸡551-1,0,0可诱惑鸡肉(100.00%)比奇省(29550,62550)5分钟35只 比奇省(35025,20025)5分钟25只 比奇省(34025,31025)5分钟25只 比奇省(40525,24025)5分钟25只 比奇省(28025,26…

MySQL--day7--聚合函数

(以下内容全部来自上述课程) 聚合函数 1. 介绍 聚合函数作用于一组数据,并对一组数据返回一个值。 聚合函数类型 AVG()SUM()MAX()MIN()COU…

[Java] 封装

目录 1. 什么是封装 2. 访问修饰符 3. 封装的好处 4. 封装的步骤 5. 包 5.1 什么是包 5.2 导入包中的类 5.3 自定义包 5.4 常用的包 6. static关键字 6.1 static修饰成员变量 6.2 static修饰成员方法 6.3 Static修饰成员变量初始化 7. 代码块 7.1 普通代码块 …

Axure元件动作五:设置列表选中项

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 演示视频: Axure设置列表选中项 课程主题:设置列表选中项 主要内容:下拉列表选项、值、变量值、焦…

Spring框架--IOC技术

一、Spring框架的介绍 1、Spring框架的概述 Spring 是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003年兴起的一个轻量级的Java开发框架,由 Rod Jo…

Flannel后端为UDP模式下,分析数据包的发送方式——tun设备(三)

在分析 Kubernetes 环境中 Flannel UDP 模式的数据包转发时,我们提到 flannel.1 是一个 TUN 设备,它在数据包处理中起到了关键作用。 什么是 TUN 设备? TUN 设备(Tunnel 设备)是 Linux 系统中一种虚拟网络接口&#x…

2025深圳国际无人机展深度解析:看点、厂商与创新亮点

2025深圳国际无人机展深度解析:看点、厂商与创新亮点 1.背景2.核心看点:技术突破与场景创新2.1 eVTOL(飞行汽车)的规模化展示2.2 智能无人机与无人值守平台2.3 新材料与核心零部件革新2.4 动态演示与赛事活动 3.头部无人机厂商4.核…

【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问

Docker安装Jitsi Meet指南-使用内网IP访问 下载官方代码配置环境变量复制示例环境文件并修改配置:编辑 .env 文件: 修改 docker-compose.yml 文件生成自签名证书启动服务最终验证 腾讯会议的平替。我们是每天开早晚会的,都是使用腾讯会议。腾…