基于脉冲神经网络模型增量学习的分类方法、系统、装置与流程

文档序号:23263287发布日期:2020-12-11 18:52阅读:304来源:国知局
基于脉冲神经网络模型增量学习的分类方法、系统、装置与流程

本发明属于类脑智能、人工智能领域,具体涉及一种基于脉冲神经网络模型增量学习的分类方法、系统、装置。



背景技术:

深度神经网络在图像分类、目标分割、语音识别等多个领域都取得了很大的成功,分类精度已经能到达到甚至超过了人类的水平,但模型只对训练的过程见过的类别有效。如果出现训练过程没有见过的类别,需要收集大量的新数据,和已有的数据合并到一起,重新训练模型,这样就产生了大量的时间成本和经济成本,还带来了另一个问题时,当存储资源有限不足以保存全部数据时,模型的识别精度就会下降。

随着移动终端的广泛引用,互联网每天产生的数据量都在快速增加,如何从这些数据中获取有用的信息是一项重要的工作。这对现有的模型提出了一个挑战:当数据持续不断出现的时候,模型是否能够对已有的数据保持记忆功能,同时又能适应新出现的数据。然而深度神经网络这种批量式学习方法是不能适应这种需求的,因此研究具有增量学习的神经网络模型具有重要意义。增量学习是人类最重要的能力之一,如果神经网络模型能够像人类一样对任务进行增量学习,那么将大大提高深度神经网络的性能和应用范围。目前的增量学习算法主要分为两类:基于生成对抗网络(gan)的方法和基于代表性样本的方法。其中基于gan的方法,不需要保存旧类别的样本,使用gan学习生成每类的样本,但是gan模型本身占用的存储空间较大;基于代表性样本的方法,需要保存一定数量的旧类别的代表性样本,虽然提高了识别精度,但这类算法过于依赖于旧类别样本,这与人类自适应的增量学习方式并不相同。

大脑皮层是调节和控制躯体运动的最高级中枢,皮质柱是大脑皮层的基本功能单位,大脑皮质大约含有5亿个皮质柱。皮质柱内神经元相互连接,共同编码一个特征或者物体,每个皮质柱被认为是一个分类器。基于此,本发明借鉴人类大脑的处理方式,以皮质柱作为基本组成单元,构建了一种基于脉冲神经网络模型增量学习的分类方法。



技术实现要素:

为了解决现有技术中的上述问题,即为了解决现有的增量学习方法一方面占用空间大,另一方面过于依赖旧样本类别,导致无法自适应的学习新类别进行分类的问题,本发明第一方面,提出了一种基于脉冲神经网络模型增量学习的分类方法,该方法包括:

步骤s10,获取待分类的样本数据集,作为输入数据集;

步骤s20,通过脉冲神经网络模型获取所述输入数据集中各输入数据的分类输出值,并计算每一类分类输出值的均值,作为平均输出值;

步骤s30,对各输入数据,计算其对应的分类输出值与各平均输出值的差值,若其对应的最小差值小于设定阈值,则将最小差值对应的平均输出值所属的类作为当前输入数据的最终分类结果,并跳转步骤s50,否则跳转步骤s40;

步骤s40,对所述脉冲神经网络模型,在其输出层中增加一个皮质柱模型,并结合各输入数据,更新其输出层的上一层与所述皮质柱模型的连接权重;更新后跳转步骤s30;

步骤s50,判断是否获取所有输入数据的最终分类结果,若是则结束;

其中,所述皮质柱模型其构建方法为:基于漏电微分发放模型lif构建神经元模型,并结合各神经元模型之间的连接权重,构建皮质柱模型;所述连接权重为各神经元之间的欧氏距离;

所述脉冲神经网络模型以各皮质柱模型替换神经元构建。

在一些优选的实施方式中,所述脉冲神经网络模型,其训练方法为:

步骤a10,基于漏电微分发放模型lif构建神经元模型,并结合各神经元模型之间的连接权重,构建皮质柱模型;所述连接权重为各神经元之间的欧氏距离;

步骤a20,以各皮质柱模型替换神经元构建脉冲神经网络模型;

步骤a30,获取训练样本数据,并通过所述脉冲神经网络模型获取所述训练样本数据的分类输出值,作为预测输出值;

步骤a40,将所述脉冲神经网络模型的输出层的层数初始化为n;

步骤a50,计算所述脉冲神经网络模型第n层的预测输出值与真实输出值的误差,并根据该误差,更新所述脉冲神经网络模型第n层与第n-1层的连接权重;

步骤a60,对所述脉冲神经网络模型,将其第n层的真实输出值与更新后的连接权重相乘,得到其第n-1层的真实输出值;

步骤a70,判断是否更新完所述脉冲神经网络模型的所有层的连接权重,若是,则跳转步骤a80,否则,令n=n-1,跳转步骤a50;

步骤a80,循环执行步骤a30-步骤a70,直至得到训练好的脉冲神经网络模型。

在一些优选的实施方式中,步骤a50中“计算所述脉冲神经网络模型第n层的预测输出值与真实输出值的误差”,其方法为:

其中,e为预测输出值与真实输出值的误差,为脉冲神经网络模型第n层预测输出值,snt表示脉冲神经网络模型第n层的真实输出值。

在一些优选的实施方式中,步骤a60中“将其第n层的真实输出值与更新后的连接权重相乘,得到其第n-1层的真实输出值”,其方法为:

其中,表示脉冲神经网络模型第n层与第n-1层的权重,表示脉冲神经网络模型第n-1层的真实输出值。

在一些优选的实施方式中,所述脉冲神经网络模型其第l层中的第j个皮质柱模型的膜电位计算方法为:

其中,c为细胞膜电容,vm为神经元模型的膜电位,i为神经元模型的输入电流,gleak为漏电导,eleak为漏电流稳态电势,ii为第l-1层中第i个皮质柱模型中放电的神经元模型的个数,wji表示第l层中第i个皮质柱模型与第j个皮质柱模型的连接权重,t表示时间。

在一些优选的实施方式中,步骤s40中“更新其倒数第二层与所述皮质柱模型的连接权重”,其方法为:通过hebbian学习法则更新脉冲神经网络模型倒数第二层与所述皮质柱模型的连接权重。

本发明的第二方面,提出了一种基于脉冲神经网络模型增量学习的分类系统,该系统包括数据获取模块、输出值计算模块、分类结果获取模块、权重更新模块、结束判断模块;

所述文本获取模块,配置为所述数据获取模块,配置为获取待分类的样本数据集,作为输入数据集;

所述输出值计算模块,配置为通过脉冲神经网络模型获取所述输入数据集中各输入数据的分类输出值,并计算每一类分类输出值的均值,作为平均输出值;

所述分类结果获取模块,配置为对各输入数据,计算其对应的分类输出值与各平均输出值的差值,若其对应的最小差值小于设定阈值,则将最小差值对应的平均输出值所属的类作为当前输入数据的最终分类结果,并跳转结束判断模块,否则跳转权重更新模块;

所述权重更新模块,配置为对所述脉冲神经网络模型,在其输出层中增加一个皮质柱模型,并结合各输入数据,更新其输出层的上一层与所述皮质柱模型的连接权重;更新后跳转分类结果获取模块;

所述结束判断模块,配置为判断是否获取所有输入数据的最终分类结果,若是则结束;

其中,所述皮质柱模型其构建方法为:基于漏电微分发放模型lif构建神经元模型,并结合各神经元模型之间的连接权重,构建皮质柱模型;所述连接权重为各神经元之间的欧氏距离;

所述脉冲神经网络模型以各皮质柱模型替换神经元构建。

本发明的第三方面,提出了一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并执行以实现上述的基于脉冲神经网络模型增量学习的分类方法。

本发明的第四方面,提出了一种处理装置,包括处理器、存储装置;处理器,适用于执行各条程序;存储装置,适用于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的基于脉冲神经网络模型增量学习的分类方法。

本发明的有益效果:

本发明解决了现有增量学习无法自适应的学习新的样本类别的问题,并提升了脉冲神经网络模型的学习效率以及分类精度。

(1)本发明基于皮质柱模型构建了用于增量学习的脉冲神经网络模型,当出现新的类别时,只需要在脉冲神经网络模型的输出层增加一个皮质柱模型,学习该皮质柱模型与下游皮质柱模型(脉冲神经网络输出层的上一层)之间的连接权重,便可实现新类别数据的分类。解决了现有增量学习无法自适应的学习新的样本类别的问题,并大大减少了网络模型的学习的参数以及训练时间、难度。

(2)本发明提出的方法是以皮质柱模型为基本单元的,与人脑的信息处理方式更加相符,为构建全新的增量学习方法和理论提供了一种可行且高效的方式。与现有的脉冲神经网络模型相比,该方法更具有生物可解释性,并且具有较高的分类精度。

附图说明

通过阅读参照以下附图所做的对非限制性实施例所做的详细描述,本申请的其他特征、目的和优点将会变得更明显。

图1是本发明一种实施例的基于脉冲神经网络模型增量学习的分类方法的流程示意图;

图2是本发明一种实施例的基于脉冲神经网络模型增量学习的分类系统的框架示意图;

图3是本发明一种实施例的单个皮质柱模型的结构示意图;

图4是本发明一种实施例的基于皮质柱模型构建的多层脉冲神经网络模型的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

本发明的基于脉冲神经网络模型增量学习的分类方法,如图1所示,包括以下步骤:

步骤s10,获取待分类的样本数据集,作为输入数据集;

步骤s20,通过脉冲神经网络模型获取所述输入数据集中各输入数据的分类输出值,并计算每一类分类输出值的均值,作为平均输出值;

步骤s30,对各输入数据,计算其对应的分类输出值与各平均输出值的差值,若其对应的最小差值小于设定阈值,则将最小差值对应的平均输出值所属的类作为当前输入数据的最终分类结果,并跳转步骤s50,否则跳转步骤s40;

步骤s40,对所述脉冲神经网络模型,在其输出层中增加一个皮质柱模型,并结合各输入数据,更新其输出层的上一层与所述皮质柱模型的连接权重;更新后跳转步骤s30;

步骤s50,判断是否获取所有输入数据的最终分类结果,若是则结束;

其中,所述皮质柱模型其构建方法为:基于漏电微分发放模型lif构建神经元模型,并结合各神经元模型之间的连接权重,构建皮质柱模型;所述连接权重为各神经元之间的欧氏距离;

所述脉冲神经网络模型以各皮质柱模型替换神经元构建。

为了更清晰地对本发明基于脉冲神经网络模型增量学习的分类方法进行说明,下面结合附图对本发明方法一种实施例中各步骤进行展开详述。

在下文实施例中,先对脉冲神经网络模型的构建及训练过程进行详述,再对基于脉冲神经网络模型增量学习的分类方法获取待分类的样本数据的分类结果的过程进行详述。

1、脉冲神经网络模型的构建及训练过程

步骤a10,基于漏电微分发放模型lif构建神经元模型,并结合各神经元模型之间的连接权重,构建皮质柱模型;所述连接权重为各神经元之间的欧氏距离;

在本实施例中,先构建简化版本的皮质柱模型,过程如下:

步骤a11,使用漏电积分发放模型(leakyintegrate-and-fire,简称lif),构建单个神经元的计算模型,记为神经元模型,如公式(1)所示:

其中,c为细胞膜电容,vm为神经元模型膜电位,i为神经元模型的输入电流,gleak为漏电导,eleak为漏电流稳态电势,当vm达到设定的膜电位阈值vth,神经元会产生一个脉冲,且电压被重置为vreset,t表示时间。

步骤a12,以神经元模型为单元,结合各神经元模型之间的连接权重,构建皮质柱模型。

本发明中构建的皮质柱模型如图3所示,单个小圆圈点表示的神经元模型,小圆圈点与小圆圈点之间的连线为各神经元模型之间的连接权重,即通过连接权重连接各个神经元模型,构建了一个皮质柱模型。其中,为了显示清晰,图3中只给出了部分连接,实际上在构建的皮质柱模型中,所有神经元模型均存在连接。每个皮质柱模型由m个神经元模型组成,神经元模型i与神经元模型j之间的连接权重是由它们之间的欧式距离决定的,连接权重的计算过程如公式(2)所示:

其中,ωij表示神经元模型i与神经元模型j之间的连接权重,pi表示神经元模型i,pj表示神经元模型j。

步骤a20,以各皮质柱模型为神经元构建脉冲神经网络模型;

在本实施例中,以各皮质柱模型为神经元,结合各皮质柱模型之间的连接权重,初始化一个n层的脉冲神经网络模型。皮质柱模型的结构图如图4所示,不同层的皮质柱模型之间的连接权重w优选为随机初始化,另外,皮质柱模型内的神经元模型与皮质柱模型内的神经元模型是否发放(放电)具体通过以下步骤实现:

步骤a21,脉冲神经网络模型第l层中的第j个皮质柱模型的膜电位的计算,如公式(3)所示:

其中,wji表示脉冲神经网络模型第l层中的第j个皮质柱模型与l-1层中的第i个皮质柱模型之间的连接权重,ii表示脉冲神经网络模型l-1层中第i个皮质柱模型中放电的神经元模型的个数。当vm(t)>vth时,该皮质柱模型会发放一个脉冲,且电压被重置为vreset,此时标记为该皮质柱放电。

步骤a22,在步骤a21中放电的皮质柱模型中随机选取特定比例的神经元模型放电。这里我们设定某一特定时刻,单个皮质柱内同时发放的神经元模型的最大比例为p;

步骤a23,步骤a21中的放电的皮质柱模型以及步骤a22得到的放电的神经元,根据步骤a12定义的神经元模型之间的连接权重,计算放电的皮质柱中第j个神经元的膜电位过程,如公式(4)所示:

其中,ωji表示放电的皮质柱中第j个神经元与第i个神经元的连接权重,当膜电位vm(t)>vth,神经元会发放一个脉冲,且电压被重置为vreset。

步骤a30,获取训练样本数据,并通过所述脉冲神经网络模型获取所述训练样本数据的分类输出值,作为所述脉冲神经网络模型输出层的预测输出值;

在本实施例中,获取n类训练样本数据,对步骤a20构建的脉冲神经网络模型进行训练。

先通过脉冲神经网络模型获取训练样本数据的分类输出值(分类结果),简称为预测输出值。

步骤a40,将所述脉冲神经网络模型的输出层的层数初始化为n;

在本实施例中,根据步骤a20构建的n层的脉冲神经网络模型,初始化模型的输出层的层数为n。例如:脉冲神经网络模型总共有8层,那么输出层为脉冲神经网络模型的最后一层,即初始化n为8。

步骤a50,计算所述脉冲神经网络模型第n层的预测输出值与真实输出值的误差,并根据该误差,更新所述脉冲神经网络模型第n层与第n-1层的连接权重;

在本实施例中,先计算脉冲神经网络模型输出层的预测输出值与标注的真实输出值(真实分类结果)误差,并根据该误差,更新输出层与脉冲神经网络模型倒数第二层的连接权重。即计算脉冲神经网络模型第n层的预测输出值与真实输出值的误差,并根据该误差,更新所述脉冲神经网络模型第n层与第n-1层的连接权重。

假设脉冲神经网路模型的输出层的预测输出值为真实输出值为snt,则误差的计算如公式(5)所示:

其中,e为预测输出值与真实输出值的误差。

步骤a60,对所述脉冲神经网络模型,将其第n层的真实输出值与更新后的连接权重相乘,得到其第n-1层的真实输出值;

在本实施例中,根据脉冲神经网络模型输出层的真实输出值,结合输出层(倒数第一层)与倒数第二层更新后的连接权重,获取倒数第二层的真实输出值,即将脉冲神经网络模型第n层的真实输出值、第n层与第n-1层更新后的连接权重相乘,得到第n-1层的真实输出值,如公式(6)所示:

其中,表示脉冲神经网络模型第n层与第n-1层的权重,表示脉冲神经网络模型第n-1层的真实输出值。

步骤a70,判断是否更新完所述脉冲神经网络模型的所有层的连接权重,若是,则跳转步骤a80,否则,令n=n-1,跳转步骤a50;

在本实施例中,根据步骤a50、a60的方法,更新完脉冲神经网络模型所有层的权重。具体如下:

判断是否更新完所述脉冲神经网络模型的所有层的连接权重,若是,则跳转步骤a80,否则令n=n-1,跳转步骤a50。

步骤a80,循环执行步骤a30-步骤a70,直至得到训练好的脉冲神经网络模型。

在本实施例中,将步骤a30中获取的训练样本数据输入更新完所有层连接权重的脉冲神经网络模型,执行步骤a30-步骤a70的方法,继续对脉冲神经网络模型进行训练,直至达到设定的训练次数或者达到了设定的分类精度阈值,得到训练好的脉冲神经网络模型。

在其他实施例中,可以根据实际需求对脉冲神经网络训练结束的条件进行限定。

2、基于脉冲神经网络模型增量学习的分类方法

步骤s10,获取待分类的样本数据集,作为输入数据集;

在本实施例中,获取待分类的样本数据集,作为输入数据集。

需要说明的是,本发明在脉冲神经网络模型训练完成后,结合测试样本数据对模型进行测试时,测试样本数据的类别数大于等于训练样本的类别数,以便于判断脉冲神经网络模型是否需要进行增量学习。而在实际的运用过程中,待分类的样本数据集中的样本数据的数量和类别则根据实际需要进行选取。

步骤s20,通过脉冲神经网络模型获取所述输入数据集中各输入数据的分类输出值,并计算每一类分类输出值的均值,作为平均输出值;

在本实施例中,通过上述预训练的脉冲神经网络模型获取输入数据集中的各输入数据的分类输出值(分类结果),并计算每一类分类输出值的均值,即将分类输出值对应类别相同的输入数据分为一类,分类后,计算每一类中分类输出值的均值,作为第i类输入数据的平均输出值sim

步骤s30,对各输入数据,计算其对应的分类输出值与各平均输出值的差值,若其对应的最小差值小于设定阈值,则将最小差值对应的平均输出值所属的类作为当前输入数据的最终分类结果,并跳转步骤s50,否则跳转步骤s40;

在本实施例中,对所述输入数据集中某一输入数据x,得到其分类输出值sx,ou,计算该值与对应类中的平均输出值的欧式距离

如果输入数据的分类输出值与各平均输出值的差值中的最小差值小于设定阈值,即t为设定的阈值,则该最小差值对应平均输出值的类别标号i作为输入数据x的类别(class)号,具体为并跳转步骤s50,否则步骤s40。

步骤s40,对所述脉冲神经网络模型,在其输出层中增加一个皮质柱模型,并结合各输入数据,更新其输出层的上一层与所述皮质柱模型的连接权重;更新后跳转步骤s30;

在本实施例中,在脉冲神经网络模型的输出层增加一个皮质柱模型(代表出现了一个新的类别,并且是这个皮质柱表征的类别标号就是当前新增加的样本类别),根据新增的样本类别、各输入数据对应的分类输出值,更新该皮质柱模型与脉冲神经网络模型倒数第二层的连接权重,此时采用hebb局部突触可塑性训练法则(即hebbian学习法则)进行连接权重的更新,而脉冲神经网络模型其它层的连接权重保持不变。

步骤s50,判断是否获取所有输入数据的最终分类结果,若是则结束。

在本实施例中,判断是否获取所有输入数据的最终分类结果,若是则将各输入数据的分类结果进行输出,分类结束,否则继续进行分类。

本发明第二实施例的一种基于脉冲神经网络模型增量学习的分类系统,如图2所示,包括:数据获取模块100、输出值计算模块200、分类结果获取模块300、权重更新模块400、结束判断模块500;

所述文本获取模块100,配置为所述数据获取模块,配置为获取待分类的样本数据集,作为输入数据集;

所述输出值计算模块200,配置为通过脉冲神经网络模型获取所述输入数据集中各输入数据的分类输出值,并计算每一类分类输出值的均值,作为平均输出值;

所述分类结果获取模块300,配置为对各输入数据,计算其对应的分类输出值与各平均输出值的差值,若其对应的最小差值小于设定阈值,则将最小差值对应的平均输出值所属的类作为当前输入数据的最终分类结果,并跳转结束判断模块500,否则跳转权重更新模块400;

所述权重更新模块400,配置为对所述脉冲神经网络模型,在其输出层中增加一个皮质柱模型,并结合各输入数据,更新其输出层的上一层与所述皮质柱模型的连接权重;更新后跳转分类结果获取模块300;

所述结束判断模块500,配置为判断是否获取所有输入数据的最终分类结果,若是则结束;

其中,所述皮质柱模型其构建方法为:基于漏电微分发放模型lif构建神经元模型,并结合各神经元模型之间的连接权重,构建皮质柱模型;所述连接权重为各神经元之间的欧氏距离;

所述脉冲神经网络模型以各皮质柱模型替换神经元构建。

所述技术领域的技术人员可以清楚的了解到,为描述的方便和简洁,上述描述的系统的具体的工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。

需要说明的是,上述实施例提供的基于脉冲神经网络模型增量学习的分类系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。

本发明第三实施例的一种存储装置,其中存储有多条程序,所述程序适用于由处理器加载并实现上述的基于脉冲神经网络模型增量学习的分类方法。

本发明第四实施例的一种处理装置,包括处理器、存储装置;处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序适用于由处理器加载并执行以实现上述的基于脉冲神经网络模型增量学习的分类方法。

所述技术领域的技术人员可以清楚的了解到,未描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实例中的对应过程,在此不再赘述。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。

术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

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