均衡延迟和精度的ANN-SNN转换方法、装置和介质
未命名
07-12
阅读:158
评论:0

均衡延迟和精度的ann-snn转换方法、装置和介质
技术领域
1.本发明涉及人工智能领域,尤其涉及一种均衡延迟和精度的ann-snn转换方法、装置和介质。
背景技术:
2.ann(artificial neural network,人工神经网络)是指由大量的处理单元(神经元)互相连接而形成的复杂网络结构,是对人脑组织结构和运行机制的某种抽象、简化和模拟。以数学模型模拟神经元活动,这是基于模仿大脑神经网络结构和功能而建立的一种信息处理系统。ann在目前的许多领域都有应用,包括自然语言处理、人脸识别、自动驾驶、ai助手等。但其也有许多的局限性,比如ann通常需要大量的数据来进行训练,从而产生了大量的能耗。而且在概括方面的能力表现不佳。虽然ann脱胎于对人脑机制的模仿,但是并没有模仿生物大脑神经元的机制。
3.为了弥合神经科学和机器学习之间的差距,snn(spiking neural network,脉冲神经网络)应运而生。snn属于第三代神经网络模型,实现了更高级的生物神经模拟水平。除了神经元和突触状态之外,snn还将时间概念纳入了其操作之中,是模拟大脑神经元动力学的一类很有前途的模型。因为snn是由事件驱动的,具有稀疏矩阵,因此具有较低的能耗,所以snn可以在神经网络芯片上大放异彩。
4.目前,获得多层snn的方法有两种:(1)直接训练snn网络,主要包括无监督的尖峰时间相关塑性(stdp,spike timing dependnt plasticity)方法和基于尖峰的误差反向传播方法。但这仍然是不成熟的,并不能达到ann的精度。(2)将训练好的神经网络转化为神经网络。snn使用与ann相同的结构,并直接映射ann的参数,从而节省了额外的训练时间和资源。这是目前获得较高精度的snn所使用的主要办法,本发明就是在此方法基础之上进行改进。
5.与ann中的推理不同,snn中的推理使用t个时间步长来获得最终精度,这在精度和能量消耗之间有一些取舍:更高的精度需要更大的时间步长,因此需要更多的能耗。在更少的时间步长内获得令人满意的精度是研究人员追求的目标。虽然目前所用ann-snn方法有很多优点,但现在的方法在前几个时间步的精度难以令人满意,并且非常大的时间步导致了较大的推理延迟和功耗。
6.本发明所提的方法适用于在ann转换snn过程中,在之前ann-snn方法的基础上,使用奖惩阈值的方式在初始步长内实现了高性能,同时降低了在较大时间步中的大功耗的问题。
技术实现要素:
7.本发明的目的在于针对现有技术的不足,提供一种均衡延迟和精度的ann-snn转换方法、装置和介质。
8.本发明的目的是通过以下技术方案来实现的:本发明实施例第一方面提供了一种
均衡延迟和精度的ann-snn转换方法,包括以下步骤:
9.(1)对ann网络进行修改:将ann网络中的激活函数替换为relu激活函数,并将所有的池化操作替换为平均池化操作,以获取修改好的ann网络;
10.(2)对ann网络进行训练:使用训练数据集对所述步骤(1)获取的修改好的ann网络进行训练,并采用梯度下降法反向更新ann网络的参数,以获取训练好的ann网络及其对应的权重和偏差;
11.(3)对snn网络进行转换:将所述步骤(2)获取的训练好的ann网络对应的权重和偏差复制到snn网络对应的层中,并将snn网络中的阈值参数修改为奖惩阈值,以获取转换后的snn网络。
12.进一步地,所述奖惩阈值的表达式为:
[0013][0014]
其中,表示奖惩阈值,参数α为奖励因子,参数β为惩罚因子,表示膜电位。
[0015]
进一步地,所述奖励因子的表达式为:
[0016][0017]
其中,t表示时间步长,reward mode表示奖励模式,silent表示静默模式。
[0018]
进一步地,所述惩罚因子的表达式为:
[0019][0020]
其中,γ表示惩罚模式下的阈值,penalty mode表示惩罚模式。
[0021]
进一步地,所述惩罚模式下的阈值γ的表达式为:
[0022][0023]
其中,表示实际速率阈值,l表示层数,i表示神经元编号,t表示时间步数,r
th
表示预期的速率阈值。
[0024]
进一步地,所述奖惩阈值的设置取决于硬件的可负担性。
[0025]
本发明实施例第二方面提供了一种均衡延迟和精度的ann-snn转换装置,包括一个或多个处理器,用于实现上述的均衡延迟和精度的ann-snn转换方法。
[0026]
本发明实施例第三方面提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,用于实现上述的均衡延迟和精度的ann-snn转换方法。
[0027]
本发明的有益效果是,本发明通过在原有的ann-snn转换方法中引入了奖惩阈值来达到推理延迟和推理精度的平衡,不仅可以在初始的时间步长中仅增加较少能耗就达到较高性能以及较高精度,并且在更大的时间步长中消耗更低的能量。
附图说明
[0028]
图1是本发明的ann-snn转换图;
[0029]
图2是本发明的奖惩阈值修改处位置图;
[0030]
图3是本发明的均衡延迟和精度的ann-snn转换装置的一种结构示意图。
具体实施方式
[0031]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0032]
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0033]
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0034]
下面结合附图,对本发明进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。
[0035]
参见图1,本发明的均衡延迟和精度的ann-snn转换方法包括以下步骤:
[0036]
(1)对ann网络进行修改:将ann网络中的激活函数替换为relu激活函数,并将所有的池化操作替换为平均池化操作,以获取修改好的ann网络。
[0037]
本实施例中,ann网络包括输入层、输出层和隐藏层。其中,输入层主要用于接收输入信号作为输入层的输入;输出层主要用于信号在神经网络中经过神经元的传输、内积、激活后,形成输出信号进行输出;隐藏层介于输入层和输出层之间,是由大量神经元并列组成的网络层,一个ann网络可以有多个隐藏层。输入的数据通过神经元上的激活函数控制输出数值的大小,且ann网络中还需要进行池化操作,有利于减少ann网络中的计算量。
[0038]
需要说明的是,由于relu激活函数具有与snn网络中特有的if神经元相似的性质,且snn网络中没有办法实现最大池化操作,故先对ann网络进行修改,便于后期构建snn网络。
[0039]
(2)对ann网络进行训练:使用训练数据集对步骤(1)获取的修改好的ann网络进行训练,并采用梯度下降法反向更新ann网络的参数,以获取训练好的ann网络及其对应的权重和偏差。
[0040]
应当理解的是,可以根据实际情况选择相应的公开的训练数据集进行训练,在相应的损失足够收敛或者精度不再提高的时候即可停止训练,从而获取对应的训练好的ann网络及其对应的权重和偏差。
[0041]
(3)对snn网络进行转换:将步骤(2)获取的训练好的ann网络对应的权重和偏差复制到snn网络对应的层中,并将snn网络中的阈值(threshold)参数修改为奖惩阈值,以获取转换后的snn网络,如图2所示。可以通过动态调整threshold参数来提高转换后的snn网络的精度和降低功耗。
[0042]
本实施例中,在原有ann-snn的基础上设立了奖惩阈值,以前的研究人员提出了适应数据分布的自适应值,可训练的自适应参数也在以前的工作中使用。不同地,本实施例中
的惩罚参数β来自激活速率,该激活速率与能量消耗正对应,即惩罚参数β会影响能耗。
[0043]
本实施例中,奖惩阈值的表达式为:
[0044][0045]
其中,表示奖惩阈值,参数α为奖励因子,参数β为惩罚因子,表示膜电位。
[0046]
在奖励模式下,牺牲功率效率来奖励准确性,这意味着更高的准确性和更低的推理延迟。在惩罚模式下,忽略准确性以确保功率效率,这保留了snn网络的属性。snn网络的能耗低,因此snn网络适用于神经形态芯片。
[0047]
本实施例中,奖励因子表示为:
[0048][0049]
其中,t表示时间步长,reward mode表示奖励模式,silent表示静默模式。
[0050]
在奖励模式下,选择作为奖励因子,在最初的几个时间步长中会更有用。当时间步长t=0时,使用1/2阈值作为初始值,因为已有证明表示最佳初始膜电位为阈值1/2;在这种情况下,当激活速率可接受时,将比以前的设置发出更多的尖峰。奖励因子α收敛于1,在t足够大时会产生与静默模式下几乎相同的效果,因此奖励因子α在最初的几个时间步长中会更有用。
[0051]
本实施例中,惩罚因子表示为:
[0052][0053]
其中,γ表示惩罚模式下的阈值,penalty mode表示惩罚模式。
[0054]
进一步地,惩罚模式下的阈值γ表示为:
[0055][0056]
其中,表示实际速率阈值,l表示层数,i表示神经元编号,t表示时间步数,r
th
表示预期的速率阈值。
[0057]
在惩罚模式下,γ用于调节膜阈值。如果实际速率阈值大于预期的速率阈值,则γ将增加,但是它会导致一个更大的阈值,从而降低突触神经元的活动,同时具有减少能量消耗的作用。奖惩阈值的设定决定了最终的平均激活速率,经过几个时间步长后平均激活速率将会收敛到阈值,即参数γ将接近1,这意味着γ和β将不再上升。应当理解的是,由于在奖励模式下的初始时间步长中激活速率相对较高,故惩罚模式被设置为缓和这种影响。
[0058]
本实施例中,奖惩阈值的设置不是随意的,而是取决于硬件的可负担性。该奖惩阈值在高性能芯片中会较高,而在性能一般的硬件中会较低。
[0059]
综上所述,奖惩阈值作用于脉冲激活时,分为奖励模式和惩罚模式。在奖励模式中,奖惩阈值在前几个时间步长内要小得多,因此超过奖惩阈值的数据越多,触发速率越高,所以性能就越好。同时,为了减少在较大时间步长中由于提高的激活速率带来的能量消耗,采用惩罚模式。在惩罚模式中,奖惩阈值根据激活速率动态变化,如果激活速率大于设
定值,则通过乘以惩罚因子β来提高奖惩阈值,导致激活速率降低。由于激活速率与能量消耗成比例,且激活速率与数据分布也相对应,因此,通过这种方式即可降低在较大时间步长时的能耗。
[0060]
本发明通过引入奖惩阈值来达到推理延迟和推理精度的平衡,不仅可以在初始的时间步长(t小于8)中仅增加较少能耗就达到较高性能以及较高精度,并且在更大的时间步长(t大于32)中消耗更低的能量,减少由于提高的激活速率带来的能量消耗。
[0061]
与前述均衡延迟和精度的ann-snn转换方法的实施例相对应,本发明还提供了均衡延迟和精度的ann-snn转换装置的实施例。
[0062]
参见图3,本发明实施例提供的一种均衡延迟和精度的ann-snn转换装置,包括一个或多个处理器,用于实现上述实施例中的均衡延迟和精度的ann-snn转换方法。
[0063]
本发明均衡延迟和精度的ann-snn转换装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明均衡延迟和精度的ann-snn转换装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0064]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0065]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0066]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的均衡延迟和精度的ann-snn转换方法。
[0067]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0068]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者
替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
技术特征:
1.一种均衡延迟和精度的ann-snn转换方法,其特征在于,包括以下步骤:(1)对ann网络进行修改:将ann网络中的激活函数替换为relu激活函数,并将所有的池化操作替换为平均池化操作,以获取修改好的ann网络;(2)对ann网络进行训练:使用训练数据集对所述步骤(1)获取的修改好的ann网络进行训练,并采用梯度下降法反向更新ann网络的参数,以获取训练好的ann网络及其对应的权重和偏差;(3)对snn网络进行转换:将所述步骤(2)获取的训练好的ann网络对应的权重和偏差复制到snn网络对应的层中,并将snn网络中的阈值参数修改为奖惩阈值,以获取转换后的snn网络。2.根据权利要求1所述的均衡延迟和精度的ann-snn转换方法,其特征在于,所述奖惩阈值的表达式为:其中,表示奖惩阈值,参数α为奖励因子,参数β为惩罚因子,表示膜电位。3.根据权利要求2所述的均衡延迟和精度的ann-snn转换方法,其特征在于,所述奖励因子的表达式为:其中,t表示时间步长,reward mode表示奖励模式,silent表示静默模式。4.根据权利要求2所述的均衡延迟和精度的ann-snn转换方法,其特征在于,所述惩罚因子的表达式为:其中,γ表示惩罚模式下的阈值,penalty mode表示惩罚模式。5.根据权利要求4所述的均衡延迟和精度的ann-snn转换方法,其特征在于,所述惩罚模式下的阈值γ的表达式为:其中,表示实际速率阈值,l表示层数,i表示神经元编号,t表示时间步数,r
th
表示预期的速率阈值。6.根据权利要求1所述的均衡延迟和精度的ann-snn转换方法,其特征在于,所述奖惩阈值的设置取决于硬件的可负担性。7.一种均衡延迟和精度的ann-snn转换装置,其特征在于,包括一个或多个处理器,用于实现权利要求1-6中任一项所述的均衡延迟和精度的ann-snn转换方法。8.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,用于实现权利要求1-6中任一项所述的均衡延迟和精度的ann-snn转换方法。
技术总结
本发明公开了一种均衡延迟和精度的ANN-SNN转换方法、装置和介质,该方法首先对ANN网络进行修改,以获取修改好的ANN网络;然后对修改好的ANN网络进行训练,以获取训练好的ANN网络及其对应的权重和偏差;最后将训练好的ANN网络对应的权重和偏差复制到SNN网络对应的层中,并将SNN网络中的阈值参数修改为奖惩阈值,以获取转换后的SNN网络。本发明通过在原有的ANN-SNN转换方法中引入奖惩阈值来达到推理延迟和推理精度的平衡,不仅可以在初始的时间步长中仅增加较少能耗就达到较高性能以及较高精度,并且在更大的时间步长中消耗更低的能量,减少由于提高的激活速率带来的能量消耗。减少由于提高的激活速率带来的能量消耗。减少由于提高的激活速率带来的能量消耗。
技术研发人员:梁秀波 傅嘉俊 葛超 王松
受保护的技术使用者:浙江大学软件学院(宁波)管理中心(宁波软件教育中心)
技术研发日:2023.03.31
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/