掌桥专利:专业的专利平台
掌桥专利
首页

模型生成方法、对象分类方法、装置、电子设备及介质

文献发布时间:2023-06-19 11:08:20


模型生成方法、对象分类方法、装置、电子设备及介质

技术领域

本公开实施例涉及计算机应用技术领域,尤其涉及一种模型生成方法、对象分类方法、装置、电子设备及介质。

背景技术

半监督学习(Semi-Supervised Learning,SSL)在图像分类领域中有着较好的应用,其具体实现过程是:基于已标注样本集对原始分类模型进行训练得到图像分类模型;基于该图像分类模型对未标注样本集进行预测,将各预测结果中置信度比较高的未标注样本的预测结果作为该未标注样本的伪标签,并将该未标注样本及其伪标签作为已标注样本加入至已标记样本集中;基于更新后的已标注样本集迭代执行上述过程。

但是,基于SSL生成图像分类模型存在如下弊端:每次更新已标注样本集后会导致图像分类模型的重新迭代,整个流程周期较长,时间成本较高;并且,在迭代过程中未标注样本的伪标签始终不会变化,这意味着在伪标签预测错误的情况下会严重影响由此生成的图像分类模型的分类性能。

发明内容

本公开实施例提供了一种模型生成方法、对象分类方法、装置、电子设备及介质,以实现快速生成分类性能较好的对象分类模型的效果。

第一方面,本公开实施例提供了一种模型生成方法,可以包括:

获取待训练分类模型和多个未标注对象,其中,待训练分类模型包括分类预测模块和损失函数确定模块;

将各未标注对象输入至分类预测模块中,根据分类预测模块输出的各未标注预测结果分别确定各未标注对象的伪分类结果;

将各未标注预测结果以及相应的伪分类结果输入至损失函数确定模块中,根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

第二方面,本公开实施例还提供了一种对象分类方法,可以包括:

获取待分类对象以及按照本公开任意实施例所提供的模型生成方法生成的对象分类模型;

将待分类对象输入至对象分类模型中,根据对象分类模型的输出结果,得到待分类对象的目标分类结果。

第三方面,本公开实施例还提供了一种模型生成装置,可以包括:

对象获取模块,用于获取待训练分类模型和多个未标注对象,其中,待训练分类模型包括分类预测模块和损失函数确定模块;

结果确定模块,用于将各未标注对象输入至分类预测模块中,根据分类预测模块输出的未标注预测结果确定未标注对象的伪分类结果;

模型生成模块,用于将未标注预测结果和伪分类结果输入至损失函数确定模块中,根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

第四方面,本公开实施例还提供了一种对象分类装置,可以包括:

模型获取模块,用于获取待分类对象以及按照本公开任意实施例所提供的模型生成方法生成的对象分类模型;

对象分类模块,用于将待分类对象输入至对象分类模型中,根据对象分类模型的输出结果,得到待分类对象的目标分类结果。

第五方面,本公开实施例还提供了一种电子设备,可以包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本公开任意实施例所提供的模型生成方法或是对象分类方法。

第六方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例所提供的模型生成方法或是对象分类方法。

本公开实施例的技术方案,通过将获取到的多个未标注对象输入至待训练分类模型的分类预测模块中,可得到该分类预测模块输出的各未标注对象的未标注预测结果,进而根据每个未标注对象的未标注预测结果确定其伪分类结果,这种在线并且实时确定伪分类结果的方式加快了模型迭代速度并且提高了模型分类性能;进而将各未标注对象的未标注预测结果及相应的伪分类结果输入至待训练分类模型的损失函数确定模块中,并根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。上述技术方案,在模型迭代过程中通过在线并且实时确定未标注对象的伪分类结果的方式,可以加快模型迭代速度且提高模型分类性能,由此达到了快速生成分类性能较好的对象分类模型的效果。

附图说明

结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。

图1是本公开实施例一中的一种模型生成方法的流程图;

图2是本公开实施例二中的一种模型生成方法的流程图;

图3是本公开实施例二中的一种模型生成方法中的可选示例的示意图;

图4是本公开实施例三中的一种对象分类方法的流程图;

图5是本公开实施例四中的一种模型生成装置的结构框图;

图6是本公开实施例五中的一种对象分类装置的结构框图;

图7是本公开实施例六中的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。

实施例一

图1是本公开实施例一中提供的一种模型生成方法的流程图。本实施例可适用于生成对象分类模型的情况,尤其可适用于快速生成分类性能较好的对象分类模型的情况。该方法可以由本公开实施例提供的模型生成装置来执行,该装置可以由软件和/或硬件的方式实现,该装置可以集成在电子设备上,该电子设备可以是各种用户终端设备或服务器。

参见图1,本公开实施例的方法具体包括如下步骤:

S110、获取待训练分类模型和多个未标注对象,其中待训练分类模型包括分类预测模块和损失函数确定模块。

其中,待训练分类模型可以是未训练完成的可实现分类功能的模型,比如原始分类模型、中间分类模型等,该原始分类模型可以是未经过任何训练的可实现分类功能的模型;该中间分类模型可以是经过一些训练但又未训练完成的可实现分类功能的模型,它的训练样本可以是已标注训练样本和/或未标注对象,每组已标注训练样本可以包括已标注对象和该已标注对象的真值分类结果,在实际应用中,该真值分类结果可以理解为该已标注对象的真实标签。进一步,该待训练分类模型可包括分类预测模块和损失函数确定模块,该分类预测模块可以用于对未标注对象的分类类别进行预测,该损失函数确定模块可以用于对未标注对象的未标注预测结果和伪分类结果的损失进行计算。

需要说明的是,中间分类模型存在的原因在于,模型生成过程通常是一个模型迭代过程,在实际应用中,全部的训练样本通常不会一次性输入到待训练分类模型中,而是分批次输入,每次输入到待训练分类模型中的训练样本可以称为batch,每个batch中各训练样本的总数量是batchsize,即每经过一批次的训练都会得到一个中间分类模型。除此之外,为了学习得到较好的分类性能,全部的训练样本可以在待训练分类模型中来回传递多次,即当全部的训练样本在待训练分类模型中传递一个来回后可以得到一个中间分类模型,其中,可以通过迭代次数epoch表示全部的训练样本在待训练分类模型中来回传递的次数。

未标注对象可以是真实的分类结果未标注的对象,在实际应用中,可选的,该未标注对象可以是任意的存在分类需求的场景中的对象,如图像内容、视频动作、文本风格、语音情感等等分类场景中的对象,在此未做具体限定。

S120、将各未标注对象输入至分类预测模块中,根据分类预测模块输出的各未标注预测结果分别确定各未标注对象的伪分类结果。

其中,针对每个未标注对象,将该未标注对象输入至分类预测模块中,该分类预测模块可以对该未标注对象进行处理,根据处理结果预测该未标注对象所属的分类类别,并将预测结果(即未标注预测结果)进行输出,由此得到了每个未标注对象的未标注预测结果。实际应用中,可选的,该未标注预测结果可以通过多种方式进行表示,如其可以是该未标注对象所属的某分类类别、其可能属于各分类类别的类别概率、其可能属于的分类类别以及属于该分类类别的类别概率等等,在此未做具体限定,当然,上述分类类别可以是根据实际需求预先设置的类别。示例性的,以二分类“是”“否”为例,未标注预测结果可以为1(即“是”)的类别概率是0.6且0(即“否”)的类别概率是0.4。

进一步的,针对每个未标注对象,由于该未标注对象的真实的分类结果是未知的,但是模型生成过程需要这一信息,因此可以根据该未标注对象的未标注预测结果确定其所属的分类类别,并根据该分类类别确定伪分类结果。实际应用中,可选的,该伪分类结果可以理解为该未标注对象的伪标签,其可以是自动确定的可能命中真实标签、也可能未命中真实标签的标签。需要说明的是,该伪分类结果的确定过程有多种实现方式,如将未标注预测结果中的分类类别直接作为伪分类结果、再如根据未标注预测结果中的隶属于各分类类别的类别概率确定伪分类结果等,在此未做具体限定。另外,该伪分类结果也可以通过多种方式进行表示,如其可以是该未标注对象所属的某分类类别、其可能属于各分类类别的类别概率、其可能属于的分类类别及属于该分类类别的类别概率等等,在此未做具体限定。示例性的,继续以上述例子为例,伪分类结果可以为1(即“是”)0(即“否”),或者0(即“是”)1(即“否”)。

S130、将各未标注预测结果和相应的伪分类结果输入至损失函数确定模块,根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

其中,将每个未标注对象的预测结果和相应的伪分类结果输入至损失函数确定模块中,以使损失函数确定模块根据预先设置的损失函数对二者间的损失进行计算,并将计算结果进行输出。进而,根据损失函数确定模块的输出结果可以对分类模块中的网络参数进行调整,并根据调整结果生成对象分类模型。示例性的,以损失函数确定模块通过交叉熵计算二者的损失为例,假设未标注预测结果为1的类别概率是0.6且0的类别概率是0.4,伪分类结果为1、0,则可以根据1、0和0.6、0.4计算交叉熵。在实际应用中,可选的,损失函数确定模块在计算出每个未标注图像的损失梯度后,可以对全部的损失梯度进行处理后回传,比如将全部的损失梯度的均值进行回传;也可以从全部的损失梯度中筛选出满足预设梯度阈值的损失梯度,并对筛选出的这些损失梯度进行处理后回传,等等,在此未做具体限定。

需要说明的是,正如上文所述,对象分类模型的生成过程可能需要各训练样本在待训练分类模型中来回传递多次,并且一次来回传递过程又可以分批次进行,因此上述各个步骤可以是一个batch的训练过程,也可以是第epoch次的训练过程,等等,在此未做具体限定。另外,上述伪分类结果是在模型训练过程中根据未标注预测结果确定的,而并非是在模型初步训练结束之后基于初步训练完成的中间分类模型确定的,这种在线确定伪分类结果的方式有效解决了因为需要多次对初步训练完成的中间分类模型再次进行训练而带来的时间成本较高的问题,由此加快了模型迭代速度;而且,针对每个未标注对象,当再次对其进行训练时,并不会直接应用先前的伪分类结果,而是重新确定其伪分类结果,这种在模型迭代过程实时更新伪分类结果的方式,有效解决了固定不变的伪分类结果如果存在错误会对由此生成的对象分类模型的分类性能造成较大影响的问题,由此提高了对象分类模型的分类性能。

本公开实施例的技术方案,通过将获取到的多个未标注对象输入至待训练分类模型的分类预测模块中,可得到该分类预测模块输出的各未标注对象的未标注预测结果,进而根据每个未标注对象的未标注预测结果确定其伪分类结果,这种在线并且实时确定伪分类结果的方式加快了模型迭代速度并且提高了模型分类性能;进而将各未标注对象的未标注预测结果及相应的伪分类结果输入至待训练分类模型的损失函数确定模块中,并根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。上述技术方案,在模型迭代过程中通过在线并且实时确定未标注对象的伪分类结果的方式,可以加快模型迭代速度且提高模型分类性能,由此达到了快速生成分类性能较好的对象分类模型的效果。

一种可选的技术方案,在实施例一的基础上,根据分类预测模块输出的各未标注预测结果分别确定各未标注对象的伪分类结果,具体可包括:获取分类预测模块输出的各未标注预测结果和预先设置的分类类别;针对每个未标注预测结果,根据未标注预测结果分别确定与未标注结果对应的未标注对象属于各分类类别的类别概率,并根据各类别概率确定与未标注结果对应的未标注对象的伪分类结果。其中,由于未标注对象的未标注预测结果可以表示出该未标注对象属于各预先设置的分类类别的类别概率,因此根据该未标注预测结果可以确定该未标注对象属于各分类类别的类别概率,进而根据各类别概率确定与该未标注结果对应的未标注对象的伪分类结果。

示例性的,各类别概率可包括第一类别概率和第二类别概率,该第一类别概率是未标注对象属于第一分类类别的概率,且该第二类别概率是未标注对象属于第二分类类别的概率,那么伪分类结果有第一类别概率是第一分类类别,并且有第二类别概率是第二分类类别。形象化的,以二分类“是”“否”为例,根据未标注预测结果确定“是”的类别概率是0.6且“否”的类别概率是0.4,那么根据其可以确定60%可能性的伪分类结果是1、0,并且40%可能性的伪分类结果是0、1,即两个分类类别中只有一种分类类别是1并且其余的分类类别均是0。在实际应用中,针对可视化数据库imagenet,top5准确率几乎100%,即假设各类别概率从大到小进行排序,则排序在前5的类别概率对应的分类类别几乎100%能够命中真实的分类结果,因此真实的分类结果可以默认为是排序在头部的类别概率对应的分类类别,或说能够命中真实的分类结果的伪分类结果通常是排序在头部的类别概率对应的分类类别。

上述技术方案,随着模型迭代次数的增加,由此得到的未标注对象属于各分类类别的类别概率的准确性也在不断提高,进而,通过类别概率确定伪分类结果时,伪分类结果命中未标注对象的真实的分类结果的可能性也越来越高,这是后续生成分类性能较好的对象分类模型的重要影响因素之一。

实施例二

图2是本公开实施例二中提供的一种模型生成方法的流程图。本实施例以上述实施例中各个可选方案为基础进行优化。在本实施例中,可选的,该模型生成方法,还可以包括:获取已标注对象和已标注对象的真值分类结果,并将已标注对象和真值分类结果作为一组已标注训练样本;将多组已标注训练样本输入至分类预测模块中,获取分类预测模块输出的各已标注对象的已标注预测结果;将各已标注预测结果和相应的真值分类结果输入至损失函数确定模块中。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。

相应的,如图2所示,本实施例的方法具体可以包括如下步骤:

S210、获取待训练分类模型、多个未标注对象、已标注对象和已标注对象的真值分类结果,并将已标注对象和真值分类结果作为一组已标注训练样本,其中,待训练分类模型包括分类预测模块和损失函数确定模块。

其中,已标注对象可以是真实的分类结果已标注的对象,其和未标注对象是同一分类场景中的对象;真值分类结果是该已标注对象的真实的分类结果。

S220、将各已标注训练样本和各未标注对象输入至分类预测模块中,获取分类预测模块分别输出的各未标注对象的未标注预测结果以及各已标注对象的已标注预测结果。

其中,将各已标注训练样本和各未标注对象同时输入至分类预测模块中,该分类预测模块和后续的损失函数确定模块相互配合,可以从已标注训练样本中学习到有助于对象分类的特征,这一学习结果有助于分类预测模块从未标注对象中提取出有助于对象分类的特征,进而根据该特征预测出未标注对象的未标注预测结果,由此提高了未标注预测结果的预测精度。

S230、根据各未标注预测结果分别确定各未标注对象的伪分类结果。

S240、将各已标注预测结果和相应的真值分类结果、及各未标注预测结果和相应的伪分类结果输入至损失函数确定模块中,并根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

其中,将各已标注对象的已标注预测结果和相应的真值分类结果、以及各未标注对象的未标注预测结果和相应的伪分类结果输入至损失函数确定模块中,进而根据该损失函数确定模块输出的各已标注对象的已标注预测结果和相应的真值分类结果之间的损失梯度调整分类预测模块中的网络参数,由于真值分类结果是人工标注的已标注对象的真正的分类结果,上述方案提高了网络参数的调整精度,进而提高了由此生成的对象分类模型的分类性能。

本公开实施例的技术方案,在模型迭代过程中,分类预测模块和损失函数确定模块相互配合,已标注训练样本的加入使得分类预测模块可以从中学习到有助于对象分类的特征,该特征有助于分类预测模块从各未标注对象中提取出有助于对象分类的特征,进而根据该特征准确预测出未标注对象的未标注预测结果;并且,已标注训练样本的加入还可以使得损失函数确定模块根据其得到有助于提高网络参数的调整精度的损失梯度,进而提高了由此生成的对象分类模型的分类性能。

一种可选的技术方案,在实施例二的基础上,在模型迭代过程中,考虑到在模型迭代前期,待训练分类模型可能还未很好地学习到已标注对象中有助于对象分类的特征,该特征可以是视觉特征和/或high level特征,其中视觉特征可以是在视觉方面的特征,比如已标注对象的局部特征、纹理特征、颜色特征等等,high level特征可以是能够表示出语义信息的特征。为了保证后续生成的对象分类模型的分类性能,在模型迭代前期可以提高已标注训练样本的已标注数量占比并且相应的降低未标注对象的未标注数量占比。另外,考虑到在模型迭代后期,待训练分类模型在各已标注训练样本上可能会出现过拟合的情况,因此在模型迭代后期可以降低已标注数量占比并且相应的提高未标注数量占比,以使待训练分类模型能够学习到新的数据。

出于上述考虑,上述对象分类方法还可以包括:获取当前时刻下各未标注对象在分类预测模块中的迭代次数,并根据迭代次数确定未标注对象的未标注数量占比;根据未标注数量占比和预先设置的训练样本的总数量确定未标注对象的未标注数量和已标注训练样本的已标注数量,其中,每个训练样本可包括已标注训练样本或是未标注对象。迭代次数可以是各未标注对象于当前时刻下在分类预测模块中已来回传递完成的次数,其可以通过epoch进行表示。随着 epoch的增加,待训练分类模型从已标注对象中学习到了越来越多的有助于对象分类的特征,因此可以随着epoch的增加来提高未标注对象的未标注数量占比,该未标注数量占比是未标注对象的未标注数量在预先设置的训练样本的总数量中的占比,该总数量可以理解为上文所述的batchsize。在实际应用中,可选的,未标注数量占比和迭代次数可以呈正相关,比如未标注数量占比可以随着迭代次数的增加而线性增加。进一步,根据未标注数量占比和总数量可以确定未标注对象的未标注数量和已标注训练样本的已标注数量。那么,相应的,将多组已标注训练样本输入至分类预测模块中可以包括:将已标注数量的已标注训练样本输入至分类预测模块中;相应的,将各未标注对象输入至分类预测模块中可以包括:将未标注数量的未标注对象输入至分类预测模块中。上述技术方案,通过对未标注对象和已标注对象的输入比例进行有效控制,这使得该分类预测模块在模型迭代的各个阶段均能够很好地学习到有助于对象分类的特征,由此进一步提高了后续生成的对象分类模型的分类性能。

一种可选的技术方案,在上述技术方案的基础上,通常情况下,损失函数确定模块是针对一个batch中全部的训练样本进行损失计算,结合本公开实施例可能涉及到的应用场景,该全部的训练样本可以包括各已标注训练样本和各未标注对象。在此基础上,考虑到未标注对象的伪分类结果不一定能命中真实的分类结果,基于未命中真实的分类结果的伪分类结果进行损失梯度回传时,这会对由此生成的对象分类模型的分类性能造成较大影响。在此基础上,考虑到未标注数量占比的大小可以间接反映出未标注预测结果的预测精度,而未标注预测结果的预测精度会直接影响伪分类结果的确定精度,因此可以根据未标注数量占比确定回传数量占比,该回传数量占比是针对输入至损失函数确定模块中全部的未标注对象的未标注预测结果和相应的伪分类结果中,可以进行损失梯度回传的未标注对象的回传数量在全部的未标注对象的未标注数量中的数量占比。在实际应用中,可选的,回传数量占比和未标注数量占比可以呈正相关。

出于上述考虑,上述对象分类方法还可以包括:根据未标注数量占比确定回传数量占比,根据回传数量占比和未标注数量确定回传数量;相应的,损失函数确定模块通过如下步骤得到输出结果:针对每个未标注对象,根据未标注对象的未标注预测结果和伪分类结果确定未标注对象的损失梯度,该损失梯度可以是损失函数确定模块根据预先设置的损失函数计算二者间的损失,并且对损失计算结果进行求导后得到的梯度数值,其的大小可以反映出相应的伪分类结果能够命中真实的分类结果的可能性;进而,根据损失梯度从各未标注对象中筛选出回传数量的目标对象,如将各损失梯度中回传数量个数值较小的损失梯度对应的未标注对象作为目标对象,再如以损失梯度为依据对各未标注对象进行排序,并根据各未标注对象在排序结果中的排序位置,从各未标注对象中筛选出回传数量的目标对象等,在此未做具体限定;由此,根据各目标对象的未标注预测结果和伪分类结果、及各已标注对象的已标注预测结果和真值分类结果,可以得到输出结果。上述技术方案,通过对各未标注对象中可以进行梯度回传的目标对象进行控制,或者说通过对各损失梯度中可以进行梯度回传的损失梯度进行控制,由此保证了能够进行梯度回传的损失梯度基本是根据能够命中真实的分类结果的伪分类结果确定的梯度数值,由此提高了后续生成的对象分类模型的分类性能。

本实施例的技术方案,以实施例一中的示例性说明为例,其可能涉及到的应用场景是:以分类场景是待分类图片是否包括汽车为例,如图3所示,假设 batchsize为N,通过未标注数量占比p来控制未标注图片和已标注图片的输入比例,即在模型迭代过程中,未标注图片的batchsize是p*N,已标注图片的 batchsize是(1-p)*N,p可以随着epoch的增加从0开始线性增长到max_p,max_p 是大于0并且小于1的数值,比如0.2、0.3、0.4等等。将各未标注图片和各已标注图片输入至分类预测模块中,分别得到各未标注图片的未标注预测结果和各已标注图片的已标注预测结果,进而在线根据各未标注预测结果确定相应的伪标签。进一步的,将各已标注图片的已标注预测结果和真值标签、以及各未标注图片的未标注预测结果和伪标签输入至损失函数确定模块,以使损失函数确定模块根据回传数量占比q和p*N确定可以进行损失梯度回传的未标注图片的回传数量q*p*N,进而根据各未标注图片的损失梯度从各未标注图片中筛选出q*p*N个目标图片,并将各目标图片的损失梯度和各已标注图片的损失梯度进行梯度回传。在实际应用中,可选的,q可以根据预先设置的回传数量占比确定函数计算得到,该函数的输入参数可以是p,该函数的具体设置可以根据p 的期望数值范围和q的期望数值范围确定,示例性的,假设p的期望数值范围是[0,0.3],且q的期望数值范围是[0.5,1),则可以将函数设置q=1/(1+e**(-10*p)),以便[0,0.3]映射到[0.5,1)。基于上述技术方案生成的图像分类模型,相对于仅仅基于已标注图片生成的图像分类模型,其可以在Top1的准确率方面上涨5%+。

实施例三

图4是本公开实施例三中提供的一种对象分类方法的流程图。本实施例可适用于基于已生成的对象分类模型确定待分类对象的目标分类结果的情况。该方法可以由本公开实施例提供的对象分类装置来执行,该装置可以由软件和/ 或硬件的方式来实现,该装置可以集成在电子设备上,该电子设备可以是各种用户终端设备或服务器。

参见图4,本公开实施例的方法具体包括如下步骤:

S310、获取待分类对象以及按照本公开任意实施例所提供的模型生成方法生成的对象分类模型。

其中,待分类对象可以是某分类场景中的存在分类需求的对象,这一分类场景可以是与模型生成过程中的未标注对象所在的分类场景相同的场景。对象分类模型是基于上述模型生成方法生成的具有较好的分类性能的模型。

S320、将待分类对象输入至对象分类模型中,并根据对象分类模型的输出结果,得到待分类对象的目标分类结果。

其中,对象分类模型的输出结果可以通过多种方式进行表示,其可以是该待分类对象所属的分类类别、其可能属于各分类类别的类别概率、其可能属于的分类类别以及属于该分类类别的类别概率等等,在此未做具体限定。进而,根据该输出结果可以得到待分类对象的目标分类结果。

本公开实施例的技术方案,通过将待分类对象输入至具有较好的分类性能的对象分类模型中,根据该对象分类模型的输出结果可以得到该待分类对象的准确的目标分类结果。上述技术方案,达到了准确确定待分类对象的目标分类结果的效果。

实施例四

图5为本公开实施例四提供的模型生成装置的结构框图,该装置用于执行上述任意实施例所提供的模型生成方法。该装置与上述各实施例的模型生成方法属于同一个构思,在模型生成装置的实施例中未详尽描述的细节内容,可以参考上述模型生成方法的实施例。参见图5,该装置具体可以包括:对象获取模块410、结果确定模块420和模型生成模块430。

其中,对象获取模块410,用于获取待训练分类模型和多个未标注对象,其中,待训练分类模型包括分类预测模块和损失函数确定模块;

结果确定模块420,用于将各未标注对象输入至分类预测模块中,并根据分类预测模块输出的未标注预测结果确定未标注对象的伪分类结果;

模型生成模块430,用于将未标注预测结果和伪分类结果输入至损失函数确定模块中,并根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

可选的,结果确定模块420,具体可以包括:

分类类别获取单元,用于获取分类预测模块输出的各未标注预测结果以及预先设置的分类类别;

伪分类结果确定单元,用于针对每个未标注预测结果,根据未标注预测结果分别确定与未标注结果对应的未标注对象属于各分类类别的类别概率,并根据各类别概率确定与未标注结果对应的未标注对象的伪分类结果。

可选的,在上述装置的基础上,该装置还可以包括:

训练样本得到模块,用于获取已标注对象和已标注对象的真值分类结果,并将已标注对象和真值分类结果作为一组已标注训练样本;

预测结果获取模块,用于将多组已标注训练样本输入至分类预测模块中,并获取分类预测模块输出的各已标注对象的已标注预测结果;

结果输入模块,用于将各已标注预测结果以及相应的真值分类结果输入至损失函数确定模块中。

可选的,在上述装置的基础上,该装置还可以包括:

数量占比确定模块,用于获取当前时刻下各未标注对象在分类预测模块中的迭代次数,并根据迭代次数确定未标注对象的未标注数量占比;

标注数量确定模块,用于根据未标注数量占比和预先设置的训练样本的总数量确定未标注对象的未标注数量和已标注训练样本的已标注数量,其中,每个训练样本包括已标注训练样本或是未标注对象;

相应的,预测结果获取模块,具体可以包括:样本输入单元,用于将已标注数量的已标注训练样本输入至分类预测模块中;

相应的,结果确定模块420,具体可以包括:对象输入单元,用于将未标注数量的未标注对象输入至分类预测模块中。

可选的,在上述装置的基础上,该装置还可以包括:

回传数量确定模块,用于根据未标注数量占比确定回传数量占比,并根据回传数量占比和未标注数量确定回传数量;

相应的,损失函数确定模块通过如下单元得到输出结果:

损失梯度确定单元,用于针对每个未标注对象,根据未标注对象的未标注预测结果和伪分类结果确定未标注对象的损失梯度;

目标对象筛选单元,用于根据损失梯度从各未标注对象中筛选出回传数量的目标对象;

输出结果得到单元,用于根据各目标对象的未标注预测结果和伪分类结果、及各已标注对象的已标注预测结果和真值分类结果,得到输出结果。

在此基础上,可选的,目标对象筛选单元,具体可以用于

以损失梯度为依据对各未标注对象进行排序;

根据各未标注对象在排序结果中的排序位置,从各未标注对象中筛选出回传数量的目标对象。

在此基础上,可选的,未标注数量占比与迭代次数呈正相关;和/或,回传数量占比与未标注数量占比呈正相关。

本公开实施例四提供的模型生成装置,通过对象获取模块和结果确定模块将获取到的多个未标注对象输入至待训练分类模型的分类预测模块中,可得到该分类预测模块输出的各未标注对象的未标注预测结果,进而根据每个未标注对象的未标注预测结果确定其伪分类结果,这种在线并且实时确定伪分类结果的方式加快了模型迭代速度并且提高了模型分类性能;进而,模型生成模块将各未标注对象的未标注预测结果及相应的伪分类结果输入至待训练分类模型的损失函数确定模块中,并根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。上述装置,在模型迭代过程中通过在线并且实时确定未标注对象的伪分类结果的方式,可以加快模型迭代速度且提高模型分类性能,由此达到了快速生成分类性能较好的对象分类模型的效果。

本公开实施例所提供的模型生成装置可执行本公开任意实施例所提供的模型生成方法,具备执行方法相应的功能模块和有益效果。

值得注意的是,上述模型生成装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。

实施例五

图6为本公开实施例五提供的对象分类装置的结构框图,该装置用于执行上述任意实施例所提供的对象分类方法。该装置与上述各实施例的对象分类方法属于同一个构思,在对象分类装置的实施例中未详尽描述的细节内容,可以参考上述对象分类方法的实施例。参见图6,该装置具体可以包括:模型获取模块510和对象分类模块520。

其中,模型获取模块510,用于获取待分类对象以及按照本公开任意实施例所提供的模型生成方法生成的对象分类模型;

对象分类模块520,用于将待分类对象输入至对象分类模型中,根据对象分类模型的输出结果,得到待分类对象的目标分类结果。

本公开实施例五提供的对象分类装置,通过模型获取模块和对象分类模块相互配合,将待分类对象输入至具有较好的分类性能的对象分类模型中,根据该对象分类模型的输出结果可以得到待分类对象的准确的目标分类结果。上述装置,达到了准确确定待分类对象的目标分类结果的效果。

本公开实施例所提供的对象分类装置可执行本公开任意实施例所提供的对象分类方法,具备执行方法相应的功能模块和有益效果。

值得注意的是,上述对象分类装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。

实施例六

下面参考图7,其示出了适于用来实现本公开实施例的电子设备(例如图7 中的终端设备或服务器)600的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图 7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图7所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O) 接口605也连接至总线604。

通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

实施例七

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602 被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM 或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、 RF(射频)等等,或者上述的任意合适的组合。

在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取待训练分类模型以及多个未标注对象,其中,待训练分类模型包括分类预测模块和损失函数确定模块;将各未标注对象输入至分类预测模块中,根据分类预测模块输出的各未标注预测结果分别确定各未标注对象的伪分类结果;将各未标注预测结果以及相应的伪分类结果输入至损失函数确定模块中,根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取待分类对象以及按照本公开任意实施例所提供的模型生成方法生成的对象分类模型;将待分类对象输入至对象分类模型中,并根据对象分类模型的输出结果,得到待分类对象的目标分类结果。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,对象获取模块还可以被描述为“获取待训练分类模型和多个未标注对象,其中,待训练分类模型包括分类预测模块和损失函数确定模块”。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器 (EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

根据本公开的一个或多个实施例,【示例一】提供了一种模型生成方法,该方法可以包括:

获取待训练分类模型和多个未标注对象,其中,待训练分类模型包括分类预测模块和损失函数确定模块;

将各未标注对象输入至分类预测模块中,根据分类预测模块输出的各未标注预测结果分别确定各未标注对象的伪分类结果;

将各未标注预测结果以及相应的伪分类结果输入至损失函数确定模块中,根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

根据本公开的一个或是多个实施例,【示例二】提供了示例一的方法,根据分类预测模块输出的各未标注预测结果分别确定各未标注对象的伪分类结果,可以包括:

获取分类预测模块输出的各未标注预测结果和预先设置的分类类别;

针对每个未标注预测结果,根据未标注预测结果分别确定与未标注结果对应的未标注对象属于各分类类别的类别概率,并根据各类别概率确定与未标注结果对应的未标注对象的伪分类结果。

根据本公开的一个或是多个实施例,【示例三】提供了示例一的方法,上述模型生成方法,还可以包括:

获取已标注对象和已标注对象的真值分类结果,并将已标注对象和真值分类结果作为一组已标注训练样本;

将多组已标注训练样本输入至分类预测模块中,并获取分类预测模块输出的各已标注对象的已标注预测结果;

将各已标注预测结果和相应的真值分类结果输入至损失函数确定模块中。

根据本公开的一个或是多个实施例,【示例四】提供了示例三的方法,上述模型生成方法,还可以包括:

获取当前时刻下各未标注对象在分类预测模块中的迭代次数,并根据迭代次数确定未标注对象的未标注数量占比;

根据未标注数量占比和预先设置的训练样本的总数量确定未标注对象的未标注数量和已标注训练样本的已标注数量,其中,每个训练样本包括已标注训练样本或是未标注对象;

相应的,将多组已标注训练样本输入至分类预测模块中,可以包括:将已标注数量的已标注训练样本输入至分类预测模块中;

将各未标注对象输入至分类预测模块中,可以包括:将未标注数量的未标注对象输入至分类预测模块中。

根据本公开的一个或是多个实施例,【示例五】提供了示例四的方法,上述模型生成方法,还可以包括:

根据未标注数量占比确定回传数量占比,并根据回传数量占比和未标注数量确定回传数量;

相应的,损失函数确定模块可以通过如下步骤得到输出结果:

针对每个未标注对象,根据未标注对象的未标注预测结果和伪分类结果确定未标注对象的损失梯度;

根据损失梯度从各未标注对象中筛选出回传数量的目标对象;

根据各目标对象的未标注预测结果和伪分类结果、及各已标注对象的已标注预测结果和真值分类结果,得到输出结果。

根据本公开的一个或是多个实施例,【示例六】提供了示例五的方法,根据损失梯度从各未标注对象中筛选出回传数量的目标对象,可以包括:

以损失梯度为依据对各未标注对象进行排序;

根据各未标注对象在排序结果中的排序位置,从各未标注对象中筛选出回传数量的目标对象。

根据本公开的一个或多个实施例,【示例七】提供了示例五的方法,未标注数量占比与迭代次数呈正相关;和/或回传数量占比与未标注数量占比呈正相关。

根据本公开的一个或多个实施例,【示例八】提供了一种对象分类方法,该方法可以包括:

获取待分类对象以及按照本公开任意实施例所提供的模型生成方法生成的对象分类模型;

将待分类对象输入至对象分类模型中,根据对象分类模型的输出结果,得到待分类对象的目标分类结果。

根据本公开的一个或多个实施例,【示例九】提供了一种模型生成装置,该装置可以包括:

对象获取模块,用于获取待训练分类模型和多个未标注对象,其中,待训练分类模型包括分类预测模块和损失函数确定模块;

结果确定模块,用于将各未标注对象输入至分类预测模块中,根据分类预测模块输出的未标注预测结果确定未标注对象的伪分类结果;

模型生成模块,用于将未标注预测结果和伪分类结果输入至损失函数确定模块中,根据损失函数确定模块的输出结果调整分类预测模块中的网络参数,生成对象分类模型。

根据本公开的一个或多个实施例,【示例十】提供了一种对象分类装置,该装置可以包括:

模型获取模块,用于获取待分类对象以及按照本公开任意实施例所提供的模型生成方法生成的对象分类模型;

对象分类模块,用于将待分类对象输入至对象分类模型中,根据对象分类模型的输出结果,得到待分类对象的目标分类结果。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

相关技术
  • 模型生成方法、对象分类方法、装置、电子设备及介质
  • 分类模型的生成方法、分类方法、装置、电子设备与介质
技术分类

06120112809703