ANN的量化在SNN中是怎么体现的,和threshold有关系吗,threshold可训练和这个有关吗(应该无关)
解决过发放不发放的问题。
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的选择。
2015.开山之作
将脉冲和非脉冲网络之间的特征差异考虑了。主要挑战就是对于脉冲神经元中的负值和偏置的表示,这个通过使用修正的线性单元(ReLUs)和将偏置设为零解决了。同时,卷积网络的最大池化操作被空间线性子采样替代,同样地转换结果也有很小的损失。
本文的核心是通过三步tailor a regular CNN into an architecture that is suitable for spiking architecture:
spike generation:
归一化 I ,rand() < I, generate spikes
spike counter:
记录 output neurons in 100ms / 200ms
IJCNN.2015 ETH Zurich
写的很好的参考资料
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
待训练的参数:在不偏向提供外部参考值的情况下,神经元权重之间的相对尺度和神经元阈值的相对尺度是唯一重要的参数
会造成误差的几种:
2016.11 ETH Zurich
“analog-to-digital conversion” 是指将模拟信号(如神经元的电压变化)转换为数字表示,以便计算机能够处理和分析
2017.11 ETH Zurich
Shikuang Deng1 & Shi Gu1 UESTC 2020
shift
frontier 2022