一种从人工神经网络到脉冲神经网络的最优转换方法

文档序号:25094619发布日期:2021-05-18 21:26阅读:384来源:国知局
一种从人工神经网络到脉冲神经网络的最优转换方法

1.本发明属于神经网络技术领域,具体地讲,是涉及一种从人工神经网络到脉冲神经网络的最优转换方法。


背景技术:

2.脉冲神经网络(spike neuronal networks)被称为新一代的神经网络模型,由模拟生物神经元的脉冲神经单元组成,善于处理离散的脉冲信号。脉冲神经元只会在激活时发出一个脉冲,脉冲大小恒定,信息包含在脉冲的发放时间与频率里。独特的脉冲信号传递机制以及事件驱动的特性,使得脉冲神经网络在相关硬件上的推理运行速度极快并且能量消耗远低于传统的人工神经网络1。但是由于脉冲序列的离散性,脉冲神经网络无法直接使用反向传播来进行推理训练,所以如何训练一个复杂高效的脉冲神经网络是本领域的一个难点。
3.脉冲神经网络的训练方法主要有三个方向,分别是生物启发式方法2,3,代替梯度4,5,6(surrogate gradient)和从人工神经网络转换7,8(ann

to

snn)。他们适合的网络深度以及所需仿真时间长度有所不同:代替梯度和生物启发式方法适合较浅较简单的脉冲神经网络,而网络转换可以适用于更复杂的脉冲神经网络;生物启发式和网络转换方法需要较长的仿真时间长度(通常大于1000),而代替梯度仅仅需要小于100的仿真长度就能完成复杂任务。而网络转换方法在各种任务上的性能表现是三者中最优秀的,它往往能取得非常接近人工神经网络的结果,但是由于需要的仿真时间较长,所以植入硬件后的运行速度和能量消耗高于代替梯度的方法。最近阈值平衡是最常见的网络转换方法,它首先构建一个与脉冲神经网络结构相同的传统神经网络并且激活函数使用relu函数,在训练集上会首先训练构建的源神经网络,并且会记录网络每一层激活函数输出的最大激活值。完成训练后,直接把源神经网络的权重复制给脉冲神经网络,最后将记录的最大激活值设置为脉冲神经网络的对应层膜电位阈值,这样就完成了一个性能可靠的脉冲神经网络。源网络层之间传递的信息在脉冲神经网络中被离散化,而脉冲频率约等于此信息值。
4.虽然网络转换方法在各种复杂任务上的网络表现最好,但是距离人工神经网络仍然有一定差距,并且较长的仿真时间削弱了脉冲神经网络的节能性特点。目前有一系列的方法来改进网络转换的缺点,如:使用99.9%最大值进行阈值平衡7、使用两层之间的脉冲频率调节阈值8、使用软重置机制8(脉冲后膜电位减去阈值)代替重置机制(脉冲后膜电位归零)、混合训练方法9(先使用网络转换再使用代替梯度训练)等等。但是他们只是致力于提高脉冲频率以及减小层间留存膜电位,缺乏解释转换误差降低的理论依据,并且目前已知的工作在复杂数据集如imagenet上的仿真结果仍然不令人满意(仿真时间或者任务表现),另外频率调节8和混合训练9在训练或者转换步骤上增加了额外的不可忽略开销。因此如何解决现有技术中存在的问题是本领域技术人员亟需解决的问题。
5.背景文件中提到的参考文献具体如下:
6.1.kim s,park s,na b等.spiking

yolo:尖峰神经网络用于节能目标检测[c]//
aaai人工智能会议论文集.2020,34(07):11270

11277.
[0007]
2.caporale n,dan y.尖峰时序依赖的可塑性:hebbian学习规则[j].annu.rev.neurosci.,2008,31:25

46.
[0008]
3.kheradpisheh s r,ganjtabesh m,thorpe s j等.基于stdp的尖峰深度卷积神经网络用于目标识别[j].神经网络,2018,99:56

67.
[0009]
4.shrestha s b,orchard g.slayer:时序脉冲误差重分配[j].神经信息处理系统进展会议,2018,31:1412

1421.
[0010]
5.wu y,deng l,li g等.直接训练尖峰神经网络:更快,更大,更好[c]//aaai人工智能会议论文集.2019,33:1311

1318.
[0011]
6.neftci e o,mostafa h,zenke f.尖峰神经网络中的替代梯度学习[j].ieee信号处理杂志,2019,36:61

63.
[0012]
7.rueckauer b,lungu i a,hu y等.将连续值深层网络转换为有效的事件驱动网络以进行图像分类[j].神经科学前沿,2017,11:682.
[0013]
8.han b,srinivasan g,roy k.rmp

snn:残留膜电位神经元,可实现更深的高精度和低延迟的尖峰神经网络[c]//ieee/cvf会议上的计算机视觉和模式识别会议论文集.2020:13558

13567.
[0014]
9.rathi n,srinivasan g,panda p等.通过混合转换和峰值定时相关的反向传播来启用深度峰值神经网络[c]//国际学习代表大会.2019.
[0015]
10.sengupta a,ye y,wang r等.深入了解尖峰神经网络:vgg和残差架构[j].神经科学前沿,2019,13:95.


技术实现要素:

[0016]
为了克服现有技术中的上述不足,本发明提供一种从人工神经网络到脉冲神经网络的最优转换方法,使得目标脉冲神经网络的任务表现接近源人工神经网络而仅仅需要与代替梯度方法接近的仿真时间。
[0017]
为了实现上述目的,本发明采用的技术方案如下:
[0018]
一种从人工神经网络到脉冲神经网络的最优转换方法,包括如下步骤:
[0019]
(s1)设置一个满足要求的源人工神经网络ann,并对激活函数设定一个上限;
[0020]
(s2)训练源人工神经网络ann,并且记录神经网络每一层输出的最大值;
[0021]
(s3)构建一个与源人工神经网络ann每一层网络模型都相同的脉冲神经网络snn,且去掉每一层的激活函数;
[0022]
(s4)将源人工神经网络ann中每层的网络权重weight和偏差bias复制到脉冲神经网络snn的每层中,并且将记录的源人工神经网络ann每层最大输出值a
l
作为脉冲神经网络snn对应层的阈值
[0023]
(s5)设置一个期望仿真时间t,按照公式(s5)设置一个期望仿真时间t,按照公式脉冲神经网络snn中的每一层的偏差bias增加偏移量使得转换误差最小
化。
[0024]
具体地,所述步骤(s1)中的要求包括三点,第一是激活函数具有去掉负值部分的作用;第二是源人工神经网络ann需要使用平均池化层;第三是源神经网络ann上不能使用批归一化层。
[0025]
与现有技术相比,本发明具有以下有益效果:
[0026]
(1)本发明的目标脉冲神经网络snn与源人工神经网络ann在执行相同任务下几乎不存在性能差距,甚至使用阈值操作能够提升部分不使用批归一化的人工神经网络的性能。由于本发明从理论上优化了转换误差,所以与现有技术相比,能够仅仅使用大约1/10的仿真时间就能达到相同效果,对于在硬件上实现性能高能耗低的脉冲神经网络snn有极大的帮助。此外,与现有技术相比,本发明从理论上推导了转换误差,且能在测试集未知情况下达到转换误差的理论最小值。
附图说明
[0027]
图1为本发明提供的对激活函数进行阈值和位移操作的示意图。
[0028]
图2为本发明通过阈值平衡将ann神经元转换为snn神经元的示意图。
具体实施方式
[0029]
下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
[0030]
实施例
[0031]
转换脉冲神经网络所需的人工神经网络在结构上有三点要求,第一是激活函数具有去掉负值部分的作用,如图1所示,relu的函数在坐标轴第二象限都是直接置为0,而第一象限的图像和脉冲神经网络的脉冲频率函数图像相似,有一定的转换基础;第二是源人工神经网络需要使用平均池化层而不是更加常见的最大池化层,原因是转换为脉冲神经网络后,由于脉冲的大小恒定,最大池化层对脉冲没有池化能力,比如在最大池化层一个核内的两种输入:
[0032][0033]
其输出都为1,没有辨别性。第三是源神经网络上不能使用批归一化层,因为批归一化会导致激活分布的方差增加,而使得在仿真前期更容易产生噪声脉冲。
[0034]
本发明一种从人工神经网络到脉冲神经网络的最优转换方法包括训练步骤和转换步骤。
[0035]
训练步骤:
[0036]
(s1)设置一个满足上面三点要求的源人工神经网络ann,并且使用类relu函数的激活函数h,激活函数h即网络每一层接收到上一层的输入后输出为x
l
=h(w
l
·
x
l
‑1),h是一种非线性变换的函数,保留预激活值大于0的部分。在转换方法中,激活函数h被设置一个上限,比如使用mobilenet中的relu6,即设置relu的上限为6,即x=clip(x,0,6)。由于脉冲神经网络snn与源人工神经网络ann的输入都为同样的图像数据,假设源人工神经网络ann为只有一层的网络,即x
l
‑1为图像像素值,因此希望脉冲神经网络snn最后能够得到与源人工
神经网络ann相同的输出,这样snn和ann在此任务下的表现是一样的。于是使用h

来表示脉冲神经网络的激活函数,即x
l

=h

(w
l
·
x
l
‑1),在输入和权重都相同的情况下,要是的输出相同,则需要在不对脉冲神经网络snn原则进行更改的情况下调整激活函数h


[0037]
(s2)训练源人工神经网络ann,并且记录神经网络每一层输出的最大值,比如第l层的最大输出为a
l
,那么实际上的图1中v
th
=a
l

[0038]
转换步骤:
[0039]
(s3)构建一个与源人工神经网络ann每一层网络模型都相同的脉冲神经网络snn,且去掉每一层的激活函数;
[0040]
然后设置与输出形状相同的膜电位矩阵m
l
来存储神经元的膜电位v
l
(t)。脉冲神经网络(snn)的神经元的输入是一系列的脉冲序列,在本发明中第一层的输入为图片的像素值,其他层都是脉冲序列。比如设置当前层的脉冲大小为1后,在每一时刻,它的输出只能是1或者0,例如:仿真时间t为10,某一神经元对应的ann神经元的输出为0.3,那么它会在t内脉冲3次,这样它的总脉冲期望为3/10=0.3,与ann的输出相同。脉冲神经元会在内部保存一个膜电位,它会收集膜电位的增量值(w
l
·
x

l
),当它超过阈值电位v
th
后就会释放脉冲。
[0041]
(s4)如图2,将ann中每层的网络权重weight和偏差bias复制到脉冲神经网络snn的每层中,并且将记录的源人工神经网络ann每层最大输出值a
l
作为snn对应层的阈值这样脉冲神经网络snn就能运行公式(1),
[0042][0043]
每一时刻,输入为图片的像素值,输出脉冲,输出脉冲频率最大的位置就是图片的类别。
[0044]
本发明使用脉冲神经网络中的if模型1以及软重置机制2,令网络l

层神经元在t时刻的膜电位为v
l
(t),接受的脉冲序列在t+1时刻的值为x
l

(t+1),则神经元在接收到脉冲信号后,其膜电位的变化为公式(1),其中,w
l
是l层神经元与l

1层神经元的连接权重,当超过阈值电位v
th
后,神经元会释放大小等于阈值的脉冲信号,使用θ
l
(t+1)来表示t+1时刻的脉冲值,它只能等于0或者v
th

[0045]
结合软重置机制(脉冲后膜电位减去阈值v
th
),可以得到膜电位的更新公式:
[0046]
v
l
(t+1)=v
l
(t)+w
l
·
x
l

(t+1)

θ
l
(t+1)
ꢀꢀꢀ
(2)
[0047]
然后将0时刻到t时刻的以上公式叠加,并且在方程左右两边同时除以t,得到公式(3):
[0048][0049]
最后使用来代表网络l层从0到t时刻的平均输入,那么l层的期望输出同时令网络的初始膜电位v
l
(0)为0,可以得到脉冲神经网络的期望输出与平均输入的关系:
[0050][0051]
其中,公式最后一部分v
l
(t)/t是在仿真结束时仍然残留在膜电位里的信息,前半
部分类似于人工神经网络的前向过程,于是可以将

v
l
(t)/t看作使用了一种特殊的激活函数,使用以下激活函数h

(
·
)可以替换以上方程:
[0052][0053]
其中,表示向下取整,而clip是截断函数,表示截断小于0和大于t的部分。
[0054]
相对应的,使用h(
·
)来表示人工神经网络的激活函数,得到公式(6):
[0055]
a
l+1
=h(w
l
·
a
l
)
ꢀꢀꢀ
(6)。
[0056]
在每一层中,我们的期望是两个网络上对应的输出a

l+1
与a
l+1
更加的接近,但是他们是有两个方面的差异导致了他们始终是有一定距离的,首先是两个激活函数的差距,如图1,在预激活值大于0的部分,h的变化曲线是一条直线,而h

的变化曲线是阶梯形的曲线,他们始终是有差距的。其次当前层ann的输入和snn的输入并不相同,除去第一层都是图像像素输入外,每一层都会存在激活函数导致的误差,随着误差的积累,最后输入的差距也会慢慢变大。
[0057]
损失函数是网络训练使用的重要函数,它一般是均方误差或者softmax函数,例如均方误差为(a
l

y)2,其中前者是网络的最后一层的输出,后者是我们希望得到的值,比如在手写数字识别上,输入图片为3,y的值为[0,0,1,0,0,0,0,0,0],假设本发明的输出a
l
为[0,0.1,0.9,0,0,0.1,0,0.2,0.2],网络判断出第三个位置的神经元激活频率最大,识别出此图片写的数字为3。本发明认为转换的脉冲神经网络与源人工神经网络之间的性能差距是由于转换误差导致的,转换误差可以认为是网络的损失函数之间的差值:
[0058][0059]
对于脉冲神经网络的第l层,可以将它的激活函数近似为人工神经网络的激活函数h加上一个误差项的形式:a

l
=h

l
(w
l
·
a

l
‑1)=h
l
(w
l
·
a

l
‑1)+δa

l
,其中,δa

l
是在相同的输入情况下,由于两种网络激活函数不同产生的输出误差。但是由于误差的积累,导致除了输入层,每层的输入都有差异,本发明可以将每层的输出误差分解为由于激活函数导致的部分δa

l
和由于输入不同而导致的部分δa
l
‑1,:
[0060]
δa
l
:=a

l

a
l
=δa

l
+[h
l
(w
l
·
a

l
‑1)

h
l
(w
l
·
a
l
‑1)]≈δa

l
+b
l
·
w
l
·
δa
l
‑1[0061]
其中,最后的约等于代表一阶泰勒展开,b
l
是激活函数h
l
的一阶导数在对角线上的矩阵。同时本发明使用二阶泰勒公式展开转换误差的表达式:
[0062][0063]
其中,h
al
是黑塞矩阵,由于是在源神经网络ann的损失函数,在训练过程中被最小化了,所以第一项可以认为非常接近0而被忽略。所以转换误差主要存在于第二项中,将输出误差δa
l
的表达式(7)代入(8)的第二项中得到:
[0064][0065]
其中,中间相互作用项可以被解耦假设所忽略,并且从以前的工作3可以得到并替代上式(9)最后一项得:
[0066][0067]
最后逐步向前层递进展开,复杂的网络转换误差就被分解为了不同层e[δa

lt
h
al
δa

l
]的加和,公式(10)之间两两独立,只需要对每一个e[δa

lt
h
al
δa

l
]都优化到最小,那么就能最小化总体的网络转换误差。
[0068]
图1中,阶梯型的分段虚线是脉冲神经网络的期望激活函数h

,而直线的是源神经网络采用的relu激活函数h,两者的上升趋势有一定的相似性,但是由于h

最大不能超过v
th
,所以当预激活值远大于v
th
时,误差会非常大,所以本发明首先考虑阈值操作,即给relu函数设置一个上界y
th
,当激活值过大时,输出恒定为y
th
,并且导数梯度为0,这样就能限制当激活值过大时的转换误差。其次是位移操作,本发明考虑可以将h

或者h平移一定的距离δ,即在网络中对偏移项b进行增加或减少。考虑公式(10)中h
al
为常数,那么需要最小化δa

lt
δa

l
],即相同输入下,激活函数所导致的误差。本发明考虑用一个位移变换δ达到目的,在l层中,只需要最小化以下公式:
[0069]
e
z
[h

l
(z

δ)

h
l
(z)]2ꢀꢀꢀ
(11)
[0070]
其中,预激活值z=w
·
a

l
‑1在图1的一个周期[(t

1)v
th
/t,tv
th
/t](t=1,2,3...t)内是均匀分布的,即本发明需要让一个周期内他们围成的面积最小,即:
[0071][0072]
(s5)设置一个期望仿真时间t,按照公式(12),脉冲神经网络snn中的每一层的偏差bias增加偏移量/2t,使得转换误差最小化。
[0073]
所以由求导得出当偏移v
th
/2t时转换误差最小(图1中加粗直线),此时转换误差为:
[0074][0075]
通过理论的推导,得到了最小转换误差的表达式,最小误差与阈值v
th
的平方成正比,与仿真时间t成反比,这与以前工作得到的规律:越大的仿真时间以及越小的人工神经网络激活值使得转换后的脉冲神经网络表现越好的结果一致。
[0076]
为了验证上述本申请的转换方法,申请人进行了仿真验证,具体仿真步骤如下:
[0077]
(a1)转换snn的输入为图片像素值或者是使用泊松脉冲等方法将图片脉冲化后的脉冲序列。
[0078]
(a2)前向过程(公式(1)),在每一个时刻t,第l层的网络模型都会接收一个脉冲输入矩阵,它每一个位置上的值只可能是0或者输入通过当前层网络模型计算出一个输出值a

l
,膜电位矩阵m
l
增加a

l
,然后判断m
l
中有哪些位置超过了阈值电位超过的部分会减小存放下来用于下一是时刻,并且发放一个大小为的脉冲。最后记录输出层输出的脉冲矩阵o
t

[0079]
(a3)将步骤(a2)循环t次,对所有时刻的输出脉冲矩阵o
t
累加,并且除以t,则我们
可以得到snn的输出频率,即公式(5)的结果,该输出频率非常接近源ann的输出(公式(6)),所以可以执行ann相同的任务。
[0080]
(a4)申请人通过对vgg16和resnet20等经典网络进行验证,在数据集cifar10、cifar100和imagenet上都能仅仅使用400左右的仿真长度取得与源ann几乎相同的性能,远远小于目前已知的其他方法。
[0081]
通过以上操作,本发明得到了一个任务表现与源人工神经网络非常接近的脉冲神经网络,将脉冲神经网络移值到相应的硬件平台上,可以准确快速且低能耗地完成相应的任务。在本发明中,关键的点是步骤(s1)中的阈值操作和步骤(s5)中的偏移操作。如果没有执行阈值操作会使得网络每一层的最大输出值差异非常大,导致转换后的脉冲神经网络阈值过大,而产生非常多的神经源无法激活的现象;偏移操作能够让最大转换误差期望下降一半,在实际中能够减小相同输入条件下目标脉冲神经网络和源人工神经网络的输出差距。
[0082]
上述实施例仅为本发明的优选实施例,并非对本发明保护范围的限制,但凡采用本发明的设计原理,以及在此基础上进行非创造性劳动而做出的变化,均应属于本发明的保护范围之内。
[0083]
本发明实施例中提到的参考文献具体如下:
[0084]
1.barbi m,chillemi s,di garbo a等.具有噪声阈值的正弦强迫lif模型中的随机共振[j].生物系统,2003,71(1

2):23

28.
[0085]
2.han b,srinivasan g,roy k.rmp

snn:残留膜电位神经元,可实现更深的高精度和低延迟的尖峰神经网络[c]//ieee/cvf会议上的计算机视觉和模式识别会议论文集.2020:13558

13567.
[0086]
3.botev a,ritter h,barber d.实用的深度学习高斯

牛顿优化[c]//第34届机器学习量国际会议论文集70.2017:557

565.
[0087]
4.sengupta a,ye y,wang r,et al.深入了解尖峰神经网络:vgg和残差架构[j].神经科学前沿,2019,13:95.
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1