Theory and tools for the conversion of analog to spiking convolutional neural networks
ANN2SNN的转化
摘要
深度卷积神经网络展现出显著的潜力在真实世界中然而CNN在实时处理方面仍面临挑战我们已证实传统的CNN可转化为SNN此类转换所得SNN表现出相近的表现率但推理延迟与计算开销却得到了显著降低这主要归因于SNN采用的事件驱动计算模式在此基础上我们提供了一个理论上的成功解释并由此衍生出一系列新工具这些工具使得能够将更大规模更强大的DNN转换至SNN架构我们进一步确定了以往转换方法中误差的主要来源并提出了一种简单有效的解决方案针对常见CNN操作如max-pooling softmax与batch-normalization我们开发了对应的脉冲实现这一系列工作使任意CNN架构几乎无损失地成功转换至脉冲域
介绍
SNN的优点。。不再赘述。
直接训练SNN相当具有挑战性,在反向传播过程中仍存在诸多局限。
在我们的研究中,我们深入探讨了转换过程中的细节(Diehl, 2015)。这种方法在MNIST数据集上表现尤为出色,其精度损失仅为约1%。然而,我们在采用同样的假设条件下进行测试时发现,当网络规模扩大后,这种做法将导致显著的精度下降,预计可能会降低约10%或更多。基于测试结果表明,性能损失的主要原因可追溯至更高层次脉冲速率的影响。而所谓的"激进步骤"可能导致这一问题的根本原因在于:归一化过程中选取的最大激活值作为基准进行缩放操作,这种处理方式必然会导致权重过小进而影响神经元膜电位难以达到阈值所需的水平。
此外,在2015年Diehl和Cao提出的基于CNN的转换方法(CNN2SNN)存在一定的局限性。这些局限性使得传统的基于CNN的最佳模型难以直接转换为SNN。例如,在CNN中常见的偏置项、最大池化操作以及Softmax层等元素都对转换过程提出了挑战。为了进一步探讨这一问题,在本节中我们将系统地探讨ANN到SNN转换的问题。随后,在介绍一套新的工具和技术之前,我们需要了解这些工具和技术如何能够扩展适用范围并提升网络性能。
ANN2SNN转换理论
本节我们将探讨SNN在模拟ReLU激活函数时所采用的脉冲发放速率机制。这一方法由CAO于2015年首次提出。基于理论模型推导出了一种精确表达式。这种方法使得每个SNN神经元能够准确地模拟目标函数的行为模式。在这里假设存在A-to-A对应关系的ANN单元与SNN神经元。值得注意的是尽管也可以使用多个集合来表示每个ANN单元从而构建更为复杂的映射关系但目前的研究主要集中在单个对应关系上
在ANN里面,第l层,第i个神经元,ReLu激活函数可以进行如下计算:

基于a^0=x作为输入的设定,在引入正则化处理后,则可保证所有的输入x_i\in[0,1]。对于每一个SNN神经元而言,其膜电压V_i^l(t)的计算方式如下所述。

其中\Phi是阶跃函数,表示在时间t出现的一个脉冲

后面公式太多了。。。翻译不动了
3.ANN2SNN转换的新方法
在接下来的部分中, 我们将会向大家介绍几种新方法, 以进一步提升SNN(人工神经网络)的分类精度. 这些方法包括系统性地利用更大范围的人工神经网络, 或者通过减少SNN转换过程中的误差来实现目标.
3.1 转换偏置
在人工神经网络(ANN)中,默认情况下需要设置偏置项;然而,在早期的人工神经网络模型(SNN)设计中,默认情况下通常不包含这一项。对于简化计算的目的,在SNN模型中可以采用恒定输入电流的方式替代传统的偏置设置。如前所述,在本节已经实现了这一技术;此外,在下一节3.2中进一步探讨了通过正则化方法实现灵活调节偏置值的可能性。
到了关键之处了~~~
3.2 参数正则化
一个关键的数据源是SNN神经元在每次兴奋周期间释放动作电位的能力受到了上限约束,在区间[0,r_{max}]内运行;相比之下,在人工神经网络(ANN)中并未存在这一限制条件。Diehl等人已在2015年的研究中探讨过权值正则化技术,并将其描述为一种用于应对网络活动过于集中或分散的一种折中方案;因此通过这种方法可以有效提升转换效率和性能水平。在此研究中我们开发了一种基于数据驱动的权重调整机制;这种新方法特别适用于识别和处理异常值以增强系统的鲁棒性
3.2.1 偏置的正则化
该框架以ReLU单元为基础构建了基于数据正则化的体系。将该框架扩展至带有偏置的单元时,则通过线性调整所有权重使得每个训练样本的神经网络激活值均不超过1。为保持每一层内部编码的信息完整性,则需对各层参数进行统一缩放处理。其最大激活值\lambda^l定义为第l层中的a^l数组的最大值;随后,在这一设定下完成相应的正则化处理。

3.2.2 鲁棒性
然而,在更深层的结构中可能出现放电率下降的情况。其主要原因在于我们所采用的最大范数(max-norm)直接取样最大的数值,在这种情况下容易受到异常值的影响。相比之下,选择一个较低的百分位数(如99.9百分位)能够更好地平衡噪声和信息丢失的问题。
3.3 批归一化的转换
批归一化通过减少内部变量的变化来加快训练速度。在引入额外的网络层时,在输入经过仿射变换以实现零均值和单位方差的目标下进行处理。经过批归一化处理后,输入x被转换为BN[x]=\gamma/\sigma* (x-\mu)+\beta(其中这里的均值μ和方差σ是由训练获取的学习参数,并且β和γ也是在该研究中被学习得到的)。
通过这种转换方式,在将BN层转化为snn时显得异常便捷。鉴于此,在完成前一层的权值处理后,并未需要对BN层进行额外的转换。基于实践经验,在整合BN参数至其他权值时无需付出额外代价便能实现无损效果。其主要优势体现在利用BN模块在训练过程中优化神经网络性能。
