System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种高性能与低延迟的深度脉冲神经网络转换方法技术_技高网

一种高性能与低延迟的深度脉冲神经网络转换方法技术

技术编号:44253537 阅读:6 留言:0更新日期:2025-02-11 13:51
本发明专利技术公开了一种高性能与低延迟的深度脉冲神经网络转换方法,以最小的时间步长转换为对应的SNN神经网络。受量化感知训练的启发,本发明专利技术在训练过程中引入了QReLU激活函数,消除了编码误差,此外,本发明专利技术在QReLU激活函数中集成多位脉冲序列进行训练,有利于提高转换性能,最后,本发明专利技术设计了一个带缓存的非泄漏IF(Integrate‑and‑Fire)神经元来减少推理误差。通过分类和检测任务的实验证明,本发明专利技术的方法仅使用16个时间步就达到了人工神经网络水平的性能。

【技术实现步骤摘要】

本专利技术涉及脉冲神经网络领域和人工神经网络到脉冲神经网络的转换领域,具体地说是一种高性能与低延迟的深度脉冲神经网络转换方法


技术介绍

1、近年来,脉冲神经网络(snn)因其时空信息处理能力、低功耗等优点而引起了研究者的广泛关注,与传统的人工神经网络(ann)在每个推理步骤中与层间的每个神经元进行通信不同,snn只在特定神经元被触发时传递稀疏信号。snn所具有的按需计算特性对低功耗硬件极为友好,这使其非常适合在神经拟态平台上应用,例如基于事件的相机与类脑芯片,这种专用的仿生系统可以显著降低内存的使用和能源消耗,这一特性对于包括物联网(iot)、自主机器人系统以及自动驾驶车辆在内的众多应用领域而言,展现出了极大的吸引力。尽管具有很好的特性,但训练高性能的深度snn仍然是一个具有挑战性的问题,因为脉冲事件的不可微性质,使其无法直接应用反向传播的方法。

2、一类方法通过基于速率的编码方法证明脉冲神经元和修正线性单元(relu)函数之间的关系,从而将ann转换为snn,基于速率的编码指的是利用通过snn内每个神经元传输的脉冲序列的速率来衡量网络的输出,这类转换方法的目标一般是在snn框架中保持人工神经网络的高性能。最近的工作研究了在编码过程中引入的误差,并提出了一种可感知误差的神经网络训练方法,以获得更好的snn性能,但是这仅仅考虑了舍入带来的误差。很多研究还提出了推理误差,并通过选择更好的转换参数来平衡编码误差和推理误差,但调整转换参数引入了额外的编码误差,进一步限制了转换后snn的性能。

3、另一类方法试图通过用其他函数代替阈值函数来近似梯度从而训练snn,一些工作提出了关于叠加梯度的反向传播方法,这种训练方法展示了不同范围的梯度函数和编码方案,与转换方法相比,能显著减少时间步数。虽然经过反向传播训练的snn显示出了实现ann级性能的潜力,然而,准确地训练snn依然需要付出额外的开销,这导致snn难以被训练,并且限制了它在现实世界任务上的应用。

4、最近,组合方法的出现,缓解了转换方法需要更大的时间步长来实现具有竞争性的snn性能的缺点,这些方法通常包含两个步骤:转换和微调,在第一步中首先将ann转换成snn,之后将转化后的snn进行进一步微调。然而,与转换方法相比,需要额外的开销来微调snn,此外,反向传播对混合方法施加了额外的约束,这进一步限制了其应用范围。


技术实现思路

1、本专利技术的目的是要解决以下技术问题:

2、1)效率不足:通过ann转换后的snn的性能需要依赖很大的时间步长来补偿转换误差,因此在实践中会大大降低效率。

3、2)方法不稳定以及开销较大:现有的方法容易引入额外的编码误差,从而进一步限制snn的性能。基于近似梯度和组合的方法在训练snn上需要额外的开销,限制了snn在实际场景的应用。

4、3)对于推理误差的忽略:编码误差和推理误差在整个转换过程中都会降低snn的性能,但现有的方法仅关注于如何减小编码误差,这限制了算法的性能,并导致需要更长的仿真时间来实现与原始ann相当的结果。

5、针对相关技术的问题,本专利技术提供了一种高性能与低延迟的深度脉冲神经网络转换方法,旨在解决现有技术在效率、开销以及解决推理误差等方面的局限性。因此,本专利技术的技术方案包括以下必要技术特征:该方法首先提出了一种量化的relu激活函数来最小化转换过程中的编码误差,并提出一种带缓存的非泄漏if(integrate-and-fire)神经元来减小推理误差,将这两种方法整合到从ann到snn的转化框架中,减小了转化后的snn与ann之间的差距。

6、实现本专利技术目的的具体技术方案是:

7、一种高性能与低延迟的深度脉冲神经网络转换方法,用于解决编码误差和推理误差,在各种任务中能同时具备高效和低延迟的特点,所述方法包括以下具体步骤:

8、步骤一:构建量化的激活函数

9、首先,定义膜电位公式如下:

10、

11、其中,vj(t)代表第t时刻神经元j的膜电位,vth衡量神经元是否产生脉冲,代表输入的第i个神经元与当前的第j个神经元之间的权重,代表最后一层连接到第j个神经元的所有输入神经元的集合,si(t)和sj(t)代表当前神经元的输入脉冲和输出脉冲值;令上述式子除以vtht,得到如下脉冲速率的定义:

12、

13、其中,ri表示输入的第i个神经元在一段时间内脉冲电位的速率,令代表时间段t内所累积的膜电位,r*表示一段时间内累积的膜电位与时间的比值,由此r*被定义如下:

14、

15、由上式得到,当r*趋近于0时,一个简单的if神经元在处理信息的过程中形式表达上会与修正线性单元relu函数更相似,故r*在这里被视为编码误差;当va>0时,r*在时间t逐渐增大时会逐渐减小,由于神经网络各层之间会累积越来越多的编码误差,层数较多的ann转换之后的snn需要大的时间步长来保持高保真度和性能,另一方面,较大的时间步长会损害snn的效率;故将脉冲序列速率改写为下界形式,使其不受时间t的影响:

16、

17、其中,为snn中输入脉冲率的加权和,基于最大的脉冲率rmax,if神经元进而用步进函数定义为:

18、

19、通过映射snn中的脉冲速率和ann中的激活值a=λr,得到对应的量化修正线性单元qrelu函数,即:

20、

21、因为该量化修正线性单元qrelu函数消除了时间t的影响,故将其代替ann中原始的relu函数,使得由ann转化而来的snn消除了编码误差r*;其中,λ代表snn激活值与ann激活值之间的映射系数,r代表snn激活值;

22、步骤二:集成的多位脉冲训练

23、根据步骤一得到的qrelu函数,将qrelu函数转变为多位脉冲的形式;首先,将原始的脉冲定义扩展为有利于在转换过程中直接进行移位操作,其中,smax代表脉冲信号的最大值;同时,使用一个带log2的调整函数a(·),定义如下:

24、

25、因此,多位脉冲的函数形式被转化为如下所示:

26、

27、对于qrelu函数,因为最大速率编码等于最大脉冲总数故基于多位脉冲序列,引入量化边界λb=λsmax和表征能力p=tsmax,最终,qrelu函数被修改为:

28、

29、最后,将该qrelu函数嵌入ann中进行训练,从而进一步提高转换性能;

30、步骤三:设置带缓存的非泄漏的if神经元

31、在snn传递参数的过程中设置带缓存机制的非泄漏if神经元,目的是缓解推断误差中存在的“过度发放”问题;具体来说,提出了一种新的带缓存的无泄漏的if神经元来缓解“过度发放”的情况,以补偿推断误差。所述的神经元利用一种循环机制来调节脉冲,缓存电位vb定义如下:

32、

33、其中,代本文档来自技高网...

【技术保护点】

1.一种高性能与低延迟的深度脉冲神经网络转换方法,其特征在于,所述方法包括以下具体步骤:

【技术特征摘要】

1.一种高性能与低延迟的深度脉冲神经网络转换...

【专利技术属性】
技术研发人员:李洋尤凌宋文杰
申请(专利权)人:华东师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1