CN110472681A - 基于知识蒸馏的神经网络训练方案和图像处理方案 - Google Patents
基于知识蒸馏的神经网络训练方案和图像处理方案 Download PDFInfo
- Publication number
- CN110472681A CN110472681A CN201910735490.2A CN201910735490A CN110472681A CN 110472681 A CN110472681 A CN 110472681A CN 201910735490 A CN201910735490 A CN 201910735490A CN 110472681 A CN110472681 A CN 110472681A
- Authority
- CN
- China
- Prior art keywords
- result
- classification
- neural network
- target
- classification result
- 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
- 238000012549 training Methods 0.000 title claims abstract description 40
- 238000004821 distillation Methods 0.000 title abstract description 24
- 230000001537 neural effect Effects 0.000 title abstract 2
- 238000000034 method Methods 0.000 claims abstract description 73
- 238000013528 artificial neural network Methods 0.000 claims description 141
- 238000012545 processing Methods 0.000 claims description 46
- 238000013140 knowledge distillation Methods 0.000 claims description 42
- 238000003672 processing method Methods 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 6
- 210000005036 nerve Anatomy 0.000 abstract 1
- 238000009825 accumulation Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 18
- 241000282326 Felis catus Species 0.000 description 14
- 241000282472 Canis lupus familiaris Species 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241000283690 Bos taurus Species 0.000 description 2
- 241000282421 Canidae Species 0.000 description 2
- 241000282485 Vulpes vulpes Species 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例提供一种基于知识蒸馏的神经网络训练方案和图像处理方案,其中,训练方法包括:从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,其中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果;从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果;根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。
Description
技术领域
本申请实施例涉及机器学习领域,涉及但不限于基于知识蒸馏的神经网络训练方案和图像处理方案。
背景技术
随着在移动端等具有有限数值处理能力的设备上部署深度学习模型的需求的不断增多,知识蒸馏等小模型训练方法成为本领域的研究热点。知识蒸馏是通过将教师网络的知识迁移到学生网络中,提升学生网络的性能,缩小大小网络之间的性能差距。在相关技术中基于知识蒸馏的神经网络训练方法都聚焦于尽可能多地迁移教师网络的知识给学生网络,最终得到的学生网络的性能还有待进一步提高。
发明内容
本申请实施例提供一种基于知识蒸馏的神经网络训练方案和图像处理方案。
第一方面,本申请实施例提供一种基于知识蒸馏的神经网络训练方法,所述方法包括:从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,其中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果;从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果;根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。
在一种可能的实现方式中,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:基于第一分类结果集合中包含的多个第一分类结果的对应数值,从所述第一分类结果集合中选择至少一个第一目标结果。
在一种可能的实现方式中,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:从所述第一分类结果集合中,选择对应数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一种可能的实现方式中,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:将所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果确定为所述至少一个第一目标结果。
在一种可能的实现方式中,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:将所述第一分类结果集合中对应数值最高的前N个第一分类结果,作为所述至少一个第一目标结果,其中,N为预设数值。
在一种可能的实现方式中,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:基于数值累计阈值,从第一分类结果集合中,选择数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一种可能的实现方式中,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:按照对应数值从大到小的顺序,对所述第一分类结果集合中包括的多个分类结果进行排序;将排序后的前N个第一分类结果作为所述至少一个第一目标结果,其中,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
在一种可能的实现方式中,所述从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果,包括:确定至少一个第一目标结果对应的至少一个目标类别;从所述第二分类结果集合中选取所述至少一个目标类别对应的第二目标结果。
在一种可能的实现方式中,所述根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数,包括:基于所述至少一个第一目标结果和所述至少一个第二目标结果,确定蒸馏损失;基于所述蒸馏损失,调整所述第二神经网络的网络参数。
第二方面,本申请实施例提供一种图像处理方法,包括:获取待处理图像;通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果,其中,所述第二神经网络是通过第一方面或第一方面的任意可能实现方式训练得到的。
第三方面,本申请实施例提供一种图像处理方法,包括:获取待处理图像;
通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果,其中,所述第二神经网络是基于通过对第一神经网络得到的第一分类结果集合进行过滤获得的目标分类结果进行知识蒸馏得到的。
在一种可能的实现方式中,所述目标分类结果是基于所述第一分类结果集合中包含的多个第一分类结果的对应数值选取的。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值最高的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值最高的前N个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括:基于所述数值累计阈值从所述第一分类结果集合中选择的数值最高的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括:所述第一分类结果集合中排序后的多个第一分类结果中的前N个第一分类结果,其中,所述排序是按照所述第一分类结果的对应数值从大到小的顺序进行的,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
第四方面,本申请实施例提供一种基于知识蒸馏的神经网络训练装置,所述装置包括:第一选取模块,用于从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,其中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果;第二选取模块,用于从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果;第一调整模块,用于根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。
在一种可能的实现方式中,所述第一选取模块,包括:第一选择子模块,用于基于第一分类结果集合中包含的多个第一分类结果的对应数值,从所述第一分类结果集合中选择至少一个第一目标结果。
在一种可能的实现方式中,所述第一选取模块,包括:第二选择子模块,用于从所述第一分类结果集合中,选择对应数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一种可能的实现方式中,所述第一选取模块,包括:第一确定子模块,用于将所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果确定为所述至少一个第一目标结果。
在一种可能的实现方式中,所述所述第一选取模块,包括:第二确定子模块,用于将所述第一分类结果集合中对应数值最高的前N个第一分类结果,作为所述至少一个第一目标结果,其中,N为预设数值。
在一种可能的实现方式中,所述所述第一选取模块,包括:第三选择子模块,用于基于数值累计阈值,从第一分类结果集合中,选择数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一种可能的实现方式中,所述所述第一选取模块,包括:第一排序子模块,用于按照对应数值从大到小的顺序,对所述第一分类结果集合中包括的多个分类结果进行排序;第三确定子模块,用于将排序后的前N个第一分类结果作为所述至少一个第一目标结果,其中,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
在一种可能的实现方式中,所述第二选取模块,用于,包括:第四确定子模块,用于确定至少一个第一目标结果对应的至少一个目标类别;第四选择子模块,用于从所述第二分类结果集合中选取所述至少一个目标类别对应的第二目标结果。
在一种可能的实现方式中,所述第一调整模块,包括:第五确定子模块,用于基于所述至少一个第一目标结果和所述至少一个第二目标结果,确定蒸馏损失;第一调整子模块,用于基于所述蒸馏损失,调整所述第二神经网络的网络参数。
第五方面,本申请实施例提供一种图像处理装置,包括:第一获取模块,用于获取待处理图像;第一分类模块,用于通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果,其中,所述第二神经网络是通过第一方面或第一方面的任意可能的实现方式训练得到的。
第六方面,本申请实施例提供一种图像处理装置,包括:第一获取模块,用于获取待处理图像;第一分类模块,用于通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果,其中,所述第二神经网络是基于通过对第一神经网络得到的第一分类结果集合进行过滤获得的目标分类结果进行知识蒸馏得到的。
在一种可能的实现方式中,所述目标分类结果是基于所述第一分类结果集合中包含的多个第一分类结果的对应数值选取的。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值最高的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值最高的前N个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括:基于所述数值累计阈值从所述第一分类结果集合中选择的数值最高的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括:所述第一分类结果集合中排序后的多个第一分类结果中的前N个第一分类结果,其中,所述排序是按照所述第一分类结果的对应数值从大到小的顺序进行的,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
本申请实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现上述第一方面或其任意实现方式中的方法步骤。
本申请实施例提供另一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现上述第二方面或其任意可能实现方式中的方法步骤。
本申请实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现上述第一方面或其任意可能实现方式中的方法步骤。
本申请实施例提供另一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现上述第二方面或其任意可能实现方式中的方法步骤。
本申请实施例提供一种计算机程序,包括用于实现上述第一方面或其任意可能实现方式中的方法步骤的计算机指令。
本申请实施例提供一种计算机程序,包括用于实现上述第二方面或其任意可能实现方式中的方法步骤的计算机指令。
本申请实施例提供的技术方案,从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,其中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果;从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果;根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。这样,从第一神经网络输出的多个第一分类结果中选取部分有用的第一目标结果,然后采用选取的第一目标结果对第二神经网络进行训练,与利用第一神经网络的全部分类结果训练第二神经网络相比,有利于提升第二神经网络的性能。
附图说明
图1为本申请实施例基于知识蒸馏的神经网络训练方法的流程示意图;
图2A为本申请实施例基于知识蒸馏的神经网络训练方法的又一流程示意图;
图2B为本申请实施例图像处理方法的实现流程示意图;
图3为本申请实施例基于知识蒸馏的神经网络训练方法的应用场景图;
图4为本申请实施例基于知识蒸馏的神经网络训练装置的组成结构示意图;
图5为本申请实施例图像处理装置的组成结构示意图;
图6为本申请实施例电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本公开实施例提供的技术方案主要应用于小型神经网络的训练,即基于训练好的大型神经网络进行知识蒸馏来训练小网络,但也可以应用于其他类型的神经网络进行压缩的过程,本公开实施例对此不做限定。
该方法应用于计算机设备,在一些实施例中,该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,其中,程序代码可以保存在计算机存储介质中。
本申请实施例提供一种基于知识蒸馏的神经网络训练方法,下面结合图1进行详细描述。
步骤S101,从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果。
可以通过第一神经网络对样本图像进行处理,得到样本图像的第一分类结果集合,其中,在一些可能的实现方式中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果,例如,某个类别对应的分类结果可以包括样本图像属于该类别的概率信息,例如概率值或者置信度,等等,本公开实施例对此不做限定。
所述样本图像可以为任意尺寸的静态图像或者视频帧图像等。所述样本图像可以是进行目标检测或识别的图像、进行前背景分割的图像或进行目标跟踪的图像等。所述第一神经网络的复杂度大于所述第二神经网络的复杂度。在一些可能的实现方式中,所述第一神经网络的规模大于所述第二神经网络的规模,且所述第一神经网络是训练好的神经网络。在一个具体例子中,第一神经网络为包含较多层、结构复杂且功能强大的教师网络,第二神经网络为包含层数较少,结构简单的学生网络。
在一些实施例中,将获取的样本图像或预处理后的样本图像输入训练好的第一神经网络,得到第一分类结果集合;然后,从第一分类结果集合中挑选出概率信息满足条件的至少一个第一目标结果。
步骤S102,从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果。
通过第二神经网络对样本图像进行处理,例如,将样本图像或预处理后的样本图像输入第二神经网络,得到第二分类结果集合,并且从第二分类结果集合中,查找出与第一目标结果对应的第二分类结果,得到第二目标结果。比如,从所述第二分类结果集合中一一对应地挑选出,与第一目标结果的标识信息相匹配的第二目标结果;在一个具体例子中,按照第一目标结果所属的类别,从第二分类结果集合中,选取与至少一个第一目标结果对应的至少一个第二目标结果。比如,样本图像为猫的图案,第一目标结果为猫、狗和狐狸,基于此,从第二分类结果中找出为猫、狗和狐狸的分类结果作为第二目标结果。
步骤S103,根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。
在一些可能的实现方式中,基于第一目标结果和第二目标结果,确定第二网络对应的损失,采用该损失对第二神经网络的网络参数进行调整。所述网络参数包括:神经元的权重等。在一个具体例子中,样本图像为猫的图像,从第一分类结果集合中筛选出置信度为最大的两个分类结果作为第一目标结果,比如,猫和狗;然后,基于此,从第二分类结果集合中挑选出类别为猫和狗的第二目标结果;最后,采用第一目标结果包含的的概率信息和第二目标结果包含的的概率信息,确定第二神经网络的损失,以调整第二神经网络的网络参数。
在本申请实施例中,从第一神经网络输出的第一分类结果中选择置信度较高的至少一个第一目标结果,然后采用该第一目标结果对第二网络进行训练,如此,将第二神经网络聚焦于学习第一神经网络中有用的部分分类结果的知识,从而大幅度提升了对于第二神经网络的性能,由于对第二神经网络进行知识蒸馏时,采用是有用的部分分类结果,而不是全部分类结果,所以相对于采用全部分类结果对第二神经网络进行知识蒸馏,本申请实施例的方案加快了知识蒸馏的训练速度。
在一些实施例中,在步骤S101之前,所述方法还包括以下步骤:
步骤S111,将获取的其他样本图像,输入所述第一神经网络中,得到样本图像处理结果。
在一些可能的实现方式中,所述其他样本图像与步骤S101中所述的样本图像相同或不同,该其他样本图像用于对第一神经网络进行训练,而步骤S101中的样本图像用于对第二神经网络进行训练。第一神经网络为结构复杂的神经网络,通过样本图像和样本图像的真实标签信息,对第一神经网络进行训练,比如,采用随机梯度下降(StochasticGradient Descent,SGD)或自适应矩估计(Adaptive Moment Estimation,Adam)对神经网络的损失函数进行优化。
步骤S112,基于所述样本图像处理结果和所述样本图像的真实标签信息,确定第一损失。
在一些可能的实现方式中,将样本图像处理结果和所述样本图像的真实标签信息,输入到交叉熵损失函数中,得到一个该损失函数的结果。
步骤S113,基于所述第一损失,调整所述第一神经网络的网络参数。
在一些可能的实现方式中,将第一损失反馈到神经网络的初始迭代层,初始迭代层基于该结果,调整该神经元的权值。
上述步骤S111至步骤S113完成了对第一神经网络的训练,这样保证了第一神经网络的性能优良。
在一些实施例中,为保证从第一分类结果中选出部分有用的第一目标结果,所述步骤S101可以通过以下多种方式实现,以第一分类结果的对应数值为置信度为例进行说明:
方式一:基于第一分类结果集合中包含的多个第一分类结果的对应数值,从所述第一分类结果集合中选择至少一个第一目标结果。
在一些可能的实现方式中,第一分类结果的对应数值可以是概率或者置信度等。比如,基于多个第一分类结果包含的置信度,从第一分类结果集合中选择至少一个第一目标结果;第一分类结果的对应数值为归一化的概率,基于多个第一分类结果的归一化的概率,从第一分类结果集合中选择至少一个第一目标结果等。
方式二:从所述第一分类结果集合中,选择对应数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一些可能的实现方式中,首先,确定所述第一分类结果集合中每一第一分类结果包含的置信度。在一个具体例子中,第一分类结果集合中包含10个第一分类结果,得到每一第一分类结果包含的置信度,这样就得到了10个置信度。然后,按照置信度从大到小的顺序,对所述第一分类结果进行排序。在一个具体例子中,对上述10个置信度按照从大到小排序,即最大的置信度排在第一位;这样从排序结果就能够看出,哪些分类结果包含的置信度较大。最后,将排列序号为第一的第一分类结果,确定为第一目标结果。在所述对应数值为归一化的概率的情况下,从第一分类结果集合中,选择归一化的概率最高的至少一个作为第一目标结果。
方式三:将所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果确定为所述至少一个第一目标结果。
在一个具体例子中,首先设定一个阈值,然后从第一分类结果集合中挑选出第一分类结果的对应数值大于该阈值的第一分类结果,得到第一目标结果,这样保证了得到的第一目标结果的准确度。
方式四:将所述第一分类结果集合中对应数值最高的前N个第一分类结果,作为所述至少一个第一目标结果,其中,N为预设数值。
在一个具体例子中,将排列后的10个第一分类结果,从中选出分类结果的对应数值在前3名的第一分类结果,为第一目标结果。这样,保证了选出的第一目标结果是较为有用的分类结果,从而使得用于蒸馏的知识的正确性提高。在一个具体例子中,在所述数值为未归一化的概率(未归一化的概率)的情况下,第一分类结果集合中包括10个第一分类结果,然后从中挑选出分类结果的未归一化的概率较大的前4个第一分类结果作为第一目标结果。这样,使得从第一分类结果集合中挑选出的第一目标结果的正确度较高。
方式五:基于数值累计阈值,从第一分类结果集合中,选择数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一些可能的实现方式中,首先设定数值累计阈值,然后,从第一分类结果集合中,选择数值最高的且累计求和满足该数值累计阈值的第一分类结果,作为第一目标结果。
方式六:首先,按照对应数值从大到小的顺序,对所述第一分类结果集合中包括的多个分类结果进行排序;然后,将排序后的前N个第一分类结果作为所述至少一个第一目标结果,其中,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
首先,对排列序号位于前N个的第一分类结果的对应数值求和,N为大于0的整数,通过对排序后的第一分类结果进行求和,然后,直到求和结果大于预设求和阈值,停止求和。然后,如果求和结果大于等于预设求和阈值,确定所述前N个第一分类结果的为第一目标结果。
在一个具体例子中,先对比排列在第一名的置信度是否大于预设求和阈值;如果小于,对排列在第一名的置信度和第二名的置信度求和;判断该求和值是否大于预设求和阈值;如果小于,对排列在第一名至第三名的置信度求和,如果该求和值大于等于预设求和阈值,确定置信度位于前三名的第一分类结果为第一目标结果。
在上述方式一至六中,从第一分类结果集合中挑选出数值较大的第一分类结果,作为第一目标结果,提高了用于知识蒸馏的数值的准确度,从而提高了知识蒸馏对于第二升级网络模型的性能,并且用部分数值较大的分类结果作为第二神经网络学习的知识,加快了知识蒸馏的训练速度。
在一些实施例中,按照第一目标结果的目标类别,从第二分类结果集合中找出第二目标结果,所述步骤S102可以通过以下步骤实现:
步骤S121,确定至少一个第一目标结果对应的至少一个目标类别。
在一个具体例子中,第一目标结果有5个,确定这个5个第一目标结果分别对应的目标类别。
步骤S122,从所述第二分类结果集合中选取所述至少一个目标类别对应的第二目标结果。
在一个具体例子中,按照5个第一目标结果分别对应的目标类别,从第二分类结果集合中,选择与该目标类别相同或者相匹配的第二目标结果。
在一些实施例中,采用分类结果数值较大的第一目标结果和与之相符合的第二目标结果对第二神经网络进行知识蒸馏,所述步骤S103可以通过以下步骤实现,参见图2A,图2A为本申请实施例基于知识蒸馏的神经网络训练方法的又一流程示意图,基于图1,进行以下说明:
步骤S221,基于所述至少一个第一目标结果和所述至少一个第二目标结果,确定蒸馏损失。
在一些可能的实现方式中,首先,对所述每一第一目标结果的对应数值进行归一化,得到每一第一目标结果的归一化第一概率;然后,对所述每一第二目标结果的对应数值进行归一化,得到每一第二目标结果的归一化第二概率;最后,根据所述归一化第一概率和所述归一化第二概率,确定第二目标结果对应的蒸馏损失。在一个具体的例子中,首先,分别获取所述第一目标结果的对应数值和所述第二目标结果的对应数值。比如,第一目标结果是猫和狗,那么获取第一神经网络输出的分类结果分别为猫和狗的数值,比如,分类结果分别为猫和狗的置信度,以及第二神经网络输出的分类结果分别为猫和狗的数值。然后,根据所述第一目标结果的对应数值和所述第二目标结果的对应数值,确定第二目标结果对应的蒸馏损失。
在一个具体例子中,对第一目标结果进行归一化的过程和对第二目标结果进行归一化的过程类似。以分类结果的对应数值为置信度为例,对第一目标结果进行归一化的过程为:首先,对每一第一目标结果的置信度求和,得到第一求和结果;然后,根据所述第一求和结果和第i个第一目标结果,确定所述第i个第一目标结果的归一化第一概率;其中,i为大于0小于等于N的整数。同理,确定归一化第二概率的过程为:首先,对每一第二目标结果的置信度求和,得到第二求和结果;然后,根据所述第二求和结果和第i个第二目标结果,确定所述第i个第二目标结果的归一化第二概率;如此,得到每一个目标结果的归一化概率,这样对目标结果的置信度进行归一化,得到相应的归一化概率,便于获取第二目标结果的损失,即蒸馏损失。
步骤S222,基于所述蒸馏损失,调整所述第二神经网络的网络参数。
在一些可能的实现方式中,将第一目标结果的对应数值归一化后的归一化第一概率和第二目标结果的对应数值归一化后的归一化第二概率,输入到损失函数中,得到一个该损失函数的结果。将该损失函数的结果(即第二损失)反馈到第二神经网络的初始迭代层,初始迭代层基于该结果,调整神经元的权值等网络参数。
在本申请实施例中,首先,对分类结果的数值较高的目标结果的数值进行归一化,得到相应的归一化第二概率和第二概率,然后,将归一化第一概率和归一化第二概率作为损失函数的输入,以此实现对第二神经网络的知识蒸馏,既提高了对第二神经网络的性能,还提升了对第二神经网络进行蒸馏的速度。
在一些实施例中,为更新第二神经网络的网络参数,所述方法还包括以下步骤:
第一步,采用预设的调整参数,分别对所述归一化第一概率和所述归一化第二概率进行调整,得到平滑第一概率和平滑第二概率。
在一些可能的实现方式中,采用超参τ,分别对所述归一化第一概率和所述归一化第二概率进行平滑处理,比如,对归一化第一概率进行平滑处理时,可以是采用超数τ,对每一个第一分类结果的数值进行调整,从而达到对归一化第一概率进行平滑处理的目的,同理,也可以通过采用超数τ,对每一个第二分类结果的数值进行调整,从而达到对归一化第二概率进行平滑处理的目的。
第二步,根据所述平滑第一概率和平滑第二概率,更新所述第二目标结果对应的蒸馏损失,得到更新的蒸馏损失。
在一些可能的实现方式中,将平滑第一概率和平滑第二概率作为损失函数的输入,重新获得损失函数的输出结果,即更新的蒸馏损失。
第三步,采用所述更新的蒸馏损失,调整所述第二神经网络的网络参数。
在一些可能的实现方式中,将平滑第一概率和平滑第二概率,输入到损失函数中,得到一个更新的该损失函数的结果。将该更新的损失函数的结果(即更新的蒸馏损失)反馈到第二神经网络的初始迭代层,初始迭代层基于该结果,重新调整神经元的权值等网络参数。
在本申请实施例中,对归一化第一概率和归一化第一概率进行平滑处理,以便于对损失函数进行更新,更好的调整第二神经网络的网络参数。
基于前述的基于知识蒸馏的神经网络训练方法,本申请实施例提供一种图像处理方法,图2B为本申请实施例图像处理方法的实现流程示意图,结合图2B进行以下说明:
步骤S231,获取待处理图像。
在一些可能的实现方式中,所述待处理图像可以为任意尺寸的图像或者视频等。所述待处理图像可以是进行目标检测的图像、进行分类的图像或进行目标跟踪的图像等。
步骤S232,通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果。
在一些可能的实现方式中,所述第二神经网络是基于通过对第一神经网络得到的第一分类结果集合进行过滤获得的目标分类结果进行知识蒸馏得到的。这样,通过蒸馏后的小规模的第二神经网络对待处理图像进行分类处理,即能够提升大规模神经网络对待处理图像分类的准确度,还可以提高分类处理的速度。
在一些实施例中,所述目标分类结果包括所述第一分类结果集合中对应数值最高的至少一个第一分类结果;或者,所述目标分类结果包括所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果;或者,所述目标分类结果包括:基于所述数值累计阈值从所述第一分类结果集合中选择的数值最高的至少一个第一分类结果。或者,所述目标分类结果包括:所述第一分类结果集合中排序后的多个第一分类结果中的前N个第一分类结果,其中,所述排序是按照所述第一分类结果的对应数值从大到小的顺序进行的,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
在本申请实施例中,所述第二神经网络可以是基于前述描述的基于知识蒸馏的神经网络训练方法得到的;因此,本申请实施例提供的图像处理方法可以采用上述任意一种实现的基于知识蒸馏的神经网络训练方法,进行实现,为避免重复,这里不在赘述。
在相关技术中,深度神经网络在许多视觉任务中取得了非常好的性能。一般而言,网络的参数量和计算量越大,性能越好,但是难以直接将其应用在硬件资源受限的嵌入式系统中。因而,深度神经网络模型的压缩、加速、优化对于世纪部署深度学习具有非常重要的意义。对学生网络进行知识蒸馏时,一方面,尽可能多地迁移教师网络的知识给学生网络,忽视了大小网络之间的差异,如网络大小,学习能力,结构等等。这些差异导致教师网络的知识很难全部迁移到学生网络中。另一方面,也忽视了教师网络本身的知识正确性存疑,而让学生网络学习存疑的知识将会降低学习效果,从而影响最终学生网络学习的性能。
基于此,本申请实施例提供一种基于知识蒸馏的神经网络训练方法,首先,训练教师网络直至收敛。之后,利用教师网络输出的知识作为监督,训练学生网络。在训练学生网络时,对教师网络输出知识的可信度进行排序,选择高可信度的知识(如,对教师网络对每个样本的输出值(比如,每一分类结果包含的置信度)按照大小排序,选择最大的K个),将选择的知识通过蒸馏方法迁移到学生网络中。此外,可选地,针对不同难易样本,利用自适应知识蒸馏来动态设置K的大小,来达到让学生网络尽可能聚焦于教师网络的可信度较高的知识,同时用尽可能多地迁移更多的知识。这样,通过对教师网络的知识分析,选择部分对学生网络有用的知识进行迁移,即选择性知识蒸馏,让学生网络聚焦于学习教师网络高可信度的知识,大幅度提升了知识蒸馏对于学生网络的性能,加快了知识蒸馏的训练速度。而且针对大小网络之间的性能差异,以及考虑到不同样本的学习难易程度,来更好地进行知识蒸馏,进一步提升了知识蒸馏效果。
本申请实施例,将表现良好的教师网络表示为T,学生网络表示为S。表示训练数据集,D中的每个样本的类别属于C类之一,yi∈Y=(1,2,…,C)。教师和学生网络输出的置信度表示为zt和zs。给定输入示例x,
和表示教师网络和学生网络针对示例x输出的分类结果对应的概率,θt和θs分别是教师网络和学生网络的网络参数。为了便于描述,本申请实施例中,简化为qc=q(c|x,θt)和pc=p(c|x,θs)。在一些例子中,采用交叉熵作为目标损失函数Lcls。知识蒸馏的方式是让学生网络通过最小化教师网络和学生网络之间的软概率分布的差异来模仿教师网络的行为,可以通公式(1)实现:
其中,τ是松弛超参数,用于对归一化对数概率进行平滑处理,平滑后的归一化概率,可以表示为:
通过使用教师网络提供的概率分布进行训练,学生网络可以捕获比单热标签更多的信息,从而实现更通用化的模型。
从教学和学生的角度来看,教师应该确保向学生传授的知识是正确的。教学的理想方式是为学生提供最佳的数值概率分布。然而,即使是表现良好的教师网络仍然不能提供这种最佳的数值概率分布。换句话说,教师网络提供的部分知识可能是可疑的甚至是错误的。所以,更好的学习策略应该考虑学生网络的能力和知识的硬度。基于知识蒸馏的方法似乎过于过分信任教师网络,同时忽略了教师网络与学生网络之间的内在差异。为了解决这个问题,本申请实施例提出了选择性知识蒸馏方法。
图3为本申请实施例基于知识蒸馏的神经网络训练方法的应用场景图,如图3所示,图片31和32为不同清晰度的待处理图像,将图片31和32依次输入教师网络33(即第一神经网络)和学生网络34(即第二神经网络)中,得到相应的分类处理结果;输出分类结果301的学生网络,是采用全部的教师网络输出的全部分类结果进行蒸馏的;输出分类结果302的学生网络,是采用本申请实施例提供的基于知识蒸馏的神经网络训练方法对学生网络进行蒸馏的,即采用教师网络输出的部分分类进行蒸馏的;在分类结果301中,q1和q2分别表示是教师网络33分别对图片31和图片32的各个分类结果包含的置信度,用条形图303和304表示,从该条形图中可以看出,对于清晰度较高的图片31的分类准确率显然是比较高的;p1和p2分别表示是学生网络34分别对图片31和图片32的各个分类结果包含的置信度,分别用条形图307和308表示,从该条形图中可以看出,学生网络34对于清晰度较高的图片31的分类的准确率比较高;但是学生网络34对于清晰度较低的图片32进行分类的准确度确偏低。在分类结果302中,和分别是分别表示是教师网络33分别对图片31和图片32的各个分类结果包含的置信度,用条形图305和306表示,与q1和q2对应的分类结果相同;和分别是分别表示是学生网络34分别对图片31和图片32的各个分类结果包含的置信度,用条形图309和310表示,与q1和q2对应的分类结果相同;从对应的条形图305中挑选出置信度排在前两名的分类结果,即猫和狗;然后,从学生网络34对图片31的各个分类结果中挑选出同样的分类结果,即得到条形图309所示的,仅包含学生网络34将图片31的分类为猫和狗的置信度;同理,从对应的条形图306中挑选出置信度排在前4名的分类结果,即猫、狗、狐狸和牛;然后,从学生网络34对图片32的各个分类结果中挑选出同样的分类结果,即得到条形图310所示的,仅包含学生网络34将图片32的分类为猫、狗、狐狸和牛的置信度。
通常在教学生时,教师应该对其教学知识充满信心,而不应该向学生传授知识的可疑部分。同理,教师网络预测的分类结果包含的置信度表示对不同分类结果包含的置信度,其中,具有较大权重的前几个分类结果包含的置信度反映了较高的置信度。在本申请实施例中,对异常值不太敏感的前几个分类结果的未归一化的概率可以用作学生的新目标。选择性知识蒸馏实现的过程如下:
首先,确定教师网络输出的置信度排列在前k名的分类结果包含的置信度如公式(3)所示:
其中,k小于C,表示第k种分类结果包含的置信度。然后,根据教师网络的前k个分类结果包含的置信度的顺序得到学生网络的相应分类结果包含的置信度,此外,使用选定的分类结果包含的置信度对学生网络进行知识蒸馏,如公式4所示:
其中,参数k控制知识转移的程度。
本申请实施例还给出了一种基于教师网络输出的结果,选择选择分类结果的未归一化的概率的方式,
使用变量y=(y1,y2,···,yC)来表示累积置信区间,如公式(5)所示,
然后,基于置信区间的自适应选择的损失函数可表示为公式(6):
其中,λ是一个可调的超参数,表示通过蒸馏学生网络将教师网络的知识传递给学生网络的程度。从逻辑上讲,轻型结构网络的学习能力比重型网络弱。转移的信息应尽可能简洁。并且λ应该相应地设置得更小。
在本申请实施例中,由于并非所有教师网络输出的知识对学生网络都有用,基于此,根据样本图像的概率分布自适应地选择教师网络的前k个置信度,提升了选择性知识蒸馏对不同学生网络架构的有效性和优越性。
本申请实施例提供一种基于知识蒸馏的神经网络训练装置,图4为本申请实施例基于知识蒸馏的神经网络训练装置的组成结构示意图,如图4所示,所述装置400包括:
第一选取模块401,用于从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,其中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果;
第二选取模块402,用于从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果;
第一调整模块403,用于根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。
在一种可能的实现方式中,所述第一选取模块401,包括:
第一选择子模块,用于基于第一分类结果集合中包含的多个第一分类结果的对应数值,从所述第一分类结果集合中选择至少一个第一目标结果。
在一种可能的实现方式中,所述第一选取模块401,包括:
第二选择子模块,用于从所述第一分类结果集合中,选择对应数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一种可能的实现方式中,所述第一选取模块401,包括:
第一确定子模块,用于将所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果确定为所述至少一个第一目标结果。
在一种可能的实现方式中,所述所述第一选取模块401,包括:
第二确定子模块,用于将所述第一分类结果集合中对应数值最高的前N个第一分类结果,作为所述至少一个第一目标结果,其中,N为预设数值。
在一种可能的实现方式中,所述所述第一选取模块401,包括:
第三选择子模块,用于基于数值累计阈值,从第一分类结果集合中,选择数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
在一种可能的实现方式中,所述所述第一选取模块401,包括:
第一排序子模块,用于按照对应数值从大到小的顺序,对所述第一分类结果集合中包括的多个分类结果进行排序;
第三确定子模块,用于将排序后的前N个第一分类结果作为所述至少一个第一目标结果,其中,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
在一种可能的实现方式中,所述第二选取模块402,用于,包括:
第四确定子模块,用于确定至少一个第一目标结果对应的至少一个目标类别;
第四选择子模块,用于从所述第二分类结果集合中选取所述至少一个目标类别对应的第二目标结果。
在一种可能的实现方式中,所述第一调整模块403,包括:
第五确定子模块,用于基于所述至少一个第一目标结果和所述至少一个第二目标结果,确定蒸馏损失;
第一调整子模块,用于基于所述蒸馏损失,调整所述第二神经网络的网络参数。
本申请实施例提供一种图像处理装置,图5为本申请实施例图像处理装置的组成结构示意图,如图5所示,装置500包括:
第一获取模块501,用于获取待处理图像;
第一分类模块502,用于通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果,其中,所述第二神经网络是基于通过对第一神经网络得到的第一分类结果集合进行过滤获得的目标分类结果进行知识蒸馏得到的。
在一种可能的实现方式中,所述目标分类结果是基于所述第一分类结果集合中包含的多个第一分类结果的对应数值选取的。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值最高的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括所述第一分类结果集合中对应数值最高的前N个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括:基于所述数值累计阈值从所述第一分类结果集合中选择的数值最高的至少一个第一分类结果。
在一种可能的实现方式中,所述目标分类结果包括:所述第一分类结果集合中排序后的多个第一分类结果中的前N个第一分类结果,其中,所述排序是按照所述第一分类结果的对应数值从大到小的顺序进行的,所述前N个第一分类结果的对应数值之和低于或等于数值累计阈值,且前N+1个第一分类结果的对应数值之和高于所述数值累计阈值。
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的基于知识蒸馏的神经网络训练方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是终端、服务器等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例再提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令用于实现本申请实施例提供的基于知识蒸馏的神经网络训练方法中的步骤。
相应的,本申请实施例再提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令用于实现上述实施例提供的基于知识蒸馏的神经网络训练方法的步骤。
相应的,本申请实施例提供一种计算机设备,图6为本申请实施例电子设备的结构示意图,如图6所示,所述设备600包括:一个处理器601、至少一个通信总线602、用户接口603、至少一个外部通信接口604和存储器605。其中,通信总线602配置为实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏,外部通信接口604可以包括标准的有线接口和无线接口。其中所述处理器601,配置为执行存储器中图像处理程序,以实现上述实施例提供的基于知识蒸馏的神经网络训练方法的步骤。
以上计算机设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明计算机设备和存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本申请实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于知识蒸馏的神经网络训练方法,其特征在于,所述方法包括:
从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,其中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果;
从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果;
根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。
2.根据权利要求1所述的方法,其特征在于,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:
基于第一分类结果集合中包含的多个第一分类结果的对应数值,从所述第一分类结果集合中选择至少一个第一目标结果。
3.根据权利要求1或2所述的方法,其特征在于,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:
从所述第一分类结果集合中,选择对应数值最高的至少一个第一分类结果作为所述至少一个第一目标结果。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:
将所述第一分类结果集合中对应数值大于或等于预设阈值的至少一个第一分类结果确定为所述至少一个第一目标结果。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,包括:
将所述第一分类结果集合中对应数值最高的前N个第一分类结果,作为所述至少一个第一目标结果,其中,N为预设数值。
6.一种图像处理方法,其特征在于,包括:
获取待处理图像;
通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果,其中,所述第二神经网络是基于通过对第一神经网络得到的第一分类结果集合进行过滤获得的目标分类结果进行知识蒸馏得到的。
7.一种基于知识蒸馏的神经网络训练装置,其特征在于,所述装置包括:
第一选取模块,用于从通过第一神经网络对样本图像处理得到的第一分类结果集合中,选取至少一个第一目标结果,其中,所述第一分类结果集合包括多个类别中每个类别对应的分类结果;
第二选取模块,用于从通过第二神经网络对所述样本图像处理得到的第二分类结果集合中,选取与所述至少一个第一目标结果对应的至少一个第二目标结果;
第一调整模块,用于根据所述至少一个第一目标结果和所述至少一个第二目标结果,调整所述第二神经网络的网络参数。
8.一种图像处理装置,其特征在于,包括:
第一获取模块,用于获取待处理图像;
第一分类模块,用于通过第二神经网络对所述待处理图像进行分类处理,得到图像分类结果,其中,所述第二神经网络是基于通过对第一神经网络得到的第一分类结果集合进行过滤获得的目标分类结果进行知识蒸馏得到的。
9.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现权利要求1至5任一项所述的方法步骤,或,该计算机可执行指令被执行后,能够实现权利要求6所述的方法步骤。
10.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时可实现权利要求1至5任一项所述的方法步骤,或者,所述处理器运行所述存储器上的计算机可执行指令时可实现权利要求6所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910735490.2A CN110472681A (zh) | 2019-08-09 | 2019-08-09 | 基于知识蒸馏的神经网络训练方案和图像处理方案 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910735490.2A CN110472681A (zh) | 2019-08-09 | 2019-08-09 | 基于知识蒸馏的神经网络训练方案和图像处理方案 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110472681A true CN110472681A (zh) | 2019-11-19 |
Family
ID=68510074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910735490.2A Pending CN110472681A (zh) | 2019-08-09 | 2019-08-09 | 基于知识蒸馏的神经网络训练方案和图像处理方案 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110472681A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909815A (zh) * | 2019-11-29 | 2020-03-24 | 深圳市商汤科技有限公司 | 神经网络训练、图像处理方法、装置及电子设备 |
CN110929806A (zh) * | 2019-12-06 | 2020-03-27 | 腾讯科技(北京)有限公司 | 基于人工智能的图片处理方法、装置及电子设备 |
CN111027551A (zh) * | 2019-12-17 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 图像处理方法、设备和介质 |
CN111414936A (zh) * | 2020-02-24 | 2020-07-14 | 北京迈格威科技有限公司 | 分类网络的确定方法、图像检测方法、装置、设备及介质 |
CN111582481A (zh) * | 2020-05-09 | 2020-08-25 | 北京百度网讯科技有限公司 | 用于对模型蒸馏的方法和装置 |
CN111932561A (zh) * | 2020-09-21 | 2020-11-13 | 深圳大学 | 基于集成知识蒸馏的实时肠镜影像分割方法及装置 |
CN112200318A (zh) * | 2020-10-10 | 2021-01-08 | 广州云从人工智能技术有限公司 | 一种目标检测方法、装置、机器可读介质及设备 |
CN112232506A (zh) * | 2020-09-10 | 2021-01-15 | 北京迈格威科技有限公司 | 网络模型训练方法、图像目标识别方法、装置和电子设备 |
CN112232397A (zh) * | 2020-09-30 | 2021-01-15 | 上海眼控科技股份有限公司 | 图像分类模型的知识蒸馏方法、装置和计算机设备 |
CN112861896A (zh) * | 2019-11-27 | 2021-05-28 | 北京沃东天骏信息技术有限公司 | 一种图像识别方法和装置 |
WO2021135607A1 (zh) * | 2019-12-31 | 2021-07-08 | 歌尔股份有限公司 | 一种基于神经网络的目标分类模型的优化方法、装置 |
CN113139488A (zh) * | 2021-04-29 | 2021-07-20 | 北京百度网讯科技有限公司 | 训练分割神经网络的方法及装置 |
CN113240565A (zh) * | 2021-06-01 | 2021-08-10 | 平安科技(深圳)有限公司 | 基于量化模型的目标识别方法、装置、设备及存储介质 |
CN113420170A (zh) * | 2021-07-15 | 2021-09-21 | 宜宾中星技术智能系统有限公司 | 大数据图像的多线程存储方法、装置、设备和介质 |
CN113537483A (zh) * | 2020-04-14 | 2021-10-22 | 杭州海康威视数字技术股份有限公司 | 一种域适配方法、装置及电子设备 |
CN113657523A (zh) * | 2021-08-23 | 2021-11-16 | 科大讯飞股份有限公司 | 一种图像目标分类方法、装置、设备及存储介质 |
WO2022021624A1 (zh) * | 2020-07-31 | 2022-02-03 | 上海商汤智能科技有限公司 | 模型确定方法及相关装置、终端、计算机可读存储介质、计算机程序产品 |
WO2022100045A1 (zh) * | 2020-11-13 | 2022-05-19 | 北京百度网讯科技有限公司 | 分类模型的训练方法、样本分类方法、装置和设备 |
JP7459425B2 (ja) | 2020-06-15 | 2024-04-02 | インテル・コーポレーション | 適応的ランタイム高効率画像分類のための入力画像サイズスイッチ可能ネットワーク |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180268292A1 (en) * | 2017-03-17 | 2018-09-20 | Nec Laboratories America, Inc. | Learning efficient object detection models with knowledge distillation |
CN109376786A (zh) * | 2018-10-31 | 2019-02-22 | 中国科学院深圳先进技术研究院 | 一种图像分类方法、装置、终端设备及可读存储介质 |
CN109800821A (zh) * | 2019-01-31 | 2019-05-24 | 北京市商汤科技开发有限公司 | 训练神经网络的方法、图像处理方法、装置、设备和介质 |
CN109858614A (zh) * | 2019-01-31 | 2019-06-07 | 北京市商汤科技开发有限公司 | 神经网络训练方法及装置、电子设备和存储介质 |
CN109919300A (zh) * | 2019-02-25 | 2019-06-21 | 北京市商汤科技开发有限公司 | 神经网络训练方法及装置以及图像处理方法及装置 |
-
2019
- 2019-08-09 CN CN201910735490.2A patent/CN110472681A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180268292A1 (en) * | 2017-03-17 | 2018-09-20 | Nec Laboratories America, Inc. | Learning efficient object detection models with knowledge distillation |
CN109376786A (zh) * | 2018-10-31 | 2019-02-22 | 中国科学院深圳先进技术研究院 | 一种图像分类方法、装置、终端设备及可读存储介质 |
CN109800821A (zh) * | 2019-01-31 | 2019-05-24 | 北京市商汤科技开发有限公司 | 训练神经网络的方法、图像处理方法、装置、设备和介质 |
CN109858614A (zh) * | 2019-01-31 | 2019-06-07 | 北京市商汤科技开发有限公司 | 神经网络训练方法及装置、电子设备和存储介质 |
CN109919300A (zh) * | 2019-02-25 | 2019-06-21 | 北京市商汤科技开发有限公司 | 神经网络训练方法及装置以及图像处理方法及装置 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112861896A (zh) * | 2019-11-27 | 2021-05-28 | 北京沃东天骏信息技术有限公司 | 一种图像识别方法和装置 |
CN110909815A (zh) * | 2019-11-29 | 2020-03-24 | 深圳市商汤科技有限公司 | 神经网络训练、图像处理方法、装置及电子设备 |
CN110909815B (zh) * | 2019-11-29 | 2022-08-12 | 深圳市商汤科技有限公司 | 神经网络训练、图像处理方法、装置及电子设备 |
CN110929806A (zh) * | 2019-12-06 | 2020-03-27 | 腾讯科技(北京)有限公司 | 基于人工智能的图片处理方法、装置及电子设备 |
CN110929806B (zh) * | 2019-12-06 | 2023-07-21 | 深圳市雅阅科技有限公司 | 基于人工智能的图片处理方法、装置及电子设备 |
CN111027551A (zh) * | 2019-12-17 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 图像处理方法、设备和介质 |
CN111027551B (zh) * | 2019-12-17 | 2023-07-07 | 腾讯科技(深圳)有限公司 | 图像处理方法、设备和介质 |
US11748975B2 (en) | 2019-12-31 | 2023-09-05 | Goertek Inc. | Method and device for optimizing object-class model based on neural network |
WO2021135607A1 (zh) * | 2019-12-31 | 2021-07-08 | 歌尔股份有限公司 | 一种基于神经网络的目标分类模型的优化方法、装置 |
CN111414936A (zh) * | 2020-02-24 | 2020-07-14 | 北京迈格威科技有限公司 | 分类网络的确定方法、图像检测方法、装置、设备及介质 |
CN111414936B (zh) * | 2020-02-24 | 2023-08-18 | 北京迈格威科技有限公司 | 分类网络的确定方法、图像检测方法、装置、设备及介质 |
CN113537483A (zh) * | 2020-04-14 | 2021-10-22 | 杭州海康威视数字技术股份有限公司 | 一种域适配方法、装置及电子设备 |
CN111582481A (zh) * | 2020-05-09 | 2020-08-25 | 北京百度网讯科技有限公司 | 用于对模型蒸馏的方法和装置 |
CN111582481B (zh) * | 2020-05-09 | 2023-10-03 | 北京百度网讯科技有限公司 | 用于对模型蒸馏的方法和装置 |
JP7459425B2 (ja) | 2020-06-15 | 2024-04-02 | インテル・コーポレーション | 適応的ランタイム高効率画像分類のための入力画像サイズスイッチ可能ネットワーク |
WO2022021624A1 (zh) * | 2020-07-31 | 2022-02-03 | 上海商汤智能科技有限公司 | 模型确定方法及相关装置、终端、计算机可读存储介质、计算机程序产品 |
CN112232506A (zh) * | 2020-09-10 | 2021-01-15 | 北京迈格威科技有限公司 | 网络模型训练方法、图像目标识别方法、装置和电子设备 |
CN111932561A (zh) * | 2020-09-21 | 2020-11-13 | 深圳大学 | 基于集成知识蒸馏的实时肠镜影像分割方法及装置 |
CN112232397A (zh) * | 2020-09-30 | 2021-01-15 | 上海眼控科技股份有限公司 | 图像分类模型的知识蒸馏方法、装置和计算机设备 |
CN112200318A (zh) * | 2020-10-10 | 2021-01-08 | 广州云从人工智能技术有限公司 | 一种目标检测方法、装置、机器可读介质及设备 |
WO2022100045A1 (zh) * | 2020-11-13 | 2022-05-19 | 北京百度网讯科技有限公司 | 分类模型的训练方法、样本分类方法、装置和设备 |
CN113139488A (zh) * | 2021-04-29 | 2021-07-20 | 北京百度网讯科技有限公司 | 训练分割神经网络的方法及装置 |
CN113139488B (zh) * | 2021-04-29 | 2024-01-12 | 北京百度网讯科技有限公司 | 训练分割神经网络的方法及装置 |
CN113240565A (zh) * | 2021-06-01 | 2021-08-10 | 平安科技(深圳)有限公司 | 基于量化模型的目标识别方法、装置、设备及存储介质 |
CN113240565B (zh) * | 2021-06-01 | 2024-05-07 | 平安科技(深圳)有限公司 | 基于量化模型的目标识别方法、装置、设备及存储介质 |
CN113420170B (zh) * | 2021-07-15 | 2023-04-14 | 宜宾中星技术智能系统有限公司 | 大数据图像的多线程存储方法、装置、设备和介质 |
CN113420170A (zh) * | 2021-07-15 | 2021-09-21 | 宜宾中星技术智能系统有限公司 | 大数据图像的多线程存储方法、装置、设备和介质 |
CN113657523A (zh) * | 2021-08-23 | 2021-11-16 | 科大讯飞股份有限公司 | 一种图像目标分类方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110472681A (zh) | 基于知识蒸馏的神经网络训练方案和图像处理方案 | |
CN109919183B (zh) | 一种基于小样本的图像识别方法、装置、设备及存储介质 | |
CN105354307B (zh) | 一种图像内容识别方法及装置 | |
CN112183577A (zh) | 一种半监督学习模型的训练方法、图像处理方法及设备 | |
CN110490221B (zh) | 多标签分类方法、电子装置及计算机可读存储介质 | |
CN109961089A (zh) | 基于度量学习和元学习的小样本和零样本图像分类方法 | |
CN111325318B (zh) | 神经网络的训练方法、神经网络的训练装置和电子设备 | |
US11468266B2 (en) | Target identification in large image data | |
CN111241992B (zh) | 人脸识别模型构建方法、识别方法、装置、设备及存储介质 | |
CN109002766A (zh) | 一种表情识别方法及装置 | |
CN113807399A (zh) | 一种神经网络训练方法、检测方法以及装置 | |
US11037027B2 (en) | Computer architecture for and-or neural networks | |
CN114090780A (zh) | 一种基于提示学习的快速图片分类方法 | |
US11763551B2 (en) | Systems and methods for fine tuning image classification neural networks | |
CN112270334B (zh) | 一种基于异常点暴露的少样本图像分类方法及系统 | |
CN112507912A (zh) | 一种识别违规图片的方法及装置 | |
CN112364912A (zh) | 信息分类方法、装置、设备及存储介质 | |
CN111340051A (zh) | 图片处理方法、装置及存储介质 | |
CN114443877A (zh) | 图像多标签分类的方法、装置、设备及存储介质 | |
CN113762331A (zh) | 关系型自蒸馏方法、装置和系统及存储介质 | |
Hang et al. | Open world plant image identification based on convolutional neural network | |
CN113570512A (zh) | 一种图像数据处理方法、计算机及可读存储介质 | |
Li et al. | Assessing and improving intelligent physical education approaches using modified cat swarm optimization algorithm | |
CN116503670A (zh) | 图像分类及模型训练方法、装置和设备、存储介质 | |
CN117010480A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191119 |