CN109635927A - 一种卷积神经网络训练方法及装置 - Google Patents
一种卷积神经网络训练方法及装置 Download PDFInfo
- Publication number
- CN109635927A CN109635927A CN201811481643.7A CN201811481643A CN109635927A CN 109635927 A CN109635927 A CN 109635927A CN 201811481643 A CN201811481643 A CN 201811481643A CN 109635927 A CN109635927 A CN 109635927A
- Authority
- CN
- China
- Prior art keywords
- network
- nerves
- nervus opticus
- difference
- delta1
- 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
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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)
- Magnetic Resonance Imaging Apparatus (AREA)
Abstract
本申请公开了一种卷积神经网络的训练方法及装置,采用第一神经网络和第二神经网络同时训练的方式。在训练过程中,第二神经网络的卷积核参数是第一神经网络对自身的卷积核参数进行量化之后传递给第二神经网络的;第一神经网络的卷积核参数的权重的更新,受到第二神经网络的约束,具体地,用于第一神经网络的卷反向传播计算中的第三差值Delta1′,是利用第二神经网络的损失函数计算得到的第二差值Delta2,更新利用第一神经网络的损失函数确定的第一差值Delta1得到的。利用本申请实施例的方法,可以同时训练得到原始卷积神经网络模型和量化卷积神经网络模型。无需用户手动执行加载原始卷积神经网络模型的步骤,提升了得到量化卷积神经网络模型的效率。
Description
技术领域
本申请涉及深度学习领域,特别是涉及一种卷积神经网络训练方法及装置。
背景技术
随着科学技术的发展,深度学习在图像检测以及语音识别等领域体现出巨大的优势。卷积神经网络是深度学习的一种重要算法。但是由于卷积神经网络模型的计算量巨大,因此在一些应用场景例如在嵌入式设备中无法直接使用,而需要对原始卷积神经网络模型进行量化,以减少卷积神经网络模型的计算量。
目前,可以采用如下方式对原始卷积神经网络模型进行量化:
第一步:通过如下步骤A1-A7训练原始卷积神经网络模型。
A1:按照正态分布随机初始化卷积神经网络的各个卷积核初始值数据。
A2:按照卷积神经网络结构前向计算。
A3:如果损失函数达到给定阈值,执行A7,否则,执行A4。
A4:按照卷积神经网络结构反向传播计算。
A5:按照卷积神经网络结构更新卷积核等权重。
A6:重复A2、A3、A4和A5反复进行训练。
A7:保存卷积神经网络的模型数据,模型数据即为卷积神经网络结构以及各个卷积核相关值。
第二步:通过如下步骤B1-B7利用第一步生成的原始卷积神经网络模型生成量化模型。
B1:加载原始卷积神经网络模型(此为用户手动执行的步骤)。
B2:根据量化方法对加载的网络模型参数进行量化。
B3:评估B2中的量化结果即量化卷积神经网络模型的识别效果。
B4:如果B3中评估的识别效果达到目标,跳转到B7。
B5:更新量化卷积神经网络模型的参数。
B6:重复B2、B3、B4和B5反复进行训练。
B7:保存卷积神经网络模型的模型数据。
第三步:比较第二步生成的量化卷积神经网络模型的识别效果和第一步原始卷积神经网络模型的识别效果,如果二者相差太大,则反复执行以上第一步和第二步的训练工作,直至二者之间的差距满足条件为止。
由此可见,目前对原始卷积神经网络进行量化的方式,由于上述第二步中包含需要用户手动执行的步骤,因此在反复执行以上第一步和第二步的训练工作时,需要用户反复手动执行加载原始卷积神经网络模型的步骤,得到量化卷积神经网络模型的效率比较低。
发明内容
本申请所要解决的技术问题是由于需要用户手动载入原始卷积神经网络模型,使得得到量化卷积神经网络模型的效率比较低,提供一种卷积神经网络训练方法及装置。
第一方面,本申请实施例提供了一种卷积神经网络训练方法,包括如下步骤:
第一步:初始化第一神经网络的各个卷积核参数的取值;
第二步:按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化方法,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;
第三步:判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;
第四步:按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;
第五步:按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;
第六步:返回执行所述第二步进行训练;
第七步:保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。
可选的,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:
利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。
可选的,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:
Delta1′=Delta1*(1-alpha)+Delta2*alpha;
其中,所述alpha为大于等于0,且小于等于1的值。
可选的,所述方法还包括:
保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。
可选的,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;所述方法还包括:
获取输入数据;
分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果;
判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。
第二方面,本申请实施例提供了一种卷积神经网络训练装置,包括:
初始化单元,用于初始化第一神经网络的各个卷积核参数的取值;
前向计算与传递单元,用于按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化装置,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;
第一判断单元,用于判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;
反向传播计算单元,用于按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;
权重更新单元,用于按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;
循环单元,返回执行所述第二步进行训练;
第一保存单元,用于保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。
可选的,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:
利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。
可选的,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:
Delta1′=Delta1*(1-alpha)+Delta2*alpha;
其中,所述alpha为大于等于0,且小于等于1的值。
可选的,所述装置还包括:
第二保存单元,用于保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。
可选的,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;所述装置还包括:
输入数据获取单元,用于获取输入数据;
输出结果得到单元,用于分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果;
第二判断单元,用于判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。
与现有技术相比,本申请实施例具有以下优点:
在本申请实施例中,对卷积神经网络进行训练时,第一神经网络和第二神经网络同时训练。在训练过程中,第二神经网络的卷积核参数是第一神经网络对自身的卷积核参数进行量化之后传递给第二神经网络的;第一神经网络的卷积核参数的权重的更新,受到第二神经网络的约束,具体地,用于所述第一神经网络的反向传播计算中的第三差值Delta1′,是利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1得到的。这样一来,使得第一神经网络和第二神经网络之间互相关联,使得训练得到的第一神经网络对应的神经网络模型和训练得到的第二神经网络对应的神经网络模型尽量接近。也就是说,利用本申请实施例的方法,可以同时训练得到原始卷积神经网络模型(即第一神经网络对应的神经网络模型)和量化卷积神经网络模型(即第二神经网络对应的神经网络模型)。无需像现有技术中那样,首先训练得到原始卷积神经网络模型,由用户手动执行加载原始卷积神经网络模型的步骤,提升了得到量化卷积神经网络模型的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种卷积神经网络训练方法的流程示意图;
图2为本申请实施例提供的一种识别效果验证的方法的流程示意图;
图3为本申请实施例中一种卷积神经网络训练装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的发明人经过研究发现,现有技术中,对原始卷积神经网络进行量化时,包含需要用户手动执行加载原始卷积神经网络模型的步骤,使得得到量化卷积神经网络模型的效率比较低。
为了解决上述问题,在本申请实施例中,对卷积神经网络进行训练时,第一神经网络和第二神经网络同时训练。在训练过程中,第二神经网络的卷积核参数是第一神经网络对自身的卷积核参数进行量化之后传递给第二神经网络的;第一神经网络的卷积核参数的权重的更新,受到第二神经网络的约束,具体地,用于所述第一神经网络的反向传播计算中的第三差值Delta1′,是利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1得到的。这样一来,使得第一神经网络和第二神经网络之间互相关联,使得训练得到的第一神经网络对应的神经网络模型和训练得到的第二神经网络对应的神经网络模型尽量接近。也就是说,利用本申请实施例的方法,可以同时训练得到原始卷积神经网络模型(即第一神经网络对应的神经网络模型)和量化卷积神经网络模型(即第二神经网络对应的神经网络模型)。无需像现有技术中那样,首先训练得到原始卷积神经网络模型,由用户手动执行加载原始卷积神经网络模型的步骤,提升了得到量化卷积神经网络模型的效率。
在对本申请实施例提供的卷积神经网络训练方法进行介绍之前,首先对神经网络的结构进行简单介绍。
从整体上来看,神经网络结构包括,输入层,输出层和隐层。其中,神经网络的输入层用于将待处理的数据以MAP的形式输入;神经网络的输出层用于输出对输入数据的处理结果;神经网络的隐层可以包括一个或多个卷积层,每个卷积层包括一个或多个节点,并且每个卷积层都包括对应的卷积核,该卷积核用于对输入层输入的数据进行相应的计算,获得各个节点的计算结果。
下面结合附图,详细说明本申请的各种非限制性实施方式。
示例性方法
参见图1,该图为本申请实施例提供的一种卷积神经网络训练方法的流程示意图。
在本实施例中,所述方法例如可以通过以下步骤S101-S107实现。
S101:初始化第一神经网络的各个卷积核参数的取值。
一般而言,对第一神经网络的各个卷积核参数进行初始化时,可以按照正态分布对所述各个卷积核参数进行随机初始化。
S102:按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化方法,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重。
需要说明的是,按照所述第一神经网络的神经网络结构进行前向计算是指,对于输入层输入的数据,利用当前第一神经网络的神经网络结构,计算该第一神经网络的神经网络结构中隐层各个节点的计算结果。
本申请实施例不具体限定所述预设量化方法,所述预设量化方法可以根据实际应用具体确定,所述预设量化方法例如可以为将浮点型数据量化为整型数据。
在本申请实施例中,对第一神经网络的卷积核参数进行量化之后,将量化之后的卷积核参数传递给第二神经网络。第二神经网络接收到所述量化之后的卷积核参数之后,即将所述量化之后的卷积核参数配置为所述第二神经网络的卷积核参数,并基于所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算。
可以理解的是,在对第一神经网络进行训练的过程中,S102中“按照所述第一神经网络的神经网络结构进行前向计算”之后,即可获得第一神经网络的损失函数。利用该第一神经网络的损失函数,可以计算得到一个第一差值Delta1。在传统技术中,若单独对第一神经网络进行训练,则该第一差值可以用于反向传播计算中,用于计算新的卷积核参数的权重。
在本申请实施例中,由于是同时训练第一神经网络和第二神经网络,而且,第一神经网络和第二神经网络之间具有一定的关联,第一神经网络为量化之前的神经网络,第二神经网络为对第一神经网络进行量化之后的神经网络。因此,在本申请实施例中,并不是如传统技术中那样,直接将第一差值Delta1用于反向传播计算中,以更新第一神经网络的卷积核参数的权重。而是利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,将更新得到的第三差值Delta1′用于训练第一神经网络的反向传播计算中,以更新第一神经网络的卷积核参数的权重。
S103:判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行S107;反之执行S104。
在本实施例中,若所述第一神经网络的损失函数达到给定阈值,或者,所述第一神经网络的训练次数达到预设次数,则可以认为当前对第一神经网络训练获得的神经网络模型可以根据输入层输入的数据,计算得到比较准确的输出结果。此时,可以结束对该第一神经网络的训练。反之,则说明当前训练获得的神经网络模型还不能根据输入层输入的数据,计算得到比较准确的输出结果。
本实施例中不具体限定损失函数和给定阈值的具体形式,损失函数和给定阈值均是预先设置好的,具体设置方式可以根据实际应用确定。
S104:按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算。
S105:按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重。
关于S104和S105,需要说明的是,反向传播计算为前向计算的逆计算。
可以理解的是,在第一神经网络训练时,对输入数据进行前向计算的结果会存在一定的误差,反向传播计算则是对前向计算的误差值进行反向传播,直至传播到输入层。
与传统技术不同的是,本申请实施例不是如传统技术中那样,直接将第一差值Delta1用于反向传播中。而是将更新得到的第三差值Delta1′用于训练第一神经网络的反向传播中。
在反向传播的过程中,会对第一神经网络的卷积核参数的权重进行更新。
S106:返回执行所述S102进行训练。
S107:保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。
在本申请实施例中,第一神经网络训练完成,则认为第二神经网络也已经训练完成,因此,当S103中“判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数”的结果为“是”时,则可以认为第二神经网络已经训练完成。此时,可以保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。
通过以上描述可知,利用本申请实施例提供的卷积神经网络的训练方法,对卷积神经网络进行训练时,第一神经网络和第二神经网络同时训练。在训练过程中,第二神经网络的卷积核参数是第一神经网络对自身的卷积核参数进行量化之后传递给第二神经网络的;第一神经网络的卷积核参数的权重的更新,受到第二神经网络的约束,具体地,用于所述第一神经网络的反向传播计算中的第三差值Delta1′,是利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1得到的。这样一来,使得第一神经网络和第二神经网络之间互相关联,使得训练得到的第一神经网络对应的神经网络模型和训练得到的第二神经网络对应的神经网络模型尽量接近。也就是说,利用本申请实施例的方法,可以同时训练得到原始卷积神经网络模型(即第一神经网络对应的神经网络模型)和量化卷积神经网络模型(即第二神经网络对应的神经网络模型)。无需像现有技术中那样,首先训练得到原始卷积神经网络模型,由用户手动执行加载原始卷积神经网络模型的步骤,提升了得到量化卷积神经网络模型的效率。
在本申请实施例的一种可能的实现方式中,步骤S102中提及的“利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′”在具体实现时,可以利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。更具体地,可以利用如下公式(1)利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。
Delta1′=Delta1*(1-alpha)+Delta2*alpha 公式(1)
需要说明的是,在本申请实施例中,所述影响因子用于表征所述第二神经网络对第一神经网络的影响程度。
本申请实施例不具体限定所述影响因子所述影响因子alpha的具体取值,所述影响因子可以为大于等于0且小于等于1的值。可以理解的是,当所述影响因子alpha等于0时,Delta1′=Delta1,表示第二神经网络对第一神经网络没有影响;当影响因子alpha等于1时,Delta1′=Delta2,表示第二神经网络对第一神经网络的影响很大,第一神经网络并不按照第一神经网络的损失函数计算得到第一差值Delta1进行卷积核参数的更新,而仅仅按照第二神经网络的损失函数计算得到第二差值Delta2进行卷积核参数的更新,也就是说,当影响因子alpha等于1时,第一神经网络只按照第二神经网络更新。
在本申请实施例的一种可能的实现方式中,除了保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型之外,还可以保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。即除了保存量化后的神经网络模型之外,还保存量化之前的神经网络模型。这样一来,一次训练既得到了可以应用于特定应用场景例如嵌入式设备中的神经网络模型,又得到了可以应用于能够处理巨大计算量的设备上的神经网络模型。
为方便描述,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型。
考虑到实际应用中,第一神经网络模型和第二神经网络模型的计算量虽然不一样,但是第一神经网络模型的识别效果与第二神经网络模型的识别效果不应有太大差别。因此,在本申请实施例的一种可能的实现方式中,保存第一神经网络模型和第二神经网络模型之后,还可以验证第一神经网络模型的识别效果与第二神经网络模型的识别效果是否没有太大差别。
参见图2,该图为本申请实施例提供的一种识别效果验证的方法的流程示意图。
该图所示的方法,例如可以通过如下步骤S201-S203实现。
S201:获取输入数据。
需要说明的是,本申请实施例不具体限定所述输入数据,所述输入数据与所述第一神经网络模型和所述第二神经网络模型的应用场景相关。例如,所述第一神经网络模型和所述第二神经网络模型应用于图像识别,则所述输入数据可以为图像;又如,所述第一神经网络模型和所述第二神经网络模型应用于语音识别,则所述输入数据可以为语音。
S202:分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果。
S203:判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。
本申请实施例不具体限定所述预设条件,所述预设条件可以根据实际情况确定,作为一种示例,所述预设条件可以为所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果的符合程度高于第一阈值。
可以理解的是,当所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果满足预设条件时,则说明第一神经网络模型的识别效果与第二神经网络模型的识别效果是否没有太大差别。
在本申请实施例中,为了获得识别准确度高的量化卷积神经网络,可以利用图1所述的方法训练得到多个第二神经网络模型和该多个第二神经网络模型对应的第一神经网络模型,然后利用图2的方法,确定出识别效果与其对应的第一神经网络模型的识别效果相似度最高的第二神经网络模型,作为最终应用到特定场景例如嵌入式设备中的神经网络模型。
示例性设备
基于以上实施例提供的卷积神经网络训练方法,本申请实施例还提供了一种卷积神经网络训练装置,以下结合附图介绍该装置。
参见图3,该图为本申请实施例中一种卷积神经网络训练装置的结构示意图。
所述装置300例如可以具体包括:初始化单元310、前向计算与传递单元320、第一判断单元330、反向传播计算单元340、权重更新单元350、循环单元360和第一保存单元370。
初始化单元310,用于初始化第一神经网络的各个卷积核参数的取值;
前向计算与传递单元320,用于按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化装置,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;
第一判断单元330,用于判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;
反向传播计算单元340,用于按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;
权重更新单元350,用于按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;
循环单元360,用于返回执行所述第二步进行训练;
第一保存单元370,用于保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。
可选的,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:
利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。
可选的,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:
Delta1′=Delta1*(1-alpha)+Delta2*alpha;
其中,所述alpha为大于等于0,且小于等于1的值。
可选的,所述装置300还包括:
第二保存单元,用于保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。
可选的,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;所述装置300还包括:
输入数据获取单元,用于获取输入数据;
输出结果得到单元,用于分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果;
第二判断单元,用于判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。
由于所述装置300是与以上方法实施例提供的方法对应的装置,所述装置300的各个单元的具体实现,均与以上方法实施例为同一构思,因此,关于所述装置300的各个单元的具体实现,可以参考以上方法实施例的描述部分,此处不再赘述。
通过以上描述可知,利用本申请实施例提供的卷积神经网络的训练装置,对卷积神经网络进行训练时,第一神经网络和第二神经网络同时训练。在训练过程中,第二神经网络的卷积核参数是第一神经网络对自身的卷积核参数进行量化之后传递给第二神经网络的;第一神经网络的卷积核参数的权重的更新,受到第二神经网络的约束,具体地,用于所述第一神经网络的反向传播计算中的第三差值Delta1′,是利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1得到的。这样一来,使得第一神经网络和第二神经网络之间互相关联,使得训练得到的第一神经网络对应的神经网络模型和训练得到的第二神经网络对应的神经网络模型尽量接近。也就是说,利用本申请实施例的方法,可以同时训练得到原始卷积神经网络模型(即第一神经网络对应的神经网络模型)和量化卷积神经网络模型(即第二神经网络对应的神经网络模型)。无需像现有技术中那样,首先训练得到原始卷积神经网络模型,由用户手动执行加载原始卷积神经网络模型的步骤,提升了得到量化卷积神经网络模型的效率。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种卷积神经网络训练方法,其特征在于,包括如下步骤:
第一步:初始化第一神经网络的各个卷积核参数的取值;
第二步:按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化方法,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;
第三步:判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;
第四步:按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;
第五步:按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;
第六步:返回执行所述第二步进行训练;
第七步:保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:
利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。
3.根据权利要求2所述的方法,其特征在于,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:
Delta1′=Delta1*(1-alpha)+Delta2*alpha;
其中,所述alpha为大于等于0,且小于等于1的值。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。
5.根据权利要求4所述的方法,其特征在于,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;所述方法还包括:
获取输入数据;
分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果;
判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。
6.一种卷积神经网络训练装置,其特征在于,包括:
初始化单元,用于初始化第一神经网络的各个卷积核参数的取值;
前向计算与传递单元,用于按照所述第一神经网络的神经网络结构进行前向计算;按照预设量化装置,对所述第一神经网络的卷积核参数进行量化,并将量化之后的卷积核参数传递给第二神经网络,以使得第二神经网络利用所述量化之后的卷积核参数和第二神经网络的神经网络结构,进行前向计算;利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′;其中,所述第三差值Delta1′用于更新所述第一神经网络的卷积核参数的权重;
第一判断单元,用于判断所述第一神经网络的损失函数是否达到给定阈值,或者,所述第一神经网络的训练次数是否达到预设次数,如果是则执行第七步;反之执行第四步;
反向传播计算单元,用于按照所述第一神经网络的神经网络结构利用所述第三差值Delta1′进行反向传播计算;
权重更新单元,用于按照所述第一神经网络的神经网络结构更新所述第一神经网络的卷积核参数的权重;
循环单元,用于返回执行所述第二步进行训练;
第一保存单元,用于保存所述第二神经网络对应的网络结构以及训练得到的所述第二神经网络对应的神经网络模型。
7.根据权利要求6所述的装置,其特征在于,所述利用所述第二神经网络的损失函数计算得到的第二差值Delta2,更新利用所述第一神经网络的损失函数确定的第一差值Delta1,得到第三差值Delta1′,包括:
利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′。
8.根据权利要求7所述的装置,其特征在于,利用所述第一差值Delta1、所述第二差值Delta2以及所述第二神经网络对所述第一神经网络的影响因子alpha,得到所述第三差值Delta1′,包括:
Delta1′=Delta1*(1-alpha)+Delta2*alpha;
其中,所述alpha为大于等于0,且小于等于1的值。
9.根据权利要求6-8任意一项所述的装置,其特征在于,所述装置还包括:
第二保存单元,用于保存所述第一神经网络对应的网络结构以及训练得到的所述第一神经网络对应的神经网络模型。
10.根据权利要求9所述的装置,其特征在于,将所述训练得到的所述第一神经网络对应的神经网络模型称为第一神经网络模型;将所述训练得到的所述第二神经网络对应的神经网络模型称为第二神经网络模型;所述装置还包括:
输入数据获取单元,用于获取输入数据;
输出结果得到单元,用于分别将所述输入数据作为所述第一神经网络模型和所述第二神经网络模型的输入,得到所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果;
第二判断单元,用于判断所述第一神经网络模型的输出结果和所述第二神经网络模型的输出结果之间的符合程度是否满足预设条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811481643.7A CN109635927A (zh) | 2018-12-05 | 2018-12-05 | 一种卷积神经网络训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811481643.7A CN109635927A (zh) | 2018-12-05 | 2018-12-05 | 一种卷积神经网络训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109635927A true CN109635927A (zh) | 2019-04-16 |
Family
ID=66071334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811481643.7A Pending CN109635927A (zh) | 2018-12-05 | 2018-12-05 | 一种卷积神经网络训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635927A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110211593A (zh) * | 2019-06-03 | 2019-09-06 | 北京达佳互联信息技术有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN110378466A (zh) * | 2019-06-03 | 2019-10-25 | 北京大学 | 基于神经网络差分的量化方法及系统 |
CN110889450A (zh) * | 2019-11-27 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 超参数调优、模型构建方法和装置 |
CN110942148A (zh) * | 2019-12-11 | 2020-03-31 | 北京工业大学 | 一种自适应的非对称量化的深度神经网络模型压缩方法 |
CN111079691A (zh) * | 2019-12-27 | 2020-04-28 | 中国科学院重庆绿色智能技术研究院 | 一种基于双流网络的剪枝方法 |
CN112149797A (zh) * | 2020-08-18 | 2020-12-29 | Oppo(重庆)智能科技有限公司 | 神经网络结构优化方法和装置、电子设备 |
WO2021035980A1 (zh) * | 2019-08-23 | 2021-03-04 | 平安科技(深圳)有限公司 | 人脸识别模型的训练方法、装置、设备及可读存储介质 |
WO2022179492A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 一种卷积神经网络的剪枝处理方法、数据处理方法及设备 |
-
2018
- 2018-12-05 CN CN201811481643.7A patent/CN109635927A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110211593A (zh) * | 2019-06-03 | 2019-09-06 | 北京达佳互联信息技术有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN110378466A (zh) * | 2019-06-03 | 2019-10-25 | 北京大学 | 基于神经网络差分的量化方法及系统 |
WO2021035980A1 (zh) * | 2019-08-23 | 2021-03-04 | 平安科技(深圳)有限公司 | 人脸识别模型的训练方法、装置、设备及可读存储介质 |
CN110889450A (zh) * | 2019-11-27 | 2020-03-17 | 腾讯科技(深圳)有限公司 | 超参数调优、模型构建方法和装置 |
CN110889450B (zh) * | 2019-11-27 | 2023-08-11 | 腾讯科技(深圳)有限公司 | 超参数调优、模型构建方法和装置 |
CN110942148A (zh) * | 2019-12-11 | 2020-03-31 | 北京工业大学 | 一种自适应的非对称量化的深度神经网络模型压缩方法 |
CN110942148B (zh) * | 2019-12-11 | 2020-11-24 | 北京工业大学 | 一种自适应的非对称量化的深度神经网络模型压缩方法 |
CN111079691A (zh) * | 2019-12-27 | 2020-04-28 | 中国科学院重庆绿色智能技术研究院 | 一种基于双流网络的剪枝方法 |
CN112149797A (zh) * | 2020-08-18 | 2020-12-29 | Oppo(重庆)智能科技有限公司 | 神经网络结构优化方法和装置、电子设备 |
CN112149797B (zh) * | 2020-08-18 | 2023-01-03 | Oppo(重庆)智能科技有限公司 | 神经网络结构优化方法和装置、电子设备 |
WO2022179492A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 一种卷积神经网络的剪枝处理方法、数据处理方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635927A (zh) | 一种卷积神经网络训练方法及装置 | |
KR102386806B1 (ko) | 신경 아키텍처 검색 | |
CN110428046B (zh) | 神经网络结构的获取方法及装置、存储介质 | |
CN105845128A (zh) | 基于动态剪枝束宽预测的语音识别效率优化方法 | |
CN103853786B (zh) | 数据库参数的优化方法与系统 | |
CN108599809B (zh) | 全双工自干扰信号数字消除方法及装置 | |
CN109524020A (zh) | 一种语音增强处理方法 | |
US9886948B1 (en) | Neural network processing of multiple feature streams using max pooling and restricted connectivity | |
CN111178520A (zh) | 一种低计算能力处理设备的数据处理方法及装置 | |
CN113011603A (zh) | 模型参数更新方法、装置、设备、存储介质及程序产品 | |
Patil et al. | Variational quantum linear solver with a dynamic ansatz | |
CN111191785A (zh) | 一种基于拓展搜索空间的结构搜索方法 | |
CN109800517B (zh) | 一种改进的磁流变阻尼器逆向建模方法 | |
CN109448039B (zh) | 一种基于深度卷积神经网络的单目视觉深度估计方法 | |
TWI452529B (zh) | Combined with the system equivalent model of the system and its computer program products | |
CN113965313A (zh) | 基于同态加密的模型训练方法、装置、设备以及存储介质 | |
Li et al. | Mimonet: Multi-input multi-output on-device deep learning | |
CN108491927A (zh) | 一种基于神经网络的数据处理方法和装置 | |
CN103559541A (zh) | 一种大数据中面向乱序数据流的反向传播方法 | |
CN109508781A (zh) | 神经网络节点的自增减方法、装置及存储介质 | |
KR102460485B1 (ko) | 정책 벡터 기반 인공신경망 탐색 장치 및 방법 | |
CN113657466B (zh) | 预训练模型的生成方法、装置、电子设备和存储介质 | |
CN108734267A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN104269872B (zh) | 一种变压器三相节点导纳矩阵奇异的处理方法 | |
Li et al. | Denoisingnet: An efficient convolutional neural network for image denoising |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190416 |