一种基于脉冲统计的神经网络图像识别方法及电子设备

文档序号:32127111发布日期:2022-11-09 08:32阅读:101来源:国知局
一种基于脉冲统计的神经网络图像识别方法及电子设备

1.本发明属于图像识别技术领域,具体涉及一种基于脉冲统计的神经网络图像识别方法及电子设备。


背景技术:

2.随着深度神经网络图像识别技术的发展,网络结构和训练算法相对比较成熟,且图像识别准确率上也取得了很好的效果,但是随着卷积神经网络的规模不断增大,网络推理所需的功耗大幅度增加,这限制了卷积神经网络的进一步应用。脉冲神经网络(spiking neural network,简称snn)被誉为“第三代神经网络”,更加符合生物学特性,与传统的卷积神经网络(convolutional neural network,简称cnn)不同,它是通过离散的脉冲而不是连续的激活值进行数据的传递,神经元仅在接受到输入脉冲时才被激活。snn网络具有稀疏计算的特点,可以节省能耗,这使得其称为图像识别领域的研究热点。但snn网络神经元的输出值为离散的序列,使得cnn网络的训练方法无法直接应用于snn网络。因此,将完成训练的图像识别cnn网络通过参数迁移的方法转换为现有snn网络,成为提升snn网络精度的有效方法。目前常用的图像识别snn网络,是由瑞士苏黎世大学的bodo rueckauer等人于2017年提出,其利用cnn网络进行参数迁移构建现有snn网络,构建的现有snn网络具有与同样结构的cnn网络具有相当的图像识别准确率。
3.但是,现有snn网络图像识别方法仍存在两点问题:一是,待识别图像像素值的脉冲编码过程需要借助cnn网络中卷积层的激活值来实现,这个过程需要将cnn网络中卷积层混入snn网络,导致snn网络仍然存在大量乘法计算;二是,snn网络中的最大池化层和softmax层存在复杂的逻辑运算,其运算逻辑与cnn网络相当,且在fpga实现时需要设计复杂的专门电路,消耗的硬件资源比较多,导致功耗还是比较大。可见,现有snn网络的图像识别方法和cnn网络的图像识别方法均存在由于网络结构逻辑电路设计复杂导致硬件资源消耗增加进而导致功耗增加的问题,使得其均无法满足现有便携式更低功耗设备的图像识别需求。


技术实现要素:

4.为了解决现有技术中存在的上述问题,本发明提供了一种基于脉冲统计的神经网络图像识别方法及电子设备。本发明要解决的技术问题通过以下技术方案实现:
5.第一方面,本发明实施例提供了一种基于脉冲统计的神经网络图像识别方法,包括:
6.利用训练图像数据训练cnn网络得到训练好的cnn网络,并提取所述训练好的cnn网络中卷积层和全连接层对应的网络参数;
7.利用脉冲激发频率编码方式将待识别图像的像素值转换为脉冲序列;
8.利用snn网络对所述脉冲序列进行识别得到图像识别结果;其中,所述snn网络中卷积层和全连接层采用与所述训练好的cnn网络中卷积层和全连接层相同的网络结构和网
络参数,基于所述网络结构和网络参数得到对应网络层的输出;所述snn网络中最大池化层和softmax层采用与所述训练好的cnn网络中最大池化层和softmax层相同的网络结构,并利用脉冲数量统计方式实现所述snn网络中最大池化层和softmax层对应的输出,将所述softmax层的输出作为所述图像识别结果。
9.在本发明的一个实施例中,所述利用脉冲激发频率编码方式将待识别图像的像素值转换为脉冲序列,包括:
10.计算所述待识别图像的所有像素值的平均值,并将所述平均值作为所有像素值的动态激发阈值;
11.利用snn网络结构的特点,将所述待识别图像的像素值输入所述snn网络对应的脉冲神经元;针对每一脉冲神经元,包括:
12.针对每一迭代时刻过程,包括:根据所述待识别图像中每一像素值计算当前迭代时刻脉冲神经元的膜电位值;比较所述当前迭代时刻的脉冲神经元膜电位值与所述动态激发阈值的大小,根据比较结果输出当前迭代时刻的脉冲值;
13.直至达到最大迭代时刻次数,输出该脉冲神经元对应的脉冲序列。
14.在本发明的一个实施例中,计算当前迭代时刻脉冲神经元的膜电位值公式表示为:
[0015]vi
(t)=vi(t-1)+pi;
[0016]
其中,vi(t)表示在t迭代时刻第i个脉冲神经元的膜电位值,vi(t-1)表示在t-1迭代时刻第i个脉冲神经元的膜电位值,pi表示第i个像素的灰度值,t取值为1~n,n为最大迭代时刻次数。
[0017]
在本发明的一个实施例中,所述利用脉冲激发频率编码方式将待识别图像的像素值转换为脉冲序列,还包括:
[0018]
当所述当前迭代时刻脉冲神经元的膜电位值大于所述动态激发阈值时,将所述当前迭代时刻脉冲神经元的膜电位值进行复位;根据复位后的脉冲神经元的膜电位值和所述待识别图像中每一像素值重新计算下一迭代时刻脉冲神经元的膜电位值;根据所述下一迭代时刻脉冲神经元的膜电位值进行比较;
[0019]
直至达到所述最大迭代时刻次数,输出该脉冲神经元对应的脉冲序列。
[0020]
在本发明的一个实施例中,将所述当前迭代时刻脉冲神经元的膜电位值进行复位公式表示为:
[0021]vi
'(t)=vi(t)-255;
[0022]
其中,vi'(t)表示在t迭代时刻复位后的第i个脉冲神经元的膜电位值,vi(t)表示在t迭代时刻第i个脉冲神经元的膜电位值;
[0023]
对应的,重新计算下一迭代时刻脉冲神经元的膜电位值公式表示为:
[0024]vi
(t+1)=vi'(t)+pi;
[0025]
其中,vi(t+1)表示在t+1迭代时刻第i个脉冲神经元的膜电位值。
[0026]
在本发明的一个实施例中,所述cnn网络包括依次连接的第一卷积层、第一最大池化层、第一全连接层和第一softmax层;
[0027]
对应的,所述snn网络包括依次连接的第二卷积层、第二最大池化层、第二全连接层和第二softmax层;
[0028]
其中,所述第二卷积层、所述第二全连接层分别采用与所述第一卷积层、所述第一全连接层相同的网络结构和网络参数,基于所述网络结构和网络参数输出对应网络层的脉冲序列;
[0029]
所述第二最大池化层、所述第二softmax层分别采用与所述第一最大池化层、所述第一softmax层相同的网络结构,其对应网络层的输出分别通过统计所述第二卷积层输出的脉冲数量、所述第二全连接层输出的脉冲数量来形成的。
[0030]
在本发明的一个实施例中,利用脉冲数量统计方式实现所述snn网络中第二最大池化层输出的过程,包括:
[0031]
将所述第二卷积层输出的脉冲序列按采样核大小进行采集;
[0032]
针对每一采样核的脉冲序列,包括:统计该采样核中每一脉冲序列的脉冲数量;从该采样核对应的所有统计的脉冲数量中找出脉冲数量最大值;提取所述脉冲数量最大值对应的脉冲序列的地址,并根据提取的地址检索得到该采样核的脉冲序列;
[0033]
所有采样核的脉冲序列形成所述第二最大池化层输出的脉冲序列。
[0034]
在本发明的一个实施例中,利用脉冲数量统计方式实现所述snn网络中第二softmax层输出的过程,包括:
[0035]
统计所述第二全连接层输出的脉冲序列的脉冲数量;
[0036]
从所有统计的脉冲数量中找出脉冲数量最大值;
[0037]
提取所述脉冲数量最大值对应的脉冲序列的地址,并根据提取的地址检索形成所述第二softmax层的输出,将该输出作为图像识别结果。
[0038]
在本发明的一个实施例中,提取所述脉冲数量最大值对应的脉冲序列的地址表示为:
[0039]
d=addr[find(sj:if(mj=m
max
))],j∈[1,j];
[0040]
其中,addr表示提取地址,j表示j的最大取值,对于所述第二最大池化层的输出形成中j取值为w
×
h,(w,h)表示采样核尺寸,所述第二softmax层的输出形成中j取值为k,k表示所述第二全连接层输出的脉冲序列的数量,find(sj:if(mj=m
max
))表示寻找脉冲数量最大值m
max
为mj时对应的脉冲序列sj,m
max
=max(mj),j∈[1,j],mj表示统计的脉冲序列sj的脉冲数量,表示脉冲序列sj中第t个脉冲值,n表示脉冲序列的长度。
[0041]
第二方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互的通信;
[0042]
所述存储器,用于存放计算机程序;
[0043]
所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的基于脉冲统计的神经网络图像识别方法的步骤。
[0044]
本发明的有益效果:
[0045]
本发明提出的基于脉冲统计的神经网络图像识别方法,在保证了待识别图像的识别准确率基础上,由于在待识别图像编码过程中,采用脉冲激发频率编码方式转换脉冲序列,以及基于脉冲数量统计形成最大池化层、softmax层的输出,从而避免了cnn卷积层的引入,以及简化了snn网络中最大池化层和softmax层的运算逻辑,而通过脉冲数据统计方式
采用加法器的累加计算代替复杂的逻辑电路,整体的计算量比现有snn网络进一步降低,且在fpga实现中由于减少乘法器和加法器的调用,使消耗的fpga硬件资源减少,降低了fpga片上功耗,更有利于snn网络在fpga中的部署,从而具有更广泛的应用前景,比如满足现有便携式更低功耗设备的图像识别需求。
[0046]
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
[0047]
图1是本发明实施例提供的一种基于脉冲统计的神经网络图像识别方法的流程示意图;
[0048]
图2是本发明实施例提供的一种cnn网络和snn网络的结构,及其对应关系示意图;
[0049]
图3是本发明实施例提供的另一种snn网络的结构示意图;
[0050]
图4是本发明实施例提供的将待识别图像的像素值转换为脉冲序列的流程示意图;
[0051]
图5是本发明实施例提供的第二最大池化层的输出形成过程的流程示意图;
[0052]
图6是本发明实施例提供的第二softmax层的输出形成过程的流程示意图;
[0053]
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
[0054]
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
[0055]
实施例一
[0056]
为了在保证图像识别准确率的同时实现便携式更低功耗设备的图像识别需求,请参见图1,本发明实施例提供了一种基于脉冲统计的神经网络图像识别方法,包括以下步骤:
[0057]
s10、利用训练图像数据训练cnn网络得到训练好的cnn网络,并提取训练好的cnn网络中卷积层和全连接层对应的网络参数。
[0058]
具体而言,现有snn网络,利用cnn网络进行参数迁移的方法构建现有snn网络。因此,构建现有snn网络时,首先通过训练图像数据训练cnn网络得到训练好的cnn网络,具体训练过程采用算法不限,比如可以为adma算法。然后,提取训练好的cnn网络中各网络层对应的网络参数,用于构建现有snn网络中对应网络层的网络参数。可见,snn网络具有与cnn网络同样的网络结构,网络层的排列循序相同,且各网络层的数量相同。
[0059]
对提取的网络参数可以进行归一化处理,具体归一化方式可以采用现有技术。
[0060]
但是,现有snn网络的图像识别方法存在上述两点问题,因此,本发明实施例提出了一种基于脉冲统计的神经网络图像识别方法,本发明实施例的snn网络采用cnn网络同样的网络结构,具体利用的snn网路为:snn网络中卷积层和全连接层采用与训练好的cnn网络中卷积层和全连接层相同的网络结构和网络参数,基于网络结构和网络参数得到对应网络层的输出;snn网络中最大池化层和softmax层采用与cnn网络中最大池化层、softmax相同的网络结构,但是不再需要从从cnn网络中提取网络参数,而是提出了通过统计与之连接的上一网络层的输出的脉冲数量来形成对应网络层的输出的新思路。
[0061]
请参见图2,本发明实施例提供了一种可选方案,设计的cnn网络包括依次连接的第一卷积层、第一最大池化层、第一全连接层和第一softmax层;对应的,snn网络包括依次连接的第二卷积层、第二最大池化层、第二全连接层和第二softmax层。
[0062]
其中,第二卷积层、第二全连接层分别采用与第一卷积层、第一全连接层相同的网络结构和网络参数;第二最大池化层、第二softmax层分别采用与第一最大池化层、第一softmax层相同的网络结构。
[0063]
需要说明的是,在本发明实施例中,卷积层、最大池化层、全连接层的数量和排列结构可以设置为其他形式,但是softmax层只能连接在最后一个全连接层后面。卷积核的数量和尺寸也可以根据实际需求设置为不同值。
[0064]
比如,请参见图3,cnn网络结构不再是如2所示的依次连接的第一卷积层、第一最大池化层、第一全连接层和第一softmax层,其可以变形,形成如图3所示的结构,具体地:
[0065]
cnn网络结构包括多组依次连接的卷积层和最大池化层,最大池化层之后依次连接第一全连接层和第一softmax层,可见图2所示的依次连接的第一卷积层、第一最大池化层可以变形为多组依次连接的卷积层和最大池化层。其中,图3中:卷积层1~3的卷积核数量均为32个;卷积层4~6的卷积核数量均为64个;卷积层7~9的卷积核数量为128个;卷积层1~9的卷积核尺寸均为(3,3);卷积层1~9的每3层之后添加1个最大池化层;卷积层10~11的卷积核数量分别为32和8个,卷积核尺寸为(1,1);在输入第二全连接层前先通过flatten层将卷积层11输出的特征图展开,再输入第二全连接层;第二全连接层的输出结果输入第二softmax层。
[0066]
这里,cnn网络采用图3所示结构进行训练,本发明实施例snn网络:卷积层1~3、卷积层4~6、卷积层7~9、卷积层10~11和和第二全连接层采用与训练好的cnn网络对应网络层相同的网络结构和网络参数;三个最大池化层、第二softmax层采用与cnn网络对应网络层相同的网络结构,基于脉冲数量统计来形成其输出。其他类似图3的变形网络结构,同样适用这样的对应关系。
[0067]
s20、利用脉冲激发频率编码方式将待识别图像的像素值转换为脉冲序列。
[0068]
具体而言,snn网络输入为脉冲序列,而如何将待识别图像的像素值准确的转换为脉冲序列用于snn网路成为关键。现有的方式是借助cnn网络中卷积层的激活值来实现,但是将cnn网络的卷积层混合入snn网络,会导致snn网络仍然存在大量乘法计算,使得snn网络的功耗达不到最低功耗需求。针对现有存在的该问题,本发明实施例提出了一种利用脉冲激发频率编码方式将待识别图像的像素值转换为脉冲序列,转换过程中利用了snn网络网络结构的特点,当snn网络的时间步长数设置为n时,将待识别图像的像素值转换为长度为n的脉冲序列,然后将待识别图像的像素值pi输入对应的脉冲神经元i。请参见图4,具体脉冲序列转换过程包括:
[0069]
计算待识别图像的所有像素值的平均值,并将平均值作为所有像素值的动态激发阈值;
[0070]
利用snn网络结构的特点,将待识别图像的像素值输入snn网络对应的脉冲神经元;针对每一脉冲神经元,包括:
[0071]
针对每一迭代时刻过程,包括:根据待识别图像中每一像素值计算当前迭代时刻脉冲神经元的膜电位值;比较当前迭代时刻的脉冲神经元膜电位值与动态激发阈值的大
小,根据比较结果输出当前迭代时刻的脉冲值;
[0072]
直至达到最大迭代时刻次数,输出该脉冲神经元对应的脉冲序列。
[0073]
本发明实施例首先计算待识别图像所有像素值的平均值a,然后将该平均值a设置为每个脉冲神经元的动态激发阈值v
thr
,公式表示为:
[0074][0075]
其中,n表示待识别图像所有像素值的数量,pi表示第i个像素值的灰度值。
[0076]
本发明实施例利用snn网络结构的特点,将待识别图像的像素值pi输入snn网络对应的第i个脉冲神经元;针对每一脉冲神经元,其中,
[0077]
在转换待识别图像时,每个像素值转换的脉冲序列长度为n,在这里,设计迭代时刻次数为n,计算当前迭代时刻脉冲神经元的膜电位值公式表示为:
[0078]vi
(t)=vi(t-1)+piꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0079]
其中,vi(t)表示在t迭代时刻第i个脉冲神经元的膜电位值,vi(t-1)表示在t-1迭代时刻第i个脉冲神经元的膜电位值,pi表示第i个像素的灰度值,t取值为1~n,n为最大迭代时刻次数。
[0080]
可以看出,vi(t)为在t迭代时刻第i个脉冲神经元累积后的膜电位值,当t=1时,vi(t-1)=vi(0)=0,vi(0)表示第i个脉冲神经元累积过程中膜电位值的初始值。
[0081]
神经元激发脉冲后,待识别图像中超过动态激发阈值v
thr
的像素值将持续激发脉冲,为了防止该现象,本发明实施例提出将神经元激发脉冲后的膜电位值进行复位。请再参见图4,具体地:
[0082]
当前迭代时刻脉冲神经元的膜电位值大于动态激发阈值时,将当前迭代时刻脉冲神经元的膜电位值进行复位;根据复位后的脉冲神经元的膜电位值和待识别图像中每一像素值重新计算下一迭代时刻脉冲神经元的膜电位值;根据下一迭代时刻脉冲神经元的膜电位值进行比较;
[0083]
直至达到最大迭代时刻次数,输出该脉冲神经元对应的脉冲序列。
[0084]
本发明实施例针对当前迭代时刻脉冲神经元的膜电位值大于动态激发阈值的情况,需要对膜电位值进行复位,该复位操作通过膜电位值减去常量的计算实现,该常量设置为理论上的最大灰度值,即255,即将当前迭代时刻脉冲神经元的膜电位值进行复位公式表示为:
[0085]vi
'(t)=vi(t)-255
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0086]
其中,vi'(t)表示在t迭代时刻复位后的第i个脉冲神经元的膜电位值,vi(t)表示在t迭代时刻第i个脉冲神经元的膜电位值。
[0087]
对应的,重新计算下一迭代时刻脉冲神经元的膜电位值公式表示为:
[0088]vi
(t+1)=vi'(t)+piꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0089]
其中,vi(t+1)表示在t+1迭代时刻第i个脉冲神经元的膜电位值。
[0090]
可见,通过上述在时间上循环迭代n次,可将待识别图像的每个像素值转换为脉冲序列,实现像素值的脉冲编码过程。
[0091]
s30、利用snn网络对脉冲序列进行识别得到图像识别结果;其中,snn网络中卷积层和全连接层采用与训练好的cnn网络中卷积层和全连接层相同的网络结构和网络参数,
基于网络结构和网络参数得到对应网络层的输出;snn网络中最大池化层和softmax层采用与训练好的cnn网络中最大池化层和softmax层相同的网络结构,并利用脉冲数量统计方式实现snn网络中最大池化层和softmax层对应的输出,将softmax层的输出作为图像识别结果。
[0092]
具体而言,本发明实施例利用snn网络得到图像识别结果,在snn网络识别过程中,现有snn网络由于最大池化层和softmax层存在复杂的逻辑运算,导致功耗还是比较大,针对该问题,本发明实施例提出在最大池化层和softmax层,通过统计与之连接的上一次网络层输出的脉冲序列对应的脉冲数量来形成其输出,而snn网络中其他网络层采用与cnn网络相同的网络结合和网络参数来形成其输出,具体地:
[0093]
由图2可知,snn网络包括依次连接的第二卷积层、第二最大池化层、第二全连接层和第二softmax层,其中,
[0094]
本发明实施例第二卷积层采用与通过s10提取的第一卷积层相同的网络结构和网络参数,待识别图像转换的脉冲序列在序列长度方向上按照时间顺序输入snn网络中第二卷积层的神经元,神经元对输入的卷积核、权重值和脉冲值进行累积激发计算,计算的循环次数等于时间步长数n,输出长度为n的脉冲序列。多个脉冲序列组成该第二卷积层的输出特征图。该输出特征图为3维数组,尺寸为(x,y,n),其中,x和y分别表示输出特征图的高和宽,n表示脉冲序列的长度。
[0095]
需要说明的是,snn网络第二卷积层中的神经元激发阈值v
th
与脉冲激发频率编码方式中的动态激发阈值v
thr
不同,在第二卷积层中神经元激发阈值v
th
采用的是固定值,在本发明实施例中将其设置为0.06。
[0096]
进一步地,本发明实施利用脉冲数量统计方式实现snn网络中第二最大池化层输出的过程,请参见图5,包括:
[0097]
将第二卷积层输出的脉冲序列按采样核大小进行采集;
[0098]
针对每一采样核的脉冲序列,包括:统计该采样核中每一脉冲序列的脉冲数量;从该采样核对应的所有统计的脉冲数量中找出脉冲数量最大值;
[0099]
提取脉冲数量最大值对应的脉冲序列的地址,并根据提取的地址检索得到该采样核的脉冲序列;
[0100]
所有采样核的脉冲序列形成第二最大池化层输出的脉冲序列。
[0101]
设采样核尺寸为(w,h),利用该采样核(w,h)采样第二卷积层输出的脉冲序列(特征图),则每个采样核需要统计w
×
h个脉冲序列的脉冲数量,通过累加操作统计第二卷积层输出的每个脉冲序列的脉冲数量,该过程可以表示为:
[0102][0103]
其中,mj表示统计的脉冲序列sj的脉冲数量,sj表示采集核采集的第j个脉冲序列,j∈[1,j],这里j取值为w
×
h,表示脉冲序列sj中第t个脉冲值,n表示脉冲序列的长度。
[0104]
然后,比较统计的所有脉冲数量的大小,若统计脉冲数量mj为最大值,则将mj确定为脉冲数量最大值m
max
表示为:
[0105]mmax
=max(mj)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0106]
提取脉冲数量最大值m
max
对应的脉冲序列的地址表示为:
[0107]
d=addr[find(sj:if(mj=m
max
))]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0108]
其中,addr表示提取地址,find(sj:if(mj=m
max
))表示寻找脉冲数量最大值m
max
为mj时对应的脉冲序列sj。根据提取的地址检索得到该采样核的脉冲序列。
[0109]
完成所有采样核的脉冲数量最大值统计,并提取脉冲数量最大值确定对应的脉冲序列的地址,该地址处检索到的脉冲序列作为该采样核的脉冲序列。所有采样核对应的脉冲序列形成第二最大池化层输出的特征图。
[0110]
进一步地,将第二最大池化层输出的特征图输入全连接层之前,先通过一flatten层将第二最大池化层输出的特征图前两个维度展开成1维,将第二最大池化层输出的特征图转换为2维脉冲序列特征图,具体如何展开参见cnn网络。
[0111]
本发明实施例第二全连接层采用与第一全连接层相同的网络结构和网络参数,将flatten层展开输入的2维脉冲序列特征图在序列长度方向上按照时间顺序输入第二全连接层的神经元。第二全连接层的神经元的数量为k,则输出k个脉冲序列,这k个脉冲序列的地址分别对应图像所有可能的k种类别。
[0112]
进一步地,本发明实施例利用脉冲数量统计方式实现snn网络中第二softmax层输出的过程,请参见图6,包括:
[0113]
统计第二全连接层输出的脉冲序列的脉冲数量;
[0114]
从所有统计的脉冲数量中找出脉冲数量最大值;
[0115]
提取脉冲数量最大值对应的脉冲序列的地址,并根据提取的地址检索形成第二softmax层的输出,该输出作为图像识别结果。
[0116]
可见,第二softmax层与第二最大池化层的数据输出处理类似,不同的是,第二最大池化层是将第二卷积层输入的特征图(脉冲序列)按采样核尺寸划分,对划分后的所有采样核尺寸的脉冲序列进行脉冲数量最大值统计,提取统计的脉冲数量最大值对应的脉冲序列的地址,根据提取的地址对应检索的脉冲序列形成第二最大池化层的特征输出图,而第二softmax层是直接对第二全连接层输出的特征图(脉冲序列)进行脉冲数量最大值统计,提取统计的脉冲数量最大值对应的脉冲序列的地址,根据提取的地址确定图像识别结果。其中,公式(5)~(7)中,j的取值为k,k为第二全连接层输出的脉冲序列的数量。
[0117]
这里,为什么可以将第二softmax层中提取的地址可以作为图像识别结果,是因为在第二softmax层中预先设定了每个地址对应的图像类别。在cnn网络的训练过程中第一softmax函数层的每个地址对应一个图像类别,而第二softmax层采用与第一softmax层相同的网络结构,加上预先知晓的每个地址存储的数据类别,则最终可以通过第二softmax层提取的地址判断待识别图像的图像识别结果。
[0118]
为了验证本发明实施例提供的基于脉冲统计的神经网络图像识别方法的有效性,进行以下实验进行验证。
[0119]
1.实验仿真参数
[0120]
将本发明实施例提供的图像识别方法与现有snn网络图像识别方法、cnn网络图像识别方法进行对比。采用的图像识别数据集是cifar10数据集。实验过程中采用图3所示的cnn网络和snn网络,首先通过s10对cnn网络进行训练并提取卷积层1~3、卷积层4~6、卷积层7~9、卷积层10~11和第二全连接层的网络参数,再按照s20~s30的步骤将待识别图像
输入至snn网络进行图像识别得到图像识别结果。其中,图3中三个最大池化层、第二softmax层均是基于脉冲数量统计来形成其输出,三个最大池化层具体处理过程参见图5,第二softmax层具体处理过程参见图6。
[0121]
实验过程中,本发明实施例提供的图像识别方法与现有snn网络的时间步长数n和激发阈值v
th
设置均相同,采用的待识别图像均为cifar10测试集。本发明实施例提供的图像识别方法与现有snn网络以及cnn网络的图像识别方法的图像识别准确率如表1所示。
[0122]
表1准确率对比
[0123]
网络模型名称本发明snn网络现有snn网络cnn网络准确率(%)86.1786.3687.33
[0124]
由表1可见:本发明实施例提供的图像识别方法和现有snn网络的图像识别方法,在识别准确率上均与cnn网络的识别准确率接近。其中,本发明实施例识别准确率略低于现有snn网络的图像识别准确率,但两者的差距很小。该差距是由于本发明提供的图像识别方法采用脉冲激发频率编码方式降低了计算复杂度进而降低了图像识别的准确率,而基于脉冲数量统计的所有最大池化层和第二softmax层又使得识别准确率有所提升。最终,本发明实施例提供的图像识别方法和现有snn网络的图像识别方法的准确率差距很小。
[0125]
本发明实施例提供的图像识别方法与现有snn网络的图像识别方法在图像编码过程的计算量对比如表2所示。
[0126]
表2图片编码过程的计算量对比
[0127]
网络模型名称本发明snn网络现有snn网络乘法数量1885000加法数量617000852000
[0128]
由表2可见:本发明实施例提供的图像识别方法中采用的snn网络在待识别图像编码过程中只存在计算图像像素值平均值过程中的1个乘法计算,而现有snn网络的图像识别方法由于用到了cnn网络的卷积层,乘法计算量很大;本发明实施例提供的图像识别方法在待识别图像编码过程中的加法计算量比现有snn网络的图像识别方法降低了约30%。本发明实施例提供的图像识别方法:卷积层、全连接层的数量、结构和神经元计算过程均相同,因此计算量相等;而在待识别图像编码过程中,采用脉冲激发频率编码方式转换脉冲序列,以及基于脉冲数量统计形成最大池化层、softmax层的输出,均使计算量大幅度下降。因此,本发明实施例提出的图像识别方法整体计算量与现有snn网络的图像识别方法相比,进一步降低了。
[0129]
综上所述,本发明实施例提出的基于脉冲统计的神经网络图像识别方法,在保证了待识别图像的识别准确率基础上,由于在待识别图像编码过程中,采用脉冲激发频率编码方式转换脉冲序列,以及基于脉冲数量统计形成最大池化层、softmax层的输出,从而避免了cnn卷积层的引入,以及简化了snn网络中最大池化层和softmax层的运算逻辑,而通过脉冲数据统计方式采用加法器的累加计算代替复杂的逻辑电路,整体的计算量比现有snn网络进一步降低,且在fpga实现中由于减少乘法器和加法器的调用,使消耗的fpga硬件资源减少,降低了fpga片上功耗,更有利于snn网络在fpga中的部署,从而具有更广泛的应用前景,比如满足现有便携式更低功耗设备的图像识别需求。
[0130]
基于同一发明思路,请参见图7,本发明实施例提供了一种电子设备,包括处理器
701、通信接口702、存储器703和通信总线704,其中,处理器701、通信接口702、存储器703通过通信总线704完成相互的通信;
[0131]
存储器703,用于存放计算机程序;
[0132]
处理器701,用于执行存储器703上所存放的程序时,实现上述基于脉冲统计的神经网络图像识别方法的步骤。
[0133]
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述基于脉冲统计的神经网络图像识别方法的步骤。
[0134]
对于装置/电子设备/存储介质实施例而言,由于其基本相近于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0135]
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0136]
尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0137]
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1