CN117010461A - 神经网络的训练方法、装置、设备及存储介质 - Google Patents
神经网络的训练方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117010461A CN117010461A CN202210450139.0A CN202210450139A CN117010461A CN 117010461 A CN117010461 A CN 117010461A CN 202210450139 A CN202210450139 A CN 202210450139A CN 117010461 A CN117010461 A CN 117010461A
- Authority
- CN
- China
- Prior art keywords
- loss value
- neural network
- network
- training
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 310
- 238000012549 training Methods 0.000 title claims abstract description 207
- 238000000034 method Methods 0.000 title claims abstract description 74
- 230000008859 change Effects 0.000 claims description 30
- 230000008569 process Effects 0.000 claims description 30
- 238000010801 machine learning Methods 0.000 abstract description 3
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 8
- 230000005236 sound signal Effects 0.000 description 6
- 230000000306 recurrent effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000010206 sensitivity analysis Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种神经网络的训练方法、装置、设备及存储介质,属于机器学习技术领域。该方法包括:基于本次迭代训练中第一神经网络对训练样本的第一输出结果和训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,第一神经网络为对已完成训练的第二神经网络进行压缩得到的;基于第一输出结果和本次迭代训练中第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值;基于第一神经网络和第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值;基于第一损失值、第二损失值和第三损失值,对第一神经网络进行训练。通过本方案,提高了神经网络推理的准确性。
Description
技术领域
本申请涉及机器学习技术领域,特别涉及一种神经网络的训练方法、装置、设备及存储介质。
背景技术
随着机器学***台或嵌入式平台上的部署。因此,在部署神经网络之前,需要对神经网络进行压缩。由于神经网络压缩后,其网络参数发生变化,导致神经网络的精度不足,进而导致神经网络的推理结果的准确度会下降。因此,需要对压缩后的神经网络再次进行训练,从而在一定程度上提高神经网络的推理结果的准确度。
相关技术中,在对压缩后的神经网络进行训练时,一般采用与原始神经网络相同的训练方式进行训练。
上述相关技术中,由于神经网络已被压缩,网络参数已经发生变化,因此,采用与原始神经网络相同的方式进行训练不能达到最佳的精度恢复效果,从而并不能提高压缩后的神经网络的推理结果的准确度,也即相关技术的方法会导致压缩后的神经网络的推理结果的准确度较低。
发明内容
本申请实施例提供了一种神经网络的训练方法、装置、设备及存储介质,能够提高压缩后的神经网络的推理的准确性。所述技术方案如下:
一方面,提供了一种神经网络的训练方法,所述方法包括:
基于本次迭代训练中第一神经网络对训练样本的第一输出结果和所述训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,所述第一神经网络为对已完成训练的第二神经网络进行压缩得到的;
基于所述第一输出结果和本次迭代训练中所述第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值;
基于所述第一神经网络和所述第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值;
基于所述第一损失值、所述第二损失值和所述第三损失值,对所述第一神经网络进行训练。
另一方面,提供了一种神经网络的训练装置,所述装置包括:
第一确定模块,用于基于本次迭代训练中第一神经网络对训练样本的第一输出结果和所述训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,所述第一神经网络为对已完成训练的第二神经网络进行压缩得到的;
第二确定模块,用于基于所述第一输出结果和本次迭代训练中所述第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值;
第三确定模块,用于基于所述第一神经网络和所述第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值;
训练模块,用于基于所述第一损失值、所述第二损失值和所述第三损失值,对所述第一神经网络进行训练。
另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现上述所述的神经网络的训练方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述所述的神经网络的训练方法。
另一方面,提供了一种计算机程序产品,所述计算机程序产品中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现上述所述的神经网络的训练方法。
本申请实施例提供的技术方案带来的有益效果是:
在本申请实施例中,电子设备在对压缩后的第一神经网络进行训练时,结合压缩前的第二神经网络的输出结果和网络参数对第一神经网络进行训练,从而在训练的过程中,神经网络除了确定第一神经网络的第一输出结果与目标输出结果之间的差异外,还参考了第二神经网络的第二输出结果与目标输出结果的差异和神经网络的网络参数的差异,从而使神经网络更专注于参数共享后恢复到原始神经网络精度的主要任务,提升了压缩后神经网络的精度,进而提高了神经网络推理的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
图1是本申请实施例提供的一种神经网络的训练方法的实施环境的示意图;
图2是本申请实施例提供的一种神经网络的训练方法的流程图;
图3是本申请实施例提供的一种神经网络的训练方法的流程图;
图4是本申请实施例提供的一种确定损失值的示意图;
图5是本申请实施例提供的一种神经网络的训练的流程图;
图6是本申请实施例提供的一种神经网络的训练装置的结构示意图;
图7是本申请实施例提供的一种终端的结构框图;
图8是本申请实施例提供的一种服务器的结构框图。
具体实施方式
为使本申请的技术方案和优点更加清楚,下面对本申请实施方式作进一步地详细描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任意变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的训练样本、损失值及其权重等都是在充分授权的情况下获取的。
下面对本申请涉及到的一些技术进行说明。
参数共享(weight sharing):是指将原始神经网络中大小接近的网络参数或距离较小的网络参数组,通过某种聚类算法,分成数量较少的几个类(cluster),被分到同一类的所有网络参数的均值作为该类的同心点(centroid),取代该类所有网络参数的原始值。该聚类算法可以为K-均值聚类算法(K-Means)。
对于压缩后的神经网络,可以等价地只在各网络参数的原位置存储其所属聚类的索引值而非原始网络参数,由于索引值一般为整型数,位宽较小,而网络参数一般为浮点,位宽较大,这样配合一个以原始位宽存储的网络参数分布表(codebook),达到压缩存储空间和内存读取带宽的目的。例如,属于第0类的网络参数位就存0,计算时从网络参数分布表中查找第0个值;属于第1类的网络参数位就存1,以此类推。一个网络层中具有n个网络参数,每个网络参数的原始位宽为b比特,则对其执行k个聚类的参数聚类后,实现的压缩比可计算如公式一所示:
公式一:
其中,n为网络参数的数量,b为每个网络参数的原始位宽,k为聚类数。
图1是本申请实施例提供的一种神经网络的训练方法的实施环境的示意图,参见图1,该实施环境包括:电子设备;该电子设备可以提供为终端101,可以提供为服务器102,也可以提供为终端101和服务器102,终端101和服务器102之间可以通过无线或有线网络连接。在本申请实施例中,对电子设备不作具体限定。
若电子设备提供为终端101,则由终端101对神经网络进行训练。训练完成后的神经网络可以被部署在终端101中,这样该终端101就可以通过神经网络执行任务。
若电子设备提供为服务器102,则由服务器102对神经网络进行训练。该训练完成的神经网络可以被部署到终端101中,相应的,该实施环境还包括:终端101,终端101与该服务器102可以通过无线或有线网络连接,终端101通过该神经网络执行任务。
若电子设备提供为终端101和服务器102,则由服务器102对神经网络进行训练,然后该训练完成的神经网络被部署到该终端101中,这样该终端101就可以通过该神经网络执行任务。
在本申请实施例中,涉及到的神经网络可以为任一类型的神经网络,例如,神经网络为卷积神经网络(Convolutional Neural Network,CNN)、深度神经网络(Deep NeuralNetwork,DNN)或循环神经网络(Recurrent Neural Network,RNN)。神经网络可以为应用在影像、语音、自然语言处理、控制、机器视觉、自动驾驶等多种领域的神经网络,用于执行分类、识别、降噪、超分(super-resolution)等任务。例如,在影像领域中,可以通过神经网络对视频内同进行识别,从而实现基于视频内容确定标签。再例如,在自然语言处理领域中,可以通过神经网络对音频信号进行语音识别,得到音频信号对应的文本内容。
终端101为手机、平板电脑和PC(Personal Computer)设备等设备中的至少一种。服务器102可以为一台服务器、由多台服务器组成的服务器集群、云服务器、云计算平台和虚拟化中心中的至少一种。
图2是本申请实施例提供的一种神经网络的训练方法的流程图,参见图2,该方法包括:
步骤S201:电子设备基于本次迭代训练中第一神经网络对训练样本的第一输出结果和该训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,该第一神经网络为对已完成训练的第二神经网络进行压缩得到的。
第一神经网络通过多次迭代训练实现训练。该第一损失值用于表示每次迭代训练过程中第一神经网络的第一输出结果和训练样本中标注的目标结果之间的差异。在一些实施例中,电子设备将训练样本输入至第一神经网络,得到第一输出结果,确定该第一输出结果与该目标输出结果之间的差异信息,基于该差异信息,确定该第一损失值。该第一损失值可以基于任一类型的损失函数确定,在本申请实施例中,对此不作具体限定。
电子设备可以基于第一神经网络的用途获取相应的训练样本。例如,第一神经网络用于进行人脸识别,则训练样本可以为人脸图像。第一神经网络用于进行语音识别,则训练样本可以为音频信号。需要说明的一点是,电子设备可以在迭代训练的每个训练过程中将整个训练集作为训练样本,也可以在迭代训练的每个训练过程中将训练集中的固定的某一部分训练集作为训练样本,还可以在迭代训练的每个训练过程中随机抽取的部分训练集作为本次迭代训练的训练样本。迭代训练过程中多次迭代中使用的训练样本相同或者不同。在本申请实施例中,对此不作具体限定。
该目标输出结果为训练样本中标注的输出结果。例如,第一神经网络用于进行人脸识别,则该目标输出结果可以为人脸图像中的人脸区域。第一神经网络用于进行语音识别,则该目标输出结果可以为音频信号对应的文本内容。
该第一输出结果为第一神经网络对训练样本进行预测得到的预测结果。例如,在第一神经网络用于进行人脸识别,则该第一输出结果可以为第一神经神经网络对人脸图像中的人脸进行预测得到的预测人脸区域。第一神经网络用于进行语音识别,则该第一输出结果可以为第一神经网络对音频信号进行识别得到的预测文本内容。
第二神经网络包括多个网络层。在一些实施例中,电子设备对第二神经网络中的多个网络层进行压缩,得到第一神经网络。在一些实施例中,电子设备对第二神经网络中的部分网络层进行压缩得到第一神经网络。在一些实施例中,参见图3,第二神经网络为已训练至收敛的神经网络,电子设备基于一定的规则对该第二神经网络的网络层进行压缩,得到的第一神经网络。相应地,该过程通过以下步骤(1)-(2)实现,包括:
(1)电子设备对第三神经网络进行训练,直到该第三神经网络的网络参数收敛,得到第二神经网络。
该第三神经网络为未经训练的原始神经网络。其网络类型和第一神经网络相同,在此不再赘述。在一些实施例中,电子设备在对第三神经网络进行训练时,在损失函数项中添加正则项,以促进网络参数自然形成类。该正则项可以通过特征值分解法或高斯混合模型法确定,在本申请实施例中,对正则项的确定方式不作具体限定。
需要说明的一点是,本步骤中,进行训练的训练样本可以为训练集中与训练第一神经网络的训练样本相同的训练样本,或者为训练集中与训练第一神经网络的训练样本不同的训练样本,在本申请实施例中,对此不作具体限定。
(2)电子设备对该第二神经网络的至少一个网络层的网络参数进行参数聚类,得到该第一神经网络,该第一神经网络的网络层中的不同网络参数位共享相同的网络参数。
电子设备通过参数共享算法,对该第二神经网络的至少一个网络层进行参数聚类,得到该第一神经网络。
在本步骤中,电子设备通过对第二神经网络层中的至少一个网络层进行参数聚类,实现参数共享,从而对第二神经网络进行压缩。其中,该网络参数可以为第二神经网络的至少一个网络层的权值或权值组。网络参数位可以为网络层中权值或权值组所对应的位置。在一些实施例中,电子设备基于目标聚类范围(scope)对该至少一个网络层中的网络参数进行参数聚类。在一些实施例中,该目标聚类范围为每个网络层,相应地,电子设备逐层(per-layer)或称为逐张量(per-tensor)对同一网络层内所有网络参数进行聚类。在一些实施例中,该目标聚类范围为多个网络层的同一数据轴,相应地,电子设备逐轴(per-axis)对每个网络层的网络参数按任一条轴拆分为多组,对同一组内的所有网络参数进行聚类。例如,第一神经网络为卷积神经网络(Convolutional Neural Network,CNN),电子设备对CNN中的网络层进行分组时,可按输出通道轴,对CNN的网络参数进行拆分,得到多组网络参数,每组网络参数都与同一条输出通道相关。在本申请实施例中,对目标聚类范围不作具体限定,该目标聚类范围可以为任一合理的范围。
需要说明的另一点是,每个聚类范围内包含的网络参数的数量称为聚类数据。在本申请实施例中,每个聚类范围内的聚类数可以为介于1和该聚类范围内网络参数总个数之间的任一正整数,且,不同聚类范围对应的聚类数相同或者不同,在本申请实施例中,对此均不作具体限定。在一些实施例中,电子设备基于存储空间和访问带宽确定聚类范围内的聚类数。例如,神经网络的运行平台支持采用8bit、6bit或4bit的量化位宽,则聚类数可相应设为256、64或16,从而索引值可以用相应的有限位宽来表达。其中,该索引值用于表达该网络参数所属的类。为了充分利用压缩比,聚类数应取同等位宽下最大允许的数值,以提升神经网络的表达能力,因此可以直接取2的各整数次幂。在本申请实施例中,对此不作具体限定。
在一些实施例中,每个聚类范围内的聚类数,可以手动配置,也可以经由一些算法自动算出。例如,在步骤(1)中进行了正则化训练的情况下,则电子设备会基于正则化算法,自动确定的每个聚类范围内的聚类数。在一些实施例中,电子设备使用诸如敏感度分析(sensitivity analysis)等方法,对初始设定的聚类数进行优化微调,从而确定聚类数。在一些实施例中,该聚类算法可以是其他任何聚类算法,例如,该聚类算法为K-Means算法。
需要说明的一点是,该第二神经网络中进行参数聚类的网络层可以为第二神经网络中的所有或一部分支持参数共享的网络层。即0<n≤M,其中,n为进行参数聚类的网络层的数量,M为第二神经网络中总共支持参数共享的网络层的数量,M小于或等于第二神经网络中网络层的总数量。
需要说明的另一点是,第二神经网络中支持参数共享的网络层的类型可以为任一网络类型。例如,该网络层包括但不限于卷积层、全连接层、循环神经网络(RecurrentNeural Network,RNN)的循环单元(RNN cell)中的至少一种。
该第二神经网络为任一类型的神经网络。在一些实施例中,第二神经网络为浮点型神经网络,即该神经网络为网络参数为浮点型的神经网络。在一些实施例中,该第二神经网络为任意位宽的定点型神经网络,例如,该第二神经网络为位宽16-bit、12-bit、11-bit、10-bit、8-bit、7-bit、6-bit、4-bit的神经网络。在一些实施例中,该第二神经网络为整型神经网络。
步骤S202:电子设备基于该第一输出结果和本次迭代训练中该第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值。
该第二损失值用于表示每次迭代训练过程中第二神经网络的第二输出结果和训练样本中标注的目标结果之间的差异。第二输出结果为第二神经网络对训练样本进行预测得到的预测结果,通过第二神经网络的得到第二输出结果的过程与通过第一神经网络得到第一输出结果的过程原理相同,在此不再赘述。
该第二输出结果为第二神经网络对训练样本进行预测得到的预测结果。例如,在第二神经网络用于进行人脸识别,则该第二输出结果可以为第二神经神经网络对人脸图像中的人脸进行预测得到的预测人脸区域。第二神经网络用于进行语音识别,则该第二输出结果可以为第二神经网络对音频信号进行识别得到的预测文本内容。
步骤S203:电子设备基于该第一神经网络和该第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值。
第一神经网络和第二神经网络可以通过网络参数分布表来表示每个网络层的网络参数。其中,该参数分布表用于配合索引值达到压缩神经网络的存储空间和内存读取带宽的目的。相应地,在本步骤中,参见图4,电子设备分别确定每个网络层的网络参数差异,从而确定该第一神经网络第三损失值。该过程可以为:对于该第一神经网络的至少一层第一网络层,确定该第一网络层的第一网络参数;对于该第二神经网络的至少一层第二网络层,确定该第二网络层的第二网络参数;基于对应的第一网络层和第二网络层,确定第七损失值;将至少一个第七损失值之和确定为该第三损失值。
步骤S204:电子设备基于该第一损失值、该第二损失值和该第三损失值,对该第一神经网络进行训练。
在本步骤中,电子设备基于第一损失值、第二损失值和第三损失值对第一神经网络中网络参数的各类的同心点进行调整,直到第一神经网络收敛或者训练次数达到预设次数,完成对第一神经网络的训练。该同心点为进行参数共享的一个网络参数所属的类的同心点。
在一些实施例中,电子设备通过第一神经网络的网络精度来确定第一神经网络是否收敛。相应地,电子设备基于该第一损失值、该第二损失值和该第三损失值,对该第一神经网络的网络参数进行调整;确定调整网络参数后的第一神经网络的网络精度;若该调整网络参数后的第一神经网络的网络精度小于预设精度,基于调整网络参数后的第一神经网络,继续执行该基于本次迭代训练中第一神经网络对训练样本的第一输出结果和该训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值的步骤,直到该调整网络参数后的第一神经网络的网络精度不小于该预设精度为止。
其中,该预设精度可以根据需要进行设置,在本申请实施例中,对该预设精度不作具体限定。例如,该预设精度根据第二神经网络的网络精度确定。
在本申请实施例中,电子设备基于将第一神经网络的网络精度对第一神经网络进行训练,从而保证了第一神经网络能够尽可能地恢复到压缩之前的第二神经网络的网络精度。
在一些实施例中,电子设备在基于第一损失值、第二损失值和第三损失值对第一神经网络进行训练时,可以先确定第一神经网络的每个网络参数位对应的调整梯度,然后对同一类中参数位的所有调整梯度进行平均,得到同心点对应的调整梯度,基于该同心点的调整梯度对同心点进行调整,得到新的同心点。在一些实施例中,在电子设备支持DL框架(例如,TensorFlow、PyTorch、PaddlePaddle等库)的情况下,电子设备基于第一损失值、第二损失值和第三损失值,修改网络参数分布表,将各网络参数位重定向到所属类的同心点,从而实现同心点直接参与神经网络训练过程中的向前推理和反向传播更新,进而提高神经网络的收敛速度。
需要说明的一点是,电子设备在对第一神经网络进行训练时,还可以根据需要添加其他损失项,在本申请实施例中,对此不作具体限定。
需要说明的另一点是,在完成对第一神经网络的训练后,电子设备还可以继续对第一神经网络进一步压缩、进行模型格式的转换、端侧部署的预处理中的至少一项或者在非必要时略去。例如,通过霍夫曼编码再次进行压缩。在本申请实施例中,对此不作具体限定。
需要说明的另一点是,虽然为了达到参数共享的最大收益,需要部署平台具备运行库乃至硬件层面的支持(低比特量化存取、以索引方式访问网络参数分布表中的数值用作前向推理时的网络参数等),但是若部署平台为不具备此类条件的通用平台,则也可以使用常规的神经网络格式,在原本的网络参数位直接存储各网络参数所属的同心点的数值。神经网络的开发流程中涉及参数共享形式的压缩和/或正则化,均可以采用本申请实施例提供的神经网络的训练方法。
在本申请实施例中,电子设备在对压缩后的第一神经网络进行训练时,结合压缩前的第二神经网络的输出结果和网络参数对第一神经网络进行训练,从而在训练的过程中,神经网络除了确定第一神经网络的第一输出结果与目标输出结果之间的差异外,还参考了第二神经网络的第二输出结果与目标输出结果的差异和神经网络的网络参数的差异,从而使神经网络更专注于参数共享后恢复到原始神经网络精度的主要任务,提升了压缩后神经网络的精度,进而提高了神经网络推理的准确性。
在一些实施例中,电子设备基于相同的权重通过第一损失值、第二损失值和第三损失值对第一神经网络进行训练。在一些实施例中,电子设备动态调节第一损失值、第二损失值和第三损失值的权重,以使电子设备通过不同的注意程度来对第一神经网络进行训练。图5是本申请实施例提供的一种神经网络的训练方法的流程图,在本申请实施例中,以电子设备动态调节第一损失值、第二损失值和第三损失值的权重为例进行说明。参见图5,该方法包括:
步骤S501:电子设备基于本次迭代训练中第一神经网络对训练样本的第一输出结果和该训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,该第一神经网络为对已完成训练的第二神经网络进行压缩得到的。
本步骤与步骤S201的原理相同,在此不再赘述。
步骤S502:电子设备基于该第一输出结果和本次迭代训练中该第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值。
本步骤与步骤S202的原理相同,在此不再赘述。
步骤S503:电子设备基于该第一神经网络和该第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值。
本步骤与步骤S203的原理相同,在此不再赘述。
步骤S504:电子设备确定历史迭代训练产生的第四损失值、第五损失值和第六损失值,该第四损失值、第五损失值和第六损失值分别为历史迭代训练过程中,与该第一损失值、第二损失值和该第三损失值对应的损失值。
电子设备记录迭代训练过程中,第一损失项、第二损失项和第三损失项对应的多个损失值。其中,第一损失项为基于第一神经网络对训练样本的第一输出结果和训练样本中标注的目标输出结果对应的损失项,第二损失项为基于第二神经网络对训练样本的第二输出结果和训练样本中标注的目标输出结果对应的损失项,第三损失项第一神经网络和第二神经网络之间的网络参数差异对应的损失项。在本步骤中,电子设备分别确定历史迭代训练过程中第一损失项对应的第四损失值、第二损失项对应的第五损失值和第三损失项对应的第六损失值。
需要说明的一点是,该第四损失值、第五损失值和第六损失值可以为本次迭代训练的上一次迭代训练产生的损失值,或者为本次迭代训练之前的任一次迭代训练产生的损失值,或者为本次迭代训练之前的多次迭代训练产生的损失值的平均值,在本申请实施例中,对此不作具体限定。
步骤S505:电子设备基于该第四损失值确定该第一损失值的变化梯度;基于该第五损失值确定该第二损失值的变化梯度;基于该第六损失值确定该第三损失值的变化梯度。
该变化梯度表示第一损失值、该第二损失值和该第三损失值在训练过程中,历史迭代训练与本次迭代训练过程中损失值的差异信息,将该损失值的差异信息确定为对应的变化梯度。
步骤S506:电子设备分别基于该第一损失值的变化梯度、该第二损失值的变化梯度和该第三损失值的变化梯度,调整该第一损失值的权重、该第二损失值的权重和该第三损失值的权重。
在一些实施例中,电子设备初始化第一损失值、该第二损失值和该第三损失值的权重,在训练过程中,基于损失值的变化梯度,调整第一损失值、第二损失值和第三损失值的权重。相应地,电子设备分别基于该第一损失值的变化梯度、该第二损失值的变化梯度和该第三损失值的变化梯度,确定目标损失值,该目标损失值为该第一损失值、该第二损失值和该第三损失值中变化梯度小于预设阈值的损失值;降低该目标损失值的权重。在一些实施例中,电子设备提高该变化梯度不小于预设阈值的损失值的权重。
例如,电子设备通过公式二确定第一神经网络的损失值。
公式二:L=w0*L0+w1*L1+w2*L2
其中,L为目标损失值,L0为第一损失值,L1为第二损失值,L2为第三损失值,w0为第一损失值的权重,w1为第二损失值的权重,w2为第三损失值的权重。电子设备初始化公式二中的w0、w1和w2,分别为w0=0、w1=0.6和w2=0.4,然后基于L0、L1和L2的变化梯度,确定L1和L2的变化梯度是否存在小于预设阈值的损失值,当L1的变化梯度小于预设阈值时,将w1调整为0,将w0调整为0.6,或者,将w0调整为0.4,将w2调整为0.6,在本申请实施例中,对此不作具体限定。
需要说明的一点是,在基于每个网络层确定损失值的情况下,电子设备还可以确定每个网络层的损失值的变化梯度,在任一网络层的变化梯度小于预设阈值时,降低该网络层的损失值的权重。相应地,该目标损失值为基于该第一神经网络的至少一个网络层产生的网络层确定的,确定该至少一个网络层中每个网络层对应的损失值的变化梯度;降低该至少一个网络层中变化梯度小于预设阈值的网络层对应的损失值的权重。这样基于每个网络层调整损失值的权重,使得迭代训练过程中,对不同的网络层的专注度更高,进而更有针对性地调节整个训练过程中各网络层的学***衡。
在本申请实施例中,通过对不同损失值的权重引入动态调节机制,模拟人类学***衡。
需要说明的一点是,各损失值的权重之和可以为任意值,在本申请实施例中,对此不作具体限定。
步骤S507:电子设备基于该第一损失值及其调整后的权重、该第二损失值及其调整后的权重、该第三损失值及其调整后的权重,对该第一神经网络进行训练。
电子设备基于第一损失值、该第二损失值和该第三损失值的权重,对第一损失值、该第二损失值和该第三损失值进行加权求和,得到该目标损失值。
其中,电子设备基于该目标损失值对该第一神经网络进行训练的过程与步骤S204的原理相同,在此不再赘述。
在本申请实施例中,电子设备在对压缩后的第一神经网络进行训练时,结合压缩前的第二神经网络的输出结果和网络参数对第一神经网络进行训练,从而在训练的过程中,神经网络除了确定第一神经网络的第一输出结果与目标输出结果之间的差异外,还参考了第二神经网络的第二输出结果与目标输出结果的差异和神经网络的网络参数的差异,从而使神经网络更专注于参数共享后恢复到原始神经网络精度的主要任务,提升了压缩后神经网络的精度,进而提高了神经网络推理的准确性。
图6是本申请实施例提供的一种神经网络的训练装置的结构示意图,参见图6,该装置包括:
第一确定模块601,用于基于本次迭代训练中第一神经网络对训练样本的第一输出结果和该训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,该第一神经网络为对已完成训练的第二神经网络进行压缩得到的;
第二确定模块602,用于基于该第一输出结果和本次迭代训练中该第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值;
第三确定模块603,用于基于该第一神经网络和该第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值;
第一训练模块604,用于基于该第一损失值、该第二损失值和该第三损失值,对该第一神经网络进行训练。
在一些实施例中,该第一训练模块604,包括:
第一确定单元,用于确定历史迭代训练产生的第四损失值、第五损失值和第六损失值,该第四损失值、第五损失值和第六损失值分别为历史迭代训练过程中,与该第一损失值、第二损失值和该第三损失值对应的损失值;
第二确定单元,用于基于该第四损失值确定该第一损失值的变化梯度;基于该第五损失值确定该第二损失值的变化梯度;基于该第六损失值确定该第三损失值的变化梯度;
调整单元,用于分别基于该第一损失值的变化梯度、该第二损失值的变化梯度和该第三损失值的变化梯度,调整该第一损失值的权重、该第二损失值的权重和该第三损失值的权重;
训练单元,用于基于该第一损失值及其调整后的权重、该第二损失值及其调整后的权重、该第三损失值及其调整后的权重,对该第一神经网络进行训练。
在一些实施例中,该调整单元,用于分别基于该第一损失值的变化梯度、该第二损失值的变化梯度和该第三损失值的变化梯度,确定目标损失值,该目标损失值为该第一损失值、该第二损失值和该第三损失值中变化梯度小于预设阈值的损失值;降低该目标损失值的权重。
在一些实施例中,该目标损失值为基于该第一神经网络的至少一个网络层产生的网络层确定的,该调整单元,用于确定该至少一个网络层中每个网络层对应的损失值的变化梯度;降低该至少一个网络层中变化梯度小于预设阈值的网络层对应的损失值的权重。
在一些实施例中,该第三确定模块603,包括:
第六确定单元,用于对于该第一神经网络的至少一层第一网络层,确定该第一网络层的第一网络参数;
第七确定单元,用于对于该第二神经网络的至少一层第二网络层,确定该第二网络层的第二网络参数;
第八确定单元,用于基于对应的第一网络层和第二网络层,确定第七损失值;
第九确定单元,用于将至少一个第七损失值之和确定为该第三损失值。
在一些实施例中,该第一训练模块604,包括:
调整单元,用于基于该第一损失值、该第二损失值和该第三损失值,对该第一神经网络的网络参数进行调整;
精度确定单元,用于确定调整网络参数后的第一神经网络的网络精度;
该第一确定模块601,用于若该调整网络参数后的第一神经网络的网络精度小于预设精度,基于调整网络参数后的第一神经网络,继续执行该基于本次迭代训练中第一神经网络对训练样本的第一输出结果和该训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值的步骤,直到该调整网络参数后的第一神经网络的网络精度不小于该预设精度为止。
在一些实施例中,该装置还包括:
第二训练模块,用于对第三神经网络进行训练,直到该第三神经网络的网络参数收敛,得到第二神经网络;
参数共享模块,用于对该第二神经网络的至少一个网络层的网络参数进行参数聚类,得到该第一神经网络,该第一神经网络的网络层中的不同网络参数位共享相同的网络参数。
在本申请实施例中,电子设备在对压缩后的第一神经网络进行训练时,结合压缩前的第二神经网络的输出结果和网络参数对第一神经网络进行训练,从而在训练的过程中,神经网络除了确定第一神经网络的第一输出结果与目标输出结果之间的差异外,还参考了第二神经网络的第二输出结果与目标输出结果的差异和神经网络的网络参数的差异,从而使神经网络更专注于参数共享后恢复到原始神经网络精度的主要任务,提升了压缩后神经网络的精度,进而提高了神经网络推理的准确性。
若电子设备提供为终端,请参考图7,其示出了本申请一个示例性实施例示出的终端700的结构框图。终端700可以是智能手机、平板电脑等具有控制其他设备的功能的设备。本申请中的终端700可以包括一个或多个如下部件:处理器710、存储器720。
处理器710可以包括一个或者多个处理核心。处理器710利用各种接口和线路连接整个终端700内的各个部分,通过运行或执行存储在存储器720内的程序代码、程序、代码集或程序代码集,以及调用存储在存储器720内的数据,执行终端700的各种功能和处理数据。可选地,处理器710可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器710可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器710中,单独通过一块芯片进行实现。
存储器720可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器720包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器720可用于存储程序代码、程序、代码、代码集或程序代码集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作***的程序代码、用于至少一个功能的程序代码(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的程序代码等;存储数据区可存储根据终端700的使用所创建的数据(比如音频数据、电话本)等。
除此之外,本领域技术人员可以理解,上述附图所示出的终端700的结构并不构成对终端700的限定,终端700可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端700中还包括麦克风、扬声器、射频电路、输入单元、传感器、音频电路、无线保真(Wireless Fidelity,Wi-Fi)模块、电源、蓝牙模块等部件,在此不再赘述。
若电子设备提供为服务器,参见图8,图8是本申请实施例提供的一种服务器的结构框图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括处理器(CentralProcessing Units,CPU)801和存储器802,其中,该存储器802中存储有至少一条程序代码,该至少一条程序代码由该处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器800还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器800还可以包括其他用于实现设备功能的部件,在此不做赘述。
若电子设备提供为终端和服务器,则终端和服务器的结构框图可以分别参见图7和图8。
在示例性实施例中,还提供了一种计算机可读介质,该计算机可读介质存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的神经网络的训练方法。
在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例中的神经网络的训练方法。
在一些实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链***。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅是为了便于本领域的技术人员理解本申请的技术方案,并不用以限制本申请。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种神经网络的训练方法,其特征在于,所述方法包括:
基于本次迭代训练中第一神经网络对训练样本的第一输出结果和所述训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,所述第一神经网络为对已完成训练的第二神经网络进行压缩得到的;
基于所述第一输出结果和本次迭代训练中所述第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值;
基于所述第一神经网络和所述第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值;
基于所述第一损失值、所述第二损失值和所述第三损失值,对所述第一神经网络进行训练。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一损失值、所述第二损失值和所述第三损失值,对所述第一神经网络进行训练,包括:
确定历史迭代训练产生的第四损失值、第五损失值和第六损失值,所述第四损失值、第五损失值和第六损失值分别为历史迭代训练过程中,与所述第一损失值、第二损失值和所述第三损失值对应的损失值;
基于所述第四损失值确定所述第一损失值的变化梯度;基于所述第五损失值确定所述第二损失值的变化梯度;基于所述第六损失值确定所述第三损失值的变化梯度;
分别基于所述第一损失值的变化梯度、所述第二损失值的变化梯度和所述第三损失值的变化梯度,调整所述第一损失值的权重、所述第二损失值的权重和所述第三损失值的权重;
基于所述第一损失值及其调整后的权重、所述第二损失值及其调整后的权重、所述第三损失值及其调整后的权重,对所述第一神经网络进行训练。
3.根据权利要求2所述的方法,其特征在于,所述分别基于所述第一损失值的变化梯度、所述第二损失值的变化梯度和所述第三损失值的变化梯度,调整所述第一损失值的权重、所述第二损失值的权重和所述第三损失值的权重,包括:
分别基于所述第一损失值的变化梯度、所述第二损失值的变化梯度和所述第三损失值的变化梯度,确定目标损失值,所述目标损失值为所述第一损失值、所述第二损失值和所述第三损失值中变化梯度小于预设阈值的损失值;
降低所述目标损失值的权重。
4.根据权利要求3所述的方法,其特征在于,所述目标损失值为基于所述第一神经网络的至少一个网络层产生的网络层确定的,所述降低所述目标损失值的权重,包括:
确定所述至少一个网络层中每个网络层对应的损失值的变化梯度;
降低所述至少一个网络层中变化梯度小于预设阈值的网络层对应的损失值的权重。
5.根据权利要求1所述的方法,其特征在于,所述基于所述第一神经网络和所述第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值,包括:
对于所述第一神经网络的至少一层第一网络层,确定所述第一网络层的第一网络参数;
对于所述第二神经网络的至少一层第二网络层,确定所述第二网络层的第二网络参数;
基于对应的第一网络层和第二网络层,确定第七损失值;
将至少一个第七损失值之和确定为所述第三损失值。
6.根据权利要求1所述的方法,其特征在于,所述基于所述第一损失值、所述第二损失值和所述第三损失值,对所述第一神经网络进行训练,包括:
基于所述第一损失值、所述第二损失值和所述第三损失值,对所述第一神经网络的网络参数进行调整;
确定调整网络参数后的第一神经网络的网络精度;
若所述调整网络参数后的第一神经网络的网络精度小于预设精度,基于调整网络参数后的第一神经网络,继续执行所述基于本次迭代训练中第一神经网络对训练样本的第一输出结果和所述训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值的步骤,直到所述调整网络参数后的第一神经网络的网络精度不小于所述预设精度为止。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对第三神经网络进行训练,直到所述第三神经网络的网络参数收敛,得到第二神经网络;
对所述第二神经网络的至少一个网络层的网络参数进行参数聚类,得到所述第一神经网络,所述第一神经网络的网络层中的不同网络参数位共享相同的网络参数。
8.一种神经网络的训练装置,其特征在于,所述装置包括:
第一确定模块,用于基于本次迭代训练中第一神经网络对训练样本的第一输出结果和所述训练样本中标注的目标输出结果,确定本次迭代训练的第一损失值,所述第一神经网络为对已完成训练的第二神经网络进行压缩得到的;
第二确定模块,用于基于所述第一输出结果和本次迭代训练中所述第二神经网络对训练样本的第二输出结果,确定本次迭代训练的第二损失值;
第三确定模块,用于基于所述第一神经网络和所述第二神经网络之间的网络参数差异,确定本次迭代训练的第三损失值;
训练模块,用于基于所述第一损失值、所述第二损失值和所述第三损失值,对所述第一神经网络进行训练。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1至7任一项所述的神经网络的训练方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至7任一项所述的神经网络的训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210450139.0A CN117010461A (zh) | 2022-04-26 | 2022-04-26 | 神经网络的训练方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210450139.0A CN117010461A (zh) | 2022-04-26 | 2022-04-26 | 神经网络的训练方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117010461A true CN117010461A (zh) | 2023-11-07 |
Family
ID=88564065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210450139.0A Pending CN117010461A (zh) | 2022-04-26 | 2022-04-26 | 神经网络的训练方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117010461A (zh) |
-
2022
- 2022-04-26 CN CN202210450139.0A patent/CN117010461A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI610295B (zh) | 解壓縮及壓縮用於語音辨識之轉換器資料的電腦實施方法及電腦實施之語音辨識系統 | |
CN113298096B (zh) | 训练零样本分类模型的方法、***、电子设备及存储介质 | |
CN113055017A (zh) | 数据压缩方法及计算设备 | |
KR20210126102A (ko) | 신경망 모델 압축/압축해제를 위한 방법 및 장치 | |
US20230252294A1 (en) | Data processing method, apparatus, and device, and computer-readable storage medium | |
CN112837669A (zh) | 语音合成方法、装置及服务器 | |
CN113948060A (zh) | 一种网络训练方法、数据处理方法及相关设备 | |
CN111274412A (zh) | 信息提取方法、信息提取模型训练方法、装置及存储介质 | |
KR20210043894A (ko) | 전자 장치 및 이의 문장 제공 방법 | |
CN116976428A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN116737895A (zh) | 一种数据处理方法及相关设备 | |
CN114338623A (zh) | 音频的处理方法、装置、设备、介质及计算机程序产品 | |
CN113241064A (zh) | 语音识别、模型训练方法、装置、电子设备和存储介质 | |
CN116126354A (zh) | 模型部署方法、装置、电子设备以及存储介质 | |
CN112989843B (zh) | 意图识别方法、装置、计算设备及存储介质 | |
CN117634459A (zh) | 目标内容生成及模型训练方法、装置、***、设备及介质 | |
CN113408704A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN113591472A (zh) | 歌词生成方法、歌词生成模型训练方法、装置及电子设备 | |
CN117010461A (zh) | 神经网络的训练方法、装置、设备及存储介质 | |
CN110781329A (zh) | 图像搜索方法、装置、终端设备及存储介质 | |
CN113990347A (zh) | 一种信号处理方法、计算机设备及存储介质 | |
CN114742036A (zh) | 一种预训练语言模型的组合式模型压缩方法及*** | |
CN116364102A (zh) | 一种数据处理方法及装置、设备、存储介质 | |
KR20220138669A (ko) | 개인화 오디오 정보를 제공하기 위한 전자 장치 및 방법 | |
CN111143641A (zh) | 深度学习模型的训练方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |