SNN论文总结

news/2024/7/7 22:25:30

Is SNN a great work ? Is SNN a convolutional work ?

ANN的量化在SNN中是怎么体现的,和threshold有关系吗,threshold可训练和这个有关吗(应该无关)
解决过发放不发放的问题。

Intuation

SNN编码方式 Image to spike pattern
https://zhuanlan.zhihu.com/p/416187474
一种方法是:如 (a) 所示。在每一个时间步骤,采样的原始像素强度 (pixel intensity) 到一个二进制值 (通常归一化为[0,1]),其中的这个强度值就等于发射一个脉冲的概率。这个采样样遵循一个特定的概率分布,例如伯努利分布或泊松分布。
另一种方法是 (b) 所示。使用一个编码器来产生全局的脉冲信号。这个编码器的每个神经元接受图片多个像素的强度值intensity 信号作为输入, 而产生脉冲作为输出。 虽然编码层是 ANN-SNN 混合层,而不是像网络中的其他层那样的完整 SNN 层,但它的权重是可训练的,因为我们的训练方法也是 BP 兼容的。由于神经元的数量可以灵活定制,参数也可以调整,因此它可以适应整体最佳化问题,从而获得更高的精确度。

在这里插入图片描述
发放率与ANN的match
发放率在 [ 0 , 1 ] [0,1] [0,1]之间,与在 [ 0 , θ ] [0, \theta] [0,θ]没区别,就是乘了一个 θ \theta θ的区别
有一个需要讨论的点,就是 T T T(time duration),而resolution = 1 / T 1/T 1/T,当 T T T越大的时候,分的越精细,可以分的份数越多
对于 A N N ANN ANN,最intuitive的想法就是找到 A N N m a x ANN_{max} ANNmax然后以最大值这个区间平均分成 T T T份,每一份对应一个离散的 S N N SNN SNN
BTW,其实可以看出这个思想和 A N N t o Q A N N ANNtoQANN ANNtoQANN完全一致,所以这个思路是很direct的
对于intuitive的想法有几个地方是可以改进的,第一是最大值的选择,第二是T的选择。

Spiking deep convolutional neural networks for energy-efficient object recognition

2015.开山之作
将脉冲和非脉冲网络之间的特征差异考虑了。主要挑战就是对于脉冲神经元中的负值和偏置的表示,这个通过使用修正的线性单元(ReLUs)和将偏置设为零解决了。同时,卷积网络的最大池化操作被空间线性子采样替代,同样地转换结果也有很小的损失。
本文的核心是通过三步tailor a regular CNN into an architecture that is suitable for spiking architecture:

  1. abs() + ReLU to solve negative output values
  2. No biases from all conv and FCL
  3. linear subsampling instead of maxpooling

spike generation:
归一化 I ,rand() < I, generate spikes
spike counter:
记录 output neurons in 100ms / 200ms

Fast-classifying, high-accuracy spiking deep networks through weight and threshold balancing

IJCNN.2015 ETH Zurich
写的很好的参考资料

  1. 这篇文章首次提出了造成误差的不发放(did not receive sufficient input)过发放问题(too many input spikes in one timestep / some of the input weights are higher than the threshold)。
  2. two weight normalizations to prevent the ReLU from overestimating output activations 在保证相对大小不变的情况下,使用缩放因子来防止出现过发放的问题。
    对每一层:
    • worst-case scenario:rescale all the weights by that maximum possible positive input(理论上) (确实要用positive input,即一个neuron的sum input weight)

Q:
第二种方法为什么要这么做?没太看懂原理。

继承上篇论文并extension

the ReLU can be considered a firing rate approximation of an IF neuron with no refractory period [22], whereby the output of the ReLU is proportional to the number of spikes produced by an IF neuron within a given time window.
ReLU可以被看作没有绝对不应期的IF神经元的发射率近似,因此ReLU的输出应该和给定时间窗口内IF神经元发射的脉冲数量成比例
Secondly, for classification tasks, only the maximum activation of all units in the output layer is of importance, allowing the overall rate to be scaled by a constant factor.
对于分类任务,只有输出层中所有单元的最大激活是重要的,允许总体速率按一个常数因子进行缩放。
the relative scale of the neuron weights to each other and to the threshold of the neuron are the only parameters that matter
待训练的参数:在不偏向提供外部参考值的情况下,神经元权重之间的相对尺度和神经元阈值的相对尺度是唯一重要的参数

会造成误差的几种:

  1. For a fixed simulation duration,under-activation。
    比如你的w很小,threshold很高,在短暂的t时间内没有一个neuron能积累到超过阈值
  2. For a fixed simulation duration,over-activation。
    w太大,或者你threshold设置的太小,每次都发放。没有区分度。如果所有的都每次都发放,时间窗内有同样的两个类别产生的spike数量相同
    该文章通过weight normalization来避免过发放
  3. 由于脉冲输入的概率属性,由于脉冲序列的不均匀性,一系列脉冲会过激活或者欠激活;

Theory and Tools for the Conversion of Analog to Spiking Convolutional Neural Networks

2016.11 ETH Zurich
“analog-to-digital conversion” 是指将模拟信号(如神经元的电压变化)转换为数字表示,以便计算机能够处理和分析

  1. 第一次理论证明conversion等效
  2. 分析误差,采取一定措施
  3. 修改CNN operations including max-pooling, softmax, and batch-normalization

Conversion of Continuous-Valued Deep Networks to Efficient Event-Driven Networks for Image Classification

2017.11 ETH Zurich

  1. a theoretical groundwork for ANN-SNN conversion

OPTIMAL CONVERSION OF CONVENTIONAL ARTIFICIAL NEURAL NETWORKS TO SPIKING NEURAL NETWORKS

Shikuang Deng1 & Shi Gu1 UESTC 2020
shift

QFFS

frontier 2022


http://lihuaxi.xjx100.cn/news/1490619.html

相关文章

Kuka机器人设计通用码垛程序

假设需要一个码垛程序, 从输送线抓到托盘, 托盘每层4个, 需要码5层, 可以用以下程序架构设计: 1, 再config中定义层数cengshu , 每层码垛的个数(码垛的次数)cishu , 每层的高度levelHeight , 码垛放置点的集合putPoint[,] ,预放点1集合prePut1[,], 预放点2集合prePut2[,] DEC…

国际站腾讯云容器镜像服务介绍!!

腾讯云容器镜像服务&#xff1a; 腾讯云的容器镜像服务Tencent Cloud Container Registry&#xff08;TCR&#xff09;旨在为开发者和企业供给高效、安全的容器镜像办理和存储平台&#xff0c;以处理容器镜像的保管、分发和办理问题。容器镜像是一种轻量级、可移植的软件包&…

【Python】python 打印本地代理

前言 在 Python 中&#xff0c;如果需要访问被墙的网站或者需要隐藏本机 IP 地址&#xff0c;可以通过使用代理服务器来实现。本文将介绍如何打印本地代理的方法&#xff0c;并提供相应的代码和实例。 一、什么是代理服务器 代理服务器&#xff08;Proxy Server&#xff09;是…

爬虫逆向实战(二十四)--某鸟记录中心

一、数据接口分析 主页地址&#xff1a;某鸟记录中心 1、抓包 通过抓包可以发现数据接口是front/record/search/page 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现&#xff0c;请求参数是加密的 请求头是否加密&#xff1f; 通过查…

Web Components详解-Custom Elements

目录 引言 演变过程 概述 使用方式 创建标签 定义标签 使用标签 获取标签 异步定义标签 升级标签 完整案例 结语 相关代码 参考文章 引言 随着项目体量的增大&#xff0c;组件化和模块化的优势也愈发明显了&#xff0c;构建可重复使用、独立、可互操作的组件变得…

HDLBits-Verilog学习记录 | Verilog Language-Modules(2)

文章目录 25.Adder 1 | Module add26.Adder 2 | Module fadd27.Carry-select adder28.Adder-subtractor 25.Adder 1 | Module add practice&#xff1a; You are given a module add16 that performs a 16-bit addition. Instantiate two of them to create a 32-bit adder. O…

React 生命周期新旧对比

前言 React16.4版本之后使用了新的生命周期&#xff0c;它使用了一些新的生命周期钩子&#xff08;getDerivedStateFromProps、getSnapshotBeforeUpdate&#xff09;&#xff0c;并且即将废弃老版的3个生命周期钩子&#xff08;componentWillMount、componentWillReceiveProps…

ON_WM_INITMENUPOPUP

本文展示了在打 开特定的弹出菜单时&#xff0c;如何轻松有效地调用handler函数。 这个问题 使用MFC时&#xff0c;你需要在打开弹出菜单时从框架中得到一个回调函数&#xff0c;您可以通过 ON_WM_INITMENUPOPUP() 轻松获得到 OnInitMenuPopup() 但是请注意&#xff0c;这个处…