(笔记)脉冲深度残差网络Spiking Deep Residual Network

  • 原文链接
  • 摘要
  • 方法一
  • 方法二
  • 实验

原文链接

https://arxiv.org/abs/1805.01352

摘要

本文提供一种有效的把ResNet转成脉冲神经网络(SNN)的方法。主要提出两个方法。
一,针对残差结构的归一化,把连续激活函数值转成发射频率(firerate)。
二,分层的误差补偿。

方法一

针对残差结构的归一化,把连续激活函数值转成发射频率(firerate)。
ResNet的基本block如下图
(笔记)脉冲深度残差网络Spiking Deep Residual Network_第1张图片
把ReLU123后的最大值(max1, max2, max3)找到,再通过下式进行归一化,可以算出每个神经的发射频率。

(笔记)脉冲深度残差网络Spiking Deep Residual Network_第2张图片

方法二

分层的误差补偿。
随着网络加深,抽样误差逐渐累积,减少了发射频率,导致表现变差,如下图。(笔记)脉冲深度残差网络Spiking Deep Residual Network_第3张图片
为了解决这个问题,作者假设可以通过稍微放大每层的权重来减少抽样误差。 然后,我们将补偿因子λ应用于网络的每一层,以通过稍微放大权重来减少抽样误差。 在(1,τ_max)的区域内搜索补偿因子λ,其中τ_max是最后一层处最大发射频率的倒数。

实验

在MNIST,CIFAR-10,和CIFAR100达到SNN最优。
(笔记)脉冲深度残差网络Spiking Deep Residual Network_第4张图片
有和没有针对残差结构shortcut归一化的对比。
(笔记)脉冲深度残差网络Spiking Deep Residual Network_第5张图片
有残差和没有残差的脉冲CNN对比。
(笔记)脉冲深度残差网络Spiking Deep Residual Network_第6张图片
方法二误差补偿的效果。
(笔记)脉冲深度残差网络Spiking Deep Residual Network_第7张图片

你可能感兴趣的:(压缩感知)