神经网络训练方法、图像处理方法及装置制造方法及图纸

技术编号:24411652 阅读:39 留言:0更新日期:2020-06-06 09:29
本公开提供了神经网络训练方法、图像处理方法及装置。其中神经网络训练方法包括:获取总训练集,总训练集包括多个类别的训练数据,其中每个类别包括一个或多个训练数据;基于每个类别包括的训练数据的数量,得到头部训练集,其中,头部训练集中的任一类别包括的训练数据的数量多于非头部训练集中的任一类别包括的训练数据的数量;基于头部训练集的训练数据和第一损失函数调整神经网络的参数,以及基于总训练集的训练数据和第二损失函数调整神经网络的参数,以完成对神经网络的训练。通过训练集中类别的训练数据数量,采用多种训练方法,使提高训练质量,保证训练后神经网络的分类准确性。

Neural network training method, image processing method and device

【技术实现步骤摘要】
神经网络训练方法、图像处理方法及装置
本专利技术一般地涉及图像识别
,特别是涉及一种神经网络训练方法、图像处理方法及装置,以及电子设备和计算机可读存储介质。
技术介绍
目前神经网络训练过程中使用的训练集,包括多个类别的训练数据,为了保证训练质量以及分类效果,往往会加大训练集的规模,以包含更多的类别,而在规模增加的同时,训练集的存在长尾问题,即:训练集中一部分类别包括很多训练数据(头部数据),同时有很多类别中仅包含很少的训练数据(尾部数据)。如果采用分类损失函数对神经网络训练,在这种数据集上,由于类数过多,分类损失函数的实现会对计算资源造成很大负担,同时,通过随机采样,训练数据多的类别通过更容易被采样,使得训练后的神经网络倾向于将样本预测为头部数据;尾部数据会因为数据量少且噪声影响大的缘故反而对分类器的训练无法造成影响或造成负面影响。如果采用三元组损失函数(Tripletloss)对神经网络训练,虽然三元组损失函数的部署不会受训练集规模影响,然而其精度不足。
技术实现思路
为了解决现有技术中存在的上述问题,本专利技术提供一种神经网络训练方法、图像处理方法及装置,以及电子设备和计算机可读存储介质。根据本公开实施例的第一方面,提供一种神经网络训练方法,包括:获取总训练集,总训练集包括多个类别的训练数据,其中每个类别包括一个或多个训练数据;基于每个类别包括的训练数据的数量,得到头部训练集,其中,头部训练集中的任一类别包括的训练数据的数量多于非头部训练集中的任一类别包括的训练数据的数量;基于头部训练集的训练数据和第一损失函数调整神经网络的参数,以及基于总训练集的训练数据和第二损失函数调整神经网络的参数,以完成对神经网络的训练。在一例中,基于头部训练集的训练数据和第一损失函数调整神经网络的参数,包括:对头部训练集中的训练数据进行随机采样或PK采样得到第一子训练集;通过神经网络对第一子训练集中的训练数据进行特征提取,得到所第一述输出结果;基于第一输出结果和第一损失函数,调整神经网络的参数,其中第一损失函数为分类损失函数。在一例中,基于总训练集的训练数据和第二损失函数调整所述神经网络的参数,包括:对总训练集中的训练数据进行PK采样得到第二子训练集;通过神经网络对第二子训练集中的训练数据进行特征提取,得到第二输出结果;基于第二输出结果和第二损失函数,调整神经网络的参数,其中第二损失函数为三元组损失函数。在一例中,基于每个类别包括的训练数据的数量,得到头部训练集,包括:将训练数据的数量大于预设阈值的类别,划分到头部训练集。在一例中,基于每个类别包括的训练数据的数量,得到头部训练集,包括:根据预设比例或预设数量,将训练数据的数量最多的若干个类别,划分到头部训练集。根据本公开实施例的第二方面,提供一种图像处理方法,包括:获取图像;通过神经网络进行图像识别,得到图像的分类结果,其中神经网络通过第一方面的神经网络训练方法训练得到。根据本公开实施例的第三方面,提供一种神经网络训练装置,包括:获取模块,用于获取总训练集,总训练集包括多个类别的训练数据,其中每个类别包括一个或多个训练数据;划分模块,用于基于每个类别包括的训练数据的数量,得到头部训练集,其中,头部训练集中的任一类别包括的训练数据的数量多于非头部训练集中的任一类别包括的训练数据的数量;训练模块,用于基于头部训练集的训练数据和第一损失函数调整神经网络的参数,以及基于总训练集的训练数据和第二损失函数调整神经网络的参数,以完成对神经网络的训练。根据本公开实施例的第四方面,提供一种图像处理装置,包括:接收模块,用于获取图像;处理模块,用于通过神经网络进行图像识别,得到图像的分类结果,其中神经网络通过第一方面的神经网络训练方法训练得到。根据本公开实施例的第五方面,提供一种电子设备,其中,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行第一方面的神经网络训练方法或第二方面图像处理方法。根据本公开实施例的第六方面,提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行第一方面的神经网络训练方法或第二方面图像处理方法。本公开提供的神经网络训练方法、图像处理方法及装置,以及电子设备和计算机可读存储介质,通过根据训练集中的类别的训练数据数量,采用多种训练方法,即采用多种采样方法和多种损失函数,使提高训练质量,保证训练后的神经网络的分类准确性。附图说明通过参考附图阅读下文的详细描述,本专利技术实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,其中:图1示出了本专利技术实施例提供的一种神经网络训练方法示意图;图2示出了本专利技术实施例提供的一种图像处理方法示意图;图3示出了本专利技术实施例提供的一种神经网络训练装置示意图;图4示出了本专利技术实施例提供的一种图像处理装置示意图;图5示出了本专利技术实施例提供的一种电子设备示意图;在附图中,相同或对应的标号表示相同或对应的部分。具体实施方式下面将参考若干示例性实施方式来描述本专利技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本专利技术,而并非以任何方式限制本专利技术的范围。需要注意,虽然本文中使用“第一”、“第二”等表述来描述本专利技术的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。目前,神经网络应用于各个领域,尤其是分类领域中,通过神经网络能够对目标进行快速的分类识别。而随着情况的复杂,以及用户需求的提高,对神经网络的分类类别种类以及准确性都提出了跟高的要求,使得训练集规模也随之扩大。在训练集规模扩大的同时,很容易导致前文提到的长尾问题,使得不论采用分类损失函数还是三元组损失函数,均不能达到很好的训练效果。本公开提供的一种神经网络训练方法10,其中神经网络可以是用于分类的神经网络,在一些实施例中,神经网络可以是用于图像识别的神经网络,如卷积神经网络。图1为本公开实施例示出的一种神经网络训练方法10的示意图,如图1所示,该方法包括步骤S11至步骤S13:步骤S11,获取总训练集,总训练集包括多个类别的训练数据,其中每个类别包括一个或多个训练数据。获取用于训练的总训练集,包括全部用于训练的训练数据,训练数据具有不同的类别,每个类别可以包括一个或多个训练数据。每个类别所包括的训练数据的数量可能不同,在一些情况下,数量相差可能会较大,一些常见类别的训练数据,由于获取容易,因此常见类别的训练数据的数量相对较高,同时一些冷门类别,难于获取,导致训练数据的数量相对较低;并且,在实际情况中,常见的类别占全部类别的比例一般不高。步骤S12,基于每个本文档来自技高网...

【技术保护点】
1.一种神经网络训练方法,其中,所述方法包括:/n获取总训练集,所述总训练集包括多个类别的训练数据,其中每个所述类别包括一个或多个所述训练数据;/n基于每个所述类别包括的训练数据的数量,得到头部训练集,其中,所述头部训练集中的任一所述类别包括的训练数据的数量多于非所述头部训练集中的任一所述类别包括的训练数据的数量;/n基于所述头部训练集的所述训练数据和第一损失函数调整神经网络的参数,以及基于所述总训练集的所述训练数据和第二损失函数调整所述神经网络的参数,以完成对所述神经网络的训练。/n

【技术特征摘要】
1.一种神经网络训练方法,其中,所述方法包括:
获取总训练集,所述总训练集包括多个类别的训练数据,其中每个所述类别包括一个或多个所述训练数据;
基于每个所述类别包括的训练数据的数量,得到头部训练集,其中,所述头部训练集中的任一所述类别包括的训练数据的数量多于非所述头部训练集中的任一所述类别包括的训练数据的数量;
基于所述头部训练集的所述训练数据和第一损失函数调整神经网络的参数,以及基于所述总训练集的所述训练数据和第二损失函数调整所述神经网络的参数,以完成对所述神经网络的训练。


2.根据权利要求1所述的神经网络训练方法,其中,所述基于所述头部训练集的所述训练数据和第一损失函数调整神经网络的参数,包括:
对所述头部训练集中的所述训练数据进行随机采样或PK采样得到第一子训练集;
通过所述神经网络对所述第一子训练集中的所述训练数据进行特征提取,得到第一输出结果;
基于所述第一输出结果和所述第一损失函数,调整所述神经网络的参数,其中所述第一损失函数为分类损失函数。


3.根据权利要求1或2所述的神经网络训练方法,其中,所述基于所述总训练集的所述训练数据和第二损失函数调整所述神经网络的参数,包括:
对所述总训练集中的所述训练数据进行PK采样得到第二子训练集;
通过所述神经网络对所述第二子训练集中的所述训练数据进行特征提取,得到第二输出结果;
基于所述第二输出结果和所述第二损失函数,调整所述神经网络的参数,其中所述第二损失函数为三元组损失函数。


4.根据权利要求1所述的神经网络训练方法,其中,所述基于每个所述类别包括的训练数据的数量,得到头部训练集,包括:
将所述训练数据的数量大于预设阈值的所述类别,划分到所述头部训练集。


5.根据权利要求1所述的神经网络训练方法,其中,...

【专利技术属性】
技术研发人员:胡瀚涛
申请(专利权)人:北京迈格威科技有限公司
类型:发明
国别省市:北京;11

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

1