神经网络的处理方法及装置、存储介质、电子设备与流程

文档序号:14217604阅读:142来源:国知局

本公开涉及神经网络技术领域,具体地,涉及一种神经网络的处理方法及装置、存储介质、电子设备。



背景技术:

随着人工神经网络技术的不断发展,深度学习被广泛应用于各种分类任务、回归任务,例如,用于进行语音识别、图像识别等。通常,深度学习的效果与神经网络的结构复杂度密切相关,对于复杂任务来说,复杂的网络结构往往能带来较好的识别效果,但计算压力也会随之增大。

进行前向计算时,可以利用各层网络的输入向量x、基于网络训练得到的该层网络输入到该层网络输出的权重向量w,计算得到该层网络的输出向量y=x·w。面对大规模任务的神经网络,例如,做一个20000类的分类任务时,就存在20000个输出向量yi以及对应的20000个权重向量wi,每个输出向量yi都需要计算输入向量x与权重向量wi的乘积,计算量非常大,很容易影响基于神经网络实现的产品的使用效率,降低用户体验。



技术实现要素:

本公开的主要目的是提供一种神经网络的处理方法及装置、存储介质、电子设备,有助于降低神经网络的计算量,提高计算效率。

为了实现上述目的,本公开提供一种神经网络的处理方法,所述方法包括:

获取网络层的输入向量和权重向量集合,所述权重向量集合包括n个原始权重向量,n为所述网络层的输出向量的个数;

从所述权重向量集合中选取至少两个第一权重向量,并将所述至少两个第一权重向量替换为预设权重向量,所述至少两个第一权重向量为相似权重向量,且每个第一权重向量与所述输入向量的相关度小于预设相关度;

利用所述输入向量以及处理后的权重向量集合,计算得到所述网络层的n个输出向量,所述处理后的权重向量集合包括:所述权重向量集合中未被选取的原始权重向量、以及所述预设权重向量。

可选地,所述从所述权重向量集合中选取至少两个第一权重向量,包括:

从所述n个原始权重向量中选取相似权重向量,并对所述相似权重向量进行聚类处理,得到至少一个权重聚合类;

计算各权重聚合类的中心向量与所述输入向量的相关度,将相关度小于所述预设相关度的权重聚合类包括的相似权重向量,确定为所述第一权重向量。

可选地,所述从所述n个原始权重向量中选取相似权重向量,包括:

计算每个原始权重向量的模、以及所述n个原始权重向量的模的均值;

根据所述模的均值确定匹配区间,若有至少两个原始权重向量的模位于所述匹配区间内,则将所述至少两个原始权重向量确定为相似权重向量。

可选地,如果所述相似权重向量的个数小于预设数量,所述方法还包括:

按照预设步长扩展所述匹配区间,以使根据扩展后匹配区间确定出的相似权重向量的个数不小于所述预设数量为止;

所述对所述相似权重向量进行聚类处理,得到至少一个权重聚合类,包括:将所述扩展后匹配区间分割为至少两个小区间,分别对每个小区间对应的相似权重向量进行聚类处理,得到至少一个权重聚合类。

可选地,在所述从所述权重向量集合中选取至少两个第一权重向量之前,所述方法还包括:

判断所述权重向量集合中的原始权重向量之间的差异度是否大于预设差异值;

如果所述权重向量集合中的原始权重向量之间的差异度不大于预设差异值,再执行所述从所述权重向量集合中选取至少两个第一权重向量的步骤。

本公开提供一种神经网络的处理装置,所述装置包括:

向量获取模块,用于获取网络层的输入向量和权重向量集合,所述权重向量集合包括n个原始权重向量,n为所述网络层的输出向量的个数;

第一权重向量选取模块,用于从所述权重向量集合中选取至少两个第一权重向量,并将所述至少两个第一权重向量替换为预设权重向量,所述至少两个第一权重向量为相似权重向量,且每个第一权重向量与所述输入向量的相关度小于预设相关度;

输出向量计算模块,用于利用所述输入向量以及处理后的权重向量集合,计算得到所述网络层的n个输出向量,所述处理后的权重向量集合包括:所述权重向量集合中未被选取的原始权重向量、以及所述预设权重向量。

可选地,所述第一权重向量选取模块包括:

相似权重向量获取模块,用于从所述n个原始权重向量中选取相似权重向量;

聚类处理模块,用于对所述相似权重向量进行聚类处理,得到至少一个权重聚合类;

第一权重向量确定模块,用于计算各权重聚合类的中心向量与所述输入向量的相关度,将相关度小于所述预设相关度的权重聚合类包括的相似权重向量,确定为所述第一权重向量。

可选地,所述相似权重向量获取模块,用于计算每个原始权重向量的模、以及所述n个原始权重向量的模的均值;根据所述模的均值确定匹配区间,若有至少两个原始权重向量的模位于所述匹配区间内,则将所述至少两个原始权重向量确定为相似权重向量。

可选地,如果所述相似权重向量的个数小于预设数量,所述装置还包括:

匹配区间扩展模块,用于按照预设步长扩展所述匹配区间,以使根据扩展后匹配区间确定出的相似权重向量的个数不小于所述预设数量为止;

所述聚类处理模块,用于将所述扩展后匹配区间分割为至少两个小区间,分别对每个小区间对应的相似权重向量进行聚类处理,得到至少一个权重聚合类。

可选地,所述装置还包括:

差异判断模块,用于判断所述权重向量集合中的原始权重向量之间的差异度是否大于预设差异值;如果所述权重向量集合中的原始权重向量之间的差异度不大于预设差异值,则通知所述第一权重向量选取模块从所述权重向量集合中选取至少两个第一权重向量。

本公开提供一种存储介质,其中存储有多条指令,所述指令由处理器加载,执行上述神经网络的处理方法的步骤。

本公开提供一种电子设备,所述电子设备包括;

上述的存储介质;以及

处理器,用于执行所述存储介质中的指令。

本公开方案中,可以将互为相似权重向量,且与输入向量的相关度较低的原始权重向量,即第一权重向量替换为预设权重向量,用以减少第一权重向量对应的输出向量的计算量。如此,既有助于降低神经网络的整体计算量,又可尽量避免对分类/回归的效果产生影响。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1为本公开方案神经网络的处理方法的流程示意图;

图2为本公开方案神经网络的处理装置的构成示意图;

图3为本公开方案用于神经网络处理的电子设备的结构示意图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

参见图1,示出了本公开神经网络的处理方法的流程示意图。可以包括以下步骤:

s101,获取网络层的输入向量和权重向量集合,所述权重向量集合包括n个原始权重向量,n为所述网络层的输出向量的个数。

本公开方案可应用于神经网络的测试阶段,即,已经在网络训练阶段得到各网络层的权重向量集合。可以理解地,基于输入向量x、权重向量集合中的一个原始权重向量wi,可以计算得到一个输出向量yi=x·wi,也就是说,原始权重向量与输出向量是一一对应的。

针对大规模分类任务/回归任务,若逐个计算各个输出向量,神经网络的计算量非常大,对应于此,本公开方案可以将部分原始权重向量,替换为预设权重向量,减少这部分权重向量对应的输出向量的计算量。

需要说明的是,本公开方案中的网络层可以是神经网络中的分类层或者回归层,例如,现有神经网络中较为常见的做softmax之前的全连接层或者卷积层,本公开方案对此可不做具体限定。

s102,从所述权重向量集合中选取至少两个第一权重向量,并将所述至少两个第一权重向量替换为预设权重向量,所述至少两个第一权重向量为相似权重向量,且每个第一权重向量与所述输入向量的相关度小于预设相关度。

如上文所做介绍,为了减少计算量,可以将部分原始权重向量,即本公开方案中的第一权重向量,替换为预设权重向量,用以简化输出向量的计算量。

具体地,选取出的第一权重向量可以互为相似权重向量,且与输入向量之间的相关度较小,这样,将第一权重向量替换为预设权重向量时,既有助于减小计算量,又可尽量避免对分类/回归的效果产生影响。

作为一种示例,可以先从所述n个原始权重向量中选取相似权重向量,并对所述相似权重向量进行聚类处理,得到至少一个权重聚合类;然后再计算各权重聚合类的中心向量与所述输入向量的相关度,将相关度小于所述预设相关度的权重聚合类包括的相似权重向量,确定为所述第一权重向量。

针对于此,本公开方案可做如下说明:

1.关于选取相似权重向量

本公开方案,至少可以通过以下方式选取相似权重向量:

作为一种示例,可以计算n个原始权重向量之间的相似度,将相似度超过预设相似度的原始权重向量,确定为相似权重向量。

作为一种示例,可以计算每个原始权重向量的模|wi|、n个原始权重向量的模的均值,然后根据模的均值确定匹配区间。作为一种示例,区间的变化范围可以为±0.05,例如=0.25,对应的匹配区间可以为[0.2,0.3],如此,若有至少两个原始权重向量的模位于所述匹配区间内,则可将所述至少两个原始权重向量确定为相似权重向量。本公开方案对区间的变化范围可不做具体限定。

作为一种示例,为了进一步提高计算效率提升的效果,可以适当调整相似权重向量的占比。具体地,可以判断相似权重向量的个数是否小于预设数量,如果不小于,则说明相似权重向量的占比较高,有助于保证计算效率的提升效果,可以直接进行聚类分析,确定出第一权重向量;反之,则可适当增多相似权重向量的个数,例如,可以按照预设步长扩展所述匹配区间,以使根据扩展后匹配区间确定出的相似权重向量的个数不小于所述预设数量为止。举例来说,预设步长可以为0.05,则上述示例中的匹配区间可以扩展为[0.15,0.35]。

可以理解地,可以直接设置预设数量的取值;或者,可以设置相似权重向量的预设占比,并通过预设占比以及n计算预设数量,例如,预设占比可以为90%,本公开方案对得到预设数量的方式、预设占比的取值等,可不做具体限定。

需要说明的是,通过扩展后匹配区间确定出的相似权重向量之间的差异较大,为了减小对输出向量准确性的影响,可以将扩展后匹配区间分割为至少两个小区间,再针对每个小区间进行聚类处理。如上述示例中,扩展后匹配区间为[0.1,0.4],可以分割为[0.1,0.2]、(0.2,0.3]、(0.3,0.4]这些小区间后进行后续处理,本公开方案对小区间的范围、小区间的数目等,可不做具体限定。

2.关于聚类处理

如上文所做介绍,yi=x·wi=|x||wi|cosθ,其中,输入向量的模|x|是相同的,相似权重向量的模|wu|也较为近似,也即,输出向量yi主要取决于输入向量与权重向量之间的余弦距离,故对权重向量进行聚类处理时,可以采用基于余弦距离的方式聚类。作为一种示例,可以通过k-means聚类算法、k-centroids算法等,进行聚类处理,本公开方案对此可不做具体限定。

3.关于确定第一权重向量

对相似权重向量进行聚类处理,得到权重聚合类后,可以计算每个权重聚合类的中心向量,以及输入向量与各中心向量之间的相关度,进而将相关度小于预设相关度的权重聚合类包括的相似权重向量,确定为第一权重向量。通常,第一权重向量的个数小于等于相似权重向量的个数。

可以理解地,权重聚合类的中心向量,即为权重聚合类包括的所有相似权重向量的向量均值。

作为一种示例,可以根据实际应用需求直接设置预设相关度的取值。

作为一种示例,可以设置相关度高的权重聚合类的数目n1,并据此确定出预设相关度。例如,聚类得到10个权重聚合类,且按照相关度由高到低进行排序,若预设n1为6,则可认为前6个权重聚合类与输入向量的相关度高,可将排序为6的权重聚合类对应的相关度,确定为预设相关度。对应于此,可以将排序为7、8、9、10的权重聚合类包括的相似权重向量,确定为第一权重向量。

作为一种示例,可以设置相关度高的相似权重向量的数目n2,并据此确定出预设相关度。例如,聚类得到10个权重聚合类,且按照相关度由高到低进行排序,若预设n2为4000,即,至少要确定出4000个与输入向量相关度高的相似权重向量,若第4000个相似权重向量属于排序为7的权重聚合类,则可认为前7个权重聚合类包括的相似权重向量的数目满足n2的要求,故可将排序为7的权重聚合类对应的相关度,确定为预设相关度。对应于此,可以将排序为8、9、10的权重聚合类包括的相似权重向量,确定为第一权重向量。

本公开方案对设置预设相关度的方式可不做具体限定。

综上,便可从n个原始权重向量中,选取出至少两个第一权重向量,替换为预设权重向量进行后续处理,有助于减少神经网络的计算量,提高计算效率。

在实际应用过程中,有的网络层关注的是全部输出向量;有的网络层关注的是部分输出向量,例如,实现语音识别、图像识别等任务时,重点关注的是得分值靠前的m个输出向量,对应于此,为了避免对分类/回归任务的效果产生影响,通过权重聚合类确定出的与输入向量相关度高的相似权重向量的数量,不应少于m个,如此才可得到至少m个得分值不同的输出向量。

s103,利用所述输入向量以及处理后的权重向量集合,计算得到所述网络层的n个输出向量,所述处理后的权重向量集合包括:所述权重向量集合中未被选取的原始权重向量、以及所述预设权重向量。

经上文所做处理后,可以将原始权重向量分为以下三类:

1.差异较大的原始权重向量,即,在选取相似权重向量时被排除的那部分权重向量,如果这部分权重向量的数目为k1,则可分别与输入向量点乘,通过k1次计算,得到k1个输出向量。

2.相似权重向量且与输入向量的相关度低,即第一权重向量,如果这部分权重向量的数目为k2,则可利用预设权重向量与输入向量点乘,得到k2个输出向量。

作为一种示例,若第一权重向量属于同一个权重聚合类,则可将该类的中心向量,确定为预设权重向量,通过1次计算,便可增补得到k2个输出向量。

作为一种示例,若第一权重向量属于s个权重聚合类,2≤s<k2,则可将各类的中心向量,确定为该类对应的预设权重向量,用于替换该类包括的第一权重向量,即,通过s次计算,便可增补得到k2个输出向量。

作为一种示例,若第一权重向量属于s个权重聚合类,2≤s<k2,则可计算各类的中心向量的均值,将均值确定为预设权重向量,通过1次计算,便可增补得到k2个输出向量。

本公开方案对预设权重向量的具体表现形式可不做具体限定。

3.相似权重向量且与输入向量的相关度高,即,相似权重向量中除第一权重向量之外的权重向量,如果这部分权重向量的数目为k3,则可分别与输入向量点乘,通过k3次计算,得到k3个输出向量。

综上,(k1+k2+k3)便可得到网络层的全部输出向量。

此外,由上文介绍可知,第一权重向量的一个特点就是互为相似权重向量,故,本公开方案还可以在选取第一权重向量之前,先判断所述权重向量集合中的原始权重向量之间的差异度是否大于预设差异值;如果所述权重向量集合中的原始权重向量之间的差异度大于预设差异值,则说明n个原始权重向量的差异较大,不适合进行权重向量替换,此外,可以利用输入向量和原始权重向量计算输出向量;反之,则可按照本公开方案选取第一权重向量,并替换为预设权重向量。作为一种示例,可以计算各原始权重向量的模的标准差,并据此判断各权重向量之间的差异度,本公开方案对此可不做具体限定。

由上文介绍可知,本公开方案可以应用于模式识别技术领域,用于实现分类任务或者回归任务。作为一种示例,模式识别技术领域可以体现为语音识别技术领域、图像识别技术领域,等等,本公开方案对此可不做具体限定。

参见图2,示出了本公开神经网络的处理装置的构成示意图。所述装置可以包括:

向量获取模块201,用于获取网络层的输入向量和权重向量集合,所述权重向量集合包括n个原始权重向量,n为所述网络层的输出向量的个数;

第一权重向量选取模块202,用于从所述权重向量集合中选取至少两个第一权重向量,并将所述至少两个第一权重向量替换为预设权重向量,所述至少两个第一权重向量为相似权重向量,且每个第一权重向量与所述输入向量的相关度小于预设相关度;

输出向量计算模块203,用于利用所述输入向量以及处理后的权重向量集合,计算得到所述网络层的n个输出向量,所述处理后的权重向量集合包括:所述权重向量集合中未被选取的原始权重向量、以及所述预设权重向量。

可选地,所述第一权重向量选取模块包括:

相似权重向量获取模块,用于从所述n个原始权重向量中选取相似权重向量;

聚类处理模块,用于对所述相似权重向量进行聚类处理,得到至少一个权重聚合类;

第一权重向量确定模块,用于计算各权重聚合类的中心向量与所述输入向量的相关度,将相关度小于所述预设相关度的权重聚合类包括的相似权重向量,确定为所述第一权重向量。

可选地,所述相似权重向量获取模块,用于计算每个原始权重向量的模、以及所述n个原始权重向量的模的均值;根据所述模的均值确定匹配区间,若有至少两个原始权重向量的模位于所述匹配区间内,则将所述至少两个原始权重向量确定为相似权重向量。

可选地,如果所述相似权重向量的个数小于预设数量,所述装置还包括:

匹配区间扩展模块,用于按照预设步长扩展所述匹配区间,以使根据扩展后匹配区间确定出的相似权重向量的个数不小于所述预设数量为止;

所述聚类处理模块,用于将所述扩展后匹配区间分割为至少两个小区间,分别对每个小区间对应的相似权重向量进行聚类处理,得到至少一个权重聚合类。

可选地,所述装置还包括:

差异判断模块,用于判断所述权重向量集合中的原始权重向量之间的差异度是否大于预设差异值;如果所述权重向量集合中的原始权重向量之间的差异度不大于预设差异值,则通知所述第一权重向量选取模块从所述权重向量集合中选取至少两个第一权重向量。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

参见图3,示出了本公开用于神经网络处理的电子设备300的结构示意图。参照图3,电子设备300包括处理组件301,其进一步包括一个或多个处理器,以及由存储介质302所代表的存储设备资源,用于存储可由处理组件301的执行的指令,例如应用程序。存储介质302中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件301被配置为执行指令,以执行上述神经网络的处理方法。

电子设备300还可以包括一个电源组件303,被配置为执行电子设备300的电源管理;一个有线或无线网络接口306,被配置为将电子设备300连接到网络;和一个输入输出(i/o)接口305。电子设备300可以操作基于存储在存储介质302的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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