神经网络的训练方法、训练装置和电子设备制造方法及图纸

技术编号:24889923 阅读:30 留言:0更新日期:2020-07-14 18:16
公开了一种神经网络的训练方法、神经网络的训练装置和电子设备。该神经网络的训练方法包括:将训练数据输入已训练的第一神经网络和待训练的第二神经网络;确定第一神经网络的预设层输出的第一特征图与第二神经网络在所述预设层输出的第二特征图;基于第一特征图和第二特征图确定第二神经网络的第一损失函数值;基于第一损失函数值和第二神经网络的第二损失函数值,更新第二神经网络的参数;以及,将更新后的第二神经网络的参数作为待训练的第二神经网络的初始参数,以迭代方式更新第二神经网络的参数,在更新得到的第二神经网络符合预设条件时,得到最终已训练的第二神经网络。这样,提高了训练后的第二神经网络的精度。

【技术实现步骤摘要】
神经网络的训练方法、训练装置和电子设备
本申请涉及深度学习
,且更具体地,涉及一种神经网络的训练方法、神经网络的训练装置和电子设备。
技术介绍
性能优良的深度神经网络通常具有较深的层数,导致网络的参数量巨大。如果要在移动端应用的话,通常会选择模型参数较小的轻量型网络,但轻量型网络的性能相对没有那么优良。提升轻量型网络的模型性能的技术中,知识蒸馏作为一种有效的手段,被广泛应用。其工作原理是将大模型的输出作为辅助标注去进一步有效的监督轻量型网络的训练,实现知识迁移。但是,传统的知识蒸馏并没有充分地将大网络的知识迁移到轻量型网络中,轻量型网络的精度尚存在提高空间。因此,期望提供改进的轻量型网络的生成方案。
技术实现思路
为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种神经网络的训练方法、神经网络的训练装置和电子设备,其能够结合已训练和未训练的神经网络在相同预设层的特征图获得损失函数,并进一步结合未训练的神经网络本身的损失函数来更新未训练的神经网络的参数,从而提高训练后的神经网络的精度。根据本申请的一个方面,提供了一种神经网络的训练方法,包括:将训练数据输入已训练的第一神经网络和待训练的第二神经网络;确定所述第一神经网络的预设层输出的第一特征图与所述第二神经网络在所述预设层输出的第二特征图;基于所述第一特征图和所述第二特征图确定所述第二神经网络的第一损失函数值;基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数;以及,将更新后的所述第二神经网络的参数作为待训练的第二神经网络的初始参数,以迭代方式重复上述所述将训练数据输入已训练的第一神经网络和待训练的第二神经网络的步骤~所述基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数的步骤,在更新得到的所述第二神经网络符合预设条件时,得到最终已训练的所述第二神经网络。根据本申请的另一方面,提供了一种神经网络的训练装置,包括:神经网络输入单元,用于将训练数据输入已训练的第一神经网络和待训练的第二神经网络;特征图确定单元,用于确定所述神经网络输入单元输入的所述第一神经网络的预设层输出的第一特征图与所述第二神经网络在所述预设层输出的第二特征图;损失函数确定单元,用于基于所述特征图确定单元确定的所述第一特征图和所述第二特征图确定所述第二神经网络的第一损失函数值;神经网络更新单元,用于基于所述损失函数确定单元确定的所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数;以及,迭代更新单元,用于将更新后的所述第二神经网络的参数作为待训练的第二神经网络的初始参数,以迭代方式重复上述所述将训练数据输入已训练的第一神经网络和待训练的第二神经网络的步骤~所述基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数的步骤,在更新得到的所述第二神经网络符合预设条件时,得到最终已训练的所述第二神经网络。根据本申请的再一方面,提供了一种电子设备,包括:处理器;以及,存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如上所述的神经网络的训练方法。根据本申请的又一方面,提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如上所述的神经网络的训练方法。与现有技术相比,根据本申请的神经网络的训练方法、神经网络的训练装置和电子设备可以将训练数据输入已训练的第一神经网络和待训练的第二神经网络;确定所述第一神经网络的预设层输出的第一特征图与所述第二神经网络在所述预设层输出的第二特征图;基于所述第一特征图和所述第二特征图确定所述第二神经网络的第一损失函数值;基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数;将更新后的所述第二神经网络的参数作为待训练的第二神经网络的初始参数,以迭代方式重复上述所述将训练数据输入已训练的第一神经网络和待训练的第二神经网络的步骤~所述基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数的步骤,在更新得到的所述第二神经网络符合预设条件时,得到最终已训练的所述第二神经网络。这样,因为通过结合已训练的第一神经网络和待训练的第二神经网络在预设层输出的特征图来确定损失函数值,并进一步结合所述第二神经网络本身的损失函数值来更新所述第二神经网络的参数,并将更新后的所述第二神经网络的参数作为待训练的第二神经网络的初始参数,以迭代方式更新所述第二神经网络,可以充分并有效地利用所述已训练的第一神经网络的参数来对所述第二神经网络进行训练,从而提高所述第二神经网络的精度。附图说明通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。图1图示了根据本申请实施例的神经网络的训练方法的流程图。图2图示了根据本申请实施例的神经网络的训练方法中的迭代过程的示意图。图3图示了根据本申请实施例的神经网络的训练方法应用于图像识别和检测场景的示意图。图4图示了根据本申请实施例的神经网络的训练方法在图像识别和检测场景下的特征图和损失函数确定过程的流程图。图5图示了根据本申请实施例的神经网络的训练方法应用于分类场景的示意图。图6图示了根据本申请实施例的神经网络的训练方法在分类场景下的特征图和损失函数确定过程的流程图。图7图示了根据本申请实施例的神经网络的训练方法中所述第二神经网络的训练示例的流程图。图8图示了根据本申请实施例的神经网络的训练装置的框图。图9图示了根据本申请实施例的神经网络的训练装置在图像识别和检测场景下的第一示例的框图。图10图示了根据本申请实施例的神经网络的训练装置在分类场景下的第二示例的框图。图11图示了根据本申请实施例的神经网络的训练装置的示意性神经网络更新单元的框图。图12图示了根据本申请实施例的电子设备的框图。具体实施方式下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。申请概述如上所述,通过知识蒸馏,可以实现大网络到轻量型网络的知识迁移。并且,知识迁移的程度决定了轻量型网络的精度,也就是说,如果知识迁移不充分,则生成的轻量型网络的精度不足。对于以上技术问题,本申请的基本构思是通过结合已训练的神经网络和待训练的神经网络在预设层输出的特征图来确定损失函数值,并进一步结合待训练的神经网络本身的损失函数值来通过迭代方式更新待训练的神经网络的参数。具体地,本申请提供的本文档来自技高网...

【技术保护点】
1.一种神经网络的训练方法,包括:/n将训练数据输入已训练的第一神经网络和待训练的第二神经网络;/n确定所述第一神经网络的预设层输出的第一特征图与所述第二神经网络在所述预设层输出的第二特征图;/n基于所述第一特征图和所述第二特征图确定所述第二神经网络的第一损失函数值;以及/n基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数;以及/n将更新后的所述第二神经网络的参数作为待训练的第二神经网络的初始参数,以迭代方式重复上述所述将训练数据输入已训练的第一神经网络和待训练的第二神经网络的步骤~所述基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数的步骤,在更新得到的所述第二神经网络符合预设条件时,得到最终已训练的所述第二神经网络。/n

【技术特征摘要】
1.一种神经网络的训练方法,包括:
将训练数据输入已训练的第一神经网络和待训练的第二神经网络;
确定所述第一神经网络的预设层输出的第一特征图与所述第二神经网络在所述预设层输出的第二特征图;
基于所述第一特征图和所述第二特征图确定所述第二神经网络的第一损失函数值;以及
基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数;以及
将更新后的所述第二神经网络的参数作为待训练的第二神经网络的初始参数,以迭代方式重复上述所述将训练数据输入已训练的第一神经网络和待训练的第二神经网络的步骤~所述基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数的步骤,在更新得到的所述第二神经网络符合预设条件时,得到最终已训练的所述第二神经网络。


2.如权利要求1所述的神经网络的训练方法,其中,
确定所述第一神经网络的预设层输出的第一特征图与所述第二神经网络在所述预设层输出的第二特征图包括:
将所述第一神经网络的卷积层中的最后一层输出的特征图确定为第一特征图;以及,
将所述第二神经网络的卷积层中的最后一层输出的特征图确定为第二特征图;
基于所述第一特征图和所述第二特征图确定所述第二神经网络的第一损失函数值包括:
基于所述第一特征图和所述第二特征图确定所述第二神经网络的L2损失函数值;以及
基于所述L2损失函数值确定所述第二神经网络的第一损失函数值。


3.如权利要求1所述的神经网络的训练方法,其中,
确定所述第一神经网络的预设层输出的第一特征图与所述第二神经网络在所述预设层输出的第二特征图包括:
将所述第一神经网络的softmax层输出的特征图确定为第一特征图;以及,
将所述第二神经网络的softmax层输出的特征图确定为第二特征图;
基于所述第一特征图和所述第二特征图确定所述第二神经网络的第一损失函数值包括:
基于所述第一特征图和所述第二特征图确定所述第二神经网络的交叉熵损失函数值;以及
基于所述交叉熵损失函数值确定所述第二神经网络的第一损失函数值。


4.如权利要求1所述的神经网络的训练方法,其中,基于所述第一损失函数值和所述第二神经网络的第二损失函数值,更新所述第二神经网络的参数包括:
计算所述第二神经网络的交叉熵损失函数值作为所述第二损失函数值;
计算所述第一损失函数值和所述第二损失函数值的加权和作为总损失函数值;以及
以所述总损失函数值通过反向传播的方式更新所述第二神经网络的参数。


5.如权利要求1所述的神经网络的训练方法,其中,在将训练数据输入已训练的第一神经网络和待训莲的第二神经网络之前进一步包括:
训练第一神经网络直到所述第一神经网络收敛;以及
对所述第一神经网络对应的所述第二神经网络进行高斯初始化。


6.一种神经网络的训练装置,包括:
神经网络输入单元,用于将训练数据输入已训练的第一神经网络和待训练的第...

【专利技术属性】
技术研发人员:周贺龙张骞黄畅
申请(专利权)人:南京人工智能高等研究院有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1