一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种神经网络模型训练方法、装置、设备及存储介质与流程

2022-08-27 00:28:21 来源:中国专利 TAG:


1.本发明实施例涉及机器学习技术,尤其涉及一种神经网络模型训练方法、装置、设备及存储介质。


背景技术:

2.随着人工智能的发展,深度神经网络以其强大的拟合能力在众多领域取得了惊人的成绩。为了得到更好的神经网络泛化能力,现有的网络结构变得越来越复杂,网络的参数量也呈现爆炸式增长的趋势,复杂的神经网络将导致模型出现过拟合现象。即模型在训练集上表现的很好,但是在测试集或实际应用过程中上表现一般,导致模型在实际应用中预测准确度较低。


技术实现要素:

3.本发明提供一种神经网络模型训练方法、装置、设备及存储介质,能够有效防止神经网络模型出现过拟合的现象,提高神经网络模型在实际应用中的预测准确度。
4.第一方面,本发明实施例提供了一种神经网络模型训练方法,包括:
5.获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本;
6.将所述第一训练样本输入待训练的神经网络模型中进行处理,得到用于预测所述第一训练样本属于各类别的概率向量;
7.将所述第二训练样本输入待训练的神经网络模型中进行处理,得到由所述第二训练样本的特征向量组成的特征矩阵,所述第二训练样本的特征向量用于表征所述第二训练样本的属性;
8.基于所述概率向量计算一批所述第一训练样本的分类损失;
9.基于所述特征矩阵的低秩约束计算一批所述第二训练样本的正则化损失;
10.基于所述分类损失和所述正则化损失更新所述神经网络模型的参数。
11.第二方面,本发明实施例还提供了一种神经网络模型训练装置,包括:
12.训练样本获取模块,用于获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本;
13.概率向量获取模块,用于将所述第一训练样本输入待训练的神经网络模型中进行处理,得到用于预测所述第一训练样本属于各类别的概率向量;
14.特征矩阵获取模块,用于将所述第二训练样本输入待训练的神经网络模型中进行处理,得到由所述第二训练样本的特征向量组成的特征矩阵,所述第二训练样本的特征向量用于表征所述第二训练样本的属性;
15.分类损失计算模块,用于基于所述概率向量计算一批所述第一训练样本的分类损失;
16.正则化损失计算模块,用于基于所述特征矩阵的低秩约束计算一批所述第二训练样本的正则化损失;
17.参数更新模块,用于基于所述分类损失和所述正则化损失更新所述神经网络模型的参数。
18.第三方面,本发明实施例还提供了一种计算机设备,包括:
19.一个或多个处理器;
20.存储装置,用于存储一个或多个程序;
21.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明第一方面提供的神经网络模型训练方法。
22.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面提供的神经网络模型训练方法。
23.本发明实施例提供的神经网络模型训练方法,在获取的一批第一训练样本和一批第二训练样本之后,将第一训练样本和第二训练样本输入待训练的神经网络模型中进行处理,得到用于预测第一训练样本属于各类别的概率向量,以及由第二训练样本的特征向量组成的特征矩阵,基于概率向量计算一批第一训练样本的分类损失,以及基于特征矩阵的低秩约束计算一批第二训练样本的正则化损失,然后基于分类损失和正则化损失更新神经网络模型的参数。通过在分类损失中加入基于低秩约束的正则化损失,能够将人对这个神经网络模型的先验知识融入到模型的学习当中,引导模型学习出更加紧凑和更具判别性的特征,同时降低了神经网络模型的复杂度,能够有效防止神经网络模型出现过拟合的现象,从而提升模型的泛化性能,即提高神经网络模型在实际应用中的预测准确度。
附图说明
24.图1为本发明实施例一提供的一种神经网络模型训练方法的流程图;
25.图2为本发明实施例二提供的一种神经网络模型训练方法的流程图;
26.图3为本发明实施例三提供的一种分类预测方法;
27.图4为本发明实施例四提供的一种神经网络模型训练装置的结构示意图;
28.图5为本发明实施例五提供的一种分类预测装置的结构示意图;
29.图6为本发明实施例六提供的一种计算机设备的结构示意图。
具体实施方式
30.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
31.实施例一
32.图1为本发明实施例一提供的一种神经网络模型训练方法的流程图,本实施例可适用于神经网络模型参数过多导致过拟合的情况,该方法可以由本发明实施例提供的神经网络模型训练装置来执行,该装置可以由软件和/或硬件的方式实现,通常配置于计算机设备中,如图1所示,该方法具体包括如下步骤:
33.s101、获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本。
34.本发明实施例中,待训练的神经网络模型用于实现数据的分类、识别任务,本发明实施例对待训练的神经网络模型的网络结构和应用场景不做限定。示例性的,在本发明的
其中一实施例中,神经网络模型用于人脸识别,根据输入的人脸图片,预测该人脸图片所属的人。
35.用于训练神经网络模型的数据集包括多个类别的训练样本,每个类别具有多个训练样本,一个批次(batch)的数据包括多个训练样本。对于分类型模型的训练,模型输入单位是单个训练样本;对于度量型模型的训练,模型输入单位是组合样本,比如输入为人脸对(pair),本发明实施例在此不做限定。在本发明实施例中,一批第一训练样本和一批第二训练样本可以是同一批次的训练样本,也可以是不同批次的训练样本,本发明实施例在此不做限定。
36.示例性的,本发明其中一实施例中,以神经网络模型为分类型深度人脸识别模型为例,用于训练神经网络模型的数据集包括100000个人的人脸图片。
37.本发明实施例训练样本(或样本组合)可以标注有用于表示该训练样本(或样本组合)所属类别的标签或没有标注用于表示该训练样本(或样本组合)所属类别的标签,本发明实施例在此不做限定。示例性的,在本发明的一些实施例中,每个训练样本(或样本组合)标注有表示该训练样本(或样本组合)的类别的标签。对于标注有标签的训练样本,可以采用监督学习训练神经网络模型。在本发明的另一些实施例中,训练样本(或样本组合)也可以没有标注类别标签,对于这种情况,可以先采用聚类算法(例如k-means、dbscan和谱聚类等)对数据集进行聚类,得到训练样本的伪标签,然后基于伪标签采用监督学习训练神经网络模型。
38.s102、将第一训练样本输入待训练的神经网络模型中进行处理,得到用于预测第一训练样本属于各类别的概率向量。
39.将一批第一训练样本中多个第一训练样本分别输入待训练的神经网络模型中进行处理,神经网络模型可以的对输入的第一训练样本进行卷积、池化、特征融合等操作,提取出用于表征第一训练样本的属性的特征向量,并经由全连接层的转换,输出用于预测第一训练样本的类别的logits向量,logits向量经由softmax函数归一化处理,得到用于预测第一训练样本属于各类别的概率向量。概率向量中每个位置分别对应每个类别,概率向量中最大元素值的位置对应的类别即为神经网络模型预测的该第一训练样本所属的类别。
40.示例性的,如上所述,神经网络模型为分类型深度人脸识别模型,神经网络模型对输入的人脸图像进行处理,得到该人脸图片的特征向量。示例性的,特征向量为512维,通过512
×
100000的全连接层,将512为的特征向量转换为100000维的logits向量。softmax函数对logits向量进行归一化处理,得到100000维的概率向量。概率向量中100000个位置分别对应100000个人,概率向量中最大元素值的位置对应人作为模型预测的该第一训练样本所述的人。
41.s103、将第二训练样本输入待训练的神经网络模型中进行处理,得到由第二训练样本的特征向量组成的特征矩阵。
42.类似的,将一批第二训练样本中多个第二训练样本分别输入待训练的神经网络模型中进行处理,神经网络模型可以的对输入的第二训练样本进行卷积、池化、特征融合等操作,提取出用于表征第二训练样本的属性的特征向量。一批第二训练样本中多个第二训练样本的特征向量按行或列排列得到特征矩阵。
43.s104、基于概率向量计算一批第一训练样本的分类损失。
44.在本发明实施例中,可以基于概率向量计算一批第一训练样本的交叉熵损失、负对数似然损失或指数损失等作为该批训练样本的分类损失,本发明在此不做限定。
45.s105、基于特征矩阵的低秩约束计算一批第二训练样本的正则化损失。
46.图像的低秩(low-rank)表达是机器学习等领域的经典研究课题。数学上,矩阵的秩指矩阵中最大线性无关的行(或列)向量的个数;图像中,秩可以表示信息的丰富度、冗余度和噪声量,秩越小,图像的冗余度越高,信息越不丰富,噪声越少。比如一张蓝天的图片,图片中大部分是相似的(冗余度高),因此图像的秩很低,而对于一张随机噪声的图片,图片中几乎没有相似的地方,此时图像的秩很高或者达到满秩,满秩即秩等于矩阵的行(或列)数。自然图像一般都具有低秩特性,因为图像中总是存在局部或非局部的相似性,因此低秩约束常被用于图像的去噪、超分和修复等任务。
47.机器学习问题无非就是在正则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而正则化参数是防止我们的模型过分拟合我们的训练数据。因为参数太多,会导致我们的模型复杂度上升,容易过拟合。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过正则函数来实现的。
48.本发明实施例中,通过对特征矩阵的秩进行低秩约束,使特征矩阵的秩近似为一批第二训练样本中的类别数,并基于特征矩阵的低秩约束计算一批第二训练样本的正则化损失。通过在分类损失中加入基于低秩约束的正则化损失,能够将人对这个神经网络模型的先验知识融入到模型的学习当中,引导模型学习出更加紧凑和更具判别性的特征,同时有助于降低了神经网络模型的复杂度,能够有效防止神经网络模型出现过拟合的现象,从而提升模型的泛化性能,即提高神经网络模型在实际应用中的预测准确度。其中,紧凑可以用同类样本的特征向量的相似度来表征,相似度越高,紧凑型越好。在理想情况下,同类样本的特征向量组成的特征矩阵的秩为1。判别性可以用不同类样本的特征向量相似度来表征,相似度越低,判别性越好。在理想情况下,n个不同类的样本的特征向量组成的特征矩阵的秩为n。
49.s106、基于分类损失和正则化损失更新神经网络模型的参数。
50.在本发明实施例中,在分类损失的基础上,加入基于低秩约束的正则化损失,基于分类损失和正则化损失更新神经网络模型的参数。示例性的,在本发明的其中一实施例中,为正则化损失设定超参数,计算正则化损失与超参数的乘积,然后将该乘积与分类损失相加,得到总损失。其中,超参数用于平衡分类损失和正则化损失,可以通过交叉验证的方式选择取值。基于该总损失更新神经网络模型的参数。示例性的,在本发明的一些实施例中,将总损失与损失阈值进行比较,在总损失大于损失阈值时,更新神经网络模型的参数,并返回获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本的步骤,以获取训练样本,再次对神经网络模型进行训练,如此循环,直至总损失小于或等于损失阈值时,确定神经网络模型训练完成。
51.本发明实施例提供的神经网络模型训练方法,在获取的一批第一训练样本和一批第二训练样本之后,将第一训练样本和第二训练样本输入待训练的神经网络模型中进行处理,得到用于预测第一训练样本属于各类别的概率向量,以及由第二训练样本的特征向量组成的特征矩阵,基于概率向量计算一批第一训练样本的分类损失,以及基于特征矩阵的
低秩约束计算一批第二训练样本的正则化损失,然后基于分类损失和正则化损失更新神经网络模型的参数。通过在分类损失中加入基于低秩约束的正则化损失,能够将人对这个神经网络模型的先验知识融入到模型的学习当中,引导模型学习出更加紧凑和更具判别性的特征,同时降低了神经网络模型的复杂度,能够有效防止神经网络模型出现过拟合的现象,从而提升模型的泛化性能,即提高神经网络模型在实际应用中的预测准确度。
52.实施例二
53.图2为本发明实施例二提供的一种神经网络模型训练方法的流程图,本实施例在上述实施例一的基础上进行细化,详细描述了该神经网络模型训练方法的具体过程,如图2所示,该方法具体包括如下步骤:
54.s201、获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本。
55.示例性的,在本发明的其中一实施例中,神经网络模型用于人脸识别,根据输入的人脸图片,预测该人脸图片所属的人。给定人脸数据集x={x1,x2,...,xn}={x1,x2,...,xc},其中n为人脸图片总量,c为人数总量,xi表示第i张人脸图片,其类别标签记为yi,xi表示第i个人的人脸图片的集合。一个批次具有若干张人脸图片,每张人脸图片标注有标示该人脸图片所述的人的标签。示例性的,如前述实施例所述,该标签可以是真实标签,也可以通过聚类算法得到的伪标签,本发明实施例在此不做限定。
56.在本发明的一些实施例中,一批第一训练样本和一批第二训练样本可以是不同批次的训练样本,上述步骤s201可以包括如下步骤:
57.1、从数据集中随机选择多个训练样本作为一批第一训练样本。
58.具体的,从数据集中随机选择多个训练样本作为一批第一训练样本,记为{xi}n,其中,n表示一批第一训练样本中训练样本的数量。
59.2、从数据集中随机选择k个类别,且每个类别随机选择m个训练样本作为一批第二训练样本。
60.具体的,从数据集中随机选择k个类别,且每个类别随机选择m个训练样本,一共k
×
m个训练样本作为一批第二训练样本,记为x
batch
。示例性的,k=32,m=8,即一批第二训练样本包括32个类别,每个类别有8个训练样本,一共256个样本。
61.在本发明的另一些实施例中,为了简化训练样本的选取过程,提高模型训练效率,一批第一训练样本和一批第二训练样本可以是同一批次的训练样本,上述步骤s201可以包括如下步骤:
62.1、从数据集中随机选择k个类别,且每个类别随机选择m个训练样本作为一批第一训练样本和一批第二训练样本。示例性的,k=32,m=8,即一批第一训练样本和一批第二训练样本为相同批次的训练样本,包括32个类别,每个类别有8个训练样本,一共256个样本。
63.s202、将第一训练样本输入主干网络中进行处理,得到第一训练样本的特征向量。
64.示例性的,在本发明实施例中,以分类型深度人脸识别模型为例,神经网络模型可划分为主干网络(backbone)和头部网络(head),主干网络对输入的人脸图片(第一训练样本)进行处理,输出该人脸图片的特征向量,头部网络对输入的特征向量进行处理,输出用于预测该人脸图片属于各人的概率值。本发明实施例中,记人脸图片(第一训练样本)为xi,记主干网络为f
θ
(),头部网络为其中θ和分别表示主干网络和头部网络的参数,则第一训练样本xi的特征向量记为f
θ
(xi)。
65.在本发明实施例中,对主干网络的结构不做限制,可以选用经典的googlenet、vggnet、resnet或densenet等,也可以选择用于移动端的轻量化模型,例如mobilenet或shufflenet等,以及为人脸识别任务设计的mobilenet的变体mobilefacenet等。对于resnet这类模型,通常输出512维的特征向量,对于mobilefacenet这类模型,通常输出128维的特征向量。
66.s203、将第一训练样本的特征向量输入头部网络中进行处理,得到用于预测第一训练样本属于各类别的概率向量。
67.具体的,第一训练样本的特征向量输入头部网络中进行处理,经由头部网络中的全连接层的转换,输出用于预测第一训练样本的类别的logits向量,logits向量经由softmax函数归一化处理,得到用于预测第一训练样本属于各类别的概率向量
68.在本发明实施例中,对头部网络的结构不做限制,示例性的,只采用一个全连接层,其输入是第一训练样本的特征向量,输出是第一训练样本的类别logits向量。比如人脸训练集含有100000个人的人脸图片,则全连接层将512维或128维的特征向量转化成100000维的logits向量。logits向量经由softmax函数归一化处理,得到用于预测第一训练样本属于各类别的概率向量。概率向量中每个位置分别对应每个类别,概率向量中最大元素值的位置对应的类别即为神经网络模型预测的该第一训练样本所属的类别。
69.s204、将第二训练样本输入主干网络中进行处理,得到由第二训练样本的特征向量组成的特征矩阵。
70.具体的,将第二训练样本输入主干网络中进行处理,得到用于表征第二训练样本的属性的特征向量。一批第二训练样本中多个第二训练样本的特征向量按行或列排列得到特征矩阵f
θ
(x
batch
)。
71.s205、基于概率向量计算第一训练样本的交叉熵损失。
72.在本发明实施例中,可以基于概率向量计算一批第一训练样本的交叉熵损失、负对数似然损失或指数损失等作为该批训练样本的分类损失,本发明在此不做限定。
73.示例性的,在本发明一具体实施例中,基于概率向量计算第一训练样本的交叉熵损失作为第一训练样本的分类损失。示例性的,用于训练神经网络模型的数据集包括100000个人的人脸图片,即本发明实施例中的神经网络模型应用于多分类问题。对于多分类问题,第一训练样本的交叉熵损失的计算公式如下:
[0074][0075]
其中,c为类别数量,yc为指示变量(为0或1),如果该类别和训练样本的标签表示的类别相同就是1,否则是0,pc为模型预测的训练样本属于类别c的概率值。记第一训练样本的交叉熵损失为
[0076]
s206、计算各第一训练样本的交叉熵损失之和,得到分类损失。
[0077]
具体的,计算该批第一训练样本中各第一训练样本的交叉熵损失之和,得到该批训练样本的分类损失。具体的,该批训练样本的分类损失的计算公式如下:
[0078][0079]
其中,n一个批次中训练样本的数量,y
ic
为指示变量(为0或1),如果该类别和第一训练样本的标签表示的类别相同就是1,否则是0,p
ic
为模型预测的第i个训练样本属于类别c的概率值,c为类别数量。示例性的,本发明实施例中,n=256,c=100000。记一批第一训练样本的分类损失为
[0080]
s207、计算特征矩阵的核范数。
[0081]
在本发明实施例中,计算特征矩阵的核范数,来近似特征矩阵的秩。核范数是矩阵奇异值的和,用于约束矩阵的低秩。在本发明的其他实施例中,也可以采用其他改进形式的核范数,例如截断核范数来近似特征矩阵的秩,本发明实施例在此不做限定。特征矩阵f
θ
(x
batch
)的核范数记为||f
θ
(x
batch
)||
*

[0082]
s208、计算核范数与特征矩阵的秩的差值,特征矩阵的秩为一批第二训练样本中的类别数。
[0083]
基于一批第二训练样本x
batch
的特征矩阵f
θ
(x
batch
),可以计算低秩正则损失,核心思想是约束特征矩阵的秩近似为k。该想法简单自然,因为x
batch
包含的类别数为k,且希望同类样本能提取到近似的特征表达。在本发明实施例中,采用特征矩阵的核范数来近似特征矩阵的秩,计算核范数与特征矩阵的秩k的差值来约束特征矩阵的秩。
[0084]
s209、基于差值确定一批第二训练样本的正则化损失。
[0085]
基于特征矩阵的核范数与特征矩阵的秩k的差值确定一批第二训练样本的正则化损失,记正则化损失为l
rank
(f
θ
(x
batc
))。示例性的,在本发明的一些实施例中,将特征矩阵的核范数与特征矩阵的秩k的差值的绝对值作为一批第二训练样本的正则化损失,具体的,正则化损失lr
ank
的计算公式如下:
[0086]
l
rank
=|||f
θ
(x
batc
)||
*-k|
[0087]
在本发明的另一些实施例中,将特征矩阵的核范数与特征矩阵的秩k的差值的绝对值作为一批第二训练样本的正则化损失,具体的,正则化损失l
rank
的计算公式如下:
[0088]
l
rank
=(||f
θ
(x
batc
)||
*-k)2[0089]
s210、计算正则化损失与超参数的乘积。
[0090]
示例性的,在本发明的其中一实施例中,为正则化损失设定超参数,计算正则化损失与超参数的乘积。其中,超参数用于平衡分类损失和正则化损失,在本发明的一些实施例中,超参数可以通过交叉验证的方式人为指定取值。在本发明的另一些实施例中,超参数也可以基于分类损失和正则损失自适应取值,示例性的,自适应公式如下:
[0091][0092]
其中,λ为超参数,a是一个常数,比如设置为0.1,表示始终让正则损失与超参数的乘积λl
rank
是分类损失lc的10%。虽然这里也要人为指定一个常数a,但是和直接人为指定超参数λ是不同的。由于每次迭代训练过程中分类损失lc和正则化损失l
rank
都不相同,所以在训练过程中超参数λ可以根据当前批次数据的分类损失lc和正则化损失l
rank
自适应取值,即
即总损失对正则化损失l
rank
的偏导数是变化的,而后者(即人为指定的情况)对应的偏导数是固定的λ。
[0093]
s211、计算乘积与分类损失的和,得到总损失。
[0094]
计算正则损失与超参数的乘积λl
rank
与分类损失的和,得到总损失,计算公式如下:
[0095][0096]
s212、判断总损失是否大于损失阈值。
[0097]
示例性的,在本发明的一些实施例中,将总损失l
total
与损失阈值进行比较,在总损失l
total
大于损失阈值时,更新神经网络模型的参数,并返回执行步骤s201、获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本,在以获取训练样本,再次对神经网络模型进行训练。如此循环,直至总损失小于或等于损失阈值时,执行步骤s213、确定神经网络模型训练完成。
[0098]
本发明实施例提供的神经网络模型训练方法,通过在分类损失中加入基于低秩约束的正则化损失,能够将人对这个神经网络模型的先验知识融入到模型的学习当中,引导模型学习出更加紧凑和更具判别性,同时降低了神经网络模型的复杂度,能够有效防止神经网络模型出现过拟合的现象,从而提升模型的泛化性能,即提高神经网络模型在实际应用中的预测准确度。此外,特征矩阵为主干网络输出的深度特征矩阵,通过在损失函数中加入基于低秩约束的正则化损失,低秩正则损失是对训练样本的深度特征矩阵进行低秩约束,将低秩约束用于深度神经网络的训练,有利于提升深度模型的预测准确度。
[0099]
实施例三
[0100]
图3为本发明实施例三提供的一种分类预测方法,本实施例可用于分类预测,该方法采用如本发明前述任意实施例提供的神经网络模型的训练方法训练得到的神经网络模型,该方法可以由本发明实施例提供的分类预测装置来执行,该装置可采用软件和/或硬件的方式实现,并集成于本发明实施例提供的计算机设备中,如图3所示,该方法具体包括如下步骤:
[0101]
s301、获取待分类的样本。
[0102]
示例性的,在本发明一具体实施例中,待分类的样本为人脸图片。
[0103]
s302、将待分类的样本输入训练好的神经网络模型中进行处理,得到待分类的样本所属的类别。
[0104]
示例性的,神经网络模型可以的对输入的人脸图片进行卷积、池化、特征融合等操作,提取出用于表征人脸图片的特征的特征向量,并经由全连接网络层的转换,输出用于预测人脸图片的所属各id的logits向量,logits向量经由softmax函数归一化处理,得到用于预测人脸图片属于各id的概率向量。概率向量中每个位置分别对应每个类别,概率向量中最大元素值的位置对应的类别即为模型预测的该待分类的样本所属的类别。示例性的,概率向量中100000个位置分别对应100000个人的id,第一概率向量中最大元素值的位置对应的id作为模型预测的该待分类的样本的预测id。
[0105]
在本发明一具体实施例中,以分类型深度人脸识别模型为例,神经网络模型可划
分为主干网络和头部网络。对于人脸识别任务而言,头部网络仅用于训练阶段,当模型训练完毕后,头部网络即被丢弃,部署应用时只需要主干网络。示例性的,以公司园区的人脸识别为例,在系统启用前,先构建人脸图片库,进行人脸对齐等预处理操作,再用主干网络提取人脸图片的特征向量,得到人脸特征库(每个特征对应一个id)。当系统启用后,利用人脸检测算法在摄像头拍摄的画面中,定位出待识别的人脸区域,经过同样的预处理操作后,将待识别人脸图片送入主干网络提取特征向量,然后计算该特征向量与人脸特征库中特征向量的两两相似度,从人脸特征库中找到相似度最大的特征向量作为目标特征向量,若该相似度大于人为设定的阈值,则匹配成功,认为待识别人脸的身份为该目标特征向量对应的id,否则匹配失败,认为待识别人脸不是园区注册人员。
[0106]
实施例四
[0107]
图4为本发明实施例四提供的一种神经网络模型训练装置的结构示意图,如图4所示,该装置包括:
[0108]
训练样本获取模块401,用于获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本;
[0109]
概率向量获取模块402,用于将所述第一训练样本输入待训练的神经网络模型中进行处理,得到用于预测所述第一训练样本属于各类别的概率向量;
[0110]
特征矩阵获取模块403,用于将所述第二训练样本输入待训练的神经网络模型中进行处理,得到由所述第二训练样本的特征向量组成的特征矩阵,所述第二训练样本的特征向量用于表征所述第二训练样本的属性;
[0111]
分类损失计算模块404,用于基于所述概率向量计算一批所述第一训练样本的分类损失;
[0112]
正则化损失计算模块405,用于基于所述特征矩阵的低秩约束计算一批所述第二训练样本的正则化损失;
[0113]
参数更新模块406,用于基于所述分类损失和所述正则化损失更新所述神经网络模型的参数。
[0114]
在本发明的一些实施例中,训练样本获取模块401包括:
[0115]
第一获取单元,用于从数据集中随机选择多个训练样本作为一批第一训练样本;
[0116]
第二获取单元,用于从数据集中随机选择k个类别,且每个类别随机选择m个训练样本作为一批第二训练样本。
[0117]
在本发明的一些实施例中,一批第一训练样本和一批第二训练样本为相同批次的训练样本,训练样本获取模块401包括:
[0118]
第三获取单元,用于从数据集中随机选择k个类别,且每个类别随机选择m个训练样本作为一批第一训练样本和一批第二训练样本。
[0119]
在本发明的一些实施例中,所述神经网络模型包括主干网络和头部网络,概率向量获取模块402包括:
[0120]
特征向量获取单元,用于将所述第一训练样本输入所述主干网络中进行处理,得到所述第一训练样本的特征向量;
[0121]
概率向量获取单元,用于将所述第一训练样本的特征向量输入所述头部网络中进行处理,得到用于预测所述第一训练样本属于各类别的概率向量。
[0122]
在本发明的一些实施例中,分类损失计算模块404包括:
[0123]
交叉熵损失计算单元,用于基于所述概率向量计算所述第一训练样本的交叉熵损失;
[0124]
分类损失计算单元,用于计算各所述第一训练样本的交叉熵损失之和,得到分类损失。
[0125]
在本发明的一些实施例中,正则化损失计算模块405包括:
[0126]
核范数计算单元,用于计算所述特征矩阵的核范数;
[0127]
差值计算单元,用于计算所述核范数与所述特征矩阵的秩的差值,所述特征矩阵的秩为一批所述第二训练样本中的类别数;
[0128]
正则化损失计算单元,用于基于所述差值确定一批所述第二训练样本的正则化损失。
[0129]
在本发明的一些实施例中,参数更新模块406包括:
[0130]
乘积计算单元,用于计算所述正则化损失与超参数的乘积;
[0131]
总损失计算单元,用于计算所述乘积与所述分类损失的和,得到总损失;
[0132]
参数更新单元,用于在所述总损失大于损失阈值时,更新所述神经网络模型的参数,并返回执行获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本的步骤;
[0133]
训练完成确定单元,用于在所述总损失小于或等于损失阈值时,确定所述神经网络模型训练完成。
[0134]
上述神经网络模型训练装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
[0135]
实施例五
[0136]
图5为本发明实施例提供五的一种分类预测装置的结构示意图,如图5所示,该装置包括:
[0137]
待分类样本获取模块501,用于获取待分类的样本。
[0138]
类别确定模块502,用于将待分类的样本输入训练好的神经网络模型中进行处理,得到待分类的样本所属的类别。
[0139]
上述分类预测装置可执行本发明任意实施例所提供的分类预测方法,具备执行方法相应的功能模块和有益效果。
[0140]
实施例六
[0141]
本发明实施例六提供了一种计算机设备,图6为本发明实施例六提供的一种计算机设备的结构示意图,如图6所示,该计算机设备包括处理器601、存储器602、通信模块603、输入装置604和输出装置605;计算机设备中处理器601的数量可以是一个或多个,图6中以一个处理器601为例;计算机设备中的处理器601、存储器602、通信模块603、输入装置604和输出装置605可以通过总线或其他方式连接,图6中以通过总线连接为例。上述处理器601、存储器602、通信模块603、输入装置604和输出装置605可以集成在计算机设备的控制主板上。
[0142]
存储器602作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的神经网络模型训练方法或分类预测方法对应的模块。处
理器601通过运行存储在存储器602中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述实施例提供的神经网络模型训练方法或分类预测方法。
[0143]
存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器602可进一步包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0144]
通信模块603,用于与外界设备(例如智能终端)建立连接,并实现与外界设备的数据交互。输入装置604可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。
[0145]
本实施例提供的一种计算机设备,可执行本发明上述任意实施例提供的神经网络模型训练方法或分类预测方法,具体相应的功能和有益效果。
[0146]
实施例七
[0147]
本发明实施例七提供了一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明上述任意实施例提供的神经网络模型训练方法或分类预测方法。
[0148]
神经网络模型训练方法包括:
[0149]
获取用于训练神经网络模型的一批第一训练样本和一批第二训练样本;
[0150]
将所述第一训练样本输入待训练的神经网络模型中进行处理,得到用于预测所述第一训练样本属于各类别的概率向量;
[0151]
将所述第二训练样本输入待训练的神经网络模型中进行处理,得到由所述第二训练样本的特征向量组成的特征矩阵,所述第二训练样本的特征向量用于表征所述第二训练样本的属性;
[0152]
基于所述概率向量计算一批所述第一训练样本的分类损失;
[0153]
基于所述特征矩阵的低秩约束计算一批所述第二训练样本的正则化损失;
[0154]
基于所述分类损失和所述正则化损失更新所述神经网络模型的参数。
[0155]
分类预测方法采用如本发明上述任意实施例提供的神经网络模型训练方法训练得到的神经网络模型,包括:
[0156]
获取待分类的样本;
[0157]
将待分类的样本输入训练好的神经网络模型中进行处理,得到待分类的样本所属的类别。
[0158]
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明实施例所提供的神经网络模型训练方法或分类预测方法中的相关操作。
[0159]
需要说明的是,对于装置、设备和存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0160]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的神经网络模型训练方法或分类预测方法。
[0161]
值得注意的是,上述装置中,所包括的各个模块、单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0162]
应当理解的是,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0163]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0164]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献