脉冲卷积神经网络的最大池化层的近似实现方法、系统及介质与流程

文档序号:18972737发布日期:2019-10-29 03:02阅读:594来源:国知局
脉冲卷积神经网络的最大池化层的近似实现方法、系统及介质与流程

本发明涉及脉冲神经网络,具体一种脉冲卷积神经网络(spikingconvolutionalneuralnetwork,scnn)的最大池化(max-pooling,mp)层的近似实现方法、系统及介质。



背景技术:

脉冲神经网络是神经网络的一种,是信息技术向智能化、高性能方向发展的前沿方向,也被称为第三代神经网络,因其神经元之间通过脉冲传递信息而区别于以卷积神经网络、多层感知机等为代表的第二代神经网络。脉冲神经网络的应用范围十分广泛,包括图像处理、语音识别和机器人控制等。

神经网络一般分为训练和推理两个阶段。脉冲神经网络的训练算法还不成熟。现有的获得可用的脉冲神经网络的主流方法是把训练好的非脉冲人工神经网络转换为脉冲神经网络。为了保持转换后的脉冲神经网络在推理过程的精度,需要把非脉冲人工神经网络中每层的功能在脉冲神经网络中对应的实现。

池化层是非脉冲人工神经网络中常用的一种层。非脉冲人工神经网络中的池化层一般有平均池化、最大池化两种类型。平均池化是指对池化窗口的输出取平均作为池化层神经元的输出,而最大池化是指从池化窗口的输出中选择最大的数值作为池化层神经元的输出。以图1为例说明非脉冲人工神经网络的最大池化层,最大池化层的神经元选择其所采样的窗口内的输出最大值作为自己的输出。如图1所示,图中上侧两个占据4单元格大小的黑框标识的是一个池化窗口。poolx为池化窗口的大小(一般长和宽相等),而stride为步长,即池化窗口滑动的距离。

当前最先进的非脉冲人工深度神经网络都采用了最大池化层,可见最大池化层十分重要,然而在脉冲神经网络中实现最大池化层并不容易。因为输出的形式是脉冲使得最大神经元是动态变化的。通常需要时间信息或者是侧向信息来判断哪个神经元的输出是目前为止最大的。现有的基于转换得到脉冲神经网络的工作,要么是选择用平均池化层代替最大池化层(平均池化层的实现简单),要么是通过引入额外的计算和存储开销(实现生物神经元模型和原深度神经网络连接结构之外的开销)或者是增加同一层神经元之间的连接从而达到实现或近似实现最大池化层的目的。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种脉冲卷积神经网络的最大池化层的近似实现方法、系统及介质,本发明能够在不引入额外开销的前提下,近似实现脉冲卷积神经网络的最大池化层,保证网络的分类精度和分类延迟。

为了解决上述技术问题,本发明采用的技术方案为:

一种脉冲卷积神经网络的最大池化层的近似实现方法,只依赖最大池化层的神经元的行为近似实现最大池化层的功能,所述最大池化层的神经元每个周期的实施步骤包括:

1)按照池化窗口接收上一层各神经元的输出作为激励值;

2)将激励值累加至本神经元上一个周期的膜电压值得到暂时的新的膜电压值;

3)判断所述暂时的新的膜电压值是否超过预设的放电阈值,如果超过预设的放电阈值则进行脉冲放电输出、并将本周期结束时的膜电压值复位;否则,将本周期结束时的膜电压值设置为前述暂时的新的膜电压值;所述进行脉冲放电输出形成的脉冲序列中1的个数占总脉冲长度的比值表示最大池化层的神经元的放电频率,且所述最大池化层的神经元的放电频率会大于等于池化窗口内神经元的最大放电频率。

优选地,步骤1)之前还包括在第一个周期开始前初始化设置初始膜电压为0的步骤。

优选地,步骤1)接受上一层各神经元的输出作为激励值具体是指将各个输出乘以对应的连接权值,再对得到的所有的乘运算结果求和作为激励值。优选地,步骤3)中将本周期的膜电压值复位具体是指将本周期的膜电压值复位为初始膜电压。

优选地,所述连接权值均为1。

本发明还提供一种脉冲卷积神经网络的最大池化层的近似实现系统,包括计算机设备,其特征在于,所述计算机设备被编程或配置以执行所述脉冲卷积神经网络的最大池化层的近似实现方法的步骤。

本发明还提供一种脉冲卷积神经网络的最大池化层的近似实现系统,包括计算机设备,其特征在于,所述计算机设备的存储介质上存储有被编程或配置以执行所述脉冲卷积神经网络的最大池化层的近似实现方法的计算机程序。

本发明还提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行所述脉冲卷积神经网络的最大池化层的近似实现方法的计算机程序。

本发明还提供一种脉冲卷积神经网络的最大池化层的近似实现系统,包括:

脉冲输入程序单元,用于按照池化窗口接收上一层各神经元的输出作为激励值;

膜电压值计算程序单元,用于将激励值累加至本神经元上一个周期的膜电压值得到暂时的新的膜电压值;

放电判断程序单元,用于判断所述暂时的新的膜电压值是否超过预设的放电阈值,如果超过预设的放电阈值则进行脉冲放电输出、并将本周期结束时的膜电压值复位;否则,将本周期结束时的膜电压值设置为前述暂时的新的膜电压值;所述进行脉冲放电输出形成的脉冲序列中1的个数占总脉冲长度的比值表示最大池化层的神经元的放电频率,且所述最大池化层的神经元的放电频率会大于等于池化窗口内神经元的最大放电频率。

和现有技术相比,本发明具有下述优点:本发明最大池化层的神经元将激励值累加至本神经元上一个周期的膜电压值得到暂时的新的膜电压值,判断暂时的新的膜电压值是否超过预设的放电阈值,如果超过预设的放电阈值则进行脉冲放电输出、并将本周期的膜电压值复位;否则,保持本周期的膜电压值为前述暂时的新的膜电压值,从而能够在不引入额外开销的前提下,近似实现脉冲卷积神经网络的最大池化层,保证网络的分类精度和分类延迟。

附图说明

图1为现有技术的最大池化操作的原理示意图。

图2为本发明实施例方法的基本流程示意图。

图3为本发明实施例方法的原理示意图。

图4为本发明实施例的数据处理实例。

图5为本发明实施例的最大池化操作的原理示意图。

具体实施方式

如图2所示,本实施例脉冲卷积神经网络的最大池化层的近似实现方法只依赖最大池化层的神经元的行为近似实现最大池化层的功能,最大池化层的神经元每个周期的实施步骤包括:

1)按照池化窗口接收上一层各神经元的输出作为激励值,所述激励值通过脉冲序列中1的个数占总脉冲长度的比值表示上一层神经元放电的频率;

2)将激励值累加至本神经元上一个周期的膜电压值得到暂时的新的膜电压值;

3)判断所述暂时的新的膜电压值是否超过预设的放电阈值,如果超过预设的放电阈值则进行脉冲放电输出、并将本周期结束时的膜电压值复位;否则,将本周期结束时的膜电压值设置为前述暂时的新的膜电压值;所述进行脉冲放电输出形成的脉冲序列中1的个数占总脉冲长度的比值表示最大池化层的神经元的放电频率,且所述最大池化层的神经元的放电频率会大于等于池化窗口内神经元的最大放电频率。

本实施例脉冲卷积神经网络的最大池化层的近似实现方法能够在不引入额外开销的前提下,近似实现脉冲卷积神经网络的最大池化层,保证网络的分类精度和分类延迟。

本实施例中,步骤1)之前还包括在第一个周期开始前初始化设置初始膜电压为0的步骤,步骤3)中将本周期的膜电压值复位具体是指将本周期的膜电压值复位为初始膜电压。

本实施例中,步骤1)接受上一层各神经元的输出作为激励值具体是指将各个输出乘以对应的连接权值,再对得到的所有的乘运算结果求和作为激励值。

本实施例步骤3)当且仅当暂时的新的膜电压值超过预设的放电阈值时才进行脉冲放电输出,且输出的为本周期的暂时的新的膜电压值;否则,保持本周期的膜电压值为前述暂时的新的膜电压值

本实施例中,连接权值均为1。

如图3所示,本实施例脉冲卷积神经网络的最大池化层的近似实现方法的模型为生物神经元模型,神经元遵循泄露集成点火神经元模型(leakyintegrate-and-fireneuronmodel)的行为,通过权值累积输入脉冲到膜电压,当膜电压达到放电阈值后(大于等于放电阈值)就产生一个脉冲(放电),然后膜电压更新为0。如果不放电,则膜电压的值保持(在本公开中泄露值设为0)。如式(1)和图2所示。放电阈值是人为设置的。和传统深度神经网络相比,本实施例的连接权值是一个新参数,传统深度神经网络的最大池化层没有权值。参见图2,其中i代表脉冲输入,vthr代表阈值,v代表膜电压,o代表输出脉冲,tref代表不应期,即在这段时间内对输入脉冲不做处理。可以看到,v的曲线在脉冲到来上升之后会有均匀的下降,这是由泄露的特性导致的。本实施例中把泄露和不应期都设置为0。

式(1)中,为周期t(本周期)的膜电压值,为周期t-1(上一周期)的膜电压值,为周期t+1(下一周期)的初始膜电压值,为连接权重,为脉冲输入的激活值,l为层的编号,j为第l层的神经元的编号,nl-1为第l-1层神经元的总个数,为周期t输出的激活值(值为0或1),vthr为放电阈值,θ(x)为用于将周期t的膜电压和放电阈值vthr进行比较的函数。参见式(1)可知,膜电压在一个周期t内可能经历两次更新:第一次更新就是各个输入神经元的脉冲输入累加至上一个周期的膜电压值得到的结果,即:第二次更新的发生是有条件的,如果第一次更新后的本周期的膜电压值超过预设的放电阈值,那么就会发生第二次更新,即膜电压更新为初始膜电压。如果不超过放电阈值,第二次更新就不发生。即:当且仅当本周期的膜电压值超过预设的放电阈值时才进行脉冲放电输出且在后将本周期结束时的膜电压值复位。

本实施例中通过人为设置放电阈值可控制最大池化层的神经元放电的数量。以图4为例进行说明。最大池化层的神经元和输入神经元建立的连接权值为1。最大池化层的神经元的初始膜电压为0。如图4所示,本实施例中有4个输入神经元。从上到下依次编号为a,b,c,d。它们输出的脉冲序列如图4所示,脉冲的读取顺序为从右到左。放电频率最大的神经元是a神经元,放电频率f=5/8。初始膜电压置为0。当阈值设置为1时,在第1个时间步,输入的4个脉冲分别为[1,0,1,0],0累加上2等于2,即膜电压从0变为2,大于(等于)阈值,神经元放电(输出1),然后膜电压重置为0。当阈值设置为2时,在第4个时间步的时候,膜电压为v(t=4)=0。第5个时间步,神经元的输入从上到下依次是[1,1,0,0],膜电压的值从0累加到2,放电,膜电压重置为0,即v(t=5)=0。在第6个时间步,输入是[1,0,0,0],膜电压从0累加到1,没有达到阈值2,不放电,膜电压v(t=6)=1。在第7个时间步,输入是[0,0,0,1],膜电压加上1,从1累加到2,达到阈值,放电,膜电压重置为0,v(t=7)=0。阈值为1的时候,最大池化层的神经元的放电频率是6/8。阈值为2的时候,最大池化层的神经元的放电频率是4/8。和输入神经元中放电频率最大的神经元5/8并不完全相等,所以本实施例的脉冲卷积神经网络的最大池化层的近似实现方法是近似实现最大池化层。

和传统的非脉冲神经网络相比,本实施例的脉冲神经网络输入矩阵的每个元素将对应一个脉冲序列,即最大池化层前一层的每个神经元输出的不再是一个数值,而是一个脉冲序列,就如同图4中a、b、c、d神经元对应的脉冲序列。而最大池化层的神经元输出的也不再是一个数值,同样是一个脉冲序列。脉冲序列和数值之间的关系是:数值近似等于神经元放电的频率,即脉冲序列中1的个数占总脉冲长度的比值。以0.5为例,假设模拟时间是10个时间步,脉冲神经网络中该元素对应的神经元产生的脉冲序列极大概率会包含5个1。但是这5个1的位置分布是不确定的。本实施例针对左侧的脉冲序列(数值),以2*2的池化窗口最终得到的结果如图5所示,其中各个值均为脉冲序列对应的数值,即神经元放电的频率,即脉冲序列中1的个数占总脉冲长度的比值。

本实施例的脉冲神经网络中,神经元的输出激活值可以被看做是神经元的放电频率。在非放电的人工神经网络中,最大池化层的神经元选择池化窗口内最大的输出激活值作为自己的输出激活值。而在脉冲神经网络中,严格实现这一功能的意思是指最大池化层的神经元的放电频率和池化窗口内放电频率最大的神经元(即输出激活值最大的神经元)的放电频率一致。而近似实现的意思是指,最大池化层的神经元的放电频率可以不完全和池化窗口内放电频率最大的神经元的放电频率一致。但是为了保证功能,应该保证池化层的神经元的放电频率大于等于池化窗口内神经元的最大放电频率。因为如果低于最大放电频率,会导致该层学习到的特征受到影响,从而使得分类效果受到影响。考虑窗口内神经元的输出激活值(即放电频率),可以分为三种情况:(1)有一个神经元的输出激活值远远大于窗口内的其他神经元。(2)窗口内的各个神经元的输出激活值几乎相等。(3)神经元之间存在明显的分组,其中一组内的神经元的激活值远远大于其他神经元。本实施例脉冲卷积神经网络的最大池化层的近似实现方法依赖泄露集成点火神经元模型(leakyintegrate-and-fireneuronmodel)近似实现最大池化层,在泄露值为0,阈值为1的情况下,这样做的效果是最大池化层接收到一个脉冲输入,就会产生一个脉冲输出。这个设置沿用到后续的分析和本实施例。对于前述的三种情况,我们一一分析采用我们的方法的最大池化层神经元的放电频率的可能情况。不失一般性,以2x2的窗口为例进行阐释。对于情况(1):因为该神经元的放电频率最高,在其他放电频率低的神经元放电的时候,该神经元很可能也正在放电。这种情况下,最大池化层神经元最大池化层的神经元的放电频率会大于等于该神经元的放电频率。对于情况(2):因为各神经元的放电频率很接近,但是他们放电的时刻不一定完全重合,所以最大池化层神经元最大池化层的神经元产生的脉冲数一定会大于等于池化窗口内放电频率最大的神经元产生的脉冲数。即放电频率大于等于池化窗口内神经元的最大放电频率。对于情况(3):可看做是前两种情况的结合,即组间是情况(1),组内是情况(2),可知最大池化层神经元最大池化层的神经元的放电频率会大于等于池化窗口内神经元的最大放电频率。综上所述,本实施例脉冲卷积神经网络的最大池化层的近似实现的方法导致的最大池化层的神经元的放电频率一定会大于等于池化窗口内神经元的最大放电频率。因此能够近似实现最大池化层的功能。

此外,本发明还提供一种脉冲卷积神经网络的最大池化层的近似实现系统,包括计算机设备,所述计算机设备被编程或配置以执行所述脉冲卷积神经网络的最大池化层的近似实现方法的步骤。此外,本发明还提供一种脉冲卷积神经网络的最大池化层的近似实现系统,包括计算机设备,所述计算机设备的存储介质上存储有被编程或配置以执行所述脉冲卷积神经网络的最大池化层的近似实现方法的计算机程序。此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述脉冲卷积神经网络的最大池化层的近似实现方法的计算机程序。此外,本发明还提供一种脉冲卷积神经网络的最大池化层的近似实现系统,包括:

脉冲输入程序单元,用于按照池化窗口接收上一层各神经元的输出作为激励值,所述激励值通过脉冲序列中1的个数占总脉冲长度的比值表示上一层神经元放电的频率;

膜电压值计算程序单元,用于将激励值累加至本神经元上一个周期的膜电压值得到暂时的新的膜电压值;

放电判断程序单元,用于判断所述暂时的新的膜电压值是否超过预设的放电阈值,如果超过预设的放电阈值则进行脉冲放电输出、并将本周期结束时的膜电压值复位;否则,将本周期结束时的膜电压值设置为前述暂时的新的膜电压值;所述进行脉冲放电输出形成的脉冲序列中1的个数占总脉冲长度的比值表示最大池化层的神经元的放电频率,且所述最大池化层的神经元的放电频率会大于等于池化窗口内神经元的最大放电频率。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1