SpikingNeuralNetwork(SNN)号称第三代神经网络,以其丰富的时空域的神经动力学、多样的编码机制、事件驱动的优势引起了学者们的关注。由于生物理性与任务要求的权衡程度不同,网络中使用的神经元模型和编码方式不同,导致了SNN的多样化。不同于传统的基于向量乘法的人工神经网络(ANN),SNN模拟大脑的功能结构,以神经元作为计算和存储单元,将相邻神经元发出的脉冲信号累加到膜电压上。当超过阈值电位时,信息通过发射脉冲传达。由于其计算完全可以通过加法完成,所需的计算量和功耗大大降低。此外,由于SNN中神经元的执行和学习机制,SNN自然而然地与一些新兴设备相结合。论文链接:https://www.aaai.org/AAAI22Papers/AAAI-364.LiuF.pdf脉冲神经网络的目标是基于异步电路的实现,每个神经元可以异步接收和发送脉冲信号.然而,目前不可能实现如此大规模的异步电路,脉冲神经网络中的所有脉冲信号都需要与时钟信号对齐。这会带来两个问题:第一,为了准确表达脉冲发射的时间,需要将一个推理分成大量的时间步长(timesteps),这使得脉冲序列非常冗长;二、脉冲序列脉冲个数没有变化,使得脉冲串出现不规则的稀疏。现有的同步脉冲神经网络芯片,如Loihi,都在一定程度上利用了稀疏性。但是,由于时间步长的增加导致推理时间延长的问题仍然存在。现有的脉冲神经网络训练方法分为直接训练和通过传统神经网络转换两种方法。直接训练的SNN:可以进一步分为有监督和无监督训练。具有监督训练的SNN基于脉冲反向传播算法。然而,神经元函数不可微,因此传统的反向传播算法不能直接应用于SNN。无监督训练的SNN是利用突触可塑性规则的仿生学习算法。例如:Spike-TimingDependentPlasticity(STDP)是最具代表性的无监督SNN,它根据神经元放电的顺序来调整神经元之间的连接强度。Transformation-basedSNN:为了在开发的深度学习成果上进一步利用脉冲神经网络的低能耗特性,从ANN的角度,将连续激活函数值替换为频率编码下的平均脉冲发射率在SNN中,并用神经元函数代替ANN中的ReLU函数,再通过特定的手段转化为SNN。本质上,基于变换的SNN的训练仍然依赖于ANN中的反向传播算法,因此避免了直接训练SNN的困难。在性能方面,基于转换的SNN与ANN的发展保持同步。然而,现有的SNN在实现超大规模网络结构时仍然面临着梯度消失、训练资源开销高甚至算法收敛等问题。通常,它们只能应用于浅层SNN,准确率与ANN相差甚远。差距。然而,现有的转换方法在应用于更深的网络或更复杂的数据集时,需要大量的时间步长来表示脉冲序列(例如:在ImageNet中,由VGG转换为SNN所需的时间步数高达2048[3,4])。ANN的推理只需要一次前向传递;SNN需要在每个时间步执行一次前向传递。因此,太多的时间步会引入巨大的推理延迟,这使得转换后的SNN网络不适合需要实时性能的应用。方法介绍本文提出了一种基于高效准确的ANN-SNN变换的框架,它不仅可以应用于传统神经网络的最新发展,而且可以大大减少时间步数。只需要8-16个时间步就可以达到与传统神经网络几乎相同的精度,节省了一百倍的时间延迟。转换中的一致性关系首先,我们在神经元发出尖峰信号后采用软重置策略,从当前膜电位中减去阈值电位值,从而保留高于阈值的部分。在之前的大部分论文中,采用了硬重置策略,即在膜电压超过阈值时发射脉冲并直接将膜电压重置为零。这样做的好处是尽可能多地保留膜电压所包含的信息,在较小的输入扰动下也能保持相对一致的输出结果。软重置方法可以公式化为其中V[t]是时间t处的膜电压,k是每个时间步长之间的膜电压衰减系数。Xi是第i个相邻神经元的尖峰序列,0表示在时间t没有尖峰传输。Y是当前神经元的输出尖峰序列。将式(1)由t=1加到T可得,在理想情况下,末级神经元没有膜电压残留,即V[T]=0。这时候可以对式(2)进行简化,不难发现式(3)与传统神经网络的MAC计算方式非常相似。事实上,最常用的基于ANN转换的SNN是将ANN的激活值作为神经元的发射频率,这正是公式(3)在k=1时的特例。然而,公式(3)在很多情况下并不成立。最明显的一个是膜电压不一定等于0或最后一个相对较小的数字。事实上,很多时候由于神经元之间的权重为负,膜电压最终会变成负数。SNN神经元模型的机制决定了它只会对正电压做出反应,积累的负膜电位会被保留,导致式(3)的等号不成立,无法准确获取信息表示,使得脉冲神经网络的精度低于传统神经网络。例如,当k=1,阈值电位=1时,如果输入的总膜电位分别为1、1、-1、-1,则前两个时间步会产生脉冲信号;而最后两个-1会累积在膜电位中而无法消耗。此时公式左边=0,右边=2,公式不成立。神经元计算中的时域分离针对这一点,本文采用时域分离的方法,将膜电压的积累过程和膜电压释放脉冲的过程在时域上分开,避免膜电压积累的损失信息。为了达到时域分离的效果,即在没有额外输入的情况下,发射脉冲应跟随累积电压,使得较晚时间的膜电压大于较早时间的膜电压。这在以前的泄漏集成和点火模型中是不可能的。文章提出了一个与传统LIF相反的模型,iLIF,它在每一个时间步后增加而不是减少模式电压,即公式中的模式电压衰减系数k现在是一个大于1的数,称为电压增加系数。然而,时域分离方法使完成一个神经元计算的时间加倍。文章采用流水线的方式,在上一层的脉冲输出阶段将信号直接传输到下一层作为输入信号。在消除时域分离带来的额外运行时间的同时,也减少了需要暂存的内容。上图为图像推理的执行图。核心是利用层间并行实现不同图像两个执行阶段的重叠,减少推理延迟。在参数选择方面,主要是升压系数的选择。本文考虑了不同时间步数和增量系数的平均转换误差。实验表明,在不同的时间步长选择下,k=2是最优选择。上图显示了转换误差在不同参数选择下的变化情况。当K=2时,在每个时间步,转换误差最小,膜电压累加所能表示的信息最准确。实验结果文章使用CIFAR-10/100和ImageNet数据集进行实验。实验结果表明,文中提出的方法在仅需要16个时间步的情况下就可以达到与传统神经网络几乎相同的准确率。实现了最佳性能,同时大大节省了空间、存储和计算成本。具体实验结果请参考论文。部分结果如下。未来在方向脉冲神经网络方面还有很大的挖掘空间。SNN还有很多领域没有成功应用,可以在视频识别、机器人控制等方面继续研究。
