脉冲神经网络(SNN)论文阅读(三)—–高精度低时延的ANN转换SNN方法

原文链接:CSDN-脉冲神经网络(SNN)论文阅读(三)—–高精度低时延的ANN转换SNN方法

目录

说明

准备将自己读的一些和SNN(脉冲神经网络)相关的一些论文记录下来,方便自己以后回看也希望能够帮到有需要的人。
删除了文中一些自认为不重要的内容而用自己的话进行简洁描述(很少,比如引言的一些内容),其他部分尽量使用专业用语进行翻译,如果有什么出错或不恰当的地方希望各位批评指出。

相关信息

论文地址: Optimal ANN-SNN Conversion for High-accuracy and Ultra-low-latency Spiking Neural Networks
论文由北京大学(于肇飞组)研究人员发表于ICLR 2022,代码发布于here

主要贡献

论文首先分析了ANN转SNN过程中的一些转换误差,然后提出了quantization clip-floor-shift activation function去替换ANN中的ReLU激活函数,这样转换后的SNN能够在较低的time step内达到较高的精度。

ANN转SNN相关公式以及动机

  • 符号定义:首先,定义脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示ANN中第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层中所有神经元的输出,令脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示在t时刻(脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时)脉冲神经元接收到前一层的输入后但并未发放脉冲前的膜电势,令脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示在t时刻(脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时)脉冲神经元接收到前一层的输入并发放脉冲后的膜电势。
  • 脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示脉冲神经元的放电阈值,脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示在时刻脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层中所有脉冲神经元发放的脉冲,假设神经元放电后传出的脉冲大小等于阈值脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,令脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层的神经元向下一层传递的脉冲信息,脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层神经元和第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层神经元之间的权值。
  • ANN转SNN:在ANN中有
    脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    ,其中脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示ReLU激活函数。在SNN中有
    脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    通过将等式2从time step1累加到T,可以得到:
    脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    使用脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示从时刻0到T内的平均突触后电势,可以得到:
    脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    等式4描述了相邻层之间脉冲神经元的平均突触后电势(脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法)的关系。由于脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,如果让初始膜电势脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法并且忽略掉脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,当令T(time step)足够大时等式4就几乎等同于等式1,即此时的SNN公式和ANN公式相等。然而太大的time step会导致很高的推理时间,从而影响SNN的实际应用,因此本文旨在在极低的延迟(time step)下实现高性能的ANN转换SNN。

转换误差分析

本部分详细分析ANN转换SNN中每一层存在的一些误差,此时假设ANN和SNN从前一层接收到的输入相等,即假设脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,然后开始分析第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层存在的误差。

  • 为了简化后续公式,使用脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层传递至脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层的输入(ANN和SNN均如此)。
  • 绝对转换误差 = 转换后的SNN的输出减去原始ANN的输出:
    脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    从等式5中可以看到如果脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法则转化误差就不为0。事实上,转换误差由以下三个因素造成:
  1. Clipping error:
    由于脉冲神经元的阈值为脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,所以SNN的输出脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,但是ANN的输出脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,其中脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法的最大值。如图1a所示,脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法可以通过下式映射到脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    这里的脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法函数表示当脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时结果为a,脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时结果为b,脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时结果为x,脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示向下取整,脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示将脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法映射为脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法的值。在ANN中的位于脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法之间的激活值都被映射为SNN中的脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,这样造成的转换误差称为clipping error
    图1
  2. Quantization error(flooring error):
    输出脉冲脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法是离散事件,因此脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法在经过脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法量化后也是离散的,当把脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法映射为脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时,不可避免地存在着一些量化误差。例如图1a中所示,ANN中位于脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法之间的激活值在SNN中都被映射为脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
  3. Unevenness error:
    不均匀误差是由于输入脉冲的不均匀造成的。同样的脉冲数量,如果脉冲到达的时间不一样,产生的输出也不一样,可能会产生比预期更多或更少的输出。
    举个例子:
    假设在源ANN中第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层中的两个神经元和第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层一个神经元的连接权值分别是2和-2,第脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层两个神经元的输出是[0.6, 0.4]。在转换后的SNN中假设脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法层的两个脉冲神经元在5个time step内(time step=5)分别发放3个脉冲和2个脉冲,令阈值脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法。因此有脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法。即使脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法且ANN和SNN中的权值相等脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法也会随着脉冲到达的时间不同而变化。ANN中的脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,对于SNN有如图1b-d所示的三种情况。
    如果两个权值为2和-2的神经元发放脉冲时间分别为脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,突触后神经元将会在脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时刻发放脉冲,且脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法。然而如果两个神经元发放脉冲时间分别为脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,突触后神经元将会在脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时刻发放四个脉冲且脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法;如果两个神经元发放脉冲时间分别为脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,突触后神经元将只会在脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时刻发放一个脉冲且脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法

上述三种误差中存在一些相互依赖关系,特别是如果脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法,不均匀误差会退化为量化误差,因此假设脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时可以忽略掉不均匀误差的影响从而估计SNN的激活函数。在转换后的SNN中估计输出值脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法可以使用脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法函数来表示:
脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
详细推导过程在论文的附录中,感兴趣的朋友可以去查看原始论文。
根据等式7,estimated conversion error 脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法可以由下式得出:
脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法

优化的ANN转换SNN

quantization clip-floor activation function

由等式8可以得出,如果将ANN中的ReLU函数替换为带有一定量化步长L的clip-floor函数是不是能够消除掉在time step T=L时刻的转换误差呢?从而能够解决掉低时延的性能退化问题。
由上述思路,论文作者提出了quantization clip-floor activation function去训练ANN:
脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
其中的超参数脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法表示ANN中的量化步长(quantization step),而脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法是可训练的参数,决定着将ANN中脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法映射到SNN中脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法的最大值对应的最大值(比较绕,其实说白了就是脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法)。使用这样一个新的激活函数,满足以下几个条件时ANN和转换后的SNN之间的转换误差为0:

  • 条件:量化步长L=time step T;脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
  • 缺陷:在脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时误差不一定为0。

进一步改进的quantization clip-floor-shift activation function

基于以上缺陷,论文作者又提出了进一步改进的quantization clip-floor-shift activation function:
脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
和式9相比,式10多了一个超参数向量脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法来控制激活函数的偏移(shift)。当脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时虽然不能保证转换误差为0,但是可以估计转换误差的期望值。相似于Deng & Gu, 20201,这里同样假设脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法服从一定的均匀分布,当满足以下条件时,可以证明当源ANN中的脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时对于任意的T和L,转换误差的期望值接近于0。

  • 条件:脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法
    证明过程在论文附录中给出,感兴趣的朋友可以去查看原始论文。
    结果表示当脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法时即使脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法平均转换误差也接近于0,从而能够在极低的time step内实现高性能的转换后的SNN。

用于带有quantization clip-floor-shift activation function的训练算法

训练带有quantization clip-floor-shift activation function的ANN也是一个问题。在训练时,论文作者采用straight-through estimatorBengio et al., 20132作为floor函数的导数,即令脉冲神经网络(SNN)论文阅读(三)-----高精度低时延的ANN转换SNN方法。整体的导数规则如下式17所示:训练梯度

实验部分

作者使用VGG-16、ResNet-18、ResNet-20等网络结构在CIFAR-10、CIFAR-100和ImageNet数据集上做了实验证明了该方法的优越性。另外表示随着L的增加,转换后的SNN在time step较小时的精度也会随之下降,即L过大过小都不行,推荐的L为4或8.

部分参考文献

本文由CSDN-lan人啊原创,转载请注明!


  1. Shikuang Deng and Shi Gu. Optimal conversion of conventional artificial neural networks to spiking neural networks. In International Conference on Learning Representations, 2020. ↩︎

  2. Yoshua Bengio, Nicholas L´eonard, and Aaron Courville. Estimating or propagating gradients through stochastic neurons for conditional computation. arXiv preprint arXiv:1308.3432, 2013. ↩︎

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年6月13日
下一篇 2022年6月13日

相关推荐

此站出售,如需请站内私信或者邮箱!