一种用于脉冲神经网络的高效高精度训练算法制造技术

技术编号:32676141 阅读:15 留言:0更新日期:2022-03-17 11:32
一种用于脉冲神经网络的高效高精度训练算法,包括以下步骤:采集MNIST手写数字图像,对MNIST手写数字图像进行预处理,得到脉冲序列;根据脉冲神经网络输出和样本真实标签构建损失函数,采用反向传播方法将脉冲序列输入到脉冲神经网络中,对脉冲神经网络进行训练,得到训练完成的脉冲神经网络;将待分类数据输入训练后的脉冲神经网络,得到分类结果。本发明专利技术编码效率更高,克服了梯度传递的问题,仿真时间得以缩短,仿真消耗降低,保持了较高的分类准确率,拓展性良好,可以应用于不同的学习分类任务。类任务。类任务。

【技术实现步骤摘要】
一种用于脉冲神经网络的高效高精度训练算法


[0001]本专利技术涉及脉冲神经网络
,尤其涉及一种脉冲神经网络的高效高精度训练算法。

技术介绍

[0002]人工神经网络是基于生物学中的神经网络原理,模拟大脑神经系统对信息进行处理的一种数学模型。从早期的感知器模型到后来的BP神经网络,再到近些年来的深度神经网络,神经网络已经成为一种强大的处理工具,推动了诸如图像识别,无人驾驶等的发展,在相当多的领域实现突破。尽管人工神经网络的性能优异,但并不具有很好的生物合理性,因此学者们提出了脉冲神经网络模型,希望更好地模拟大脑处理信息的过程。因此,设计高效高精度的脉冲神经网络训练方法也是目前热门的研究课题。
[0003]脉冲神经网络是神经网络研究的一个方向,为了提高仿真速度,提高分类准确率,脉冲神经网络从最初的无监督学习算法到监督学习算法不断发展。现有的脉冲神经网络学习算法大体分为两类,一类是将预先训练好的人工神经网络转换为对应的脉冲神经网络,这类方法要达到较好的分类精度需要较长的仿真时间,难以在低功耗硬件上应用。第二类方法是直接训练脉冲神经网络,但由于脉冲函数不连续难以应用反向传播算法,准确率较传统人工神经网络低,由于采用频率编码等编码方案,训练效率不够理想。因此需要提出可以减少仿真时间,同时保证高精度分类的算法来训练脉冲神经网络。若是脉冲神经网络训练不好,则会造成于不同的数字或图像数据分类不准确。

技术实现思路

[0004]本专利技术的目的是提供了一种用于全连接或卷积脉冲神经网络的训练算法,该算法具有非常好的学习效率,可以降低脉冲网络仿真过程中的计算资源消耗,提高仿真时间,有非常好的分类准确率,可以让脉冲神经网络在短时间训练的条件下,按照标记好的类别对数据集进行分类,并保证优于以往脉冲神经网络的分类准确率,实现对图像数据的分类,还可以应用于不同的数字分类。
[0005]为了达到上述目的,本专利技术采用的技术方案如下:
[0006]一种用于脉冲神经网络的高效高精度训练算法,包括以下步骤:
[0007]S1:采集MNIST手写数字图像,对MNIST手写数字图像进行预处理,得到脉冲序列;
[0008]S2:根据脉冲神经网络输出和样本真实标签构建损失函数,采用反向传播方法将脉冲序列输入到脉冲神经网络中,对脉冲神经网络进行训练,得到训练完成的脉冲神经网络;
[0009]S3:将待分类数据输入训练后的脉冲神经网络,得到分类结果。
[0010]进一步的,步骤S1中,MNIST手写数字图像大小为28*28。
[0011]进一步的,步骤S1中,MNIST手写数字图像的像素值除以255,得到[0,1]范围内的归一化像素值,对输入图像进行预处理,产生[0,1]内的随机数,将随机数与[0,1]范围内的
归一化像素值比较,如果像素值大于随机数,则产生脉冲,从而得到脉冲序列。
[0012]进一步的,脉冲神经网络包括卷积层和池化层。
[0013]进一步的,梯度近似函数h(u)通过下式计算:
[0014][0015]式中,a为x轴上的范围宽度,u是膜电位,V
th
为神经元膜电位的阈值。
[0016]进一步的,采用反向传播方法将脉冲序列输入到脉冲神经网络中,对脉冲神经网络进行训练,得到训练完成的脉冲神经网络,包括以下步骤:从输入层读入脉冲序列,结合梯度近似函数,逐层进行前向计算,产生脉冲信号向下一层传递,脉冲信号传递至输出层后,计算最后一层输出与输出层神经元对应的样本真实标签之间的误差,并反向对脉冲神经网络的参数进行误差估计,根据误差估计对卷积层和全连接层的突触权重进行更新至误差达到设定值,得到训练后的脉冲卷积神经网络。
[0017]进一步的,将待分类数据输入训练后的脉冲神经网络,得到分类结果,包括以下步骤:
[0018]将待分类数据输入到训练后的脉冲卷积神经网络中,根据像素值对待分类数据进行编码,经过卷积层和池化层提取待分类数据的图像特征信息,由全连接层输出针对每一类数据的预测值,比较针对每一类数据的预测值,取预测值最大的类别作为待分类数据的所属类别。
[0019]进一步的,误差通过损失函数计算得到,损失函数L通过下式计算:
[0020][0021]其中,o
t,n
表示最后一层n在时间步长t的输出向量,Y是标签向量,n为脉冲神经网络层数,T为时间窗口。
[0022]进一步的,脉冲神经网络的参数包括、层数、网络类型、每一层网络的特征图数、卷积核大小以及神经元膜电位的阈值。
[0023]与现有技术相比,本专利技术具有的有益效果:
[0024]本专利技术采用反向传播方法,结合梯度近似函数,可以逐层进行前向计算并反向对脉冲神经网络的参数进行误差估计,根据误差估计对卷积层和全连接层的突触权重进行更新,得到训练完成的脉冲卷积神经网络。本专利技术编码效率更高,克服了梯度传递的问题,仿真时间得以缩短,仿真消耗降低,保持了较高的分类准确率,拓展性良好,可以应用于不同的学习分类任务。
[0025]进一步的,本专利技术采用图像的输入脉冲序列的脉冲率与[0,1]范围内的归一化像素值成正比的方法编码输入图像,与频率编码方案相比,编码过程简化,提高了编码效率。
附图说明
[0026]图1为本专利技术具体实施例脉冲神经网络训练算法的步骤流程图。
[0027]图2为具体实施例脉冲神经网络的结构示意图。
[0028]图3为仿真过程中loss变化情况的结果图。
具体实施方式
[0029]下面结合附图和具体实施例对本专利技术做出详细描述。
[0030]参照图1,本专利技术所述的一种用于脉冲神经网络的高效高精度训练算法,包括以下步骤:
[0031]S1:采集MNIST手写数字图像,将采集的MNIST手写数字图像作为输入数据,对输入数据进行预处理,得到脉冲序列;
[0032]具体的,读取输入数据MNIST手写数字图像,初始的MNIST手写数字图像大小为28*28,MNIST手写数字图像的像素值除以255,得到[0,1]范围内的归一化像素值,对输入图像进行预处理,产生[0,1]内的随机数,与[0,1]范围内的归一化像素值比较,如果像素值大小大于随机数,则在MNIST手写数字图像对应位置处产生一个脉冲,从而得到输入脉冲序列。
[0033]S2:构建具备卷积层和池化层的脉冲神经网络和构建预备生物合理性的脉冲神经元,确定神经元参数;
[0034]构建具备生物合理性的脉冲神经元的具体过程如下:
[0035]脉冲神经元采用了LIF神经元,LIF神经元由以下公式定义:
[0036][0037]其中,u是膜电位,τ是膜时间常数,u
rest
是膜静息电位,是一个常数,I是输入突触提供的电流之和,t为时间步长。
[0038]为了便于梯度计算,求解t+1时刻的膜电位:
[0039][0040]使用参数λ表示Σ
j
W...

【技术保护点】

【技术特征摘要】
1.一种用于脉冲神经网络的高效高精度训练算法,其特征在于,包括以下步骤:S1:采集MNIST手写数字图像,对MNIST手写数字图像进行预处理,得到脉冲序列;S2:采用反向传播方法将脉冲序列输入到脉冲神经网络中,利用梯度近似函数,对脉冲神经网络进行训练,得到训练完成的脉冲神经网络;S3:将待分类数据输入训练后的脉冲神经网络,得到分类结果。2.根据权利要求1所述的一种用于脉冲神经网络的高效高精度训练算法,其特征在于,步骤S1中,MNIST手写数字图像大小为28*28。3.根据权利要求1所述的一种用于脉冲神经网络的高效高精度训练算法,其特征在于,步骤S1中,MNIST手写数字图像的像素值除以255,得到[0,1]范围内的归一化像素值,对输入图像进行预处理,产生[0,1]内的随机数,将随机数与[0,1]范围内的归一化像素值比较,如果像素值大于随机数,则产生脉冲,从而得到脉冲序列。4.根据权利要求1所述的一种用于脉冲神经网络的高效高精度训练算法,其特征在于,脉冲神经网络包括卷积层和池化层。5.根据权利要求1所述的一种用于脉冲神经网络的高效高精度训练算法,其特征在于,梯度近似函数h(u)通过下式计算:式中,a为x轴上的范围宽度,u是膜电位,V
th
为神经元膜电位的阈值。6.根据权利要求1所述的一种用于脉冲神经网络的高效高精度训练算法,其特征在于,采用反向传播方法将脉冲序列输入到脉冲神经...

【专利技术属性】
技术研发人员:张国和裴旭东刘佳俞宙丁莎
申请(专利权)人:中国电子科技集团公司第二十四研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1