An adaptive threshold mechanism for accurate and efficient deep spiking convolutional neural network
- 为了缩小 SNN 和 CNN 之间的性能差距,提出了将 CNN 转换为 SNN 的方法。在这些方法中,首先使用标准的随机梯度下降和反向传播算法训练CNN,然后将训练的权重映射到与CNN具有相同结构的SNN。在转换后的 SNN上执行推理。虽然基于转换的SNN的精度更接近其CNN等效物,但仍然存在精度损失,主要原因是模拟和尖峰神经元之间信息处理机制的差异将导致转换过程中的近似误差。精度损失随着网络规模和分类任务复杂性的增加而增加。
- 为了解决这个问题,已经进行了许多研究来补偿转换引起的近似误差,可以分为三大类:通过调整参数补偿近似误差;通过将基于速率的尖峰编码替换为其他编码方案来补偿近似误差,例如时间编码和相位编码;通过建模激活函数补偿近似误差。
- 提出一种自适应阈值机制,以改善重量和阈值之间的平衡。在该方法中,根据转换后的SNN的输入数据动态调整阈值,从而可以在区分输入的同时获得尽可能小的阈值,从而产生足够的发射以驱动更高的层,从而可以实现更好的分类。
- 主要贡献可以概括为:
通过分析模拟神经元和尖峰神经元之间的近似误差,阐明了权重和阈值之间的平衡对近似误差的影响。
提出一种自适应阈值机制,以改善SNN权重和阈值之间的平衡。在该方法中,将阈值调整添加到SNN推理过程中,以 自适应地获得单个测试样品的最优阈值,从而可以获得较小的阈值,从而可以产生足够的发射以驱动更高的层,从而可以实现更好的分类。
通过广泛的对比实验验证了所提出方法的性能. - 整流线性单元(ReLU)用作CNN激活函数,IF尖峰神经元用作SNN中的基本操作单元。在这项工作中,偏置项没有同时用于基线模拟VGG网络和转换后的SNN,这不仅是因为偏偏置项会导致参数空间探索的扩展和转换过程更加困难,而且还因为当我们再现现有的研究结果时,增加偏偏置往往会导致转换后的SNN的精度降低。CNN 中使用平均池化操作,以避免由池化层的转换引起的其他近似错误。
- 泊松编码是基于速率的编码的一种特定实现,因为编码后的尖峰分布与生物大脑中的峰值分布相似,因此在峰值神经网络中得到了广泛的应用。
- 输入和输出表示:Burst Spikes编码方式 将输入模拟值解释为恒流I,避免了模拟数据直接无损编码的难度,成功地将模拟数据无损编码成尖峰列车。在该方法中,网络第一层中神经元i的膜电位可以表示为:
神经元i在每个时间步长处向膜电位添加恒定电荷值。当膜电位达到放电阈值时,神经元发射尖峰,以这种方式,编码过程被转移到网络的第一层。由于其无损特性和生物学合理性,该方法已经取代了泊松编码,并已应用于许多新提出的深度SNN。
8.
9. 指标:与以同步方式逐层处理数据的CNN不同,SNN以基于事件的异步方式处理数据,即随着尖峰序列继续被输入,输出层中的神经元将逐渐输出尖峰,以实现输入数据的分类。
从峰值输入到峰值输出的时间间隔是网络延迟。它是衡量SNN性能的重要指标之一,定义的网络收敛时间近似表示:
acct表示网络在时间 t 处的分类精度,以及accr是模拟时间窗口末尾的分类精度。
平均发射率。平均发射率也是衡量SNN性能的重要指标之一。
10. 这项工作旨在减少从 CNN 到 SNN 的转换中存在的近似误差所导致的性能损失。分析了模拟神经元与尖峰神经元在神经元模型和神经元活动方面的差异,以及权重与阈值平衡对近似误差的影响。在此基础上,提出一种自适应阈值机制,使神经元不仅能区分输入之间的差异,而且能减少膜电位达到阈值所需的积累时间。与现有的阈值方法(如权重归一化和峰值范数)不同,后者根据训练集调整触发阈值。我们的方法为SNN推理过程增加了阈值调整,以自适应地获得单个测试样本的最佳阈值,从而产生较小的阈值,从而可以产生足够的触发来驱动更高的层,从而可以实现更好的分类。所提出的方法在 CIFAR-10和CIFAR-100数据集的精度、精度损失和网络延迟方面优于大多数现有方法。本文提出的自适应阈值调整和优化方法成功地降低了模拟和峰值神经元模型之间的差异所引起的转换误差,但SNN的性能也与网络结构和尖峰编码方法等其他因素有关。因此,未来的研究可能会集中在它们身上。
11. 代码