一种高能效脉冲序列级脉冲神经网络及其训练方法
未命名
08-14
阅读:126
评论:0
1.本发明涉及脉冲神经网络及其训练方法,具体涉及一种高能效脉冲序列级脉冲神经网络及其训练方法。
背景技术:
2.脉冲神经网络(snn)因其具有受生物学启发的计算原理、时空信息处理能力以及在神经形态计算中实现高能效的潜力而受到越来越多的关注。然而,脉冲神经网络的训练仍然是一个重大挑战,因为snn中的信息是通过不可微分的脉冲序列传输和处理的。为了解决这个问题,目前已经提出了替代梯度(sg)方法和人工神经网络(ann)到snn的转换方法。ann到snn的转换方法为直接从相应的ann网络中获得snn的权重,该方法使所获得的snn具有与ann相当的精度。然而,该方法的延迟通常是非常大,因为只有大量的时间步长可以使神经网络的激活率接近。显著的延迟也消除了snn实现高能效的潜力。另一方面,sg使snn可以以低延迟直接训练,但不能实现与ann相当的高性能。总的来说,实现高精度、低延迟和高能效的snn依然是一个挑战。
3.随着网络结构与前神经元数量的增加,将导致后神经元膜电压的快速积累,由于常规神经元较为单一的脉冲触发机制,会造成脉冲激发的频率骤增并形成冗杂的脉冲序列,使得神经元处理过多信息甚至更新为错误的神经元状态。
4.为了解决以上问题,中国专利cn114037047a公开了一种脉冲神经网络的训练方法,其将目标卷积神经网络转换为初始脉冲神经网络,同时在时间域和空间域对所述初始脉冲神经网络进行训练,解决了完成一次前向推理所需要的时间步长较长的问题,但该专利受到人工神经网络的精度与结果等方面约束,同时训练成本高。
5.中国专利cn113255905a公开了一种脉冲神经网络中神经元的信号处理方法及该网络训练方法,虽然其使用自学习的训练方式,引入了多脉冲机制,但所引入的多脉冲机制导致了脉冲数的增加,同时该专利增加了不同的损失计算,将导致网络产生额外计算消耗。
技术实现要素:
6.本发明的目的是解决尽管采用替代梯度(sg)使不可微snn具有可训练性,但无法实现脉冲神经网络的高精度、低延迟和高能效的不足之处,而提供一种高能效脉冲序列级脉冲神经网络及其训练方法。
7.为了解决上述现有技术所存在的不足之处,本发明提供了如下技术解决方案:
8.一种高能效脉冲序列级脉冲神经网络,其特殊之处在于:包括输出输入依次连接的卷积块、m个端到端脉冲残差块、全局平均池化层以及至少一个全连接层;m为正整数;
9.所述脉冲残差块包括输出输入依次连接的第一空时转换块、第一批处理规范化层、第二空时转换块和第二批处理规范化层,以及第三空时转换块;所述卷积块的输出端分别连接第一空时转换块的输入端、第三空时转换块的输入端,第三空时转换块的输出端与第二批处理规范化层的输出端合并后作为该脉冲残差块的输出;所述第一空时转换块、第
二空时转换块、第三空时转换块均用于将输入信息转换成具有时间信息的脉冲序列,并对其进行卷积操作,提取输入信息中的特征并进行信息传递。
10.进一步地,所述第一空时转换块、第二空时转换块、第三空时转换块均包括输出输入依次连接的脉冲序列编码模块、卷积层和电流累计块,所述脉冲序列编码模块用于利用if神经元模型将输入信息转换为脉冲序列,所述电流累计块用于累计各个时间步长内的电流,并将最后一个步长的累计结果作为输出。
11.进一步地,所述脉冲序列编码模块的工作过程如下:
12.if神经元模型的神经元i在第t个步长时的膜电压ui[t]为:
[0013][0014]
其中:i[t]为输入数据,作为if神经元模型第0个步长时的初始膜电压;u
reset
[t]为重置函数,等于-si[t]v
th
[t];si[t]和v
th
[t]分别为神经元i在第t个步长输出脉冲和阈值电压;si[t]和v
th
[t]的计算公式如下:
[0015][0016][0017]
其中,v
init
为初始膜电压,τ
vth
为阈值电压的时间常数,v
th
[t-1]为神经元i在第t-1个步长的阈值电压。
[0018]
进一步地,所述电流累计块的工作过程如下:
[0019]
将第t个时间步长输入的数据乘以神经元i在第t个步长的阈值电压v
th
[t],并进行累计计算得到第t个步长的累计电流i
acc
[t],公式如下:
[0020][0021]
其中,t
max
为最大时间步长,等于脉冲序列的长度;i
acc
[t]为第t个步长时输入电流,其更新公式如下:
[0022][0023]
其中,i
syn
[t]为第t个步长的突触电流,i
acc
[t-1]为第t-1个步长时输入电流。
[0024]
进一步地,所述第一空时转换块、第二空时转换块的卷积核均为3*3,第三空时转换块的卷积核为1*1。
[0025]
进一步地,所述卷积块包括输出输入依次连接的卷积层、批处理规范化层。
[0026]
同时,本发明提供一种上述高能效脉冲序列级脉冲神经网络的训练方法,其特殊之处在于,包括如下步骤:
[0027]
步骤1、定义神经元模型;
[0028]
步骤2、构建权利要求1所述第一空时转换块、第二空时转换块、第三空时转换块;
[0029]
步骤3、构建权利要求1所述高能效脉冲序列级脉冲神经网络;
[0030]
步骤4、准备训练数据集和相应的标签,将输入信息转换为具有时间信息的脉冲序列,并对目标输出结果进行编码;
[0031]
步骤5、初始化网络参数,网络参数包括神经元参数和连接权重;
[0032]
步骤6、通过前向传播将步骤4的脉冲序列输入高能效脉冲序列级脉冲神经网络,计算输出结果;
[0033]
步骤7、通过损失函数来衡量输出结果与目标输出结果之间的误差;
[0034]
步骤8、根据步骤7得到的误差,使用等效反向传播计算损失函数对网络参数的梯度,并更新参数以最小化损失函数;
[0035]
步骤9、重复执行步骤6至步骤8的过程,不断迭代训练网络;直至满足预设训练轮数和学习率,则完成训练。
[0036]
进一步地,步骤8中,所述等效反向传播具体为:在第一空时转换块、第二空时转换块、第三空时转换块中,通过调换电流累计块和卷积层,获得等效前向传播1;将脉冲序列编码模块加电流累计块等效于relu函数,获得等效前向传播2;采用等效前向传播2的反向传播作为空时转换块的等效反向转播。
[0037]
进一步地,所述步骤8采用adam优化算法实现。
[0038]
进一步地,步骤7中,所述损失函数采用交叉熵损失函数。
[0039]
与现有技术相比,本发明的有益效果是:
[0040]
(1)本发明一种高能效脉冲序列级脉冲神经网络,包括输出输入依次连接的卷积块、m个端到端脉冲残差块、全局平均池化层以及至少一个全连接层;本发明在脉冲残差块中应用空时转换块(stcb)来代替卷积层和relu层,以保持snn的低功耗特征并提高准确性,解决了由于脉冲序列的不可微性带来的脉冲序列级脉冲神经网络(spike-train level snn,slsnn)不能直接采用反向传播算法的问题。
[0041]
(2)本发明一种高能效脉冲序列级脉冲神经网络,采用脉冲序列方式传输信息,即脉冲神经网络中各层之间信息是以脉冲序列的形式进行传递,该方式的信息传递既降低了卷积层的计算功耗,又减少了由于脉冲形式的信息在网络层与层之间信息传递的信息损失。
[0042]
(3)本发明一种高能效脉冲序列级脉冲神经网络的训练方法,采用等效反向传播不仅解决了所提出脉冲序列级脉冲神经网络的反向传播(bp)训练难题,还将多次反向传播变为一次反向传播,有效提升网络训练效率。
附图说明
[0043]
图1为本发明一种高能效脉冲序列级脉冲神经网络实施例的网络结构图;
[0044]
图2为本发明实施例中第一空时转换块、第二空时转换块、第三空时转换块的网络结构图;
[0045]
图3为本发明一种高能效脉冲序列级脉冲神经网络的训练方法实施例步骤8等效反向传播的原理图。
具体实施方式
[0046]
下面结合附图和示例性实施例对本发明作进一步地说明。
[0047]
参照图1,一种高能效脉冲序列级脉冲神经网络,包括输出输入依次连接的卷积块、m个端到端脉冲残差块(residual block)、全局平均池化层(aap)以及一个全连接层(fc);m为正整数。
[0048]
卷积块由输出输入依次连接的卷积层(cov)、批处理规范化层(bn)构成。
[0049]
每个脉冲残差块包括输出输入依次连接的第一空时转换块、第一批处理规范化层、第二空时转换块和第二批处理规范化层,以及第三空时转换块。卷积块的批处理规范化层的输出端分别连接第一空时转换块的输入端、第三空时转换块的输入端,第三空时转换块的输出端与第二批处理规范化层的输出端合并后作为该脉冲残差块的输出。
[0050]
第一空时转换块、第二空时转换块、第三空时转换块作为空时转换块(spatio-temporal convolutional block,stcb),用于将输入信息转换成具有时间信息的脉冲序列,并对其进行卷积操作,提取输入信息中的特征并进行信息传递;第一空时转换块、第二空时转换块、第三空时转换块均包括输出输入依次连接的脉冲序列编码模块(steb)、卷积层和电流累计块(cab),如图2所示,所述脉冲序列编码模块用于利用if神经元模型将输入信息转换为脉冲序列,所述电流累计块用于累计各个时间步长内的电流,并将最后一个步长的累计结果作为输出。第一空时转换块、第二空时转换块的卷积核均为3*3,第三空时转换块的卷积核为1*1。
[0051]
脉冲序列编码模块(steb)用于利用if神经元模型将输入信息转换为脉冲序列,脉冲序列编码模块的工作过程如下:
[0052]
if神经元模型的神经元i在第t个步长时的膜电压ui[t]为:
[0053][0054]
其中:i[t]为输入数据,作为if神经元模型第0个步长时的初始膜电压;u
reset
[t]为重置函数,等于-si[t]v
th
[t];si[t]和v
th
[t]分别为神经元i在第t个步长输出脉冲和阈值电压;si[t]和v
th
[t]的计算公式如下:
[0055][0056][0057]
其中,v
init
为初始膜电压,τ
vth
为阈值电压的时间常数,v
th
[t-1]为神经元i在第t-1个步长的阈值电压。
[0058]
电流累计块用于累计各个时间步长内的电流,并将最后一个步长的累计结果作为输出。电流累计块的工作过程如下:
[0059]
将第t个时间步长输入的数据乘以神经元i在第t个步长的阈值电压v
th
[t],并进行累计计算得到第t个步长的累计电流i
acc
[t],公式如下:
[0060][0061]
其中,t
max
为最大时间步长,等于脉冲序列的长度;i
acc
[t]为第t个步长时输入电流,其更新公式如下:
[0062][0063]
其中,i
syn
[t]为第t个步长的突触电流,i
acc
[t-1]为第t-1个步长时输入电流。
[0064]
一种上述高能效脉冲序列级脉冲神经网络的训练方法,包括如下步骤:
[0065]
步骤1、定义lif神经元模型;
[0066]
步骤2、构建上述第一空时转换块、第二空时转换块、第三空时转换块;
[0067]
步骤3、构建上述高能效脉冲序列级脉冲神经网络;
[0068]
步骤4、数据准备;
[0069]
准备训练数据集和相应的标签,将输入信息转换为具有时间信息的脉冲序列,并对目标输出结果进行编码;
[0070]
步骤5、初始化网络参数,网络参数包括神经元参数和连接权重;
[0071]
步骤6、前向传播;
[0072]
通过前向传播将步骤4的脉冲序列输入高能效脉冲序列级脉冲神经网络,计算输出结果;
[0073]
步骤6的前向传播中,分别采用脉冲序列编码模块、电流累计块进行时序编码和解码;
[0074]
步骤7、损失计算;
[0075]
选择交叉熵损失函数作为损失函数来衡量输出结果与目标输出结果之间的误差;
[0076]
步骤8、根据步骤7得到的误差,使用等效反向传播计算损失函数对网络参数的梯度,并更新参数以最小化损失函数,具体通过adam优化算法实现;
[0077]
参照图3,等效反向传播具体为:在第一空时转换块、第二空时转换块、第三空时转换块中,通过调换电流累计块和卷积层,获得等效前向传播1;将脉冲序列编码模块加电流累计块等效于relu层,获得等效前向传播2;采用等效前向传播2的反向传播作为第一空时转换块、第二空时转换块、第三空时转换块的等效反向转播;
[0078]
步骤9、迭代训练:
[0079]
重复执行步骤6至步骤8的过程,不断迭代训练网络;直至满足预设训练轮数和学习率,则完成训练。
技术特征:
1.一种高能效脉冲序列级脉冲神经网络,其特征在于:包括输出输入依次连接的卷积块、m个端到端脉冲残差块、全局平均池化层、至少一个全连接层;m为正整数;所述脉冲残差块包括输出输入依次连接的第一空时转换块、第一批处理规范化层、第二空时转换块和第二批处理规范化层,以及第三空时转换块;所述卷积块的输出端分别连接第一空时转换块的输入端、第三空时转换块的输入端,第三空时转换块的输出端与第二批处理规范化层的输出端合并后作为该脉冲残差块的输出;所述第一空时转换块、第二空时转换块、第三空时转换块均用于将输入信息转换成具有时间信息的脉冲序列,并对其进行卷积操作,提取输入信息中的特征并进行信息传递。2.根据权利要求1所述一种高能效脉冲序列级脉冲神经网络,其特征在于:所述第一空时转换块、第二空时转换块、第三空时转换块均包括输出输入依次连接的脉冲序列编码模块、卷积层和电流累计块,所述脉冲序列编码模块用于利用if神经元模型将输入信息转换为脉冲序列,所述电流累计块用于累计各个时间步长内的电流,并将最后一个步长的累计结果作为输出。3.根据权利要求2所述一种高能效脉冲序列级脉冲神经网络,其特征在于,所述脉冲序列编码模块的工作过程如下:if神经元模型的神经元i在第t个步长时的膜电压u
i
[t]为:其中:i[t]为输入数据,作为if神经元模型第0个步长时的初始膜电压;u
reset
[t]为重置函数,等于-s
i
[t]v
th
[t];s
i
[t]和v
th
[t]分别为神经元i在第t个步长输出脉冲和阈值电压;s
i
[t]和v
th
[t]的计算公式如下:[t]的计算公式如下:其中,v
init
为初始膜电压,τ
vth
为阈值电压的时间常数,v
th
[t-1]为神经元i在第t-1个步长的阈值电压。4.根据权利要求2所述一种高能效脉冲序列级脉冲神经网络,其特征在于,所述电流累计块的工作过程如下:将第t个时间步长输入的数据乘以神经元i在第t个步长的阈值电压v
th
[t],并进行累计计算得到第t个步长的累计电流i
acc
[t],公式如下:其中,t
max
为最大时间步长,等于脉冲序列的长度;i
acc
[t]为第t个步长时输入电流,其更新公式如下:
其中,i
syn
[t]为第t个步长的突触电流,i
acc
[t-1]为第t-1个步长时输入电流。5.根据权利要求2所述一种高能效脉冲序列级脉冲神经网络,其特征在于:所述第一空时转换块、第二空时转换块的卷积核均为3*3,第三空时转换块的卷积核为1*1。6.根据权利要求1至5任一所述一种高能效脉冲序列级脉冲神经网络,其特征在于:所述卷积块包括输出输入依次连接的卷积层、批处理规范化层。7.一种权利要求1所述高能效脉冲序列级脉冲神经网络的训练方法,其特征在于,包括如下步骤:步骤1、定义神经元模型;步骤2、构建权利要求1所述第一空时转换块、第二空时转换块、第三空时转换块;步骤3、构建权利要求1所述高能效脉冲序列级脉冲神经网络;步骤4、准备训练数据集和相应的标签,将输入信息转换为具有时间信息的脉冲序列,并对目标输出结果进行编码;步骤5、初始化网络参数,网络参数包括神经元参数和连接权重;步骤6、通过前向传播将步骤4的脉冲序列输入高能效脉冲序列级脉冲神经网络,计算输出结果;步骤7、通过损失函数来衡量输出结果与目标输出结果之间的误差;步骤8、根据步骤7得到的误差,使用等效反向传播计算损失函数对网络参数的梯度,并更新参数以最小化损失函数;步骤9、重复执行步骤6至步骤8的过程,不断迭代训练网络;直至满足预设训练轮数和学习率,则完成训练。8.根据权利要求7所述一种高能效脉冲序列级脉冲神经网络的训练方法,其特征在于:步骤8中,所述等效反向传播具体为:在第一空时转换块、第二空时转换块、第三空时转换块中,通过调换电流累计块和卷积层,获得等效前向传播1;将脉冲序列编码模块加电流累计块等效于relu层,获得等效前向传播2;采用等效前向传播2的反向传播作为第一空时转换块、第二空时转换块、第三空时转换块的等效反向转播。9.根据权利要求7所述一种高能效脉冲序列级脉冲神经网络的训练方法,其特征在于:所述步骤8采用adam优化算法实现。10.根据权利要求7所述一种高能效脉冲序列级脉冲神经网络的训练方法,其特征在于:步骤7中,所述损失函数采用交叉熵损失函数。
技术总结
本发明涉及脉冲神经网络及其训练方法,具体涉及一种高能效脉冲序列级脉冲神经网络及其训练方法,用于解决尽管采用替代梯度(SG)使不可微SNN具有可训练性,但无法实现脉冲神经网络的高精度、低延迟和高能效的不足之处。该高能效脉冲序列级脉冲神经网络及其训练方法,包括输出输入依次连接的卷积块、M个端到端脉冲残差块、全局平均池化层以及至少一个全连接层;本发明在脉冲残差块中应用空时转换块(STCB)来代替卷积层和ReLU层,以保持SNN的低功耗特征并提高准确性。功耗特征并提高准确性。功耗特征并提高准确性。
技术研发人员:徐长卿 刘毅 杨银堂
受保护的技术使用者:西安电子科技大学
技术研发日:2023.06.30
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
