网络模型训练方法、图像目标识别方法、装置和电子设备
文献发布时间:2023-06-19 09:33:52
技术领域
本发明涉及图像处理技术领域,尤其是涉及一种网络模型训练方法、图像目标识别方法、装置及电子设备。
背景技术
深度神经网络在一些边缘计算设备落地部署的过程中,由于边缘设备无法拥有比拟于服务器设备的运算能力和内存资源,所以对模型小型化技术提出了更高的要求,需要有一个比较完善的技术能从大模型得到小模型,模型蒸馏方法应运而生。模型蒸馏方法以一个高准确率的大模型作为教师指导小模型即学生模型,通过将教师模型的知识传递给学生模型,使学生模型在边缘计算设备上也能有较高的准确率。
在模型蒸馏的过程中,教师模型的知识会直接传递给学生模型,这样会造成教师模型的某些“负面知识”也传递给学生网络,一定程度上影响了学生模型的准确率。
发明内容
有鉴于此,本发明的目的在于提供一种网络模型训练方法、图像目标识别方法、装置及电子设备,以提升学生模型的准确度。
第一方面,本发明实施例提供了一种网络模型训练方法,其中,该方法应用于服务器,包括:应用与第一网络模型相同的样本对集合训练第二网络模型,其中,所述第一网络模型的计算量大于所述第二网络模型的计算量;当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;基于样本对更新集合确定第二网络模型的总损失函数值;如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果的步骤,包括:计算第一网络模型对于第一样本对的第一特征距离,计算第二网络模型对于第一样本对的第二特征距离;基于第一网络模型计算第一样本对所属样本类的第一特征距离均值,基于第二网络模型计算第一样本对所属样本类的第二特征距离均值;其中,样本类包括同类样本或异类样本;应用第一特征距离均值对第一特征距离进行归一化处理,将第一特征距离归一化结果作为第一网络模型对于第一样本对的第一预测结果;应用第二特征距离均值对第二特征距离进行归一化处理,将第二特征距离归一化结果作为第二网络模型对于第一样本对的第二预测结果。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,特征距离为第一样本对的特征对应的欧式距离或余弦相似度。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述方法还包括:基于第一样本对所属样本类,通过比较第一预测结果和第二预测结果,判断第二预测结果是否优于第一预测结果。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,特征距离为第一样本对的特征对应的欧式距离;基于第一样本对所属样本类,通过比较第一预测结果和第二预测结果,判断第二预测结果是否优于第一预测结果的步骤,包括:如果第一样本对所属样本类为同类样本,将第一预测结果减去第二预测结果,得到第一差值;如果第一差值大于0或者大于预设第一正值,确定第二预测结果优于第一预测结果。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,特征距离为第一样本对的特征对应的欧式距离;基于第一样本对所属样本类,通过比较第一预测结果和第二预测结果,判断第二预测结果是否优于第一预测结果的步骤,包括:如果第一样本对所属样本类为异类样本,计算第一预测结果减去第二预测结果,得到第二差值;如果第二差值小于0或者小于预设第二负值,确定第二预测结果优于第一预测结果。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,基于样本对更新集合确定第二网络模型的总损失函数值的步骤,包括:基于样本对更新集合确定第二网络模型的同类样本蒸馏损失值和异类样本蒸馏损失值;基于同类样本蒸馏损失值和异类样本蒸馏损失值,确定第二网络模型的总损失函数值。
结合第一方面的第六种可能的实施方式,本发明实施例提供了第一方面的第七种可能的实施方式,其中,基于样本对更新集合确定第二网络模型的同类样本蒸馏损失值和异类样本蒸馏损失值的步骤,包括:基于样本对更新集合中的同类样本对,计算第一网络模型和第二网络模型的有效同类距离差的平方和;将有效同类距离差的平方和除以同类样本对的个数,得到同类样本蒸馏损失值;基于样本对更新集合中的异类样本对,计算第一网络模型和第二网络模型的有效异类距离差的平方和;将有效异类距离差的平方和除以异类样本对的个数,得到异类样本蒸馏损失值。
结合第一方面的第七种可能的实施方式,本发明实施例提供了第一方面的第八种可能的实施方式,其中,计算第一网络模型和第二网络模型的有效同类距离差的平方和的步骤,包括:计算第一网络模型和第二网络模型的有效同类距离差的平方和W
结合第一方面的第七种可能的实施方式,本发明实施例提供了第一方面的第九种可能的实施方式,其中,计算第一网络模型和第二网络模型的有效异类距离差的平方和的步骤,包括:计算第一网络模型和第二网络模型的有效异类距离差的平方和W
第二方面,本发明实施例还提供一种图像目标识别方法,所述方法应用于电子设备,所述方法包括:接收待识别图像;利用第二网络模型对所述待识别图像进行处理,输出目标识别结果;其中,所述第二网络模型为预先经上述网络模型训练方法训练得到的第二网络模型。
第三方面,本发明实施例还提供一种网络模型训练装置,其中,上述装置应用于服务器,包括:训练模块,用于应用与第一网络模型相同的样本对集合训练第二网络模型,其中,所述第一网络模型的计算量大于所述第二网络模型的计算量;获取模块,用于当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;删除模块,用于如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;确定模块,用于基于样本对更新集合确定第二网络模型的总损失函数值;迭代模块,用于如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。
第四方面,本发明实施例还提供一种图像目标识别装置,所述装置应用于电子设备,所述装置包括:图像接收模块,用于接收待识别图像;图像处理模块,用于利用第二网络模型对所述待识别图像进行处理,输出目标识别结果;其中,所述第二网络模型为预先经上述网络模型训练方法训练得到的第二网络模型。
第五方面,本发明实施例还提供一种电子设备,其中,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述的网络模型训练方法或者以实现上述图像目标识别方法。
第六方面,本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述的网络模型训练方法或者以实现上述图像目标识别方法。
本发明实施例带来了以下有益效果:
本申请实施例提供一种网络模型训练方法、图像目标识别方法、装置及电子设备,其中,应用与第一网络模型相同的样本对集合训练第二网络模型,当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;基于样本对更新集合确定第一网络模型的总损失函数值;如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。该方法通过删除掉第二网络模型已经学的好的样本,使得第二网络模型更加专注地学习那些做的比第一网络模型差的样本,而本身已经学的好的样本,也不会被带偏,不仅提升了训练效率,还保证了训练出的第二网络模型的性能,使应用第二网络模型进行的目标识别与检测的准确度更高。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种电子设备的结构示意图;
图2为本发明实施例提供的一种网络模型训练方法的流程图;
图3为本发明实施例提供的另一种网络模型训练方法的流程图;
图4为本发明实施例提供的另一种网络模型训练方法的流程图;
图5为本发明实施例提供的另一种网络模型训练方法的流程图;
图6为本发明实施例提供的一种网络模型训练装置的结构示意图;
图7为本发明实施例提供的另一种网络模型训练装置的结构示意图;
图8为本发明实施例提供的一种图像目标识别方法流程图;
图9为本发明实施例提供的一种图像目标识别装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
比如对某些样本的预测结果,学生网络的预测效果可能会优于教师网络,但此时仍然拉近学生网络和教师网络的预测结果,就会让学生网络在这些样本上的预测准确率下降。目前的研究缺乏基于知识过滤的蒸馏方法,就是在蒸馏过程中,让教师网络传递“正面知识”给学生网络。本发明主要解决在模型蒸馏过程中,教师网络会传递“负面知识”给学生网络的问题。
尺度学习的目的就是拉近同类样本的距离,拉远异类样本的距离。因此,在模型蒸馏过程中,对于同样的输入样本,可以将教师网络的预测结果作为知识传递给学生网络,就是拉近学生网络和教师网络对于同一对样本的预测结果。这种蒸馏方法可以不受教师网络和学生网络对于样本特征维度的限制,取得了比较广泛的应用。但在蒸馏过程中,教师网络会输出一些“负面知识”,比如对于某些样本,学生网络的预测结果可能会更准确,如果强行拉近学生网络和教师网络的预测结果,会造成学生网络在这些样本上的预测准确性下降。基于此,本发明实施例提供的一种网络模型训练方法、装置及电子设备,通过删除掉第二网络模型(学生网络)已经学的好的样本,使得第二网络模型更加专注地学习那些做的比第一网络模型(教师网络)差的样本,而本身已经学的好的样本,也不会被带偏,从而在一定程度上提高了第二网络模型的准确度。下面通过实施例进行描述。
本发明实施例中的第二网络模型可以应用于目标检测、目标识别等多种应用场景中,例如应用第二网络模型进行行人或车辆的识别、应用第二网络模型进行行人或车辆的跟踪、应用第二网络模型进行人体部位或车辆部件(如车牌或车标)的识别等。
如图1所示的一种电子设备的结构示意图,电子设备100包括一个或多个处理器102、一个或多个存储器104、输入装置106、输出装置108以及一个或多个图像采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,电子设备也可以具有其他组件和结构。
处理器102可以为服务器、智能终端,或者是包含中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对电子设备100中的其它组件的数据进行处理,还可以控制电子设备100中的其它组件以执行网络模型训练功能。
存储器104可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行程序指令,以实现下文的本发明实施例中(由处理设备实现)的功能以及/或者其它期望的功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如可见光视频序列和红外视频序列,以及应用程序使用和/或产生的各种数据等。
输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
图像采集装置110可以获取样本对集合,并且将采集到的视频序列存储在存储器104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的网络模型训练方法、图像目标识别方法和装置的电子设备中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将图像采集装置110设置于可以采集到视频帧的指定位置。当上述电子设备中的各器件集成设置时,该电子设备可以被实现为诸如相机、智能手机、平板电脑、计算机、车载终端等智能终端。
本实施例提供了一种网络模型训练方法,其中,该方法应用于服务器,参见图2所示的一种网络模型训练方法的流程图,该方法具体包括如下步骤:
步骤S202,应用与第一网络模型相同的样本对集合训练第二网络模型,其中,第一网络模型的计算量大于第二网络模型的计算量;其中,第一网络模型即为上述的教师网络,第二网络模型即为上述的学生网络。
上述样本对集合中的样本都是成对出现的,例如,(a
步骤S204,当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;
当第二网络模型的训练达到预设时间或者预设次数时即完成本轮迭代训练,预设时间或预设次数可以根据实际需要进行设置,在此不进行限定。
通常,可将样本对集合中的样本分成两类,一类为同类样本另一类为异类样本,比如,将只包括男人的图片样本视为同类样本,将既包括男人又包括女人的图片样本视为异类样本;为了利用更多的图片特征训练网络模型,还可以将上述同类样本或者异类样本分成多个小类别样本,比如,将上述同类样本中戴帽子男人的图片样本视为一个小类别样本,穿西服男人的图片样本视为一个小类别样本,背包男人的图片样本视为一个小类别样本等,上述同类样本和异类样本的划分可以根据实际应用场景进行设置,在此不进行限定。
上述第一样本对可为包括至少一个样本对的同类样本,或为包括至少一个样本对的异类样本,利用本轮训练好的第二网络模型和预先利用上述样本对集合训练好的第一网络模型分别对第一样本对进行预测,得到第一网络模型对预测出的第一预测结果和第二网络模型预测出的第二预测结果。
步骤S206,如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;
如果得到的第二预测结果优于第一预测结果,说明第一样本对对于第二网络模型来讲是已经学的好的样本,在进行知识蒸馏过程中,为了避免重复利用该第一样本训练第二网络模型带来的训练效果变差的问题,在本实施例中,可将该第一样本对或者将该第一样本对所属的同类样本从样本集合中删除,得到样本对更新集合。比如,第一样本对为包括戴帽子男人10个样本对,如果利用第二网络模型对10个样本对的预测结果要优于领第一网络模型对10个样本对的预测结果,则可将该10个样本对,或者将戴帽子男人的所有样本对(20个样本对)从样本对集合中删除。
如果得到的第二预测结果劣于第一预测结果,说明第二网络模型对于第一样本对的预测能力要差于第一网络模型,因此第一样本对的知识正是第二网络模型所需要的,因此,保留第一样本对对第二网络模型进行训练。
步骤S208,基于样本对更新集合确定第二网络模型的总损失函数值;
上述确定出的总损失函数值为第二网络模型达到最终训练目的的收敛参数。
步骤S210,如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合样本对更新集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。
当确定出的总损失函数值大于预设值,说明本次训练好的第二网络模型没有达到预设的收敛,在应用该总损失函数值更新第二网络模型的参数得到更新后的第二网络模型后,可再次从样本对集合中选取一个第一样本对,重新执行步骤S204至步骤S210,直至确定出的总损失函数值不大于预设值为止,说明更新后的第二网络模型达到了预设的收敛效果,使得训练好的第二网络模型的输出能够接近第一网络模型的输出。
在进行下一轮训练时,可以依旧使用原来的样本对集合进行,这样第二网络模型和第一网络模型使用的样本对集合一直一样,在控制第二网络模型的训练次数上,基于本轮的样本对更新集合确定第二网络模型的总损失函数值,保障训练次数的合理性,进而使训练好的第二网络模型的性能与第一网络模型的性能基本一致。
本申请实施例提供一种网络模型训练方法,其中,应用与第一网络模型相同的样本对集合训练第二网络模型,当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;基于样本对更新集合确定第一网络模型的总损失函数值;如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,使得第二网络模型的预测结果趋近于第一网络模型的预测结果;并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。该方法通过删除掉第二网络模型已经学的好的样本,使得第二网络模型更加专注地学习那些做的比第一网络模型差的样本,而本身已经学的好的样本,也不会被带偏,不仅提升了训练效率,还保证了训练出的第二网络模型的性能,使应用第二网络模型进行的目标识别与检测的准确度更高。
本实施例提供了另一种网络模型训练方法,该方法在上述实施例的基础上实现;本实施例重点描述获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果的具体实施方式。如图3所示的另一种网络模型训练方法的流程图,本实施例中的网络模型训练方法包括如下步骤:
步骤S302,应用与第一网络模型相同的样本对集合训练第二网络模型;
步骤S304,当第二网络模型完成本轮迭代训练时,计算第一网络模型对于第一样本对的第一特征距离,计算第二网络模型对于第一样本对的第二特征距离;
上述第一特征距离和第二特征距离为第一样本对的特征对应的欧式距离或余弦相似度,或者其它度量,在此不进行限定。
在本实施例中,以特征距离为第一样本对的特征对应的欧式距离为例进行说明,如果上述第一样本对所属同类样本,则利用第一网络模型计算出的第一样本对的第一特征距离为:
D
如果上述第一样本对所属异类样本,则利用第一网络模型计算出的第一样本对的第一特征距离为:
D
如果上述第一样本对所属同类样本,则利用第二网络模型计算出的第一样本对的第二特征距离为:D
如果上述第一样本对所属异类样本,则利用第二网络模型计算出的第一样本对的第二特征距离为:D
本发明实施例中,欧式距离的计算方法与现有欧式距离的计算方法类似,这里不再详述。
步骤S306,基于第一网络模型计算第一样本对所属样本类的第一特征距离均值,基于第二网络模型计算第一样本对所属样本类的第二特征距离均值;其中,样本类包括同类样本或异类样本;
在实际使用时,为了便于区分样本对所属的样本类可对样本对集和中的每个样本对进行了样本类标识,其中,可将样本对属于同类样本的样本对标识为1,异类样本标识为0,因此,在获取第一样本对时可根据其标识确定所属样本类。
上述特征距离均值是指第一样本对所属样本类中的所有样本对特征距离的均值,可分别利用第一网络模型和第二网络模型计算出第一样本所属的样本类的第一特征距离均值和第二特征距离均值。
其中,第一特征距离均值的具体计算方法为:将第一样本对所属样本类的所有样本对一一输入至第一网络模型中得到每个样本对的特征距离,再对得到的每个样本对的特征距离进行求和计算,最后利用计算出的和值除以第一样本对所属样本类总的样本对数,得到的结果值即为第一特征距离均值mean1(D
基于第二网络模型计算出的第二特征距离均值为mean2(D
步骤S308,应用第一特征距离均值对第一特征距离进行归一化处理,将第一特征距离归一化结果作为第一网络模型对于第一样本对的第一预测结果;
应用第一特征距离均值对第一特征距离进行归一化处理的目的是为了保证网络模型训练的稳定性;在本实施例中,归一化处理的方法为利用第一特征距离除以第一特征距离均值,得到的归一化结果可视为第一网络模型对于第一样本对的第一预测结果。
如果第一样本对所属同类样本得到的第一特征距离的归一化结果为:
如果第一样本对所属异类样本得到的第一特征距离的归一化结果为:
步骤S310,应用第二特征距离均值对第二特征距离进行归一化处理,将第二特征距离归一化结果作为第二网络模型对于第一样本对的第二预测结果;
对于第二特征距离进行归一化处理的目的和方法同上述步骤S308,在此不再进行赘述。
其中,如果第一样本对所属同类样本得到的第二特征距离的归一化结果为:
如果第一样本对所属异类样本得到的第二特征距离的归一化结果为:
步骤S312,基于第一样本对所属样本类,通过比较第一预测结果和第二预测结果,判断第二预测结果是否优于第一预测结果;
上述步骤S312的过程,可由步骤A1-步骤A2实现:
步骤A1,如果第一样本对所属样本类为同类样本,将第一预测结果减去第二预测结果,得到第一差值;如果第一差值大于0或者大于预设第一正值,确定第二预测结果优于第一预测结果;
第一差值大于0或者大于预设第一正值,说明第一预测结果大于第二预测结果。继续以特征距离为第一样本对的特征对应的欧式距离为例进行说明,于同类样本,如果第二网络模型的第二预测结果小于第一网络模型的第一预测结果,说明在第一样本对上,第二网络模型的预测能力要优于第一网络模型,因此在蒸馏过程中,就过滤掉这部分样本的知识。
如果第二网络模型的第二预测结果大于或者等于第一网络模型的第一预测结果,那说明第二网络模型预测对于这部分的预测能力要差于第一网络模型,因此这部分样本的知识正是第二网络模型所需要训练的。
步骤A2,如果第一样本对所属样本类为异类样本,计算第一预测结果减去第二预测结果,得到第二差值;如果第二差值小于0或者小于预设第二负值,确定第二预测结果优于第一预测结果。
第二差值小于0或者小于预设第二负值,说明第一预测结果不大于第二预测结果。以欧式距离作为特征距离的度量方式为例进行说明,对于异类样本,如果第二网络模型的第二预测结果大于第一网络模型的第一预测结果,说明在这部分样本上,第二网络模型的预测能力优于第一网络模型,因此在蒸馏过程中,这部分样本的知识对于学生网络就是“负面知识”不应该被学习。
如果第二网络模型的第二预测结果小于或者等于第一网络模型的第一预测结果,说明在这部分样本上,第二网络模型相比于第一网络模型还有优化空间,因此在蒸馏过程中,加强这部分样本的学习即利用第一样本对对第二网络模型进行训练。
步骤S314,如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;
不管是同类样本或者是异类样本只要是第二网络模型的第二预测结果优于第一网络模型的第一预测结果,则说明该分部样本的知识无需进行学习,可将其从样本对集合中删除。
步骤S316,基于样本对更新集合确定第二网络模型的总损失函数值;
步骤S318,如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。
本发明实施例提供的上述网络模型训练方法,能够基于第一网络模型根据第一样本对计算出的第一特征距离均值和第一特征距离得到第一预测结果,基于第二网络模型根据第一样本对计算出的第二特征距离均值和第二特征距离得到第二预测结果,在判断出第二预测结果优于第一预测结果时,将第一样本对从样本对集合中删除,利用样本对更新集合确定出第二网络模型的总损失函数值,如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,使得第二网络模型的预测结果趋近于第一网络模型的预测结果;并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型;该方法通过删除掉第二网络模型已经学的好的样本,使得第二网络模型更加专注地学习预测的比第一网络模型差的样本,加强训练学习差的样本可在一定程度上提高第二网络模型的准确度。
本实施例提供了另一种网络模型训练方法,该方法在上述实施例的基础上实现;本实施例重点描述基于样本对更新集合确定第二网络模型的总损失函数值的具体实施方式。如图4所示的另一种网络模型训练方法的流程图,本实施例中的网络模型训练方法包括如下步骤:
步骤S402,应用与第一网络模型相同的样本对集合训练第二网络模型;
步骤S404,当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;
步骤S406,如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;
步骤S408,基于样本对更新集合确定第二网络模型的同类样本蒸馏损失值和异类样本蒸馏损失值;
其中,上述步骤S408的过程可由步骤B1-B4实现:
步骤B1,基于样本对更新集合中的同类样本对,计算第一网络模型和第二网络模型的有效同类距离差的平方和;
在本实施例中,可利用下列公式计算得到同类样本对的有效同类距离差的平方和:W
步骤B2,将有效同类距离差的平方和除以同类样本对的个数,得到同类样本蒸馏损失值;
上述同类样本蒸馏损失值为:
步骤B3,基于样本对更新集合中的异类样本对,计算第一网络模型和第二网络模型的有效异类距离差的平方和;
在本实施例中,可利用下列公式计算得到异类样本对的有效同类距离差的平方和:W
步骤B4,将有效异类距离差的平方和除以异类样本对的个数,得到异类样本蒸馏损失值。
上述异类样本蒸馏损失值为:
步骤S410,基于同类样本蒸馏损失值和异类样本蒸馏损失值,确定第二网络模型的总损失函数值;
上述总损失函数值可用下列公式进行表示:
L
步骤S412,如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。
本发明实施例提供的上述网络模型训练方法,能够获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果,并根据第二预测结果优于第一预测结果时,对样本对集合进行更新删除第一样本对得到样本对更新集合;基于样本对更新集合中的同类样本对和异类样本对,分别计算出第一网络模型和第二网络模型的有效同类距离差的平方和以及有效异类距离差的平方和,并根据同类样本对的个数和异类样本对的个数得到同类样本蒸馏损失值和异类样本蒸馏损失值,由此确定出第二网络模型的总损失函数值,在训练过程中,当得到的总损失函数值收敛至预设值为止,停止第二网络模型的训练。该方法通过过滤掉第二网络模型学习好的样本对,使得第二网络模型能够专注需要学习不好的样本对,能够使训练好的第二网络模型的输出结果接近第一网络模型的输出结果,从而达到较好的训练效果。
进一步,为了充分对上述网络模型训练方法进行理解,图5示出了另一种网络模型训练方法的流程图,如图5所示,该网络模型训练方法包括如下步骤:
步骤S500,利用第一网络模型提取第一同类样本对的第一样本特征;利用第二网络模型提取第一同类样本的第二样本特征;
步骤S501,基于第一样本特征计算第一同类样本的欧式距离并进行归一化处理,得到第一预测结果;
步骤S502,基于第二样本特征计算第一同类样本的欧式距离并进行归一化处理,得到第二预测结果;
步骤S503,如果第二预测结果优于第一预测结果,过滤样本对集合中的同类样本,得到样本对更新集合;
步骤S504,基于样本对更新集合确定同类样本蒸馏损失值;
步骤S505,利用第一网络模型提取第一异类样本对的第三样本特征;利用第二网络模型提取第一异类样本对的第四样本特征;
步骤S506,基于第三样本特征计算第一异类样本对的欧式距离并进行归一化处理,得到第一预测结果;
步骤S507,基于第四样本特征计算第一异类样本对的欧式距离并进行归一化处理,得到第二预测结果;
步骤S508,如果第二预测结果优于第一预测结果,过滤样本对集合中的异类样本,得到样本对更新集合;
步骤S509,基于样本对更新集合确定异类样本蒸馏损失值;
步骤S510,基于同类样本蒸馏损失值和异类样本蒸馏损失值,确定第二网络模型的总损失函数值;
步骤S511,如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。
上述步骤S500-步骤S504是同类样本集合的更新和损失值的计算过程,步骤S505-步骤S509是异类样本集合的更新和损失值的计算过程,因此,上述两个过程的执行顺序可以对调或者并列执行,在此不进行限定。
本发明实施例提供的上述网络模型训练方法,不管第一样本对是第一同类样本还是第一异类样本,均能够在第二网络模型的第二预测结果优于第一网络模型的第一预测结果时,将该分部预测的样本对从样本对集合中过滤掉,剩余第二网络模型预测结果不如第一网络模型预测结果的样本对继续对第二网络模型进行训练,直到总损失函数值收敛至预设值为止时,停止第二网络模型的迭代训练,这种通过过滤掉“负面知识”的方法,能够使得第二网络模型更好的学习预测的比第一网络模型差的样本,以提升第二网络模型的准确度。
上述第二网络模型可以用于图像中的目标识别与检测等处理,经过上述训练后的第二网络模型,在一定程度上提高了第二网络模型目标识别与检测的准确度。基于此,本发明实施例还提供了一种图像目标识别方法,该方法应用于上述电子设备,参见图8所示的图像目标识别方法流程图,该方法包括以下步骤:
步骤S802,接收待识别图像;
本实施例中的待识别图像可以来自于图像采集设备(如摄像头)采集的图像,图像采集设备可以是设置于公共场所中的摄像头或相机等设备,也可以是设置于特定场所中的摄像头或相机等设备。
上述待识别图像除了通过图像采集设备得到之外,还可以从第三方设备得到,该第三方设备可以将采集的原始图像提供给上述电子设备,也可以对图像进行过滤或筛选等处理后提供给上述电子设备。
步骤S804,利用第二网络模型对所述待识别图像进行处理,输出目标识别结果;其中,该第二网络模型为预先经上述实施例提供的网络模型训练方法训练得到的第二网络模型。
上述图像目标识别方法中,应用经过以上实施例训练得到的第二网络模型进行目标识别,进而得到目标识别结果。因第二网络模型在训练过程中,应用了与第一网络模型相同的样本对集合进行训练,并在第二网络模型完成每轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;基于样本对更新集合确定第一网络模型的总损失函数值;如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。该方法通过删除掉第二网络模型已经学的好的样本,使得第二网络模型更加专注地学习那些做的比第一网络模型差的样本,而本身已经学的好的样本,也不会被带偏,因此保证了训练出的第二网络模型的性能,使应用第二网络模型进行的目标识别与检测的准确度更高。
对应于上述网络模型训练方法实施例,本发明实施例提供了一种网络模型训练装置,其中,上述装置应用于服务器,图6示出了一种网络模型训练的结构示意图,如图6所示,该装置包括:
训练模块602,用于应用与第一网络模型相同的样本对集合训练第二网络模型,其中,第一网络模型的计算量大于所述第二网络模型的计算量;
获取模块604,用于当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;
删除模块606,用于如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;
确定模块608,用于基于样本对更新集合确定第二网络模型的总损失函数值;
迭代模块610,用于如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。
本申请实施例提供一种网络模型训练装置,其中,应用与第一网络模型相同的样本对集合训练第二网络模型,当第二网络模型完成本轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;基于样本对更新集合确定第一网络模型的总损失函数值;如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。该方法通过删除掉第二网络模型已经学的好的样本,使得第二网络模型更加专注地学习那些做的比第一网络模型差的样本,而本身已经学的好的样本,也不会被带偏,从而在一定程度上提高了第二网络模型的准确度。
上述获取模块604还用于,计算第一网络模型对于第一样本对的第一特征距离,计算第二网络模型对于第一样本对的第二特征距离;基于第一网络模型计算第一样本对所属样本类的第一特征距离均值,基于第二网络模型计算第一样本对所属样本类的第二特征距离均值;其中,样本类包括同类样本或异类样本;应用第一特征距离均值对第一特征距离进行归一化处理,将第一特征距离归一化结果作为第一网络模型对于第一样本对的第一预测结果;应用第二特征距离均值对第二特征距离进行归一化处理,将第二特征距离归一化结果作为第二网络模型对于第一样本对的第二预测结果。
其中,特征距离为第一样本对的特征对应的欧式距离或余弦相似度。
基于上述网络模型训练装置,本发明实施例还提供了另一种网络模型训练装置,参见图7所示的网络模型训练装置的结构示意图,该网络模型训练装置除了包括图6所示的结构之外,还包括与获取模块604和删除模块606均连接的比较模块702,用于基于第一样本对所属样本类,通过比较第一预测结果和第二预测结果,判断第二预测结果是否优于第一预测结果。
上述比较模块702还用于,如果第一样本对所属样本类为同类样本,将第一预测结果减去第二预测结果,得到第一差值;如果第一差值大于0或者大于预设第一正值,确定第二预测结果优于第一预测结果。
上述比较模块702还用于,如果第一样本对所属样本类为异类样本,计算第一预测结果减去第二预测结果,得到第二差值;如果第二差值小于0或者小于预设第二负值,确定第二预测结果优于第一预测结果。
上述确定模块608还用于,基于样本对更新集合确定第二网络模型的同类样本蒸馏损失值和异类样本蒸馏损失值;基于同类样本蒸馏损失值和异类样本蒸馏损失值,确定第二网络模型的总损失函数值。
上述确定模块608还用于,基于样本对更新集合中的同类样本对,计算第一网络模型和第二网络模型的有效同类距离差的平方和;将有效同类距离差的平方和除以同类样本对的个数,得到同类样本蒸馏损失值;基于样本对更新集合中的异类样本对,计算第一网络模型和第二网络模型的有效异类距离差的平方和;将有效异类距离差的平方和除以异类样本对的个数,得到异类样本蒸馏损失值。
上述确定模块608还用于,计算第一网络模型和第二网络模型的有效同类距离差的平方和W
上述确定模块608还用于,计算第一网络模型和第二网络模型的有效异类距离差的平方和W
本发明实施例提供的网络模型训练装置,与上述实施例提供的网络模型训练方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
对应于上述图像目标识别方法,本发明实施例还提供一种图像目标识别装置,该装置应用于电子设备,参见图9所示的图像目标识别装置结构示意图,该装置包括:图像接收模块92,用于接收待识别图像;图像处理模块94,用于利用第二网络模型对所述待识别图像进行处理,输出目标识别结果;其中,所述第二网络模型为预先经上述网络模型训练方法训练得到的第二网络模型。
上述图像目标识别装置中,应用经过以上实施例训练得到的第二网络模型进行目标识别,进而得到目标识别结果。因第二网络模型在训练过程中,应用了与第一网络模型相同的样本对集合进行训练,并在第二网络模型完成每轮迭代训练时,获取第一网络模型对于第一样本对的第一预测结果和第二网络模型对于第一样本对的第二预测结果;如果第二预测结果优于第一预测结果,将第一样本对从样本对集合中删除,得到样本对更新集合;基于样本对更新集合确定第一网络模型的总损失函数值;如果总损失函数值大于预设值,应用总损失函数值更新第二网络模型的参数,并应用样本对集合对更新后的第二网络模型继续进行下一轮迭代训练,直到总损失函数值收敛至预设值为止,得到训练好的第二网络模型。该方法通过删除掉第二网络模型已经学的好的样本,使得第二网络模型更加专注地学习那些做的比第一网络模型差的样本,而本身已经学的好的样本,也不会被带偏,因此保证了训练出的第二网络模型的性能,使应用第二网络模型进行的目标识别与检测的准确度更高。
本实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行上述网络模型训练方法或者执行上述图像目标识别方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例所提供的一种网络模型训练方法、图像目标识别方法、装置及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
- 网络模型训练方法、图像目标识别方法、装置和电子设备
- 网络模型的训练方法及装置、识别方法及装置、电子设备