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

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

2022-07-02 05:08:14 来源:中国专利 TAG:


1.本说明书实施例涉及计算机技术领域,尤其涉及一种训练神经网络的方法、装置、设备及存储介质。


背景技术:

2.将有标签数据和无标签数据作为机器学习训练样本的半监督学习法,能够融合无标签数据数量多且易收集,有标签样本具有准确标记的优点,挖掘出无标签数据中蕴含的有价值信息,从而实现对无标签数据的有效利用。然而,半监督学习法存在训练过程繁琐、训练效率低的问题。


技术实现要素:

3.为克服相关技术中存在的问题,本说明书提供了一种训练神经网络的方法、装置、设备及存储介质。
4.根据本说明书实施例的第一方面,提供一种训练神经网络的方法,所述神经网络为孪生神经网络,所述孪生神经网络包括第一神经网络和第二神经网络,所述第一神经网络与所述第二神经网络具有相同的网络结构和网络参数;所述方法包括:
5.获取训练数据,所述训练数据包括有标签数据和无标签数据;
6.将所述有标签数据和无标签数据成对输入所述孪生神经网络进行分类训练,其中,所述有标签数据被输入所述第一神经网络,所述无标签数据被输入所述第二神经网络;
7.确定所述第一神经网络的第一目标网络参数;
8.将所述第二神经网络的网络参数更新为所述第一目标网络参数;
9.基于所述第一目标网络参数确定目标孪生神经网络。
10.根据本说明书实施例的第二方面,提供一种训练神经网络的装置,包括:
11.获取模块,用于获取训练数据,所述训练数据包括有标签数据和无标签数据;
12.输入模块,用于将所述有标签数据和无标签数据成对输入孪生神经网络进行分类训练,其中,所述有标签数据被输入第一神经网络,所述无标签数据被输入第二神经网络,所述第一神经网络和所述第二神经网络具有相同的网络结构和网络参数;
13.第一确定模块,用于确定所述第一神经网络的第一目标网络参数;
14.更新模块,用于将所述第二神经网络的网络参数更新为所述第一目标网络参数;
15.第二确定模块,用于基于所述第一目标网络参数确定目标孪生神经网络。
16.根据本说明书实施例的第三方面,提供一种分类方法,包括步骤:
17.获取待分类数据;
18.将所述待分类数据输入指定的神经网络生成分类结果,其中,所述指定的神经网络利用上述第一方面所述的方法训练生成。
19.根据本说明书实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现
上述第一方面所述的方法。
20.根据本说明书实施例的第五方面,提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面所述的方法。
21.本说明书的实施例提供的技术方案可以包括以下有益效果:
22.本说明书实施例采用孪生神经网络架构在使用有标签数据的同时使用无标签数据对神经网络进行训练,具有相同网络结构和网络参数的第一神经网络和第二神经网络的训练能够同时进行。在此基础上分别将有标签和无标签数据输入第一神经网络和第二神经网络,本说明书实施例采用的神经网络训练方法中包含的两部分(1)确定第一目标网络参数的过程相当于半监督学习方法中利用有标签数据训练神经网络;(2)基于所述第一目标网络参数的过程则相当于半监督学习方法中利用有标签数据训练好的神经网络对无标签数据预测以及再同时使用有标签数据和无标签数据训练该模型的过程,从而简化了使用有标签和无标签数据训练神经网络的过程、提高了训练效率。
23.此外,在上述本说明书实施例的训练过程中无需更换训练数据集,不会出现半监督学习方法中因更换训练集而导致的训练中断问题,从而能够保持整个训练过程流畅不中断,提高训练效率。
24.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
26.图1是本说明书根据一示例性实施例示出的一种孪生神经网络的结构示意图。
27.图2是本说明书根据一示例性实施例示出的一种训练神经网络的方法的流程图。
28.图3是本说明书根据一示例性实施例示出的一种构建第三损失函数的方法的流程图。
29.图4是本说明书实施例训练神经网络的装置所在计算机设备的一种硬件结构图。
30.图5是本说明书根据一示例性实施例示出的一种训练神经网络的装置的框图。
31.图6是本说明书根据一示例性实施例示出的一种分类方法的流程图。
具体实施方式
32.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
33.在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
34.应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但
这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
35.将有标签数据和无标签数据作为机器学习训练样本的半监督学习法,能够融合无标签数据数量多且易收集,有标签样本具有准确标记的优点,挖掘出无标签数据中蕴含的有价值信息,从而实现对无标签数据的有效利用。常规的半监督学习方法通常包括三个步骤,先利用有标签数据训练一个神经网络模型,然后使用训练后的该神经网络模型对无标签数据进行预测并打上伪标签,最后利用有标签数据和打上伪标签的无标签数据对神经网络模型进一步训练。由此可知,在半监督学习方法的训练过程中需要频繁更换训练数据集,且训练步骤需要依次进行,从而存在训练过程繁琐、训练效率低的问题。
36.针对上述问题,本说明书实施例采用了一种训练神经网络的方法,基于孪生神经网络实现,旨在实现利用无标签数据对神经网络进行训练且训练过程简练。首先,对上述孪生神经网络的训练过程进行介绍。如图1所示,图1是根据本说明书一示例性实施例示出的一种孪生神经网络的结构示意图,孪生神经网络包括第一神经网络110和第二神经网络120,第一神经网络110和第二神经网络120具有相同的网络结构和网络参数,且孪生神经网络存在两个输入(输入1和输入2)。可以基于损失函数130表征孪生神经网络的预测效果。
37.接下来对本说明书实施例采用的训练神经网络的方法进行详细说明。
38.如图2所示,图2是本说明书根据一示例性实施例示出的一种训练神经网络的方法的流程图,包括以下步骤:
39.步骤101,获取训练数据,所述训练数据包括有标签数据和无标签数据;
40.为了实现对无标签数据的有效利用,本说明书实施例用于训练神经网络的训练数据同时包含有标签数据和无标签数据。在训练过程中,输入的训练数据均来自于同一个预设训练数据集,故整个训练过程流畅地进行而不会中断,有利于提高训练效率。
41.步骤103,将所述有标签数据和无标签数据成对输入所述孪生神经网络进行分类训练,其中,所述有标签数据被输入所述第一神经网络,所述无标签数据被输入所述第二神经网络;
42.需要说明的是,“成对输入”的有标签数据和无标签数据不一定属于同一个类别,例如输入的有标签数据类别为“狗”,与其成对输入的无标签数据的真实类别可以是“狗”,也可以是“猫”或其他类别。
43.由于训练时输入的训练数据数量会影响训练的计算量,因此对于神经网络的每一次训练而言,输入的训练数据可以是训练数据集中的所有数据,也可以是训练数据集中的部分数据。出于对计算量的考虑,当训练数据集中训练数据的数量较大时可以将训练数据集划分为多个小的数据集,以划分所得的小数据集为单位作为每次训练所输入的训练数据。在本说明书一实施例中,将有标签数据和无标签数据成对输入孪生神经网络进行分类训练包括:将训练数据划分为若干个batch,每个batch中均包含有标签数据和无标签数据;以batch为单位分别输入训练数据。举个例子,假设训练数据集中包含1000个有标签数据,2000个无标签数据,那么可以将该训练数据集划分为500个batch,每一个batch包含200个有标签数据和300个无标签数据;对500个batch进行编号,分别为batch1-batch500,采用轮
询的方式从batch1-batch500依次选取其中一个作为每一次训练输入的训练数据,比如第一次训练时选取batch1,第二次训练时选择batch2,以此类推,当第501次训练时再次选择batch1。
44.通常有标签数据的数量远少于无标签数据的数量,那么当有标签数据和无标签数据在同时输入时有标签数据会先于无标签数据被获取完。在本技术一实施例中,将有标签数据和无标签数据成对输入所述孪生神经网络的步骤包括:分别轮询获取有标签数据和无标签数据;在无标签数据未结束轮询、且有标签数据已完成轮询的情况下,重新轮询获取有标签数据。举个例子,假设待输入的有标签数据有a1和a2,待输入的无标签数据有b1、b2和b3,分别轮询获取有标签数据和无标签数据后,第一次输入的数据为a1和b1,第二次输入的数据为a2和b2,第三次输入时则再次选择a1和b3一起输入。也就是说,数量较少的有标签数据可以被重复利用。此外,对于训练数据集中无标签数据的数量少于有标签数据的数量的情况,则无标签数据被重复利用。
45.步骤105,确定所述第一神经网络的第一目标网络参数;
46.步骤107,将所述第二神经网络的网络参数更新为所述第一目标网络参数;
47.第一目标网络参数按照可表征神经网络预测效果的预设条件确定,预设条件可以包括对验证集的预测准确率达到预设阈值、训练次数达到预设阈值或损失函数的数值达到预设阈值。以预设条件为对验证集的预测分类准确率达到预设阈值为例,在本说明书一实施例中,确定第一神经网络的第一目标网络参数的步骤包括:获取验证集,验证集为有标签数据;将验证集输入孪生神经网络;计算孪生神经网络模型对验证集的预测准确率,将预测准确率与预设阈值进行比较;当验证集的准确率不小于预设值时,将孪生神经网络当前的网络参数确定为第一目标网络参数。
48.步骤109,基于所述第一目标网络参数确定目标孪生神经网络。
49.步骤105-步骤109体现了本说明书实施例对孪生神经网络训练过程中的两个部分:(1)利用有标签数据对孪生神经网络进行优化(步骤105和步骤107);(2)在(1)中优化后的基础上同时利用有标签数据和无标签数据对孪生神经网络进一步优化(步骤109)。先利用有标签数据进行优化的目的在于保证孪生神经网络对无标签数据的预测分类结果具有较高的准确度,从而提高孪生神经网络的分类能力。由于具有相同网络结构和网络参数的第一神经网络和第二神经网络能够同时训练,故同时利用有标签数据和无标签数据对孪生神经网络进一步优化时相当于同时实现半监督学习方法中利用有标签数据训练好的神经网络对无标签数据预测以及再同时使用有标签数据和无标签数据训练该模型的过程,从而简化了同时使用有标签和无标签数据训练神经网络的过程、提高了训练效率。
50.需要说明的是,在本说明书实施例中训练神经网络的过程中第一神经网络和第二神经网络的网络参数保持相同。在本技术一实施例中采用网络参数复制的方式实现,将第二神经网络的网络参数更新为第一目标网络参数的步骤包括:将第一目标网络参数复制到第二神经网络。
51.对神经网络进行训练和优化是为了基于损失函数对神经网络中各项网络参数进行调整以使得神经网络的性能达到预期效果,从而确定性能达到预期效果所对应的网络参数以得到目标神经网络。在本说明书一实施例中,第一目标网络参数根据第一损失函数确定,目标孪生神经网络根据第二损失函数确定,第二损失函数基于第一损失函数和第三损
失函数构建;第三损失函数基于属于同一类别的各训练数据之间的相似度构建。由于本说明书实施例训练神经网络所采用的训练数据包括有标签数据和无标签数据,故用于确定目标孪生神经网络的损失函数应综合考虑对有标签数据和无标签数据的预测分类效果。第一损失函数依据第一神经网络对有标签数据输出的预测分类结果与有标签数据的真实类别之间的差别来构建,在本说明书另一实施例中,第一损失函数包括交叉熵损失函数(cross entropy loss)。此外,第一损失函数还可以包括其他可用于表征有标签数据的预测值和真实值之间差别的损失函数,如hinge损失函数或logistic损失函数。可以理解的是,有标签数据所属类别根据标签确定,无标签数据所属类别则根据第二神经网络输出的预测分类结果确定,预测分类结果包括具体的类别或属于各个类别的概率。
52.在本技术又一实施例中,相似度通过特征向量集表征,每一个类别对应一个特征向量集;其中,特征向量集为,属于与该特征向量集所对应类别的多个训练数据输入孪生神经网络后所输出的特征向量的集合。需要说明的是,在同一个特征向量集中既包括有标签数据的特征向量也包括无标签数据的特征向量。举个例子,假设根据无标签数据b3和b4的预测分类结果确定b3和b4均与有标签数据a3属于同一类别i,且a3、b3和b4分别对应的特征向量为a3、b3和b4,则a3、b3和b4构成与类别i对应的特征向量集合。在本说明书另一实施例中,特征向量集中的特征向量包括输入孪生神经网络的输出层的第一特征向量。此外,特征向量集中的特征向量还可以包括孪生神经网络中其他层输出的特征向量。
53.表征相似度的指标有多种,在本说明书一实施例中,相似度基于特征向量集中各特征向量之间的余弦距离表征。此外,还可以基于特征向量集中各特征向量之间的欧式距离表征,或采用其他表征相似度的方式,本说明书不作限制。
54.关于第三损失函数的构建方法,图3是根据本说明书一示例性实施例示出的一种构建第三损失函数的方法流程图(如图3所示),包括:
55.步骤201,将同一特征向量集中的有标签数据对应的第一特征向量和其他第一特征向量的余弦距离之和确定为第一余弦距离之和;
56.步骤203,确定各第一余弦距离之和的平均值为第一余弦距离平均值;
57.步骤205,将同一特征向量集中的无标签数据对应的第一特征向量和其他第一特征向量的余弦距离之和确定为第二余弦距离之和;
58.步骤207,确定各第二余弦距离之和的平均值为第二余弦距离平均值;
59.步骤209,将第一余弦距离平均值与第二余弦距离平均值之和确定为第三损失函数。
60.接下来结合一实施例对本说明书所采用的训练神经网络的方法进行介绍。上述训练神经网络的方法基于孪生神经网络实现,该孪生神经网络包括第一神经网络和第二神经网络,且第一神经网络和第二神经网络具有相同的网络结构和网络参数,第二神经网络的网络参数由第一神经网络的网络参数复制得到以保证训练过程中二者的网络参数相同。
61.首先,获取预设训练数据集中的所有训练数据,训练数据包括有标签数据和无标签数据;
62.第二,将获取到的训练数据划分为若干个batch,每个batch中均包含有标签数据和无标签数据;
63.第三,采用轮询的方式选择一个batch作为当前次训练的输入数据输入孪生神经
网络,输入方式为有标签数据和无标签数据成对输入;
64.第四,每完成一次训练便将预设的验证数据集输入孪生神经网络,计算孪生神经网络对验证数据集的预测准确率并将预测准确率与预设阈值比较;
65.若预测准确率未达到预设阈值则基于交叉熵损失函数调整第一神经网络的网络参数;
66.若预测准确率达到预设阈值则将第一神经网络的当前网络参数确定为第一目标网络参数;
67.第五,将第二神经网络的网络参数更新为第一目标网络参数;
68.第六,在第一网络参数的基础上基于第三损失函数进一步调整第一神经网络的网络参数,当第三损失函数值达到预设值时将第一神经网络当前的网络参数确定为第二目标网络参数;
69.其中,第三损失函数基于属于同一类别中各所述训练数据的特征向量之间的余弦距离构建,所述特征向量为输入所述孪生神经网络的输出层的第一特征向量;
70.第七,将第二神经网络的网络参数更新为第二目标网络参数,得到目标孪生神经网络。
71.此外,与前述方法的实施例相对应,本说明书还提供了一种训练神经网络的装置及其所应用的终端的实施例。
72.本说明书训练神经网络的装置实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在安全保护的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书实施例训练神经网络的装置所在计算机设备400的一种硬件结构图,除了图4所示的处理器410、内存430、网络接口420、以及非易失性存储器440之外,实施例中装置431所在的计算机设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
73.相应的,本说明书还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述任一方法实施例所述的方法。
74.如图5所示,图5是本说明书根据一示例性实施例示出的一种训练神经网络的装置的框图,所述装置包括:
75.获取模块510,用于获取训练数据,所述训练数据包括有标签数据和无标签数据;
76.输入模块520,用于将所述有标签数据和无标签数据成对输入孪生神经网络进行分类训练,其中,所述有标签数据被输入第一神经网络,所述无标签数据被输入第二神经网络,所述第一神经网络和所述第二神经网络具有相同的网络结构和网络参数;
77.第一确定模块530,用于确定所述第一神经网络的第一目标网络参数;
78.更新模块540,用于将所述第二神经网络的网络参数更新为所述第一目标网络参数;
79.第二确定模块550,用于基于所述第一目标网络参数确定目标孪生神经网络。
80.上述装置中各个模块的功能和作用的实现过程具体详见上述方法实施例中对应步骤的实现过程,在此不再赘述。
81.在本说明书一些装置实施例中,第一目标网络参数根据第一损失函数确定;目标孪生神经网络根据第二损失函数确定,第二损失函数由所述基于第一损失函数和第三损失函数构建;第三损失函数基于属于同一类别的各训练数据之间的相似度构建。
82.在本说明书另一些装置实施例中,相似度通过特征向量集表征,每一个类别对应一个所述特征向量集;其中,特征向量集为,属于与该特征向量集所对应类别的多个训练数据输入孪生神经网络后所输出的特征向量的集合。
83.在本说明书另一些装置实施例中,相似度基于所述特征向量集中各特征向量之间的余弦距离表征。
84.在本说明书一个或多个装置实施例中,特征向量集中的特征向量包括输入所述孪生神经网络的输出层的第一特征向量。
85.在本说明书一个或多个装置实施例中,所述装置还包括:
86.第一确定模块,用于将同一特征向量集中的有标签数据对应的第一特征向量和其他第一特征向量的余弦距离之和确定为第一余弦距离之和;
87.第二确定模块,用于确定各第一余弦距离之和的平均值为第一余弦距离平均值;
88.第三确定模块,用于将同一特征向量集中的无标签数据对应的第一特征向量和其他第一特征向量的余弦距离之和确定为第二余弦距离之和;
89.第四确定模块,用于确定各第二余弦距离之和的平均值为第二余弦距离平均值;
90.第五确定模块,用于将第一余弦距离平均值与第二余弦距离平均值之和确定为第三损失函数。
91.在本说明书一个或多个装置实施例中,第一损失函数包括交叉熵损失函数。
92.在本说明书一个或多个装置实施例中,输入模块还用于将训练数据划分为若干个batch,每个batch中均包含有标签数据和无标签数据;以batch为单位分别输入训练数据。
93.在本说明书一个或多个装置实施例中,更新模块还用于将第一目标网络参数复制到第二神经网络以将第二神经网络的网络参数更新为第一目标网络参数。
94.在本说明书一个或多个装置实施例中,输入模块还用于分别轮询获取有标签数据和无标签数据;在无标签数据未结束轮询、且有标签数据已完成轮询的情况下,重新轮询获取有标签数据。
95.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
96.此外,如图6所示,本说明书还提出一种分类方法,包括步骤:
97.步骤601,获取待分类数据;
98.步骤603,将待分类数据输入指定的神经网络生成分类结果,其中,指定的神经网络利用与前述任意一种训练神经网络的方法实施例对应的方法训练生成。
99.在示例性实施例中,本说明书还提供了一种存储有计算机程序的存储介质,上述计算机程序可由设备400的处理器410执行以完成上述方法。例如,所述存储介质可以是
rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
100.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
101.本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
102.应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
103.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
再多了解一些

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

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

相关文献