一种神经网络的构建、训练、识别方法和系统、存储介质与流程

文档序号:22131624发布日期:2020-09-08 13:00阅读:95来源:国知局
一种神经网络的构建、训练、识别方法和系统、存储介质与流程

本发明属于机器学习、模式分类和识别技术领域,特别涉及一种处理复杂时空模式分类问题的多层多脉冲神经网络模型构建方法及训练方法,以及基于该模型的模式识别系统、样本识别方法,以及存储介质。



背景技术:

由于神经元之间的可塑性使得生物神经系统具有强大的学习和适应环境的能力,因此在建模中考虑由外界环境变化和神经过程引起的神经突触的变化的调整能力是极为重要的。突触权重(synapticweights)定义了两个神经元之间连接的强弱,hebb提出了第一个有关于神经突触权重修改的假设,基于此假设的学习算法可被总结为“同时激发的神经元连接在一起”,它被认为是学习跟记忆的根本机制并作为线性相关器被广泛应用于不同的神经网络模型中。虽然脉冲神经网络更为注重神经生理学的学习方法,但目前生物神经系统中完整的学习过程和机制仍然不清楚。随着精确脉冲定时(precisespiketiming)和突触前激发和突触后激发之间的时间间隔被发现,毫秒级精度学习受到了热切关注。在过去的几十年里,科研人员从生物实验现象和结论中汲取灵感来探索神经突触可塑性(即学习)理论。通过引入突触前后脉冲之间的时间相关性(temporalcorrelation),提出了脉冲时间依赖的可塑性(spike-timingdependentplasticity,stdp)机制并被推广到不同的脉冲学习机制。stdp根据脉冲发放的先后顺序,调整神经元之间的连结强度:反复出现的突触前脉冲有助于紧随其后产生的突触后动作电位并将导致长期增强(long-termpotentiation,ltp);相反的时间关系将导致长期抑制(long-termdepression,ltd)。

由于stdp原本是无监督学习机制,为了解决snn的监督学习问题,人们将stdp机制与其他权值调整方法结合,这其中主要包含梯度下降和widrow-hoff规则,以此推导出不同的监督学习算法。此外,采用多脉冲输入-输出映射的神经元作为计算单元是设计高效和大学习容量的snn的基础。然而,现有snn学习算法并不能直接适用于多层多脉冲神经网络的训练,虽然已经有一些多层的学习算法,但存在很大的局限性。比如限制了在输出层只能发放单脉冲,且不能进行在线学习;或者无法确认神经元或突触的激发性能,不适用于输出精确脉冲的学习算法。这是由于其学习过程中隐藏层的不稳定性(不激发任何脉冲),造成较低的学习容量,限制了这些算法在复杂和大样本的学习问题中的应用。

因此,通过分析现有的神经网络学习算法,结合梯度下降规则和w-h规则,修改隐含层和输出层的权值,找到一种既可以实现多层多脉冲映射,又能达到较强的精度和快速学习的snn算法,进而实现样本的高精度、高速度识别。这将具有重要的理论和实际意义。



技术实现要素:

根据以上所述,为了解决多层多脉冲神经网络学习算法在处理复杂时空模式分类中存在的问题,所述复杂时空模式为既包含时间信息又包含空间信息的模式,本发明提出了一种神经网络的构建、训练、识别方法和系统、存储介质。具体的技术方案如下所述。

一种多层多脉冲神经网络学习模型的构建方法,其特征在于包括以下步骤:

s1:将时序数据经输入层输入,构建输入层脉冲序列;

s2:在网络输出层,利用想要的脉冲序列和真实的脉冲序列之间的差值进行误差函数构造,利用梯度下降的方法更新输出层和隐藏层的权值;进而构造多层多脉冲神经网络学习模型。

上述技术方案中,所述步骤s1中构建输入层脉冲序列的具体步骤如下:

s1.1:将时序数据库的数据,按原始结构导入脉冲神经网络学习模型;

s1.2:通过卷积核函数,得到输入层脉冲序列。

上述技术方案中,所述步骤s2的具体包括如下步骤:

s2.1:对步骤s1中构建的输入层脉冲序列进行传递、计算,直至网络的最后一层;

s2.2:对每一个输出层神经元进行计算,判断在想要的脉冲时间是否发放了脉冲,若发放了,进一步判断所发放的脉冲是否为想要的脉冲,若是,则不做任何改变;若不是,则引入一种对widrow-hoff(wh)学习规则的模拟,利用梯度下降的方法来降低当前的连接权值;若未发放,则需要加强当前的连接权值。

上述技术方案中,所述步骤s1.2步骤具体包括如下步骤:

s1.2.1:利用漏电-整合-激发神经元模型,基于权值求和,计算突触后神经元的膜电压;

s1.2.2:当膜电压超过预先定义的阈值,将激发一个输入层脉冲序列传递到下一层,并将当前膜电压置为0;否则,继续计算。

本发明结合梯度下降规则和w-h规则,修改隐含层和输出层的权值,提高了隐含层的稳定性,找到了一种既可以实现多层多脉冲映射,又能达到较强的精度和快速学习的snn算法,进而实现样本的高精度、高速度识别。

本发明还涉及一种多层多脉冲神经网络学习模型的训练方法,其用于训练采用前述构建方法构造的多层多脉冲神经网络学习模型,具体步骤是:在多层多脉冲神经网络学习模型的训练过程中,包括步骤s3:通过vanrossum(vr)距离来测量想要的脉冲序列和真实的脉冲序列之间的差值,基于该差值判断神经网络学习模型是否训练成功。

在上述技术方案中,步骤s3具体包括如下步骤:

s3.1:通过步骤s1到步骤s2进行网络训练,在网络的训练过程中,通过vanrossum(vr)距离来测量想要的脉冲序列和真实的脉冲序列之间的差值,当该距离小于某个特定的值,认为网络训练成功;否则继续训练直到到达最大的训练次数;

s3.2:将当前类别时序数据的脉冲序列作为正样本,其他类别数据的脉冲序列作为负样本;

s3.3:使用提出的构建方法训练这两个样本,得到当前类别的分类器;

s3.4:重复步骤s3.1到步骤s3.3的操作,得到所有类别的分类器。

本发明通过上述方法,提高了多层多脉冲神经网络学习模型的训练速度,进而可节约训练时间,提高效率。

本发明还涉及一种模式识别系统,其将由上述训练方法得到的分类器联合构成模式识别系统。

进一步地,所述模式识别系统还包括输入模块、处理模块和输出模块,所述输入模块用于将时序数据构建输入层脉冲序列;所述处理模块用于对输入层脉冲序列进行分类处理,所述输出模块用于结果输出。

本发明还涉及一种样本识别方法,其基于上述训练方法,用于对复杂时空模式样本进行识别,将待识别复杂时空模式样本导入到训练好的多层多脉冲神经网络学习模型,进而识别出该样本。

本发明还涉及一种存储介质,其用于存储上述构建方法,和/或上述训练方法,和/或上述样本识别方法。,

因为本发明采用上述技术方案,因此具备以下有益效果:

本发明一种处理复杂时空模式分类问题的多层多脉冲神经网络学习算法,采用多层多脉冲神经网络对比传统的深度网络模型具有多个优点:

(1)提高了隐藏层的稳定性,实现了在输出层发放多脉冲,可进行在线学习;提高了学习容量,实现了复杂时空样本的识别;

(2)有效的保留时间信息,能更好的处理复杂时序数据,大大提高了模式识别精度和鲁棒性;

(3)更好地模拟了神经系统大脑皮层的信号处理和识别过程,充分利用脉冲神经网络对时序数据处理的强大计算能力,将有助于实现类脑计算在实际中的应用;

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种多层多脉冲神经网络学习算法实现示意图;

图2为一种多层多脉冲神经网络学习模型的构建方法流程图;

图3为步骤s1流程图;

图4为步骤s1.2流程图;

图5为步骤s2流程图;

图6为一种多层多脉冲神经网络学习模型的训练方法流程图;

图7为步骤s3流程图;

图8为一种模式识别系统;

1、输入层;2、隐藏层;3、网络层;4、想要的脉冲序列;5、反传;6、输入模块;7、处理模块;8、输出模块。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明提出了多层多脉冲神经网络学习模型的构建方法,在复杂时序数据识别上取得良好的效果。整个算法实现示意图如图1所示,包括步骤:

s1:将时序数据,导入脉冲神经网络模型先进行时间脉冲的卷积,构建一个输入层脉冲序列;

s2:在网络输出层,利用想要的脉冲序列和真实的脉冲序列之间的差值进行误差函数构造,利用梯度下降的方法更新输出层和隐藏层的权值。

由于神经元内部状态变量及误差函数的不连续性,本发明尝试利用时间脉冲的卷积表示数据的时序信息,找到一个更好的卷积核函数。构造下列公式(1)、(2)和(3)作为卷积结果,加快脉冲神经网络训练的收敛速度。本发明定义如下脉冲序列:

si(t)=∑fδ(t-tf)(1)

其中,tf表示第f个脉冲激发时间,κ(t)表示核函数,τm为膜电位时延常数,τs为突触电流时延常数,v0是归一化因子,用以核函数标准化。

上述步骤s1包括以下几个步骤:

s1.1:对时序数据库的数据,不做任何变换,按原始导入脉冲神经网络学习模型;

s1.2:脉冲神经网络学习模型的第一步为脉冲序列构建过程,通过卷积核函数,得到输入层脉冲序列,对输入层脉冲序列进行遍历,求解突触后神经元的膜电压,计算下一层脉冲输入。

具体地,利用漏电-整合-激发(lif)神经元模型,求解突触后神经元的膜电压。当膜电压超过预先定义的阈值,将激发一个输入层脉冲序列传递到下一层且将当前膜电压置为0;

s1.2.1:对输入层脉冲序列,利用漏电-整合-激发神经元模型,基于权值求和,计算突触后神经元的膜电压;lif神经元模型的动力学公式描述如下:

其中,v是神经元的膜电位;τm=rmcm,是膜电位时延常数,cm表示膜电容,rm表示膜电阻;vrest表示静息电位;ins是背景电流;isyn是总的突触电流。

总的突触电流为每个突触后电流的加权和,可以表示为:

其中,ωi是第i个树突,即第i个输入神经元的突触权重;为对应的突触后电流。

将神经元输入信号离散化成二值脉冲事件流,可以表示为:

其中,ti表示第i个输入神经元输入的脉冲时间;h函数指的是heaviside函数,当应变量大于等于0时返回1,小于0时返回0,即只计算在时间点t前输入的脉冲对突触后电流的影响。

s1.2.2:在计算机仿真中一般不考虑背景电流,神经元的膜电位可以表示为:

当膜电位v超过阈值电位时,神经元就会发放一个输入层脉冲序列,并将膜电位重置为vrest,在计算机仿真中一般将静息电位vrest设置为0。随后神经元将进入一段时间的不应期,期间神经元膜电位不改变。

上述步骤s2,在网络输出层,利用想要的脉冲序列和真实的脉冲序列之间的差值进行误差函数构造,并引入一种对widrow-hoff(wh)学习规则的模拟,利用梯度下降的方法更新输出层和隐藏层的权值,达到学习多层多脉冲神经网络的目的。

上述步骤s2具体为:

步骤2.1:对s1中生成的脉冲序列进行传递、计算,直至网络的最后一层;

步骤2.2:对每一个输出层神经元进行计算,若当前时刻真实激发的脉冲时间不是想要的脉冲,引入一种对widrow-hoff(wh)学习规则的模拟,利用梯度下降的方法来降低当前的连接权值;若在想要的脉冲时间未发放脉冲,需要加强当前的连接权值;若相等,则不做任何改变。

在输出层和隐藏层的权值修改规则为:

其中,η是学习因子;在输入层和隐藏层的权值修改规则为:

本发明提出一种多层多脉冲神经网络学习模型的训练方法,用于训练采用前述构建方法构造的多层多脉冲神经网络学习模型;在网络的训练过程中,采用如下步骤:

步骤s3,通过vanrossum(vr)距离来测量想要的脉冲序列和真实的脉冲序列之间的差值;基于该差值判断神经网络学习模型是否训练成功。

具体地,对s1中生成的输出层脉冲序列,需要进一步进行测量,包括以下几个步骤:

步骤s3.1:通过步骤s1到步骤s2进行网络训练,在网络的训练过程中,通过vanrossum(vr)距离来测量想要的脉冲序列和真实的脉冲序列之间的差值,当该距离小于某个特定的值,认为网络训练成功;否则继续训练直到到达最大的训练次数;对于测量函数的构造,本实施例通过vanrossum(vr)距离来测量,可以很容易地揭示神经元是如何进行训练的,构造公式:

其中,τ是一个自由参数,f(t)和g(t)是两个脉冲序列被滤波的信号;

步骤s3.2:将当前类别时序数据的脉冲序列作为正样本,其他类别数据的脉冲序列作为负样本;

步骤s3.3:使用提出的学习算法训练这两个样本,得到当前类别的分类器;

步骤s3.4:重复步骤s3.1到步骤s3.3的操作,得到所有类别的分类器。

本发明提出一种模式识别系统,其采用前述训练方法得到所有类别的分类器,将所有类别的分类器联合后构成整个模式识别系统。

如图8所示,所述模式识别系统还包括输入模块6、处理模块7和输出模块8,所述输入模块6用于将时序数据构建输入层脉冲序列;所述处理模块7用于对输入层脉冲序列进行分类处理,所述输出模块8用于结果输出。

本发明提出一种基于前述训练方法的样本识别方法,将待识别时序数据,将待识别复杂时空模式样本导入到训练好的多层多脉冲神经网络学习模型,进而识别出该样本,所述复杂时空模式样为本包含时间信息和空间信息的样本;

具体地,对时序数据进行脉冲序列生成,用于多层多脉冲神经网络学习模型进行训练,可实现很好的分类效果,包括以下几个步骤:

步骤4:对待识别样本,通过步骤s1的脉冲序列生成,导入多层多脉冲神经网络学习算法模型即可识别出该样本。

本发明提出一种存储介质,用于存储前述构建方法,和/或前述训练方法,和/或前述的样本识别方法。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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