本发明涉及一种图像分类任务的模型训练方法。
背景技术:
近年来,随着深度学习技术的发展,及硬件性能的提升,越来越多的计算机视觉任务比如目标检测、图像分类、跟踪、以图搜图等,都开始使用深度学习方案在服务器上进行计算。以图像分类为例,往往都需要准备大量的数据集来对模型进行训练。这无疑需要大量的人工标注成本,此外标注过程中难免会出现标注错误的情况。以车辆分类为例,假设目标类别为汽车、摩托车、电瓶车、自行车,这里除汽车外,其它三类在外观上存在一定的相似性,很容易出现标注错误。
现有的技术往往只关注于系统的构建,例如专利cn110580482a,构建了一个图像分类模型训练、图像分类、个性化推荐方法及装置。侧重于特征提取的改进。
与本方案相似来降低标注成本的方案采用迭代训练,每次训练后,剔除样本中置信度低的图像数据,认为为这些数据集是瑕疵数据。但是,该专利的方法中,数据集需要完整的人工标注,极大地消耗人力和时间成本。另外,其标注数据在迭代训练过程中标签保持不变,这样使得迭代训练的方式对提高模型准确度的作用不大。最后,该专利对于置信度低的样本即困难样本直接剔除,这就使得其对样本的利用率过低,也不利于最终的模型准确度的提高。
技术实现要素:
本发明的目的在于解决上述问题,提供一种图像分类任务的模型训练方法。
为实现上述目的,本发明提供一种图像分类任务的模型训练方法,包括以下步骤:
a、利用数据集中的一部分样本训练小样本模型,利用所述小样本模型对数据集中的另一部分样本进行预标注;
b、对数据集进行训练集和测试集划分;
c、利用训练集训练分类模型,并利用分类模型对测试集中的样本分类;
d、对分类结果与预标注的标签不一致的样本进行再标注;
e、将训练集和测试集互换,重复一次步骤(c)和(d);
f、重复步骤(b)至(e)至达到收敛条件,将数据集划分为训练集、验证集和测试集,完成分类模型的最终训练。
根据本发明的一个方面,在所述步骤(a)中,分三次训练三个所述小样本模型,每个所述小样本模型利用数据集中一部分的样本进行标注后训练。
根据本发明的一个方面,所述小样本模型训练时的初始学习率为1e-4,训练轮数为15。
根据本发明的一个方面,在所述步骤(a)中,对于另一部分样本分别使用三个所述小样本模型预测得到三组分类概率值:
p1=[p1,p2,…,pc],p2=[p1,p2,…,pc],p3=[p1,p2,…,pc];
式中,p1、p2、p3代表各组,p1、p2…pc代表各类别概率,c为数据集中样本的类别总和;
将这三组概率值取均值得到均值组,取均值组中概率最大值所对应的类别作为该样本的类别。
根据本发明的一个方面,在所述步骤(b)中,按1:1的比例划分训练集和测试集。
根据本发明的一个方面,在所述步骤(c)中,对测试集的样本进行分类的分类模型的参数为经训练集训练后在测试集上f1score最高的参数。
根据本发明的一个方面,所述收敛条件为分类模型的参数达到在测试集上的f1score大于第一阈值或者f1score的增加值小于第二阈值。
根据本发明的一个方面,所述小样本模型和所述分类模型均为小型分类网络。
根据本发明的构思,对数据集的样本进行预标注使其均具备标签,随后将数据集进行训练集和测试集的划分,并利用之训练模型并完成模型的测试。利用测试结果最优模型对测试集进行分类,选出分类结果与预标注标签有区别的样本,对其再标注。将训练集和测试集互换,并重复一次上述模型训练及其以后的步骤,形成一次迭代。迭代多次直至模型达到收敛条件完成迭代训练。在迭代训练过程中,不断优化数据集中样本的标签以及分类模型的参数,这样可以充分利用数据集中的所有数据,且最终训练完成的模型准确度较高。
根据本发明的一个方案,预标注的过程中仅针对一小部分数据进行人工标准,剩余数据均利用人工标注数据训练的小样本模型进行标注。这样,大量工作均由分类网络完成,从而极大地提高了模型训练效率,并节约了人力成本。
根据本发明的一个方案,预标注的过程中训练的小样本模型采用了较小的初始学习率和较小的训练轮数,这样能够避免过拟合。并且,对小样本模型对剩余数据进行分类后的概率取均值作为预测的类别概率,并取均值组中的概率最大值作为预标注的标签。这样,能够最大程度的保证预标注的准确性。
附图说明
图1是示意性表示根据本发明的一种实施方式的图像分类任务的模型训练方法的整体流程图;
图2是示意性表示根据本发明的一种实施方式的图像分类任务的模型训练方法中预标注步骤的流程图;
图3是示意性表示根据本发明的一种实施方式的图像分类任务的模型训练方法中迭代训练中一次迭代的流程图。
具体实施方式
为了更清楚地说明本发明实施方式或现有技术中的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图和具体实施方式对本发明作详细地描述,实施方式不能在此一一赘述,但本发明的实施方式并不因此限定于以下实施方式。
参见图1,本发明的模型训练方法,针对于具有图像分类任务的模型进行训练,按照本方法,最终可获得一个精度较高的分类模型。本方法的实施需要具备一个训练模型所用的数据集,该数据集中的样本均为图像。数据集的中的样本的收集工作可按照实际任务需求进行,但此不是本发明的保护重点,因此不再赘述。本发明中,首先对数据集中的样本进行预标注,对此,本发明利用了小样本模型。
参见图2,小样本模型也为图像分类模型,构思为利用数据集中的一部分数据先训练几个小样本模型,再利用训练好的小样本模型对数据集中的剩余样本进行标注。具体的,本发明分三次共训练三个小样本模型。每个小样本模型的训练需要数据集中10%的样本(随机)。这些样本被提取出后,需要先进行人工标注,随后开始训练。本发明的小样本模型训练时的初始学习率为1e-4(即0.0001),训练轮数为15。这样,设置较小的初始学习率和轮数可以避免过拟合。按照上述完成小样本模型的训练后,即可利用之联合对其余数据分类从而完成标注。按照本发明上述训练小样本模型的方式,共利用了数据集中30%的样本数据,因此后续的分类任务只针对剩余的70%的样本。具体的,利用三个小样本模型可以对剩余样本进行分类,对每个样本均会给出三组分类概率值:
p1=[p1,p2,…,pc],p2=[p1,p2,…,pc],p3=[p1,p2,…,pc];
其中,p1、p2、p3代表各组,p1、p2…pc代表各类别概率,c为数据集中样本的类别总和(即数据集中的样本共有c个类别)。随后将这三组概率值取均值得到均值组,该组中的各类别概率作为类别预测概率。取均值组中概率最大值所对应的类别作为该样本的类别,由此完成了数据集的预标注。
参见图3,数据集经过预标注后每个样本均具备了标签,为了提高模型准确度,本发明后续利用这些数据以迭代的方式对分类模型进行训练。具体的,首先将上述预标注后的数据集进行训练集和测试集划分,本发明采用1:1的比例进行划分。随后利用训练集训练分类模型,利用测试集对模型进行测试,得到在测试集上f1score最高的参数作为分类模型参数。再利用分类模型对测试集的图像样本进行分类,并将分类结果与实际类别进行比较,目的在于筛出模型预测与预标注不一致的数据(以下简称分类错误样本),随后收集所有分类错误样本。根据本发明的构思,对于这些分类错误样本,本发明并不将其舍去,而是将其进行再标注,从而纠正其标签,并再次应用到模型的训练中,以提高数据利用率并提高模型准确度。这些分类错误样本的标注真值(即实际类别)可视为预标注过程中的标签,而预标注过程中,仅有30%的样本由人工标注,另外70%的样本由小样本模型标注。小样本模型的标注相当于粗标注,即其准确度会略低于人工标注的方式。当然,人工标注也可能存在错误。由此,本发明中的再标注过程依然采用人工标注的方式,从而最大程度的保证标注的准确性。正由于此步骤需采用人工标注,因此本发明仅筛查分类错误的样本,这样能够极大地节省人力。
经过再标注后,数据集中样本标签的准确性得到了很大提高。根据上述步骤可知,再标注的对象均为测试集中的样本,因此可以认为测试集中样本标签的准确性大于训练集样本。据此,可将目前的训练集和测试集互换,即利用经过再标注的测试集作为训练集再次训练分类模型,后续步骤与上述相同,即对测试集分类及再标注,由此完成了如图3所示的一次迭代。这样,不仅充分利用了数据集中的所有数据,还能够通过不断选拔最优模型参数的方式最大程度的提高最终的分类模型的准确性。
上述迭代过程需要重复多次,但是,迭代次数在达到一定条件时模型准确度便不再有明显改变,因此额外的训练没有意义。由此,本发明设定收敛条件为迭代的结束条件。具体的,判定某次迭代后,分类模型的参数在测试集上的f1score大于第一阈值,本发明中,该阈值在0.9以上选取均可,最优选为0.97;或者f1score的增加值小于第二阈值,本实施方式中,该阈值为0.005,达到上述条件则视为达到收敛条件。当然,收敛条件的设置完全可根据实际需求确定,最终能够利用最少的迭代次数获得最优的模型即可。在达到此条件后,意味着模型的迭代训练完成,此时的数据集的标签准确性和分类模型的参数均较优,随后将此时的数据集划分为训练集、验证集和测试集,再次训练分类模型,完成最终的模型训练。模型训练完成后即可发布,在后续使用过程中也可利用上述方法对模型进行定期更新。
本发明中,小样本模型和分类模型均为resnet18网络,当然也可选择一些常规的小型分类网络。另外,在上述各模型训练时,利用cross-entropy损失函数来判断某一轮训练的某一个前向batch(批处理)结束后,模型预测结果和真值之间的误差。并且,在此节点后的反向传播阶段,本发明还利用adam作为优化器完成模型参数更新。当然,损失函数和优化器的使用也可参照现有技术的方式,其并不是本发明的重点,因此不再赘述。
综上所述,本发明的图像分类模型的训练方法,仅需要预标注少量的样本,通过多次迭代的模型训练、错误数据重标注的方式来完成数据集标注和模型训练,相对于现有的技术方案,具有标注成本低、数据利用率高、模型准确率高、鲁棒性高的优点。
以上所述仅为本发明的一个实施方式而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。