CN112288086A - 一种神经网络的训练方法、装置以及计算机设备 - Google Patents

一种神经网络的训练方法、装置以及计算机设备 Download PDF

Info

Publication number
CN112288086A
CN112288086A CN202011194238.4A CN202011194238A CN112288086A CN 112288086 A CN112288086 A CN 112288086A CN 202011194238 A CN202011194238 A CN 202011194238A CN 112288086 A CN112288086 A CN 112288086A
Authority
CN
China
Prior art keywords
neural network
preset
network
loss value
neural
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.)
Granted
Application number
CN202011194238.4A
Other languages
English (en)
Other versions
CN112288086B (zh
Inventor
游山
杜尚宸
王飞
钱晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sensetime Technology Development Co Ltd
Original Assignee
Beijing Sensetime Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sensetime Technology Development Co Ltd filed Critical Beijing Sensetime Technology Development Co Ltd
Priority to CN202011194238.4A priority Critical patent/CN112288086B/zh
Publication of CN112288086A publication Critical patent/CN112288086A/zh
Application granted granted Critical
Publication of CN112288086B publication Critical patent/CN112288086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

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

一种神经网络的训练方法、装置以及计算机设备
技术领域
本公开涉及人工智能技术领域,具体而言,涉及一种神经网络的训练方法、装置以及计算机设备。
背景技术
目前,知识蒸馏广泛用于模型压缩和迁移学习,它使较小的学生网络可以模仿大型教师网络的行为并取得良好的效果。尤其在图像分类任务中,大型教师网络的训练需要占用大量的计算资源,且在训练完成后,大型教师网络对图像数据的处理也需要在支持高速计算的处理器中运行。而由于小的学生网络占用的计算资源较少,对硬件环境的要求较低,且产生的硬件延时较短,可以应用于实时的图像或视频流处理中。
在现有的知识蒸馏算法中,较为常用的是集成知识蒸馏算法。集成知识蒸馏使用简单的集成方法,例如,计算平均损失值或者将每个教师网络的输出值进行平均。但是,该方法没有考虑教师网络的多样性和提供知识之间的冲突。类比人类学习,教师提供给学生学习目标和学习方向(例如,基于图像分类的预测结果构建的损失函数关于学生网络的网络参数的梯度)。多个教师存在时,学生会被提供多个梯度方向,方向之间会存在冲突。计算平均损失值或者将每个教师网络的输出值进行平均会导致发生冲突时学生网络的选择往往被一些教师网络所主导,从而不能利用所有教师网络提供的知识,由此影响学生网络的蒸馏学习效率。
发明内容
本公开实施例至少提供一种神经网络的训练方法、装置以及计算机设备。
第一方面,本公开实施例提供了一种神经网络的训练方法,包括:
获取样本图像;将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练;基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异;采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值;根据所述第一目标损失值迭代调整所述第一神经网络的网络参数。
在本公开实施例中,在通过多个第二神经网络对第一神经网络进行训练的过程中,根据第二神经网络和第一神经网络的输出数据确定每个第二神经网络的权重值,并利用该权重值对各个第二神经网络对应的蒸馏损失进行加权计算得到第一目标损失值,并根据该第一目标损失值对第一神经网络进行训练的方式,能够提升第一神经网络的训练效率。
一种可选的实施方式中,所述基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,包括:对所述目标函数进行L2范数最小化求解,得到所述目标函数中用于对所述第一损失值的梯度加权的预设权重变量的最优解,并将所述最优解确定为所述第二神经网络的权重值。
在上述实施方式中,将求解第二神经网络的权重值的问题转化为多目标优化过程,即,对目标函数进行最优求解,最优求解的计算结果即为每个第二神经网络的权重值。根据求解得到的权重值计算第一目标损失值,并根据该第一目标损失值进行神经网络训练的方式,能够提高第一神经网络的学习性能,解决了现有技术中教师网络之间存在竞争的问题,从而避免了在学生网络训练的过程中,学生网络容易被某个教师网络主导的问题。
一种可选的实施方式中,所述基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,包括:基于预设的目标函数和预设的约束条件,确定分别对应于各所述第二神经网络的权重值,其中,所述预设的约束条件用于表征所述权重值的取值范围与第二神经网络的总数量之间的约束关系。
在该实施方式中,在对目标函数进行L2范数最小化求解时,在多目标优化问题中引入了超参数C,通过该超参数C来控制最小化求解过程中多个第二神经网络之间的冲突程度,从而使得大部分第二神经网络的学习方向被采纳,从而提高第一神经网络的处理性能和鲁棒性。
一种可选的实施方式中,所述预设的约束条件包括:各所述第二神经网络的权重值α满足:0≤α≤C,其中C∈(1/M,1),M为第二神经网络的总数量。
在该实施方式中,如果设置C∈(1/M,1),那么在求解多目标优化问题的过程中,就可以通过C对第二神经网络之间的冲突进行调和,从而使得大部分第二神经网络的学习方向被采纳,从而提高第一神经网络的处理性能和鲁棒性。
一种可选的实施方式中,所述第一预设网络层的输出数据和所述第二预设网络层的输出数据包括用于表征所述样本图像被归类为每个预设类别的概率的非归一化概率值;和/或,所述第一预设网络层的输出数据和所述第二预设网络层的输出数据包括所述样本图像的特征图。
在该实施方式中,通过第二神经网络和第一神经网络输出的非归一化概率值,和/或,第二神经网络和第一神经网络输出的特征图分别计算相应的权重值,从而根据该权重值来进行反向传播训练,采用该方式使得在对第一神经网络进行训练的过程中,不仅学习第二神经网络的输出,还要模仿第二神经网络的中间层输出的特征图,因此,在该实施方式可以提高第一神经网络的处理精度,以及第一神经网络的鲁棒性,以得到性能更优的第一神经网络。
一种可选的实施方式中,所述方法还包括;基于样本图像的类别标注信息和所述第一神经网络对所述样本图像的类别预测结果,确定第二目标损失值;所述根据所述第一目标损失值迭代调整所述第一神经网络的网络参数,包括:根据由所述第一目标损失值和所述第二目标损失值确定的联合损失值迭代调整所述第一神经网络的网络参数。
一种可选的实施方式中,所述方法还包括:响应于所述联合损失值收敛至预设的阈值,或者所述第一神经网络的网络参数的调整次数达到预设的次数,更新所述样本图像。
一种可选的实施方式中,所述方法还包括:获取待分类的图像;采用经过训练后的第一神经网络对所述待分类的图像进行分类,得到图像的分类结果。
在该实施方式中,主要描述了训练之后的第一神经网络的应用场景,例如,可以是人脸检测,人脸识别,图像语义分割和图像风格迁移等场景。
第二方面,本公开实施例还提供一种神经网络的训练装置,包括:获取模块,用于获取样本图像;分类模块,用于将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练;确定模块,用于基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异;加权计算模块,用于采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值;迭代调整模块,用于根据所述第一目标损失值迭代调整所述第一神经网络的网络参数。
第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述神经网络的训练装置、计算机设备、及计算机可读存储介质的效果描述参见上述神经网络的训练方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种神经网络的训练方法的流程图;
图2示出了本公开实施例所提供的神经网络的训练方法中,根据第一目标损失值迭代调整第一神经网络的网络参数的具体方法的流程图;
图3示出了本公开实施例所提供的神经网络的训练方法中,基于预设的目标函数确定分别对应于各第二神经网络的权重值的具体方法的流程图;
图4示出了本公开实施例所提供的另一种神经网络的训练方法的流程图;
图5示出了本公开实施例所提供的一种自适应权重计算模型的流程图;
图6示出了本公开实施例所提供的一种神经网络的训练装置的示意图;
图7示出了本公开实施例所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,根据集成学习利用多个模型提高性能和鲁棒性,学生网络也可以通过多个教师网络得到丰富的多层次的知识。但是,由于传统的集成知识蒸馏使用简单的集成方法,因此,导致教师网络之间发生冲突时学生网络的选择往往被一些教师所主导,从而不能利用所有教师提供的知识。
基于上述研究,本公开提供了一种神经网络的训练方法、装置以及计算机设备,在本公开实施例中,在通过多个第二神经网络对第一神经网络进行训练的过程中,根据第二神经网络和第一神经网络的输出数据确定每个第二神经网络的权重值,并利用该权重值对第一神经网络进行训练的方式,能够避免第一神经网络被部分第二神经网络主导的技术问题,从而提升第一神经网络的训练效率,提高训练之后的第一神经网络的性能。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种神经网络的训练方法进行详细介绍,本公开实施例所提供的神经网络的训练方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该神经网络的训练方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为终端设备为例对本公开实施例提供的神经网络的训练方法加以说明。
实施例一
参见图1所示,为本公开实施例提供的神经网络的训练方法的流程图,所述方法包括步骤S102~S108,其中:
S102:获取样本图像;并将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练。
在本公开实施例中,第一神经网络可以理解为待训练的学生网络,第二神经网络可以理解为对待训练的学生网络进行训练的教师网络。相较于第二神经网络,第一神经网络具有更简单的结构和更少的网络参数。第二神经网络为预先训练好且具有较强性能的网络。上述第一神经网络和第二神经网络可以为对样本图像进行图像处理的网络模型,其中,图像处理可以包括以下至少之一:对象识别或检测(例如,人脸识别或检测)、图像语义分割、图像重识别等图像处理方法,本公开对此不作具体限定。
进一步地,在本公开实施例中,第二神经网络表示为向第一神经网络提供相应知识的网络。也即,本公开通过从第二神经网络中提取有用的信息和知识作为第一神经网络训练过程中的指导。本公开实施例中的多个第二神经网络可以向第一神经网络提供多种相应的知识,本公开对上述有用的信息和知识不作具体限定。
在本公开实施例中,第一预设网络层可以为第一神经网络的分类层,分类层为第一神经网络的最后一层,该分类层输出的数据包含用于指示第一神经网络输出数据的维度信息;第一预设网络层还可以为第一神经网络的中间网络层,例如特征提取层。同样地,第二预设网络层可以为第二神经网络的分类层,还可以为第二神经网络的中间网络层。
需要说明的是,第一预设网络层和第二预设网络层是执行的图像处理操作相同或类似的网络层,如第一预设网络层是第一神经网络中的分类层时,第二预设网络层是第二神经网络中的分类层;第一预设网络层是第一神经网络层中的最后一个特征提取层时,第二预设网络层是第二神经网络层中的最后一个特征提取层。
在本实施例中,样本图像可以是预先构建的样本图像集中的部分图像。
S104:基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异。
在本公开实施例中,每个第二神经网络的权重值用于表示在对第一神经网络进行训练的过程中,第二神经网络的影响力比重。其中,步骤S104中基于目标函数计算得到的权重值满足以下条件:各第二神经网络和第一神经网络之间的第一损失值沿着与该权重对应的梯度下降方向下降。
在本公开实施例中,第一损失值为根据第一神经网络的第一预设网络层的输出数据和第二神经网络的第二预设网络层的输出数据计算出的损失函数的值。上述预设的目标函数为关于预设权重变量和第一损失值的梯度的函数,其中,第一损失值的梯度可以理解为第一损失值的偏导数。
S106:采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值。
第一目标损失值可以是各第二神经网络对应的蒸馏损失值的加权和。在这里,蒸馏损失值表征第一神经网络和第二神经网络的图像分类结果之间的差异,可以通过二者的交叉熵计算得出。
S108:根据所述第一目标损失值迭代调整所述第一神经网络的网络参数。
在本公开实施例中,可以根据第一目标损失值调整第一神经网络的参数,并返回至步骤S102,继续训练第一神经网络。在第一目标损失值多次迭代调整第一神经网络的网络参数之后,就可以得到经过训练的第一神经网络。之后,就可以获取待分类的图像,并通过经过训练的第一神经网络对待分类的图像进行图像分类,得到图像分类结果。
需要说明的是,此处所描述的图像分类处理,可以理解为人脸检测,人脸追踪,人脸识别,图像语义分割等能够在移动终端上实现的图像分类功能。
通过上述描述可知,在现有的集成知识蒸馏算法中,每个教师网络会向学生网络提供一个梯度作为学习方向,教师网络认为这将帮助学生网络最快速地收敛。但是,多个教师网络所提供的学习方向之间可能存在冲突。在现有的集成知识蒸馏算法中,所采用的方式是对损失函数值进行平均计算,但是,采用该方案时,多个教师网络向学生网络提供的最终学习方向将由最具说服力的教师网络决定。
基于此,在本公开实施例所提供的方法中,通过对表征第一损失值的梯度的加权和的目标函数进行求解,可以寻找到对于所有教师网络的梯度都下降的方向,鼓励学生网络的最终学习方向服从所有教师网络的指导。在采用该方法之后,学生网络的最终学习方向将不会由教师网络主导,因此会获得更充分的知识,得到更充分的训练,从而提升训练效率,提升学生网络的分类精度等性能。
在本公开实施例中,在对网络进行训练的过程中,若样本图像为多张,那么可以首先对样本图像进行分批处理,得到多组样本图像,然后,采用批处理mini-batch的方式对网络进行训练。也即,在通过第一神经网络和第二神经网络对每组样本图像进行处理时,更新每个第二神经网络的权重值,进而,根据更新的权重值调整第一神经网络的网络参数,直至第一神经网络的数据处理精度满足预定要求时得到训练之后的第一神经网络。
需要说明的是,在本公开实施例中,第二神经网络为预先训练好,且性能较好的网络,一般来说,第二神经网络的结构较为复杂,第一神经网络为结构较为简单的。在通过第二神经网络对第一神经网络进行训练之后,能够使得第一神经网络学习到第二神经网络的图像处理能力。在对第一神经网络进行训练之后,就可以将训练之后的第一神经网络部署到移动终端中,部署之后,移动终端就可以通过该第一神经网络进行图像处理。由于第一神经网络的结构较为简单,因此,可以做到在减少移动终端的内存资源消耗的情况下,达到较高的处理精度。
在本公开实施例中,在通过多个第二神经网络对第一神经网络进行训练的过程中,根据第二神经网络和第一神经网络的输出数据确定每个第二神经网络的权重值,并利用该权重值对各第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值,以根据第一目标损失值迭代调整第一神经网络的网络参数的方式,能够避免第一神经网络被部分第二神经网络所主导的技术问题,从而提高训练之后的网络的性能。
通过上述描述可知,在本公开实施例中,第一预设网络层的输出数据和所述第二预设网络层的输出数据包括:用于调整样本图像被归类为每个类别的概率的非归一化概率值(以下均简称为logits值)和/或样本图像的特征图。
若输出数据为非归一化概率值,那么第一预设网络层为第一神经网络的最后一层,第二预设网络层为第二神经网络的最后一层;若输出数据为样本图像的特征图,那么第一预设网络层为第一神经网络的中间层,第二预设网络层为第二神经网络的中间层。需要说明的是,若第一神经网络的最后一层中包含多个分类层,则多个分类层分别对应不同的第二神经网络,例如,一个分类层对应一个第二神经网络。在前向传播中,每个第二神经网络给出各自的输出数据,例如,即logits值。第一神经网络的每个分类层输出对应的数据,例如,logits值。
当输出数据为各类别的非归一化概率值(logits值)时,本公开实施例所提供的方法可以理解为基于各类别的非归一化概率值(logit-based)的知识蒸馏方法;当输出数据为logits值和样本图像的特征图时,本公开实施例所提供的方法可以理解为基于特征图(feature-based)的知识蒸馏方法。在logit-based知识蒸馏中,第一神经网络主要学习第二神经网络的输出logit值;在feature-based知识蒸馏中,第一神经网络不仅学习第二神经网络的输出,还学习第二神经网络中间层输出的特征图,下面以上述两种方法为例对上述步骤S102至步骤S108所描述的过程进行介绍。
方法一、输出数据为logits值
在本公开实施例中,首先,确定第一神经网络和用于对第一神经网络进行训练的第二神经网络;并通过第二神经网络和第一神经网络对样本图像进行图像处理。然后,确定每个第二神经网络输出的logits值和第一神经网络的logits值。接下来,根据第一神经网络输出的logits值和第二神经网络输出的logits值计算第一损失值,并确定第一损失值的梯度;从而根据第一损失值的梯度和预设权重变量确定上述目标函数。从而根据该目标函数确定对应于各个第二神经网络的权重值。并通过该权重值对各第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值;最后,根据第一目标损失值迭代调整第一神经网络的网络参数。
在计算每个第二神经网络和第一神经网络的之间的第一损失值时,可以先确定第一神经网络中与每个第二神经网络相对应的分类层,然后,根据该分类层输出的logits值和该第二神经网络输出的logits值计算一个损失值,从而得到多个第一损失值。
方法二、输出数据为logits值和样本图像的特征图
在本公开实施例中,首先,确定第一神经网络和用于对第一神经网络进行训练的多个第二神经网络;并通过每个第二神经网络和第一神经网络对样本图像进行图像处理。然后,确定每个第二神经网络输出的logits值和每个第二神经网络的中间层输出的样本图像的特征图,以及第一神经网络的每个分类层输出的logits值和第一神经网络的中间层输出的样本图像的特征图。
在确定出输出数据之后,就可以根据确定出的上述输出数据计算每个第二神经网络的权重值,具体包括以下过程:
根据第一神经网络输出的logits值和第二神经网络输出的logits值计算第一损失值A1,并确定第一损失值A1的梯度;从而根据第一损失值A1的梯度和预设权重变量确定目标函数B1,其中,目标函数B1可以按照如下方式构建:采用预设权重变量对各第二神经网络输出的logits值与第一神经网络输出的logits值之间的差异进行加权后求和。从而根据该目标函数B1,对该目标函数进行最小化求解,得到预设权重变量的值,作为对应于各个第二神经网络的权重值C1。根据第一神经网络输出的特征图和第二神经网络输出的特征图计算第一损失值A2,并确定第一损失值A2的梯度;从而根据第一损失值A2的梯度和预设权重变量确定目标函数B2(与确定目标函数B1的方式类似)。从而根据该目标函数B2确定对应于各个第二神经网络的权重值C2。在计算得到权重值C1和权重值C2之后,就可以根据权重值C1对各第二神经网络对应的蒸馏损失值进行加权计算,得到第一目标损失值D1,此处的蒸馏损失值为根据logits值计算出的损失值;还可以根据权重值C2对各第二神经网络对应的蒸馏损失值进行加权计算,得到第一目标损失值D2,此处的蒸馏损失值为根据特征图计算出的损失值。最后,根据第一目标损失值D1和第一目标损失值D2迭代调整第一神经网络的网络参数,得到训练之后的第一神经网络。
通过上述描述可知,在logit-based知识蒸馏算法中,第一神经网络主要学习模仿第二神经网络的输出,在feature-based知识蒸馏算法中,第一神经网络不仅学习模仿第二神经网络的输出,还要模仿第二神经网络的中间层输出的特征图。也就是说,在本公开实施例中,可以结合上述根据权重值C1和权重值C2所确定出的第一目标损失值迭代调整第一神经网络的网络参数,从而提高第一神经网络的处理精度,以及第一神经网络的鲁棒性,以得到性能更优的第一神经网络。
实施例二:
在上述实施例一所描述技术方案的基础上,在本公开实施例中,如图2所示,该方法还包括如下步骤:
步骤S201:基于样本图像的类别标注信息和所述第一神经网络对所述样本图像的类别预测结果,确定第二目标损失值。
基于此,上述根据所述第一目标损失值迭代调整所述第一神经网络的网络参数的步骤,可以进一步包括以下步骤S202:根据由所述第一目标损失值和所述第二目标损失值确定的联合损失值迭代调整所述第一神经网络的网络参数。其中,联合损失值可以是第一目标损失值和第二目标损失值的总和或平均值。需要说明的是,在本公开实施例中,不限定步骤S201和步骤S202的执行顺序。
通过上述实施例一的描述可知,在本公开实施例中,首先,获取样本图像;然后,将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练。接下来,基于预设的目标函数进行最小化求解,以确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异。之后,可以采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值,以及基于样本图像的类别标注信息和所述第一神经网络对所述样本图像的类别预测结果,确定第二目标损失值。最后,可以根据由所述第一目标损失值和所述第二目标损失值确定的联合损失值迭代调整所述第一神经网络的网络参数。
通过上述实施例一所描述的内容可知,在本公开实施例中,第一预设网络层的输出数据和第二预设网络层的输出数据包括用于表征样本图像被归类为每个预设类别的概率的非归一化概率值(也即logits值);和/或,第一预设网络层的输出数据和所述第二预设网络层的输出数据包括所述样本图像的特征图。
若输出数据为非归一化概率值(也即logits值),那么第一目标损失值的计算方式如下:
通过公式Lvkd=H(ps,pt)计算每个第二神经网络和第一神经网络之间的蒸馏损失值Lvkd,从而得到多个蒸馏损失值。其中,pt为第二神经网络输出的logits值,ps为第一神经网络的多个分类层中与当前第二神经网络相对应的分类层输出的logits值。
此时,就可以将多个蒸馏损失值和各个第二神经网络的权重值进行加权计算,得到第一目标损失值。例如,第二神经网络的数量为M,此时,对应M个权重值,接下来,可以将M个蒸馏损失值和M个权重值进行对应的加权平均计算,得到第一目标损失值。
若输出数据为样本图像的特征图,那么第一目标损失值的计算方式可以为:
通过公式
Figure BDA0002753535370000151
计算每个第二神经网络和第一神经网络之间的蒸馏损失值Lht,从而得到多个蒸馏损失值。其中,ft为第二神经网络输出的特征图,fs为第一神经网络输出的特征图,r为回归函数。
此时,就可以将多个蒸馏损失值和各个第二神经网络的权重值进行加权平均计算,得到第一目标损失值。例如,第二神经网络的数量为M,对应M个权重值,接下来,可以将M个蒸馏损失值和M个权重值进行加权平均计算,得到第一目标损失值。
在本公开实施例中,可以根据样本图像的类别标注数据和第一神经网络对样本图像的类别预测结果计算交叉熵损失函数值,作为第二目标损失值。需要说明的是,类别标注数据为预先对样本图像设置的真值(或者真实的有效值Ground Truth)。
在按照上述所描述的方式计算第一目标损失值和第二目标损失值之后,可以通过公式L=γH(ytrue,σ(as;1))+λLmkd+βLmht对第一目标损失值和第二目标损失值进行加权求和计算,得到联合损失值L,其中,γ,λ和β为调谐参数,H(ytrue,σ(as;1))为第二目标损失值,Lmkd为根据logits值计算的第一目标损失值,Lmht为根据样本图像的特征图计算的第一目标损失值,ytrue表示类别标注信息,σ(;)表示基于温度参数的softmax操作,as第一神经网络输出的logits值。
具体地,若λ的取值为0,则表示对根据样本图像的特征图计算的第一目标损失值Lmht和第二目标损失值进行加权求和计算,得到联合损失值。若β的取值为0,则表示对根据logits值计算的第一目标损失值Lmkd和第二目标损失值进行加权求和计算,得到联合损失值。若λ和β的取值均不为0,则表示对Lmht、Lmkd和第二目标损失值进行加权求和计算,得到联合损失值。
在本公开实施例中,在按照上述公式计算得到加权求和计算结果L之后,就可以通过加权求和计算结果L迭代调整第一神经网络的参数,得到训练后的第一神经网络。
在本公开实施例中,在对网络进行训练的过程中,若样本图像为多幅,那么可以首先对样本图像进行分批处理,得到多组样本图像,然后,采用批处理mini-batch的方式对网络进行训练。
因此,在本公开实施例中,针对每一个批(每个mini-batch),如果确定出联合损失值收敛至预设的阈值,或者,第一神经网络的网络参数的调整次数达到预设的次数,则结束当前批处理,并更新下一批样本图像,从而进入到下一个批处理过程中。
在本公开实施例中,采用根据第二神经网络和第一神经网络的输出数据确定每个第二神经网络的权重值,并利用该权重值对各第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值,以根据第一目标损失值迭代调整第一神经网络的网络参数的方式,能够降低第一神经网络被部分第二神经网络所主导的概率,从而提高训练之后的网络的性能。
实施例三:
在本公开实施例中,在上述实施例一和实施例二的基础上,如图3所示,基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,包括如下步骤:
步骤S301,对所述目标函数进行L2范数最小化求解,得到所述目标函数中用于对所述第一损失值的梯度加权的预设权重变量的最优解,并将所述最优解确定为所述第二神经网络的权重值。
具体地,在本公开实施例中,可以通过L2范数最小化求解方式对目标函数进行求解计算,得到的预设权重变量的最优解即为第二神经网络的权重值。
上述目标函数的公式可以表示为:
Figure BDA0002753535370000161
其中,θ(τ)为在迭代次数τ时对第一神经网络进行迭代时的参数,Z表示第一神经网络和第二神经网络的公共特征,αm是第m个第二神经网络的权重,lm t表示第m个第二神经网络对应的第一损失值,m=1,2,…,M。在对该目标函数进行L2范数最小化求解时,可以将上述目标函数变形为以下求解最小值问题:
Figure BDA0002753535370000171
在本公开实施例中,在对目标函数进行L2范数最小化求解时,可以描述为以下几种情况:
情况一:输出数据为logits值。
此时,可以根据公式
Figure BDA0002753535370000172
确定每个第二神经网络对应的第一损失值的梯度,其中,ps表示对第一神经网络输出的logits值经过基于温度参数T的softmax操作之后的数据,pt表示对第二神经网络输出的logits值经过基于温度参数T的softmax操作之后的数据,H表示交叉熵运算。通过该公式可知,每个第二神经网络对应的第一损失值的梯度可以理解为:第二神经网络和第一神经网络之间第一损失值的偏导数。在本公开实施例中,可以将
Figure BDA0002753535370000173
的计算式代入到目标函数中,从而得到下述公式一。
公式一:
Figure BDA0002753535370000174
其中,C为超参数,M为第二神经网络的数量,T为温度参数。ps表示第一神经网络输出的logits值,
Figure BDA0002753535370000175
表示第m个第二神经网络输出的logits值,αm表示第m个第二神经网络的权重值(也即,预设权重变量),
Figure BDA0002753535370000176
表示M个第二神经网络权重值和logits值之间的乘积和。
因此,在本公开实施例中,若输出数据为logits值,则可以通过公式一描述的方式进行L2范数最小化求解,从而求解得到每个第二神经网络所对应的权重值。
情况二:输出数据为样本图像的特征图。
上述最小化问题
Figure BDA0002753535370000181
可以变形为以下公式:
Figure BDA0002753535370000182
在本公开实施例中,可以对上述公式
Figure BDA0002753535370000183
进行变形,从而得到公式二。
公式二:
Figure BDA0002753535370000184
其中,C为超参数,M为所述第二神经网络的数量,T为温度参数。M为第二神经网络的数量,fs表示第一神经网络输出的特征图,
Figure BDA0002753535370000185
表示第m个第二神经网络输出的特征图,αm表示第m个第二神经网络的权重值(即,预设权重变量),
Figure BDA0002753535370000186
表示M个第二神经网络权重值和特征图之间的乘积之和。
因此,在本公开实施例中,若输出数据为样本图像的特征图,则可以通过公式二描述的方式进行L2范数最小化求解,从而求解得到每个第二神经网络所对应的权重值。
通过上述描述可知,在本公开实施例中,将求解权重值的过程转化为一个目标优化的问题,即,对目标函数进行最优求解,最优求解的计算结果即为每个第二神经网络的权重值。
在本公开实施例的一个可选实施方式中,上述步骤基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,还包括:
基于预设的目标函数和预设的约束条件,确定分别对应于各所述第二神经网络的权重值,其中,所述预设的约束条件用于表征所述权重值的取值范围与第二神经网络的总数量之间的约束关系。
因此,在本公开实施例中,在对预设的目标函数进行求解时,可以结合预设的约束条件,来对目标函数进行L2范数最小化求解,得到所述目标函数中用于对所述第一损失值的梯度加权的预设权重变量的最优解,并将所述最优解确定为所述第二神经网络的权重值。
根据上述所描述的公式一和公式二,预设的约束条件可以描述为:各所述第二神经网络的权重值α满足:0≤α≤C,其中C∈(1/M,1),M为第二神经网络的总数量。
其中,C表示为超参数,超参数C可以控制第二神经网络之间的冲突程度,其中,C的取值可以为以下几种情况:C=1、C=1/M和C∈(1/M,1)。
若所述超参数为1,则在对第一神经网络进行训练过程中每个第二神经网络和第一神经网络之间的损失值减小。
具体地,当C=1时,本公开实施例所提供的神经网络的训练方法不允许第二神经网络中任何的冲突,即,每个第二神经网络和第一神经网络之间的损失值均减小。
若所述超参数为1/M,则在对第一神经网络进行训练过程中部分第二神经网络和第一神经网络之间的损失值减小。
具体地,当C=1/M时(M为第二神经网络的数量),相当于采用计算损失函数平均值的方式,即,并非每个第二神经网络和第一神经网络之间的损失均减小。
若所述超参数属于数值区间(1/M,1)时,则在对第一神经网络进行训练过程中目标第二神经网络的数量大于或者等于预设数量,所述第二神经网络表示全部第二神经网络中与第一神经网络之间损失值减小的第二神经网络。
具体地,当C∈(1/M,1)时,表示对第二神经网络进行调和,大部分第二神经网络的学习方向被采纳,采用该方法训练之后得到的第一神经网络更加具有鲁棒性。
通过上述描述可知,在对目标函数进行L2范数最小化求解时,在多目标优化问题中引入了超参数C,通过该超参数C来控制最小化求解过程中多个第二神经网络之间的冲突程度。需要说明的是,在本公开实施例中,超参数C为预先设定的参数,例如,可以从上述三种取值中选择一种。优选地,可以设置C∈(1/M,1)。如果设置C∈(1/M,1),那么在求解多目标优化问题的过程中,就可以通过C对第二神经网络之间的冲突进行调和,从而使得大部分第二神经网络的学习方向被采纳,从而提高第一神经网络的处理性能和鲁棒性。
通过上述描述可知,在本公开实施例中,将求解全部第二神经网络的权重值的过程表示为多目标优化的问题,本申请使用多梯度下降算法,在每一个批处理过程中求解得到各个第二神经网络对应的权重值,然后,将根据出的权重值将蒸馏损失值加权给第一神经网络进行学习,从而提高了第一神经网络的学习效率,以及解决了现有技术中第二神经网络之间存在竞争的问题,从而降低了在第一神经网络训练的过程中,第一神经网络被某个或一部分第二神经网络主导的可能性。
实施例四
参见图4和图5所示,为本公开实施例提供的另一种神经网络的训练方法的流程图,在本公开实施例中,以输出数据为:logits值和特征图为例来进行介绍。
如图4所示,在该流程框图中,包含样本图像,多个第二神经网络,第一神经网络和基于梯度的自适应权重计算模型。
在本公开实施例中,首先获取样本图像,然后,通过每个第二神经网络对样本图像进行处理,并通过第一神经网络对样本图像进行处理。
接下来,将第二神经网络输出的logits值和第一神经网络的多个分类层输出的logits值输入到基于梯度的自适应权重计算模型中进行计算处理,得到每个第二神经网络的权重值C1。接下来,根据第二神经网络输出的logits值和第一神经网络输出的logits值计算蒸馏损失值1(也可以称为KD损失函数值),并对权重值C1和KD损失函数值进行加权求和均值计算,得到上述所描述的第一目标损失值。
从图4中可以看出,在本公开实施例中,还可以将第二神经网络的中间层输出的特征图和第一神经网络的中间层输出的特征图输入到基于梯度的自适应权重计算模型中进行计算处理,得到每个第二神经网络的权重值C2。接下来,根据第二神经网络输出的特征图和第一神经网络的多个分类层输出的特征图计算蒸馏损失值1(也可以称为Feature损失函数值),并对权重值C2和Feature损失函数值进行加权求和均值计算,得到上述所描述的第一目标损失值。
从图4中还可以看出,在本公开实施例中,还可以通过Ground Truth真实值和第一神经网络的输出数据计算一个交叉熵损失函数值(即,上述所描述的第二目标损失值)。
最后,可以根据公式L=γH(ytrue,σ(as;1))+λLmkd+βLmht对第二目标损失值和第一目标损失值进行加权求和计算,其中,γ,λ和β为调谐参数,H(ytrue,σ(as;1))为第二目标损失值,Lmkd为基于logits值得出的第一目标损失值,Lmht为基于特征图得出的第一目标损失值。在按照上述公式计算得到加权求和计算结果L之后,就可以通过加权求和计算结果L调整第一神经网络的参数,得到训练后的第一神经网络。
需要说明的是,在本公开实施例中,在根据输出数据计算每个第二神经网络的权重值时,可以采用如图5所示的方式来计算权重值。如图5所示,在本公开实施例中,可以首先根据第二神经网络的输出数据和第一神经网络的输出数据计算一个损失函数值(即,上述实施例中的第一损失值),即图5中的loss值1至loss值M,然后,根据loss值1至loss值M计算第一损失值的梯度1至梯度M,最后,将梯度1至梯度M输入至自适应权重计算模型中进行计算,得到每个第二神经网络的权重值。
在本公开实施例中,在通过多个第二神经网络对第一神经网络进行训练的过程中,根据第二神经网络和第一神经网络的输出数据确定每个第二神经网络的权重值,并利用该权重值对第一神经网络进行训练的方式,能够降低第一神经网络被部分第二神经网络所主导的的可能性,从而提高训练之后的网络的性能。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与神经网络的训练方法对应的神经网络的训练装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述神经网络的训练方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
实施例五
参照图6所示,为本公开实施例提供的一种神经网络的训练装置的架构示意图,所述装置包括:获取模块61、分类模块62、确定模块63、加权计算模块64、迭代调整模块65;其中,
获取模块61,用于获取样本图像;
分类模块62,用于将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练;
确定模块63,用于基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异;
加权计算模块64,用于采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值;
迭代调整模块65,用于根据所述第一目标损失值迭代调整所述第一神经网络的网络参数。
在本公开实施例中,在通过多个第二神经网络对第一神经网络进行训练的过程中,根据第二神经网络和第一神经网络的输出数据确定每个第二神经网络的权重值,并利用该权重值对各个第二神经网络对应的蒸馏损失进行加权计算得到第一目标损失值,并根据该第一目标损失值对第一神经网络进行训练的方式,能够提升第一神经网络的训练效率。
一种可能的实施方式中,确定模块,还用于:对所述目标函数进行L2范数最小化求解,得到所述目标函数中用于对所述第一损失值的梯度加权的预设权重变量的最优解,并将所述最优解确定为所述第二神经网络的权重值。
一种可能的实施方式中,确定模块,还用于:基于预设的目标函数和预设的约束条件,确定分别对应于各所述第二神经网络的权重值,其中,所述预设的约束条件用于表征所述权重值的取值范围与第二神经网络的总数量之间的约束关系。
一种可能的实施方式中,所述预设的约束条件包括:各所述第二神经网络的权重值α满足:0≤α≤C,其中C∈(1/M,1),M为第二神经网络的总数量。
一种可能的实施方式中,所述第一预设网络层的输出数据和所述第二预设网络层的输出数据包括用于表征所述样本图像被归类为每个预设类别的概率的非归一化概率值;和/或,所述第一预设网络层的输出数据和所述第二预设网络层的输出数据包括所述样本图像的特征图。
一种可能的实施方式中,该装置还用于:基于样本图像的类别标注信息和所述第一神经网络对所述样本图像的类别预测结果,确定第二目标损失值;迭代调整模块,还用于:根据由所述第一目标损失值和所述第二目标损失值确定的联合损失值迭代调整所述第一神经网络的网络参数。
一种可能的实施方式中,该装置还用于:响应于所述联合损失值收敛至预设的阈值,或者所述第一神经网络的网络参数的调整次数达到预设的次数,更新所述样本图像。
一种可能的实施方式中,该装置还用于:获取待分类的图像;采用经过训练后的第一神经网络对所述待分类的图像进行分类,得到图像的分类结果。
实施例六
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图7所示,为本公开实施例提供的计算机设备700的结构示意图,包括处理器701、存储器702、和总线703。其中,存储器702用于存储执行指令,包括内存7021和外部存储器7022;这里的内存7021也称内存储器,用于暂时存放处理器701中的运算数据,以及与硬盘等外部存储器7022交换的数据,处理器701通过内存7021与外部存储器7022进行数据交换,当计算机设备700运行时,处理器701与存储器702之间通过总线703通信,使得处理器701在执行以下指令:
获取样本图像;
将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练;
基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异;
采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值;
根据所述第一目标损失值迭代调整所述第一神经网络的网络参数。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的神经网络的训练方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的神经网络的训练方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种神经网络的训练方法,其特征在于,包括:
获取样本图像;
将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练;
基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异;
采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值;
根据所述第一目标损失值迭代调整所述第一神经网络的网络参数。
2.根据权利要求1所述的方法,其特征在于,所述基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,包括:
对所述目标函数进行L2范数最小化求解,得到所述目标函数中用于对所述第一损失值的梯度加权的预设权重变量的最优解,并将所述最优解确定为所述第二神经网络的权重值。
3.根据权利要求1或2所述的方法,其特征在于,所述基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,包括:
基于预设的目标函数和预设的约束条件,确定分别对应于各所述第二神经网络的权重值,其中,所述预设的约束条件用于表征所述权重值的取值范围与第二神经网络的总数量之间的约束关系。
4.根据权利要求3所述的方法,其特征在于,所述预设的约束条件包括:
各所述第二神经网络的权重值α满足:0≤α≤C,其中C∈(1/M,1),M为第二神经网络的总数量。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第一预设网络层的输出数据和所述第二预设网络层的输出数据包括用于表征所述样本图像被归类为每个预设类别的概率的非归一化概率值;和/或
所述第一预设网络层的输出数据和所述第二预设网络层的输出数据包括所述样本图像的特征图。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括;
基于样本图像的类别标注信息和所述第一神经网络对所述样本图像的类别预测结果,确定第二目标损失值;
所述根据所述第一目标损失值迭代调整所述第一神经网络的网络参数,包括:
根据由所述第一目标损失值和所述第二目标损失值确定的联合损失值迭代调整所述第一神经网络的网络参数。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于所述联合损失值收敛至预设的阈值,或者所述第一神经网络的网络参数的调整次数达到预设的次数,更新所述样本图像。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
获取待分类的图像;
采用经过训练后的第一神经网络对所述待分类的图像进行分类,得到图像的分类结果。
9.一种神经网络的训练装置,其特征在于,包括:
获取模块,用于获取样本图像;
分类模块,用于将样本图像分别输入至第一神经网络和多个第二神经网络进行分类,获取所述第一神经网络的第一预设网络层的输出数据和各所述第二神经网络的第二预设网络层的输出数据,其中,所述第二神经网络用于对所述第一神经网络蒸馏训练;
确定模块,用于基于预设的目标函数确定分别对应于各所述第二神经网络的权重值,其中,所述目标函数表征各第二神经网络对应的第一损失值的梯度的加权和,所述第一损失值表征所述第一预设网络层的输出数据和所述第二预设网络层的输出数据的差异;
加权计算模块,用于采用所述权重值对各所述第二神经网络对应的蒸馏损失值进行加权得到第一目标损失值;
迭代调整模块,用于根据所述第一目标损失值迭代调整所述第一神经网络的网络参数。
10.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至8任一项所述的神经网络的训练方法的步骤。
CN202011194238.4A 2020-10-30 2020-10-30 一种神经网络的训练方法、装置以及计算机设备 Active CN112288086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011194238.4A CN112288086B (zh) 2020-10-30 2020-10-30 一种神经网络的训练方法、装置以及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011194238.4A CN112288086B (zh) 2020-10-30 2020-10-30 一种神经网络的训练方法、装置以及计算机设备

Publications (2)

Publication Number Publication Date
CN112288086A true CN112288086A (zh) 2021-01-29
CN112288086B CN112288086B (zh) 2022-11-25

Family

ID=74353757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011194238.4A Active CN112288086B (zh) 2020-10-30 2020-10-30 一种神经网络的训练方法、装置以及计算机设备

Country Status (1)

Country Link
CN (1) CN112288086B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112990298A (zh) * 2021-03-11 2021-06-18 北京中科虹霸科技有限公司 关键点检测模型训练方法、关键点检测方法及装置
CN113160204A (zh) * 2021-04-30 2021-07-23 聚时科技(上海)有限公司 基于目标检测信息生成缺陷区域的语义分割网络训练方法
CN113420227A (zh) * 2021-07-21 2021-09-21 北京百度网讯科技有限公司 点击率预估模型的训练方法、预估点击率的方法、装置
CN113780478A (zh) * 2021-10-26 2021-12-10 平安科技(深圳)有限公司 活动性分类模型训练方法、分类方法、装置、设备、介质
CN113807504A (zh) * 2021-09-30 2021-12-17 上海阵量智能科技有限公司 一种神经网络的生成方法、装置、计算机设备及存储介质
CN113919444A (zh) * 2021-11-10 2022-01-11 北京市商汤科技开发有限公司 目标检测网络的训练方法、目标检测方法及装置
CN113920540A (zh) * 2021-11-04 2022-01-11 厦门市美亚柏科信息股份有限公司 基于知识蒸馏的行人重识别方法、装置、设备及存储介质
CN114037066A (zh) * 2022-01-07 2022-02-11 南昌虚拟现实研究院股份有限公司 数据处理方法、装置、电子设备及存储介质
CN114330712A (zh) * 2021-12-31 2022-04-12 苏州浪潮智能科技有限公司 一种神经网络的训练方法、系统、设备以及介质
CN115294332A (zh) * 2022-10-09 2022-11-04 浙江啄云智能科技有限公司 一种图像处理方法、装置、设备和存储介质
WO2023040626A1 (zh) * 2021-09-18 2023-03-23 上海商汤智能科技有限公司 神经网络训练及文字识别的方法、装置、设备、存储介质及计算机程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190102678A1 (en) * 2017-09-29 2019-04-04 Samsung Electronics Co., Ltd. Neural network recogntion and training method and apparatus
CN111414987A (zh) * 2019-01-08 2020-07-14 南京人工智能高等研究院有限公司 神经网络的训练方法、训练装置和电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190102678A1 (en) * 2017-09-29 2019-04-04 Samsung Electronics Co., Ltd. Neural network recogntion and training method and apparatus
CN111414987A (zh) * 2019-01-08 2020-07-14 南京人工智能高等研究院有限公司 神经网络的训练方法、训练装置和电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHUMIN KONG ET AL.: "Learning Student Networks with Few Data", 《THE THIRTY-FOURTH AAAI CONFERENCE ON ARTIFICIAL INTELLIGENCE (AAAI-20)》 *
柏沫羽等: "应用知识蒸馏的深度神经网络波束形成算法", 《遥测遥控》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112990298A (zh) * 2021-03-11 2021-06-18 北京中科虹霸科技有限公司 关键点检测模型训练方法、关键点检测方法及装置
CN112990298B (zh) * 2021-03-11 2023-11-24 北京中科虹霸科技有限公司 关键点检测模型训练方法、关键点检测方法及装置
CN113160204A (zh) * 2021-04-30 2021-07-23 聚时科技(上海)有限公司 基于目标检测信息生成缺陷区域的语义分割网络训练方法
CN113420227A (zh) * 2021-07-21 2021-09-21 北京百度网讯科技有限公司 点击率预估模型的训练方法、预估点击率的方法、装置
CN113420227B (zh) * 2021-07-21 2024-05-14 北京百度网讯科技有限公司 点击率预估模型的训练方法、预估点击率的方法、装置
WO2023040626A1 (zh) * 2021-09-18 2023-03-23 上海商汤智能科技有限公司 神经网络训练及文字识别的方法、装置、设备、存储介质及计算机程序产品
CN113807504A (zh) * 2021-09-30 2021-12-17 上海阵量智能科技有限公司 一种神经网络的生成方法、装置、计算机设备及存储介质
CN113807504B (zh) * 2021-09-30 2024-04-16 上海阵量智能科技有限公司 一种神经网络的生成方法、装置、计算机设备及存储介质
CN113780478A (zh) * 2021-10-26 2021-12-10 平安科技(深圳)有限公司 活动性分类模型训练方法、分类方法、装置、设备、介质
CN113780478B (zh) * 2021-10-26 2024-05-28 平安科技(深圳)有限公司 活动性分类模型训练方法、分类方法、装置、设备、介质
CN113920540A (zh) * 2021-11-04 2022-01-11 厦门市美亚柏科信息股份有限公司 基于知识蒸馏的行人重识别方法、装置、设备及存储介质
CN113919444A (zh) * 2021-11-10 2022-01-11 北京市商汤科技开发有限公司 目标检测网络的训练方法、目标检测方法及装置
CN114330712A (zh) * 2021-12-31 2022-04-12 苏州浪潮智能科技有限公司 一种神经网络的训练方法、系统、设备以及介质
CN114330712B (zh) * 2021-12-31 2024-01-12 苏州浪潮智能科技有限公司 一种神经网络的训练方法、系统、设备以及介质
CN114037066A (zh) * 2022-01-07 2022-02-11 南昌虚拟现实研究院股份有限公司 数据处理方法、装置、电子设备及存储介质
CN114037066B (zh) * 2022-01-07 2022-04-12 南昌虚拟现实研究院股份有限公司 数据处理方法、装置、电子设备及存储介质
CN115294332A (zh) * 2022-10-09 2022-11-04 浙江啄云智能科技有限公司 一种图像处理方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN112288086B (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
CN112288086B (zh) 一种神经网络的训练方法、装置以及计算机设备
Abe Neural networks and fuzzy systems: theory and applications
Cai et al. An optimal construction and training of second order RBF network for approximation and illumination invariant image segmentation
CN112308115B (zh) 一种多标签图像深度学习分类方法及设备
WO2022105108A1 (zh) 一种网络数据分类方法、装置、设备及可读存储介质
WO2021042857A1 (zh) 图像分割模型的处理方法和处理装置
WO2022252458A1 (zh) 一种分类模型训练方法、装置、设备及介质
CN114341891A (zh) 神经网络剪枝
CN114118405A (zh) 内嵌物理知识的神经网络的损失函数自适应平衡方法
CN113902131B (zh) 抵抗联邦学习中歧视传播的节点模型的更新方法
Pehlevan A spiking neural network with local learning rules derived from nonnegative similarity matching
EP3874412A1 (en) Computer architecture for multiplier-less machine learning
CN114974421B (zh) 基于扩散-降噪的单细胞转录组测序数据补插方法及系统
CN114358197A (zh) 分类模型的训练方法及装置、电子设备、存储介质
CN108805291B (zh) 一种网络表示学习模型的训练方法及服务器
CN113409157B (zh) 一种跨社交网络用户对齐方法以及装置
CN111767985B (zh) 一种神经网络的训练方法、视频识别方法及装置
CN111260056B (zh) 一种网络模型蒸馏方法及装置
CN114626500A (zh) 一种神经网络计算方法及相关设备
CN112364747A (zh) 一种有限样本下的目标检测方法
CN111882048A (zh) 一种神经网络结构搜索方法及相关设备
CN109614581A (zh) 基于对偶局部学习的非负矩阵分解聚类方法
Everett et al. ProtoCaps: A Fast and Non-Iterative Capsule Network Routing Method
CN113378866B (zh) 图像分类方法、系统、存储介质及电子设备
Cosovic et al. Cultural heritage image classification

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
GR01 Patent grant
GR01 Patent grant