一种模型训练方法及装置与流程

文档序号:26943020发布日期:2021-10-12 17:18阅读:87来源:国知局
一种模型训练方法及装置与流程

1.本技术涉及计算机技术领域,特别涉及一种模型训练方法及装置、计算设备及计算机可读存储介质。


背景技术:

2.机器学习是对能通过经验自动改进的计算机算法的研究,深度学习是机器学习领域中一个研究方向,模型训练是用参数化的网络模型对训练数据逐渐进行拟合的过程。在深度学习网络模型或机器学习网络模型的训练过程中,若网络模型参数量较大或样本数量较小,会使网络模型过拟合,影响网络模型的效果。
3.目前,通常采用dropout技术以及dropout技术的变体dropout-connect技术、weight-dropout技术等减少网络模型的过拟合,即在网络模型训练的过程中,以恒定的概率值丢弃部分神经元节点,即丢弃恒定比例的神经元节点,鼓励网络模型中的神经元节点能够独立的提取特征,从而减少网络模型的位于输入层和输出层之间的隐层的神经元节点间的相互作用。
4.在当前的网络模型训练过程中,丢弃神经元节点的比例值始终保持不变,然而在网络模型训练的前期,网络模型并未充分拟合所有数据,若丢弃神经元节点的比例值始终保持不变,往往会缩小网络模型的解空间,不利于网络模型近似最优解的寻找,进而导致网络模型的整体性能较低。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种模型训练方法及装置,以解决现有技术中存在的技术缺陷。
6.本技术实施例公开了一种模型训练方法,包括:
7.s1、确定待训练模型当前次的隐藏比例值;
8.s2、基于所述当前次的隐藏比例值对所述待训练模型进行隐藏节点处理;
9.s3、获取训练数据,将所述训练数据输入至经过处理的所述待训练模型中对所述待训练模型进行训练;
10.s4、判断是否达到训练停止条件,若是,则执行步骤s5,若否,则执行步骤s6;
11.s5、停止训练;
12.s6、复原所述待训练模型中的隐藏节点,继续执行步骤s1。
13.进一步地,所述步骤s1、确定待训练模型当前次的隐藏比例值,包括:
14.基于所述待训练模型当前次的训练轮数确定所述待训练模型所处的训练阶段;
15.根据所述待训练模型所处的训练阶段确定所述待训练模型当前次的隐藏比例值。
16.进一步地,所述基于所述训练模型当前次的训练轮数确定所述待训练模型所处的训练阶段,包括:
17.在所述待训练模型当前次的训练轮数大于零并小于等于第一预设阈值的情况下,
确定所述待训练模型处于第一训练阶段;
18.在所述待训练模型当前次的训练轮数大于第一预设阈值并小于等于第二预设阈值的情况下,确定所述待训练模型处于第二训练阶段;
19.在所述待训练模型当前次的训练轮数大于第二预设阈值并小于等于第三预设阈值的情况下,确定所述待训练模型处于第三训练阶段。
20.进一步地,所述根据所述待训练模型所处的训练阶段确定所述待训练模型当前次的隐藏比例值,包括:
21.在所述待训练模型处于第一训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为0;
22.在所述待训练模型处于第二训练阶段的情况下,基于所述待训练模型当前次的训练轮数、预设最大比例值、第一预设阈值和第二预设阈值确定所述待训练模型当前次的隐藏比例值;
23.在所述待训练模型处于第三训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为所述预设最大比例值。
24.进一步地,所述步骤s2,包括:
25.基于所述当前次隐藏比例值和所述待训练模型中的全部节点数量确定所述待训练模型在当前次训练中隐藏节点的目标数量;
26.随机选择所述待训练模型中目标数量的节点作为隐藏节点,并对所述隐藏节点进行隐藏处理。
27.进一步地,所述待训练模型至少包括嵌入层、注意力层和线性层;
28.所述步骤s3,包括:
29.获取训练数据,所述训练数据包括训练样本数据和训练标签数据;
30.将所述训练样本数据输入至经过隐藏处理的所述待训练模型的嵌入层中,通过所述嵌入层中的未隐藏节点对所述训练样本数据进行处理,生成样本向量;
31.将所述样本向量输入至所述注意力层中,通过所述注意力层中的未隐藏节点对所述样本向量进行处理,生成样本矩阵;
32.将所述样本矩阵输入至所述线性层中,通过所述线性层中的未隐藏节点对所述样本矩阵进行处理,生成样本结果;
33.基于所述样本结果和训练标签数据确定损失值并调整所述待训练模型中未隐藏节点的权重值,完成当前次训练。
34.进一步地,所述步骤s4,包括:
35.判断所述当前次的训练轮数是否大于或等于第三预设阈值,若是,则执行步骤s5,若否,则执行步骤s6。
36.本技术还提供一种模型训练装置,包括:
37.比例确定模块,被配置为确定待训练模型当前次的隐藏比例值;
38.隐藏处理模块,被配置为基于所述当前次的隐藏比例值对所述待训练模型进行隐藏节点处理;
39.模型训练模块,被配置为获取训练数据,将所述训练数据输入至经过处理的所述待训练模型中对所述待训练模型进行训练;
40.条件判断模块,被配置为判断是否达到训练停止条件,若是,则执行训练停止模块,若否,则执行迭代训练模块;
41.训练停止模块,被配置为停止训练;
42.迭代训练模块,被配置为复原所述待训练模型中的隐藏节点,继续执行所述比例确定模块。
43.本技术还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述模型训练方法的步骤。
44.本技术还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述模型训练方法的步骤。
45.本技术提供的模型训练方法及装置,在模型的每次训练开始之前,均先确定在当前次的训练中模型节点的隐藏比例值,并对模型中相应数量的节点进行隐藏处理,再获取训练数据开始训练,直至达到训练停止条件,有助于结合不同训练阶段的特点对模型进行适应性训练,防止模型过拟合,提高模型训练效果。
46.进一步地,在模型的第一训练阶段,模型训练处于欠拟合状态,并未充分拟合数据,本技术提供的模型训练方法及装置在此阶段将隐藏比例值设置为0,可以保证模型在训练前期有充分的解空间,在模型的第二训练阶段,随着训练的不断推进,线性增大隐藏比例值直至达到预设最大比例值,有助于寻找模型的近似最优解,防止模型的过拟合,在模型的第三训练阶段,保持隐藏比例值为预设最大比例值,有助于优化模型在训练过程中的收敛,进一步防止模型过拟合,提高模型整体性能。
附图说明
47.图1是本技术一实施例所述的计算设备的结构示意图;
48.图2是本技术一实施例所述的模型训练方法的步骤流程示意图;
49.图3是本技术一实施例所述的待训练模型隐藏节点示意图;
50.图4是本技术一实施例所述的线性处理流程示意图;
51.图5是本技术一实施例所述的模型训练方法的步骤流程示意图;
52.图6是本技术一实施例所述的文本分析模型的训练方法的步骤流程示意图;
53.图7是本技术一实施例所述的模型训练装置的结构示意图。
具体实施方式
54.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
55.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
56.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描
述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
57.首先,对本发明一个或多个实施例涉及的名词术语进行解释。
58.待训练模型:参数有待调整的深度学习模型。其中,深度学习模型包括基于受限玻尔兹曼机(restricted boltzmann machine,rbm)的深度信念网络(deep belief network,dbn)、基于自动编码器(autoencoder,ae)的堆叠自动编码器(stacked autoencoders,sae)、卷积神经网络(convolutional neural networks,cnn)、递归神经网络(recurrent neural networks,rnn)等。
59.隐藏比例值:即dropout值,用于表示当前次的训练过程中待训练模型的隐藏节点在全部节点中的占比的数值。
60.隐藏节点:在当前次的训练过程中进行隐藏处理的节点。
61.隐藏处理:对深度学习模型中的部分神经元节点进行删除、丢弃。
62.训练数据:输入至深度学习模型中对深度学习模型进行训练的训练样本数据和与训练样本数据一一对应的训练标签数据。
63.训练样本数据:输入至深度学习模型中对深度学习模型进行训练的语音数据、文本数据等。
64.训练标签数据:与训练样本数据一一对应的标准语音翻译结果数据、标准阅读理解答案数据等。
65.训练停止条件:满足模型训练要求,可以停止模型训练的条件。在本技术中,训练停止条件为训练轮数大于或等于第三预设阈值。
66.训练轮数:自训练开始,模型每完成一次完整的训练记为一轮,训练轮数即表示模型正处于第几轮的训练。
67.训练阶段:模型在训练过程中所处的阶段。在本技术中,训练阶段包括第一训练阶段、第二训练阶段和第三训练阶段。其中,第一训练阶段、第二训练阶段和第三训练阶段分别表示深度学习模型训练的前期阶段、中期阶段和后期阶段,三个训练阶段可以通过深度学习模型的训练轮数的第一预设阈值、第二预设阈值和第三预设阈值来划分。
68.预设最大比例值:深度学习模型中神经元节点的预设最大隐藏比例值,其数值与传统模型训练过程中隐藏比例值相同。
69.嵌入层:位于深度学习模型中的输入层,用于对输入的文本数据进行嵌入处理并输出文本向量;对输入的图像数据进行嵌入处理并输出图像特征。
70.注意力层:位于深度学习模型中的一个层级结构,用于对文本向量进行自注意力或互注意力处理并输出向量矩阵;对图像特征进行自注意力或互注意力处理并输出特征矩阵。
71.线性层:为深度学习模型的输出层,用于对向量矩阵或特征矩阵进行线性处理,输出结果。
72.样本向量:将训练样本数据输入至深度学习模型的嵌入层而生成的向量。
73.样本矩阵:将样本向量输入至深度学习模型的注意力层而生成的矩阵。
74.样本结果:将样本矩阵输入至深度学习模型的线性层而生成的结果,作为深度学习模型经过当前次的训练输出的结果。
75.隐层:位于深度学习模型的输入层与输出层之间的层级结构,输入层的输出是隐层的输入,输出层的输入是隐层的输出和对应权重的乘积。
76.解空间:是指齐次线性方程组所有解的集合构成一个向量空间,也就是一个集合。
77.在本技术中,提供了一种模型训练方法及装置,在下面的实施例中逐一进行详细说明。
78.图1是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
79.计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
80.在本说明书的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
81.计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
82.其中,处理器120可以执行图2所示方法中的步骤。图2是示出了根据本技术一实施例的模型训练方法的示意性流程图,包括步骤s210至步骤s242。
83.s210、确定待训练模型当前次的隐藏比例值。
84.具体地,在本实施例中,待训练模型为深度学习模型的任意一种。
85.在实际应用中,可以基于待训练模型当前次的训练轮数确定待训练模型所处的训练阶段,再根据待训练模型所处的训练阶段确定待训练模型当前次的隐藏比例值。
86.自训练开始,模型每完成一次完整的训练记为一轮,此后依次累积,并基于待训练模型已完成的训练轮数确定当前次的训练轮数,比如待训练模型已完成m轮训练,那么当前次的训练轮数即为m+1。
87.根据待训练模型所述的训练阶段确定待训练模型当前次的隐藏比例值还可以包括:基于待训练模型当前次的训练阶段确定待训练模型当前次的隐藏比例值、或基于待训练模型当前次的训练阶段以及待训练模型当前次的训练轮数确定待训练模型当前次的隐藏比例值。
88.在待训练模型当前次的训练轮数大于零并小于等于第一预设阈值的情况下,确定
所述待训练模型处于第一训练阶段;在所述待训练模型处于第一训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为0。其中,第一训练阶段即为模型训练的前期阶段,第一预设阈值为模型训练前期阶段的最高临界训练轮数的数值,该数值可以根据实际情况确定,本技术对此不做限制。在模型的第一训练阶段即训练的前期阶段,模型处于欠拟合状态,并未充分拟合数据,在此阶段将隐藏比例值设置为0,可以保证模型在训练前期有充分的解空间。
89.在待训练模型当前次的训练轮数大于第一预设阈值并小于等于第二预设阈值的情况下,确定所述待训练模型处于第二训练阶段;在所述待训练模型处于第二训练阶段的情况下,基于所述待训练模型当前次的训练轮数、预设最大比例值、第一预设阈值和第二预设阈值确定所述待训练模型当前次的隐藏比例值。其中,第二训练阶段即为模型训练的中期阶段,第二预设阈值为模型训练中期阶段的最高临界训练轮数的数值,预设最大比例值即为传统模型训练过程中神经元节点的隐藏比例值,上述数值均可以根据实际情况确定,本技术对此不做限制。在模型的第二训练阶段即训练的中期阶段,随着训练的不断推进,线性增大隐藏比例值直至达到预设最大比例值,有助于寻找模型的近似最优解,防止模型的过拟合。
90.在待训练模型当前次的训练轮数大于第二预设阈值并小于等于第三预设阈值的情况下,确定所述待训练模型处于第三训练阶段,在所述待训练模型处于第三训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为所述预设最大比例值。其中,第三训练阶段即为模型训练的后期阶段,第三预设阈值为模型训练后期阶段的最高临界训练轮数的数值,该数值可以根据实际情况确定,本技术对此不做限制。在模型的第三训练阶段即训练的后期阶段,保持隐藏比例值为预设最大比例值,有助于优化模型在训练过程中的收敛,进一步防止模型过拟合,提高模型整体性能。
91.需要说明的是,第三预设阈值大于第二预设阈值,第二预设阈值大于第一预设阈值,上述模型每一个阶段的训练轮数既可以全部相同,也可以部分相同,或是全部不同,可视具体情况确定,本技术对此不做限制。
92.更为具体地,在此以p表示隐藏比例值,以max_p表示预设最大比例值,以m表示第一预设阈值,以q表示第二预设阈值,以n第三预设阈值,以n表示当前次训练轮数,那么模型当前次的隐藏比例值可以通过如下公式获得:
[0093][0094]
本实施例根据待训练模型的训练阶段、训练轮数确定待训练模型的隐藏比例值,一方面可以在模型训练的前期让模型保持学习能力,尽可能地确定最优解的方向,另一方面可以在模型训练的后期对模型进行收敛,寻找最优解并防止模型过拟合,提高模型的整体性能。
[0095]
s220、基于所述当前次的隐藏比例值对所述待训练模型进行隐藏节点处理。
[0096]
具体地,首先可以基于当前次隐藏比例值和待训练模型中的全部节点数量确定待训练模型在当前次训练中隐藏节点的目标数量,即将当前次隐藏比例值与待训练模型中的
全部节点数量相乘得到当前次训练中隐藏节点的目标数量;再随机选择待训练模型中目标数量的节点作为隐藏节点,并对所述隐藏节点进行隐藏处理,即丢弃或删除该隐藏节点。
[0097]
例如,假设当前次隐藏比例值为p,假设待训练模型中的全部节点数量为a,那么待训练模型在当前次训练中隐藏节点的目标数量为p
×
a,在待训练模型中的全部节点中随机选择p
×
a个节点作为隐藏节点,并丢弃或删除。
[0098]
更为具体地,在待训练模型包括多个层级结构的情况下,每一层中的隐藏节点的目标数量均是随机的,以待训练模型包括嵌入层、注意力层和线性层为例,随机选择嵌入层中的x个节点、注意力层中的y个节点和线性层中的z个节点作为隐藏节点进行隐藏处理,其中,x+y+z=p
×
a,x、y、z三者数值既可以全部相同,也可以部分相同,或是全部不同,本技术对此不做限制。
[0099]
参见图3,图3a为未进行隐藏处理的待训练模型的结构示意图,图3b为进行隐藏处理的待训练模型的结构示意图,其中自下而上的第一行表示嵌入层,第二行表示注意力层,第三行表示线性层,第四行表示输出结果,空心圆圈表示未隐藏节点,叉号圆圈表示隐藏节点,假设待训练模型共包含15个节点,其中嵌入层、注意力层、线性层各自包括5个节点,待训练模型当前次的隐藏比例值为0.47,那么待训练模型的隐藏节点数量为15
×
0.47≈7个,经过随机选择确定嵌入层中两个节点,注意力层中的三个节点,线性层中的两个节点作为隐藏节点进行隐藏处理。
[0100]
本实施例首先通过当前次待训练模型的隐藏比例值和全部节点数量确定隐藏节点的目标数量,有助于在每一次的训练过程中精确的对一定数量的节点进行隐藏,提高训练效率;再在待训练模型的全部节点中随机选取目标数量的节点作为隐藏节点,有助于提高模型训练的灵活性。
[0101]
s230、获取训练数据,将所述训练数据输入至经过处理的所述待训练模型中对所述待训练模型进行训练。
[0102]
在本实施例中,待训练模型至少包括用于对输入的样本文本进行嵌入处理输出样本向量的嵌入层、用于对样本向量进行自注意力或互注意力处理并输出样本矩阵的注意力层以及用于对样本矩阵进行线性处理,输出结果的线性层,所述步骤s230包括步骤s231至步骤s235。
[0103]
s231、获取训练数据。
[0104]
具体地,训练数据包括训练样本数据和训练标签数据。训练样本数据可以包括样本文本和样本问题,训练标签数据可以为样本答案。其中,样本文本是具有完整、系统含义的一个句子或多个句子的组合,样本问题是与样本文本的内容具有一定相关性的问题,样本答案是基于样本文本的内容对样本问题做出的答案。
[0105]
在本实施例中,训练数据可以为各种语言、各种主题等,有助于提高模型训练的灵活性,增大模型的适用范围。
[0106]
s232、将所述训练样本数据输入至经过隐藏处理的所述待训练模型的嵌入层中,通过所述嵌入层中的未隐藏节点对所述训练样本数据进行处理,生成样本向量。
[0107]
具体地,将训练样本数据输入至待训练模型的嵌入层中后,通过嵌入层中的未隐藏节点提取训练样本数据的所有单词,以单词的总数量为50000为例,将上述单词按照出现的次数多少进行降序排列,比如单词“word”出现的次数最多,则设置单词“word”的编号id
为0,单词“network”出现的次数在所有单词中排列第二位,那么设置单词“network”的编号id为1,其他情况可以此类推,不再赘述。将每一个单词的编号id使用50000维的二进制(one-hot)表示,生成矩阵z,其中,该矩阵的行数量为单词的总数量即50000,列数量为词向量的维度,优选为128或300,那么矩阵z的第一行就是编号id为0即单词“word”对应的词向量。
[0108]
在本实施例中将训练样本数据输入至经过隐藏处理的待训练模型的嵌入层中,通过嵌入层中的未隐藏节点对所述训练样本数据进行处理,为模型的后续训练过程做好准备工作,有助于提高模型训练的效率。
[0109]
s233、将所述样本向量输入至所述注意力层中,通过所述注意力层中的未隐藏节点对所述样本向量进行处理,生成样本矩阵。
[0110]
具体地,将样本向量输入至注意力层中,首先根据每一个样本向量得到其对应的q向量(query向量)、k向量(key向量)和v向量(value向量),再将q向量和k向量进行相似度计算得到权重矩阵,其中相似度函数包括点积、拼接等,而后采用softmax函数对上述权重矩阵进行归一化处理,即除以并对权重矩阵施以softmax激活函数计算,将上述softmax激活函数计算的结果点乘v向量即value值,得到加权的每个样本向量的评分v,最后将每一个样本向量的评分v相加即得到注意力矩阵即样本矩阵z。
[0111]
更为具体地,softmax函数的公式如下:
[0112][0113]
其中,s
i
表示第i个权重矩阵对应的softmax值;i代表第i个权重矩阵;j代表权重矩阵的总个数。
[0114]
本实施例通过注意力层中的未隐藏节点对样本向量进行处理,可以有效训练模型中每一个节点的对样本向量的处理能力,提高模型的训练效果。
[0115]
s234、将所述样本矩阵输入至所述线性层中,通过所述线性层中的未隐藏节点对所述样本矩阵进行处理,生成样本结果。
[0116]
以图4为例,其中从左到右依次为嵌入层、注意力层和线性层,x
i
(i=1,2,3)为输入层即嵌入层的值,a
i(k)
(k=1,2,3...,k;i=1,2,3...,n k
),表示第k层中第i个神经元的激活值,n
k
表示第k层的神经元个数。当k=1时即为嵌入层,即a
i(1)
=xi,而x0=1与a
0(2)
=1为偏置项。θ
ji(k)
表示第k层的参数(边权),其中下标j表示第k+1层的第j个神经元,i表示第k层的第i个神经元。那么注意力层的激活值可以由下式表示:
[0117][0118]
基于上述激活值与偏置项a
0(2)
、a
1(2)
、a
2(2)
、a
3(2)
计算得到输出层即线性层的激活值即输出为:
[0119][0120]
其中,g(z)为非线性变换函数(激活函数)。
[0121]
本实施例通过线性层中的未隐藏节点对样本矩阵进行处理,生成样本结果可以有效提高模型训练的效率,提高模型的准确率。
[0122]
s235、基于所述样本结果确定损失值并调整所述待训练模型中未隐藏节点的权重值,完成当前次训练。
[0123]
具体地,可以采用交叉熵损失函数计算损失值,交叉熵是表示两个概率分布p、q的差异,其中p表示真实分布即样本答案,q表示非真实分布即样本结果,那么h(p,q)就称为交叉熵,其计算公式如下所示:
[0124][0125]
基于损失值依次调整更新待训练模型线性层、注意力层和嵌入层的权重值,即完成当前次的训练。
[0126]
s240、判断是否达到训练停止条件,若是,则执行步骤s241,若否,则执行步骤s242。
[0127]
s241、停止训练。
[0128]
s242、复原所述待训练模型中的隐藏节点,继续执行步骤s210。
[0129]
在本实施例中,训练停止条件优选为达到第三预设阈值,即在训练轮数达到第三预设阈值的情况下,停止训练,在训练轮数未达到第三预设阈值的情况下,恢复待训练模型中的隐藏节点,将训练轮数加一,重新确定待训练模型的隐藏比例值,并继续重复上述步骤。
[0130]
本实施例通过训练轮数判断模型的训练过程位于哪一阶段,以及是否结束训练,有助于提高模型训练的效率。
[0131]
下面结合具体例子对本实施例进行进一步说明。
[0132]
假设在训练轮数为0-100的情况下,待训练模型处于第一训练阶段,在训练轮数为101-280的情况下,待训练模型处于第二训练阶段,在待训练轮数为281-400的情况下,待训练模型处于第三训练阶段,且待训练模型共100个节点,模型训练过程中的预设最大比例值为0.5。
[0133]
(1)待训练模型当前次的训练轮数为88,则确定待训练模型当前处于第一训练阶段,确定待训练模型当前次的隐藏比例值为0,即不对待训练模型中的任何一个节点做隐藏处理,获取训练数据a1,将训练数据a1输入至待训练模型中进行处理,进行当前次训练。由于训练轮数88小于第三预设阈值400,则继续进行第89轮训练。
[0134]
(2)待训练模型当前次的训练轮数为110,则确定待训练模型当前处于第二训练阶段,通过计算得到待训练模型当前次的隐藏比例值为0.5
×
110/(280-100)-0.5
×
100/(280-100)≈0.03,即对待训练模型中的任意3个节点做隐藏处理,获取训练数据a2,将训练数据a2输入至待训练模型中进行处理,进行当前次训练。由于训练轮数110小于第三预设阈值400,则继续进行第111轮训练。
[0135]
(3)待训练模型当前次的训练轮数为400,则确定待训练模型当前处于第三训练阶段,确定待训练模型当前次的隐藏比例值为预设最大比例值0.5,即对待训练模型中的任意50个节点做隐藏处理,获取训练数据a3,将训练数据a3输入至待训练模型中进行处理,进行当前次训练。由于训练轮数400等于第三预设阈值400,则停止训练。
[0136]
其他情况可以此类推,在此不再赘述。
[0137]
本实施例提供的模型训练方法,在模型的每次训练开始之前,均先确定在当前次的训练中模型节点的隐藏比例值,并对模型中相应数量的节点进行隐藏处理,再获取训练数据开始训练,直至达到训练停止条件,有助于结合不同训练阶段的特点对模型进行适应性训练,防止模型过拟合,提高模型训练效果。
[0138]
如图5所示,本实施例提供一种模型训练方法,包括步骤s510至步骤s560,。
[0139]
s510、基于所述待训练模型当前次的训练轮数确定所述待训练模型所处的训练阶段。
[0140]
在本实施例中,待训练模型当前的训练轮数为n。
[0141]
假设模型的总训练轮数为n,在待训练模型的训练轮数大于0并小于等于m的情况下(m<n),确定待训练模型处于第一训练阶段,在待训练模型的训练轮数大于m并小于等于q的情况下(q<n),确定待训练模型处于第二训练阶段,在待训练模型的训练轮数大于q并小于等于n的情况下,确定待训练模型处于第三训练阶段。
[0142]
本实施例在模型训练开始之前确定待训练模型当前次的训练轮数和训练阶段,有助于根据不同训练阶段的模型特点灵活调整训练任务和模型结构,针对不同训练阶段进行个性化训练,提高模型训练的效果。
[0143]
s520、根据所述待训练模型所处的训练阶段确定所述待训练模型当前次的隐藏比例值。
[0144]
具体地,可以基于待训练模型当前次的训练阶段确定待训练模型当前次的隐藏比例值、或基于待训练模型当前次的训练阶段以及待训练模型当前次的训练轮数确定待训练模型当前次的隐藏比例值。
[0145]
更为具体地,在所述待训练模型处于第一训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为0。
[0146]
在所述待训练模型处于第二训练阶段的情况下,基于所述待训练模型当前次的训练轮数、预设最大比例值、第一预设阈值和第二预设阈值确定所述待训练模型当前次的隐藏比例值。
[0147]
在所述待训练模型处于第三训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为所述预设最大比例值。
[0148]
在此以p表示隐藏比例值,以max_p表示预设最大比例值,第一预设阈值为m,第二预设阈值为q,第三预设阈值为n,则模型当前次的隐藏比例值可以通过上述公式(1)获得。
[0149]
本实施例根据待训练模型的训练阶段、训练轮数确定待训练模型的隐藏比例值,一方面可以在模型训练的前期让模型保持学习能力,尽可能地确定最优解的方向,另一方面可以在模型训练的后期对模型进行收敛,寻找最优解并防止模型过拟合,提高模型的整体性能。
[0150]
s530、基于所述当前次隐藏比例值和所述待训练模型中的全部节点数量确定所述
待训练模型在当前次训练中隐藏节点的目标数量。
[0151]
在本实施例中,当前次隐藏比例值为p,假设待训练模型中的全部节点数量为a,那么待训练模型在当前次训练中隐藏节点的目标数量为p
×
a。
[0152]
本实施例通过当前次待训练模型的隐藏比例值和全部节点数量确定隐藏节点的目标数量,有助于在每一次的训练过程中精确的对一定数量的节点进行隐藏,提高训练效率。
[0153]
s540、随机选择所述待训练模型中目标数量的节点作为隐藏节点,并对所述隐藏节点进行隐藏处理。
[0154]
在本实施例中,随机选择待训练模型中的p
×
a个节点作为隐藏节点,并删除上述隐藏节点。
[0155]
具体地,在待训练模型包括嵌入层、注意力层和线性层的情况下,随机选择嵌入层中的x个节点、注意力层中的y个节点和线性层中的z个节点作为隐藏节点进行隐藏处理,其中,x+y+z=p
×
a,x、y、z三者数值既可以全部相同,也可以部分相同,或是全部不同,本技术对此不做限制。
[0156]
本实施例在待训练模型的全部节点中随机选取目标数量的节点作为隐藏节点,有助于提高模型训练的灵活性。
[0157]
s550、获取训练数据,将所述训练数据输入至经过处理的所述待训练模型中对所述待训练模型进行训练。
[0158]
在本实施例中,获取训练数据b,待训练模型包括嵌入层、注意力层和线性层,将所述训练数据b输入至经过隐藏处理的所述待训练模型的嵌入层中,通过所述嵌入层中的未隐藏节点对所述训练数据量进行处理,生成样本向量b1;将所述样本向量b1输入至所述注意力层中,通过注意力层中的未隐藏节点对所述样本向量进行处理,生成样本矩阵b2;将所述样本矩阵b2输入至所述线性层中,通过线性层中的未隐藏节点对所述样本矩阵进行处理,生成样本结果b3;基于所述样本结果b3确定损失值c并反向调整所述待训练模型中未隐藏节点的权重值,完成当前次训练。
[0159]
具体地,基于损失值c依次调整线性层、注意力层、嵌入层中为隐藏节点的权重值,完成当前次训练。
[0160]
本实施例将训练数据输入至经过隐藏处理的待训练模型中进行训练,既可以提高模型的学习能力,还可以避免过拟合情况的出现。
[0161]
s560、判断当前次的训练轮数是否大于或等于第三预设阈值,若是,则执行步骤s561,若否,则执行步骤s562。
[0162]
s561、停止训练。
[0163]
s562、复原所述待训练模型中的隐藏节点,将训练轮数加一,并继续执行步骤s510。
[0164]
在本实施例中,判断当前次的训练轮数n是否大于或等于第三预设阈值n,在当前次的训练轮数n大于或等于第三预设阈值n的情况下,停止训练,在当前次的训练轮数n小于第三预设阈值n的情况下,恢复待训练模型中的所有隐藏节点,并将n+1赋值于n,继续执行步骤1。
[0165]
本实施例通过训练轮数判断模型的训练过程位于哪一阶段以及是否结束训练,有
助于提高模型训练的效率。
[0166]
本实施例提供的模型训练方法,在模型的每次训练开始之前,均先确定在当前次的训练中模型节点的隐藏比例值,并对模型中相应数量的节点进行隐藏处理,再获取训练数据开始训练,直至达到训练停止条件,有助于结合不同训练阶段的特点对模型进行适应性训练,防止模型过拟合,提高模型训练效果。
[0167]
本实施例提供的模型训练方法还可以应用于多种执行不同任务的模型,比如可以应用于文本分析模型,以提高文本分析模型的语义分析能力以及生成答案的准确率,还可以应用于语音翻译模型,以提高语音翻译模型对于语音的识别能力以及语言翻译的准确性,或是应用于图像识别模型,以提高图像识别模型识别图像的效率等等,其他情况可以此类推,不再赘述。
[0168]
在此以文本分析模型为例进行详细说明。
[0169]
如图6所示,本实施例提供一种文本分析模型的训练方法,包括步骤s610至步骤s642。
[0170]
s610、确定文本分析模型当前次的隐藏比例值。
[0171]
在实际应用中,首先基于文本分析模型当前次的训练轮数确定文本分析模型所处的训练阶段,再根据文本分析模型所处的训练阶段确定文本分析模型当前次的隐藏比例值。
[0172]
在本实施例中,文本分析模型为bert模型。bert模型(bidirectional encoder representations from transformers)是一种双向注意力神经网络模型,一种通用预训练语言表示模型。bert模型包括嵌入层、注意力层和线性层,可以通过当前次的左、右两侧上下文来预测当前词,还可以通过当前句子预测下一个句子的语义。
[0173]
文本分析模型的训练轮数处于0-100轮之间的情况下,文本分析模型处于第一训练阶段;文本分析模型的训练轮数处于101-200轮之间的情况下,文本分析模型处于第二训练阶段;文本分析模型处于201-300轮之间的情况下,文本分析模型处于第三训练阶段;文本分析模型的预设最大比例值为0.6。
[0174]
假设文本分析模型当前次的训练轮数为115轮,那么确定文本分析模型当前处于第二训练阶段,那么根据公式(1)计算得到文本分析模型当前次的隐藏比例值为0.08。
[0175]
s620、基于所述当前次的隐藏比例值对所述文本分析模型进行隐藏节点处理。
[0176]
在实际应用中,首先可以基于当前次隐藏比例值和文本分析模型中的全部节点数量确定文本分析模型在当前次训练中隐藏节点的目标数量,再随机选择文本分析模型中目标数量的节点作为隐藏节点,并对所述隐藏节点进行隐藏处理。
[0177]
在本实施例中,文本分析模型包括嵌入层、注意力层和线性层,其中,嵌入层包括x
1-x
10
共10个节点,注意力层包括y
1-y
30
共30个节点,线性层包括z
1-z
10
共10个节点。
[0178]
首先,根据文本分析模型当前次的隐藏比例值0.08确定文本分析模型的50个节点中隐藏节点的目标数量为50
×
0.08=4个,再随机选择文本分析模型中嵌入层中的x1和x8两个节点和注意力层中的y5和y
27
两个节点作为隐藏节点,并进行隐藏处理。
[0179]
s630、获取样本文本、样本问题和样本答案,将所述样本文本、样本问题和样本答案输入至经过处理的所述文本分析模型中,对所述文本分析模型进行训练。
[0180]
在本实施例中,获取样本文本“李白,字太白,号青莲居士,被后人誉为



’……”
,样本问题“诗仙是指哪位诗人?”,样本答案“李白”。
[0181]
将上述样本文本、样本问题、样本答案输入至文本分析模型的嵌入层中进行处理,分别获得样本文本词向量、样本问题词向量和样本答案词向量。
[0182]
将上述样本文本词向量和样本问题词向量输入至注意力层中进行处理,获得文本问题注意力矩阵。
[0183]
将上述文本问题注意力矩阵输入至线性层中进行处理,获得上述样本问题的预测答案“青莲居士”。
[0184]
基于样本问题的预测答案“青莲居士”与样本答案“李白”计算得到损失值为0.2,根据上述损失值依次调整文本分析模型线性层、注意力层、嵌入层中每个节点的权重参数,完成当前次的训练。
[0185]
s640、判断是否达到训练停止条件,若是,则执行步骤s641,若否,则执行步骤s642。
[0186]
在本实施例中,训练停止条件为“文本分析模型当前次的训练轮数是否大于或等于300”,由于文本分析模型当前次的训练轮数为115轮,115<300,所所以,继续执行步骤s642。
[0187]
s641、停止训练。
[0188]
s642、复原所述待训练模型中的隐藏节点,继续执行步骤s610。
[0189]
需要说明的是,在文本分析模型通过上述模型训练方法训练完成后,可以应用于多种自然语言处理任务的执行,以阅读理解任务为例,将待分析文本和待回答问题输入至训练好的文本分析模型中进行处理,首先通过文本分析模型的嵌入层对待分析文本和待回答问题进行处理,获得待分析文本词向量和待回答问题词向量,再通过文本分析模型的注意力层对待分析文本词向量和待回答问题词向量进行处理,获得待分析文本问题矩阵,最终通过线性层对上述待分析文本问题矩阵进行处理,获得待回答问题的答案。
[0190]
本实施例所述的文本分析模型的训练方法,在文本分析模型的每次训练开始之前,均先确定在当前次的训练中文本分析模型节点的隐藏比例值,并对文本分析模型中相应数量的节点进行隐藏处理,再获取训练数据开始训练,直至达到训练停止条件,有助于结合不同训练阶段的特点对文本分析模型进行适应性训练,防止文本分析模型过拟合,提高文本分析模型对于样本文本的语义分析能力,提高文本分析模型的准确率。
[0191]
如图7所示,本实施例提供一种模型训练装置,包括:
[0192]
比例确定模块710,被配置为确定待训练模型当前次的隐藏比例值;
[0193]
隐藏处理模块720,被配置为基于所述当前次的隐藏比例值对所述待训练模型进行隐藏节点处理;
[0194]
模型训练模块730,被配置为获取训练数据,将所述训练数据输入至经过处理的所述待训练模型中对所述待训练模型进行训练;
[0195]
条件判断模块740,被配置为判断是否达到训练停止条件,若是,则执行训练停止模块741,若否,则执行迭代训练模块742;
[0196]
训练停止模块741,被配置为停止训练;
[0197]
迭代训练模块742,被配置为恢复所述待训练模型中的隐藏节点,继续执行所述比例确定模块710。
[0198]
可选地,所述比例确定模块710,进一步被配置为:
[0199]
基于所述待训练模型当前次的训练轮数确定所述待训练模型所处的训练阶段;
[0200]
根据所述待训练模型当前次的训练阶段确定所述待训练模型当前次的隐藏比例值。
[0201]
可选地,比例确定模块710,更进一步被配置为:
[0202]
在所述待训练模型当前次的训练轮数大于零并小于等于第一预设阈值的情况下,确定所述待训练模型处于第一训练阶段;
[0203]
在所述待训练模型当前次的训练轮数大于第一预设阈值并小于等于第二预设阈值的情况下,确定所述待训练模型处于第二训练阶段;
[0204]
在所述待训练模型当前次的训练轮数大于第二预设阈值并小于等于第三预设阈值的情况下,确定所述待训练模型处于第三训练阶段。
[0205]
可选地,比例确定模块710,更进一步被配置为:
[0206]
在所述待训练模型处于第一训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为0;
[0207]
在所述待训练模型处于第二训练阶段的情况下,基于所述待训练模型当前次的训练轮数、预设最大比例值、第一预设阈值和第二预设阈值确定所述待训练模型当前次的隐藏比例值;
[0208]
在所述待训练模型处于第三训练阶段的情况下,确定所述待训练模型当前次的隐藏比例值为所述预设最大比例值。
[0209]
可选地,所述隐藏处理模块720,进一步被配置为:
[0210]
基于所述当前次隐藏比例值和所述待训练模型中的全部节点数量确定所述待训练模型在当前次训练中隐藏节点的目标数量;
[0211]
随机选择所述待训练模型中目标数量的节点作为隐藏节点,并对所述隐藏节点进行隐藏处理。
[0212]
可选地,所述待训练模型包括嵌入层、注意力层和线性层;
[0213]
所述模型训练模块730,进一步被配置为:
[0214]
获取训练数据,所述训练数据包括训练样本数据和训练标签数据;
[0215]
将所述训练样本数据输入至经过隐藏处理的所述待训练模型的嵌入层中,通过所述嵌入层中的未隐藏节点对所述训练样本数据进行处理,生成样本向量;
[0216]
将所述样本向量输入至所述注意力层中,通过所述注意力层中的未隐藏节点对所述样本向量进行处理,生成样本矩阵;
[0217]
将所述样本矩阵输入至所述线性层中,通过所述线性层中的未隐藏节点对所述样本矩阵进行处理,生成样本结果;
[0218]
基于所述样本结果和所述训练标签数据确定损失值并调整所述待训练模型中未隐藏节点的权重值,完成当前次训练。
[0219]
可选地,所述条件判断模块740,进一步被配置为:
[0220]
判断所述当前次的训练轮数是否大于或等于第三预设阈值,若是,则执行训练停止模块741,若否,则执行迭代训练模块742。
[0221]
本技术提供的模型训练装置,在模型的每次训练开始之前,均先确定在当前次的
训练中模型节点的隐藏比例值,并对模型中相应数量的节点进行隐藏处理,再获取训练数据开始训练,直至达到训练停止条件,有助于结合不同训练阶段的特点对模型进行适应性训练,防止模型过拟合,提高模型训练效果。
[0222]
进一步地,在模型的第一训练阶段,模型训练处于欠拟合状态,并未充分拟合数据,本技术提供的模型训练方法及装置在此阶段将隐藏比例值设置为0,可以保证模型在训练前期有充分的解空间,在模型的第二训练阶段,随着训练的不断推进,线性增大隐藏比例值直至达到预设最大比例值,有助于寻找模型的近似最优解,防止模型的过拟合,在模型的第三训练阶段,保持隐藏比例值为预设最大比例值,有助于优化模型在训练过程中的收敛,进一步防止模型过拟合,提高模型整体性能。
[0223]
本技术一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现以下步骤:
[0224]
s1、确定待训练模型当前次的隐藏比例值;
[0225]
s2、基于所述当前次的隐藏比例值对所述待训练模型进行隐藏节点处理;
[0226]
s3、获取训练数据,将所述训练数据输入至经过处理的所述待训练模型中对所述待训练模型进行训练;
[0227]
s4、判断是否达到训练停止条件,若是,则执行步骤s5,若否,则执行步骤s6;
[0228]
s5、停止训练;
[0229]
s6、复原所述待训练模型中的隐藏节点,继续执行步骤s1。
[0230]
本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述模型训练方法的步骤。
[0231]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的模型训练方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述模型训练方法的技术方案的描述。
[0232]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0233]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
[0234]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0235]
以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,
可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1