发明内容
有鉴于此,本申请提供了一种数据分类方法、装置、设备及存储介质,用以解决现有技术中基于多个分类模型的分类方案需要耗费大量的计算资源和时间资源的问题,其技术方案如下:
一种数据分类方法,包括:
获取待分类数据;
将所述待分类数据输入预先建立的第一分类模型,得到分类结果,所述第一分类模型采用训练集中的训练数据训练得到,所述第一分类模型的训练目标为,使其针对所述训练数据预测的分类结果趋于预先建立的多个第二分类模型分别针对所述训练数据预测的分类结果的融合结果;
根据所述第一分类模型针对所述待分类数据预测的分类结果,确定所述待分类数据所属的类别。
其中,所述第一分类模型为学生分类模型,所述第二分类模型为教师分类模型;
可选的,所述学生分类模型的训练过程包括:
从构建的训练集中获取多条训练数据组成训练子集;
将所述训练子集中的每条训练数据分别输入多个教师分类模型,得到所述多个教师分类模型分别针对所述训练子集中每条训练数据预测的分类结果;
将所述多个教师分类模型分别针对所述训练子集中每条训练数据预测的分类结果融合,得到所述训练子集中每条训练数据对应的融合后分类结果;
利用所述训练子集和所述训练子集中每条训练数据对应的融合后分类结果,训练学生分类模型。
可选的,所述利用所述训练子集和所述训练子集中每条训练数据对应的融合后分类结果,训练学生分类模型,包括:
将所述训练子集中的每条训练数据输入学生分类模型,得到学生分类模型针对所述训练子集中每条训练数据预测的分类结果;
根据所述训练子集中每条训练数据对应的融合后分类结果和所述学生分类模型针对所述训练子集中每条训练数据预测的分类结果,更新学生分类模型的参数。
可选的,构建所述训练集的过程包括:
获取第一数据集和第二数据集,其中,所述第一数据集中的每条数据为标注有类别的数据,所述第二数据集中的每条数据为无标注数据;
基于所述多个教师分类模型,从所述第二数据集中确定目标数据,其中,所述目标数据的质量优于所述第二数据集中非目标数据的质量;
将确定出的目标数据与所述第一数据集中的数据混合,由混合后数据组成训练集。
可选的,所述根据所述训练子集中每条训练数据对应的融合后分类结果和所述学生分类模型针对所述训练子集中每条训练数据预测的分类结果,更新学生分类模型的参数,包括:
根据所述训练子集中每条训练数据对应的融合后分类结果和所述学生分类模型针对所述训练子集中每条训练数据预测的分类结果,确定学生分类模型的预测损失;
根据所述学生分类模型的预测损失,更新学生分类模型的参数。
可选的,所述基于所述多个教师分类模型,从所述第二数据集中确定目标数据,包括:
针对所述第二数据集中的每条候选数据:
将所述候选数据分别输入所述多个教师分类模型,得到所述多个教师分类模型分别针对所述候选数据预测的分类结果;
对所述多个教师分类模型分别针对所述候选数据预测的分类结果进行归一化,获得多个归一化分类结果;
计算所述多个归一化分类结果之间的平均散度,作为所述候选数据对应的平均散度;
根据所述候选数据对应的平均散度,确定所述候选数据是否为目标数据。
可选的,所述基于所述多个教师分类模型,从所述第二数据集中确定目标数据,还包括:
计算所述多个归一化分类结果的平均熵,作为所述候选数据对应的平均熵;
所述根据所述候选数据对应的平均散度,确定所述候选数据是否为目标数据,包括:
根据所述候选数据对应的平均散度和平均熵,确定所述候选数据是否为目标数据。
可选的,所述根据所述候选数据对应的平均散度和所述候选数据对应的平均熵确定所述候选数据是否为目标数据包括:
若所述候选数据对应的平均散度大于或等于预设的散度阈值,或者,所述候选数据对应的平均熵小于或等于预设的熵阈值,则确定所述候选数据为非目标数据,否则,确定所述候选数据为目标数据。
可选的,所述将所述多个教师分类模型分别针对所述训练子集中每条训练数据预测的分类结果融合,得到所述训练子集中每条训练数据对应的融合后分类结果,包括:
针对所述训练子集中的每条待进行分类结果融合的目标训练数据:
若所述目标训练数据为无标注数据,则计算所述多个教师分类模型分别针对所述目标训练数据预测的分类结果的平均值,作为所述目标训练数据对应的融合后分类结果;
若所述目标训练数据为标注有类别的数据,则根据所述目标训练数据标注的类别,对所述多个教师分类模型分别针对所述目标训练数据预测的分类结果进行修正,得到所述目标训练数据在各教师分类模型上的修正后分类结果,对所述目标训练数据在各教师分类模型上的修正后分类结果进行融合,得到所述目标训练数据对应的融合后分类结果。
可选的,所述根据所述目标训练数据标注的类别,对所述多个教师分类模型分别针对所述目标训练数据预测的分类结果进行修正,包括:
针对所述多个教师分类模型分别针对所述目标训练数据预测的分类结果的每个待修正分类结果:
确定所述待修正分类结果中的最大值对应的类别与所述目标训练数据标注的类别是否一致;
若否,将所述待修正分类结果中与所述目标训练数据标注的类别一致的类别对应的值与所述最大值调换。
可选的,所述对所述目标训练数据在各教师分类模型上的修正后分类结果进行融合,得到所述目标训练数据对应的融合后分类结果,包括:
根据所述目标训练数据在各教师分类模型上的修正后分类结果,确定所述多个教师分类模型分别对应的权重;
按所述多个教师分类模型分别对应的权重,对所述目标训练数据在各教师分类模型上的修正后分类结果加权求和,加权求和后结果作为所述目标训练数据对应的融合后分类结果。
可选的,所述根据所述目标训练数据在各教师分类模型上的修正后分类结果,确定所述多个教师分类模型分别对应的权重,包括:
针对每个待确定权重的目标教师分类模型,确定所述目标训练数据在所述目标教师分类模型上的修正后分类结果分别与所述目标训练数据在其它教师分类模型上的修正后分类结果的相似度的平均值,作为所述目标教师分类模型对应的平均相似度;
对所述多个教师分类模型分别对应的平均相似度归一化,得到所述多个教师分类模型分别对应的权重。
一种数据分类装置,包括:数据获取模块、数据分类模块和类别确定模块;
所述数据获取模块,用于获取待分类数据;
所述数据分类模块,用于将所述待分类数据输入预先建立的第一分类模型,得到分类结果,所述第一分类模型采用训练集中的训练数据训练得到,所述第一分类模型的训练目标为,使其针对所述训练数据预测的分类结果趋于预先建立的多个第二分类模型分别针对所述训练数据预测的分类结果的融合结果;
所述类别确定模块,用于根据所述第一分类模型针对所述待分类数据预测的分类结果,确定所述待分类数据所属的类别。
可选的,所述第一分类模型为学生分类模型,所述第二分类模型为教师分类模型;
所述数据分类装置还包括:学生分类模型训练模块,所述学生分类模型训练模块包括:训练子集获取模块、第一分类模块、分类结果融合模块和模型训练模块;
所述训练子集获取模块,用于从构建的训练集中获取多条训练数据组成训练子集;
所述第一分类模块,用于将所述训练子集中的每条训练数据分别输入所述多个教师分类模型,得到所述多个教师分类模型分别针对所述训练子集中每条训练数据预测的分类结果;
所述分类结果融合模块,用于将所述多个教师分类模型分别针对所述训练子集中每条训练数据预测的分类结果融合,得到所述训练子集中每条训练数据对应的融合后分类结果;
所述模型训练模块,用于根据所述训练子集和所述训练子集中每条训练数据对应的融合后分类结果,训练学生分类模型。
可选的,所述模型训练模块包括:第二分类模块和模型参数更新模块;
所述第二分类模块,用于将所述训练子集中的每条训练数据输入学生分类模型,得到学生分类模型针对所述训练子集中每条训练数据预测的分类结果;
所述模型参数更新模块,用于根据所述训练子集中每条训练数据对应的融合后分类结果和所述学生分类模型针对所述训练子集中每条训练数据预测的分类结果,更新学生分类模型的参数。
一种数据分类设备,包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述任一项所述的数据分类方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一项所述的数据分类方法的各个步骤。
经由上述方案可知,本申请提供的数据分类方法、装置、设备及存储介质,在获得待分类数据后,首先将待分类数据输入预先建立的第一分类模型,以得到第一分类模型针对待分类数据预测的分类结果,然后根据第一分类模型针对待分类数据预测的分类结果,确定待分类数据所属的类别。相比于基于多个分类模型的分类方案,由于本申请只需要利用一个第一分类模型对待分类数据进行计算,且只需要对一个第一分类模型针对待分类数据预测的分类结果进行计算,因此,耗费的计算资源和时间资源大大减少,并且,由于本申请中第一分类模型的训练目标为,使其针对训练数据预测的分类结果趋于预先建立的多个第二分类模型分别针对训练数据预测的分类结果的融合结果,因此,基于训练得到的第一分类模型对待分类数据进行分类,能够获得较准确的类别。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
发明人在实现本案的过程中发现,现有技术中基于多个分类模型的分类方案大致有两种:
第一种方案的大致思路为,首先将待分类数据分别输入预先建立的多个分类模型,以得到多个分类模型分别针对待分类数据预测的分类结果,然后以投票的方式获取多个分类模型预测的分类结果中得票数最多的结果,根据得票数最多的结果确定待分类数据所属的类别。
第二种方案的大致思路为,首先将待分类数据分别输入预先建立的多个分类模型,以得到多个分类模型分别针对待分类数据预测的分类结果,然后对多个分类模型分别针对待分类数据预测的分类结果求均值,根据求得的均值确定待分类数据所属的类别。
发明人通过对上述两种方案进行研究发现,由于上述两种发现均需要利用多个模型对待分类数据进行分类,且需要对多个分类模型分别针对待分类数据预测的分类结果进行运算,因此,需要消耗大量的计算资源和时间资源。此外,上述两种方案均未考虑较差的模型带来的负面影响。
鉴于上述方案存的的问题,本案发明人进行了深入研究,最终提出了一种效果较好的数据分类方法,该数据分类方法克服了现有的数据分类方法存在的缺陷,该数据分类方法的构思是:
预先建立多个第二分类模型(作为教师分类模型),利用建立的多个第二分类模型和训练集训练一个第一分类模型(作为学生分类模型),在训练时,使第一分类模型针对训练数据预测的分类结果趋于多个第二分类模型分别针对训练数据预测的分类结果的融合结果,在训练得到第一分类模型后,只需要利用第一分类模型对待分类数据进行分类。
本申请提供的数据分类方法适用于任何需要进行数据分类的应用场景,其可应用于具有数据处理能力的终端,也可应用于单个服务器或多个服务器组成的服务器集群。接下来,通过下述实施例对本申请提供的数据分类方法进行介绍。
第一实施例
请参阅图1,示出了本申请实施例提供的数据分类方法的流程示意图,该方法可以包括:
步骤S101:获取待分类数据。
其中,待分类数据可以但不限定为文本、图像、音频、视频等数据。
步骤S102:将待分类数据输入预先建立的学生分类模型,得到学生分类模型输出的分类结果。
其中,学生分类模型输出的分类结果包括能够表征待分类数据属于各设定类别的可能性大小的数值。
示例性的,设定类别包括类别y1、类别y2和类别y3,则学生分类模型输出的分类结果包括l1、l2和l3,其中,l1能够表征待分类数据属于类别y1的可能性大小,l1越大,待分类数据属于类别y1的可能性越大,类似的,l2能够表征待分类数据属于类别y2的可能性大小,l3能够表征待分类数据属于类别y3的可能性大小。
本实施例中的学生分类模型采用构建的训练集中的训练数据训练得到,该学生分类模型的训练目标为,使其针对训练数据预测的分类结果趋于预先建立的多个教师分类模型分别针对训练数据预测的分类结果的融合结果。其中,训练集中包括有标注训练数据和无标注训练数据,多个教师分类模型具有相同的结构,具有不同的参数。
需要说明的是,由于预先建立的多个教师分类模型分别针对训练数据预测的分类结果的融合结果为比较准确的分类结果,因此,在训练过程中,使学生分类模型的分类结果趋于融合结果能够使得学生分类模型逐渐具备对输入数据进行准确分类的能力。
步骤S103:根据学生分类模型针对待分类数据预测的分类结果,确定待分类数据所属的类别。
具体的,对学生分类模型针对待分类数据预测的分类结果采用softmax进行归一化,得到归一化分类结果,归一化分类结果中包括待分类数据属于各设定类别的概率;从归一化分类结果中确定出最大概率,将最大概率对应的类别确定为待分类数据所属的类别。
本申请实施例提供的数据分类方法,在获得待分类数据后,首先将待分类数据输入预先建立的学生分类模型,以得到学生分类模型输出的分类结果,然后根据学生分类模型输出的分类结果,确定待分类数据所属的类别,相比于基于多个分类模型的分类方案,由于本申请实施例只需要利用一个学生分类模型对待分类数据进行计算,且只需要对一个学生分类模型针对待分类数据预测的分类结果进行计算,因此,耗费的计算资源和时间资源大大减少,并且,由于本申请实施例中学生分类模型的训练目标为,使其针对训练数据预测的分类结果趋于预先建立的多个教师分类模型分别针对训练数据预测的分类结果的融合结果,因此,基于训练得到的学生分类模型对待分类数据进行分类,能够获得较准确的类别。
第二实施例
经由上述实施例可知,待分类数据所属的类别基于学生分类模型确定,而学生分类模型采用训练集中的训练数据训练得到,本实施例对学生分类模型的训练过程进行介绍。
请参阅图2,示出了学生分类模型的训练过程的流程示意图,可以包括:
步骤S201:从构建的训练集中获取多条训练数据组成训练子集。
其中,训练子集中训练数据的数量可根据实际情况设定。
步骤S202:将训练子集中的每条训练数据分别输入多个教师分类模型,得到多个教师分类模型分别针对训练子集中每条训练数据预测的分类结果。
假设训练子集中包括B条训练数据,教师分类模型为K个,设定的类别为M个,针对B条训练数据中的每条训练数据,经由步骤S202可获得K个分类结果,每个分类结果包括M个数值,针对整个训练子集,最终会获得B组分类结果,每组分类结果中包括K个分类结果。
步骤S203:将多个教师分类模型分别针对训练子集中每条训练数据预测的分类结果融合,得到训练子集中每条训练数据对应的融合后分类结果。
假设训练子集中包括B条训练数据,教师分类模型为K个,针对B条训练数据中的每条训练数据,将K个教师分类模型分别针对该条训练数据预测的分类结果融合,即,将K个分类结果融合为一个,得到训练子集中每条训练数据对应的融合后分类结果,即最终会获得B个融合后分类结果。
步骤S204:利用训练子集和训练子集中每条训练数据对应的融合后分类结果,训练学生分类模型。
具体的,利用训练子集和训练子集中每条训练数据对应的融合后分类结果,训练学生分类模型的过程包括:
步骤S2041、将训练子集中的每条训练数据输入学生分类模型,得到学生分类模型针对训练子集中每条训练数据预测的分类结果。
步骤S2042、根据训练子集中每条训练数据对应的融合后分类结果和学生分类模型针对训练子集中每条训练数据预测的分类结果,更新学生分类模型的参数。
具体的,步骤S2042的具体实现过程包括:
步骤a1、根据训练子集中每条训练数据对应的融合后分类结果和学生分类模型针对训练子集中每条训练数据预测的分类结果,确定学生分类模型的预测损失。
假设训练子集中第i条训练数据对应的融合后分类结果为
学生分类模型针对训练子集中第i条训练数据预测的分类结果为
则可计算由T缩放后的
与由T缩放后的
之间的交叉熵损失,作为学生分类模型的预测损失loss:
其中,B为训练子集中训练数据的数量,M为设定类别的数量,
为第i条训练数据对应的融合后分类结果
中的第j个分量,
为学生分类模型针对第i条训练数据预测的分类结果
中的第j个分量。
需要说明的是,上式中的T为蒸馏温度,其为大于0的实数,T用于对分类结果进行缩放,用T对分类结果进行缩放的目的在于增加两个归一化分类结果(两个归一化分类结果指的是,将两个分类结果经softmax后得到的结果)中概率的区分度,以使学生分类模型能够更有效地学习,T的取值可根据实际情况设定。
示例性的,第i条训练数据对应的融合后分类结果
为(6,1,0),学生分类模型针对第i条训练数据预测的分类结果
为(8,1,0),若直接对这两个分类结果进行softmax,会得到(0.991,0.007,0.002)和(0.9988,0.0009,0.0003),对比这两个结果发现,0.991与0.9988区分度不高,这样的结果不利于模型学习,为了能够获得区分度较高的分类结果,可对(6,1,0)和(8,1,0)采用T=8缩放,缩放后得到(0.75,0.125,0)和(1,0.125,0),将缩放后得到的(0.75,0.125,0)和(1,0.125,0)分别经softmax,得到(0.498,0.267,0.235)和(0.560,0.234,0.206),对比两个结果可发现,经T缩放后,相对应概率(比如0.498与0.560)的区分度增加。
步骤a2、根据学生分类模型的预测损失更新学生分类模型的参数。
具体的,计算loss对学生分类模型各个参数的梯度,并利用Adam等优化器结合梯度信息进行参数更新。
按上述步骤S201~步骤S204对学生分类模型进行多次迭代训练,直至满足训练结束条件(比如达到预设的迭代训练次数,或者学生分类模型的性能满足要求),训练结束后得到的模型即为用于对待分类数据进行分类的学生分类模型。
第三实施例
经由上述实施例可知,学生分类模型采用构建的训练集中的训练数据训练得到,本实施例对构建训练集的过程进行介绍。
构建训练集的实现方式有多种,在一种可能的实现方式中,构建训练集的过程可以包括:
获取第一数据集和第二数据集,其中,第一数据集中的每条数据为标注有类别的数据,第二数据集中的每条数据为无标注数据;将第一数据集中的数据与第二数据集中的数据混合,由混合后数据组成训练集。
考虑到第二数据集中可能存在一些质量不佳的无标注数据,为了避免这些质量不佳的无标注数据影响学生分类模型的训练,本实施例提供另一种较为优选的实现方式,请参阅图3,示出了构建训练集的第二种实现方式的流程示意图,可以包括:
步骤S301:获取第一数据集和第二数据集。
其中,第一数据集中的每条数据为标注有类别的数据,第二数据集中的每条数据为无标注数据。
步骤S302:基于多个教师分类模型,从第二数据集中确定目标数据。
其中,目标数据的质量优于第二数据集中非目标数据的质量。
具体的,基于多个教师分类模型,从第二数据集中确定目标数据的实现方式有多种,本实施例提供如下两种可选的实现方式:
第一种实现方式:
针对第二数据集中的每条候选数据,执行如下步骤:
步骤b1、将候选数据分别输入多个教师分类模型,获得多个教师分类模型分别针对候选数据预测的分类结果。
假设教师分类模型为K个,设定的类别为M个,将候选数据分别输入K个教师分类模型后,会得到K个分类结果,每个分类结果包括M个数据。
步骤b2、对多个教师分类模型分别针对候选数据预测的分类结果进行归一化,获得多个归一化分类结果。
具体的,将多个教师分类模型分别针对候选数据预测的分类结果分别经softmax进行归一化,得到多个归一化分类结果。假设设定类别为M个,则每个归一化分类结果中包括M个概率,这M个概率为候选数据所属的类别为每个设定类别的概率。
步骤b3、计算多个归一化分类结果之间的平均散度,作为候选数据对应的平均散度。
假设教师分类模型为K个,设定类别为M个,那么经由步骤b2会获得K个归一化分类结果,则确定K个归一化分类结果之间的平均散度的过程可以包括:
对于每个归一化分类结果,将其分别于其它K-1个归一化分类结果组成归一化分类结果对,如此,最终会得到K(K-1)个归一化分类结果对,计算每个归一化分类结果对中第一归一化分类结果与第二归一化分类结果的散度,最终会获得K(K-1)个散度,计算K(K-1)个散度的均值,作为候选数据对应的平均散度,即候选数据(假设为第二数据集中的第n条数据)对应的平均散度的表达式为:
其中,
表示K个归一化分类结果中的第i个分类结果,其包括M个概率,
表示K个分类结果中的第j个分类结果,i与j不同,
表示
与
的散度,
的计算式如下:
步骤b4、根据候选数据对应的平均散度,确定候选数据是否为目标数据。
具体的,根据候选数据对应的平均散度,确定候选数据是否为目标数据的过程包括:若候选数据对应的平均散度大于或等于预设的散度阈值,则确定候选数据为非目标数据,若候选数据对应的平均散度小于预设的散度阈值,则确定候选数据为目标数据。
需要说明的是,候选数据对应的平均散度越大,意味着多个教师分类模型针对候选数据的预测差异较大,说明候选数据难以被正确分类,难以被正确分类的数据为质量不佳的数据。
考虑到第二数据集中除了包括一些难以被正确分类的数据外,还可能包括一些含信息量较少的数据,若利用这些数据训练学生分类模型,将影响学生分类模型的学习效率,为此,本实施例提供第二种实现方式:
基于多个教师分类模型,从第二数据集中确定目标数据的第二种实现方式的实现过程包括:
针对第二数据集中的每条候选数据,执行如下步骤:
步骤c1、将候选数据分别输入多个教师分类模型,获得多个教师分类模型分别针对候选数据预测的分类结果。
步骤c2、对多个教师分类模型分别针对候选数据预测的分类结果进行归一化,获得多个归一化分类结果。
步骤c3、计算多个归一化分类结果之间的平均散度,作为候选数据对应的平均散度。
步骤c1~步骤c3的具体实现过程和相关解释说明可参见上述步骤b1~步骤b3的具体实现过程和相关解释说明,本实施例在此不做赘述。
步骤c4、计算多个归一化分类结果的平均熵,作为候选数据对应的平均熵。
假设教师分类模型为K个,设定类别为M个,那么经由步骤c2会获得K个归一化分类结果,则确定K个归一化分类结果的平均熵的过程包括:分别针对K个分类结果计算熵,以得到K个熵,然后将K个熵求均值,便得到候选数据对应的平均熵,即候选数据(假设为第二数据集中的第n条数据)对应的平均熵的表达式为:
需要说明的是,候选数据对应的平均熵越小,意味着各教师分类模型对该候选数据的预测置信度较高,说明该候选数据含的信息量越少。
另外,需要说明的是,本实施例并不限定步骤c3和步骤c4的执行顺序,即,可先执行步骤c3,再执行步骤c4,也可先执行步骤c4,再执行步骤c3,还可并行执行步骤c3和步骤c4。
步骤c4、根据候选数据对应的平均散度和平均熵,确定候选数据是否为目标数据。
具体的,根据候选数据对应的平均散度和平均熵,确定候选数据是否为目标数据的过程包括:若候选数据对应的平均散度大于或等于预设的散度阈值,或者,候选数据对应的平均熵小于或等于预设的熵阈值,则确定候选数据为非目标数据,若候选数据对应的平均散度小于预设的散度阈值,且候选数据对应的平均熵大于预设的熵阈值,则确定候选数据为目标数据。
步骤S303:将经由步骤S302确定出的目标数据与第一数据集中的数据混合,由混合后数据组成训练集。
经由上述过程便获得了用于训练学生分类模型的训练集。
第四实施例
本实施例对上述实施例中的“步骤S203:将多个教师分类模型分别针对训练子集中每条训练数据预测的分类结果融合,得到训练子集中每条训练数据对应的融合后分类结果”的具体实现过程进行介绍。
由于对各条训练数据的分类结果进行融合的方式相同,本实施例以训练子集中的一条训练数据x为例,对多个教师分类模型分别针对训练数据x预测的分类结果进行融合的过程进行介绍。
经由上述实施例可知,训练集中包括有标注数据和无标注数据,由于训练子集中的训练数据从训练集中获取,因此,训练子集中很大可能也包括有标注数据和无标注数据,有鉴于此,对于训练子集中训练数据x的分类结果,本实施例分情况对融合过程进行介绍。
第一种情况:训练数据x为无标注数据。
对多个教师分类模型分别针对训练数据x预测的分类结果进行融合的过程包括:计算多个教师分类模型分别针对训练数据x预测的分类结果的平均值,作为训练数据x对应的融合后分类结果。
假设教师分类模型有K个,设定类别为M个,训练数据x为训练子集中的第i条训练数据,K个教师分类模型分别针对训练数据x预测的分类结果为
则训练数据x对应的融合后分类结果
为:
示例性的,训练数据x为训练子集中的第i条训练数据,其为无标注数据,教师分类模型有3个,3个教师分类模型分别针对训练数据x预测的分类结果包括
和
则训练数据x对应的融合后分类结果为
第二种情况:训练数据x为有标注数据。
对多个教师分类模型分别针对训练数据x预测的分类结果进行融合的过程包括:
步骤d1、根据训练数据x标注的类别,对多个教师分类模型分别针对训练数据x预测的分类结果进行修正,得到训练数据x在各教师分类模型上的修正后分类结果。
针对多个教师分类模型分别针对训练数据x预测的分类结果中的每个待修正分类结果:确定待修正分类结果中的最大值对应的类别与训练数据x标注的类别是否一致;若否,将待修正分类结果中与训练数据x标注的类别一致的类别对应的值与最大值调换。
示例性的,设定类别为3个,分别为“正向”、“中性”和“负向”,训练数据x标注的类别为“正向”,待修正分类结果为(1.2,-3,4.5),其中,1.2表征训练数据x属于“正向”的可能性大小,-3表征训练数据x属于“中性”的可能性大小,4.5表征训练数据x属于“负向”的可能性大小,由于待修正分类结果中的最大值为4.5,其对应的类别为“负向”,而训练数据x标注的类别为“正向”,因此,最大值4.5对应的类别与训练数据x标注的类别不一致,需要对待修正分类结果进行修正,具体的,由于待修正分类结果中的1.2对应的类别为“正向”,与训练数据x标注的类别一致,因此,将1.2与4.5调换,即修正后的分类结果为(4.5,-3,1.2)。
步骤d2、对训练数据x在各教师分类模型上的修正后分类结果进行融合,得到训练数据x对应的融合后分类结果。
具体的,对训练数据x在各教师分类模型上的修正后分类结果进行融合的过程包括:
步骤d2-1、根据训练数据x在各教师分类模型上的修正后分类结果,确定多个教师分类模型分别对应的权重。
具体的,根据训练数据x在各教师分类模型上的修正后分类结果,确定多个教师分类模型分别对应的权重的过程包括:
步骤d2-1-1、针对每个待确定权重的目标教师分类模型,确定训练数据x在目标教师分类模型上的修正后分类结果分别与训练数据x在其它教师分类模型上的修正后分类结果的相似度的平均值,作为目标教师分类模型对应的平均相似度。
示例性的,有K个教师分类模型,待确定权重的目标教师分类模型为K个教师分类模型中的第k个模型,训练数据x为训练子集中的第i个训练数据,则目标教师分类模型在训练子集中第i条训练数据上对应的平均相似度
为:
其中,
为训练数据x在第k个教师分类模型上的修正后分类结果,
为训练数据x在第p个教师分类模型上的修正后分类结果。需要说明的是,若第k个教师分类模型针对训练数据x预测的分类结果中的最大值对应的类别与训练数据x标注的类别一致,则上式中的
同样的,若第p个教师分类模型针对训练数据x预测的分类结果中的最大值对应的类别与训练数据x标注的类别一致,则上式中的
步骤d2-1-2、对多个教师分类模型分别对应的平均相似度归一化,得到多个教师分类模型分别对应的权重。
假设有K个教师分类模型,训练数据x为训练子集中的第i条训练数据,则对于训练数据x会得到一个相似度向量
使用softmax对s
i进行归一化,得到权重向量w
i:
wi=softmax(si) (7)
其中,权重向量
为第1个教师分类模型在第i条训练数据上对应的权重,
为第2个教师分类模型在第i条训练数据上对应的权重,…,
为第K个教师分类模型在第i条训练数据上对应的权重。
步骤d2-2、按多个教师分类模型分别对应的权重,对训练数据x在各教师分类模型上的修正后分类结果加权求和,加权求和后结果作为训练数据x对应的融合后分类结果。
假设有K个教师分类模型,训练数据x为训练子集中的第i条训练数据,
为K个教师分类模型分别对应的权重,则训练数据x对应的融合后分类结果
为:
需要说明的是,如果训练数据在某一教师分类模型上的修正后分类结果与训练数据在其它教师分类模型上的修正后分类结果的差别较大,则其对应的平均相似度会较低,相应的,其对应的权重也会较低,因此,按上述方法确定多个教师分类模型分别对应的权重,按确定出的权重对训练数据在各教师分类模型上的修正后分类结果进行融合,减弱了相对较差的教师分类模型对总体融合效果的影响,增加了融合过程的稳定性。
第五实施例
经由上述实施例可知,本申请中用于对待分类数据进行分类的学生分类模型基于训练集和预先建立的多个教师分类模型训练得到。本实施例重点对建立多个教师分类模型的过程进行介绍。
请参阅图4,示出了建立多个教师分类模型的一种方式的示意图,用第一数据集中的训练数据训练多个结构相同的分类模型,训练得到的多个分类模型作为教师分类模型。其中,第一数据集中的每条数据为标注有类别的数据。
用第一数据集中的训练数据训练一分类模型的过程包括:获取由第一数据集中的多条训练数据组成的训练子集,将训练子集中的每条训练数据输入分类模型,获得分类模型针对每条训练数据预测的分类结果,根据预测的分类结果和训练子集中每条训练数据标注的类别确定分类模型的预测损失,根据分类模型的预测损失更新分类模型的参数,按上述过程进行多次迭代训练,直至满足训练结束条件。
需要说明的是,在训练各教师分类模型时,为了使各教师分类模型多样化,一方面,可使各教师分类模型的初始化参数不同,可选的,可使随机数发生器基于不同的随机种子产生各个教师分类模型的初始化参数;另一方面,可使各个教师分类模型的训练数据差异化,通常而言,在对教师分类模型进行训练时,会将第一数据集中的训练数据划分为多个数据子集,每次向教师分类模型输入一个数据子集进行训练,基于此,可采用如下两种可选的实现方式使各个教师分类模型的训练数据差异化:
第一种实现方式:针对各个教师分类模型可采用不同的划分方式对第一数据集中的训练数据进行子集划分。示例性的,教师分类模型为3个,第一数据集中包括10个训练数据,假设为数据1~数据10,对于第1个教师分类模型,可将第一数据集中的10个训练数据划分为数据子集D11{数据1,数据2,数据3,数据4,数据3,数据5}和数据子集D12{数据6,数据7、数据8,数据9,数据10};对于第2个教师分类模型,可将第一数据集中的10个训练数据划分为数据子集D21{数据1,数据3,数据5,数据7,数据9}和数据子集D22{数据2,数据4、数据6,数据8,数据10};对于第3个教师分类模型,可将第一数据集中的10个训练数据划分为数据子集D31{数据1,数据5,数据7,数据9,数据10}和数据子集D32{数据2,数据3,数据4,数据6,数据8}。
第二种实现方式:针对各个教师分类模型可采用相同的划分方式对第一数据集中的训练数据进行数据子集划分,但是,使各个数据子集在各个教师分类模型的输入顺序不同。示例性的,教师分类模型为3个,数据子集为4个,对于教师分类模型1而言,4个数据子集的输入顺序为数据子集1、数据子集2、数据子集3、数据子集4,对于教师分类模型2而言,4个数据子集的输入顺序为数据子集2、数据子集4、数据子集3、数据子集1,对于教师分类模型3而言,4个数据子集的输入顺序为数据子集3、数据子集1、数据子集4、数据子集2。
请参阅图5,示出了建立多个教师分类模型的另一种方式的示意图,即,利用与本申请建立学生分类模型相同的方式建立多个学生分类模型,将建立的多个学生分类模型作为教师分类模型。比如,先基于第一数据集训练K个分类模型,训练得到分类模型作为第一级教师分类模型,以得到K个第一级教师分类模型,然后基于K个第一级教师分类模型和构建的P个训练集训练出P个学生分类模型作为第二级教师分类模型(P个学生分类模型的初始参数可由随机数发生器基于不同的随机种子产生),以得到P个第二级教师分类模型,从而后续可以基于训练集U和P个第二级教师分类模型训练出一个学生分类模型,训练得到的学生分类模型作为用于对待分类数据进行分类的模型。
需要说明的是,上述的P个训练集中的每个训练集均包括有标注数据和无标注数据,为了使训练得到的P个学生分类模型差异化,可使P个训练集中的无标注数据不同,此外,在基于训练集U和P个第二级教师分类模型训练学生分类模型时,可使训练集U中包括P个训练集中的所有无标注数据。
另外需要说明的是,本实施例并不限定将基于P个第二级教师分类模型训练得到的学生分类模型作为最终用于对待分类数据进行分类的模型,在获得P个第二级教师分类模型后,还可继续基于Q个训练集和P个第二级教师分类模型训练出Q个学生分类模型作为第三级教师分类模型,以得到Q个第三级教师分类模型,…以得到R个第N级教师分类模型(N的取值可根据实际情况设定),从而后续可以基于训练集和R个第N级教师分类模型训练一个学生分类模型,将训练得到的学生分类模型作为用于对待分类数据进行分类的模型。
第六实施例
本申请实施例还提供了一种数据分类装置,下面对本申请实施例提供的数据分类装置进行描述,下文描述的数据分类装置与上文描述的数据分类方法可相互对应参照。
请参阅图6,示出了本申请实施例提供的数据分类装置的结构示意图,可以包括:数据获取模块601、数据分类模块602和类别确定模块603。
数据获取模块601,用于获取待分类数据。
数据分类模块602,用于将所述待分类数据输入预先建立的第一分类模型,得到分类结果。
其中,所述分类结果包能够表征所述待分类数据属于各设定类别的可能性大小的数值,所述第一分类模型采用训练集中的训练数据训练得到,所述第一分类模型的训练目标为,使其针对所述训练数据预测的分类结果趋于预先建立的多个第二分类模型分别针对所述训练数据预测的分类结果的融合结果。
类别确定模块603,用于根据所述第一分类模型针对所述待分类数据预测的分类结果,确定所述待分类数据所属的类别。
其中,第一分类模型为学生分类模型,第二分类模型为教师分类模型。
本实施例提供的数据分类装置还包括:学生分类模型训练模块。
所述学生分类模型训练模块包括:训练子集获取模块、第一分类模块、分类结果融合模块和模型训练模块。
所述训练子集获取模块,用于从构建的训练集中获取多条训练数据组成训练子集。
所述第一分类模块,用于将所述训练子集中的每条训练数据分别输入所述多个教师分类模型,得到所述多个教师分类模型分别针对所述训练子集中每条训练数据预测的分类结果。
所述分类结果融合模块,用于将所述多个教师分类模型分别针对所述训练子集中每条训练数据预测的分类结果融合,得到所述训练子集中每条训练数据对应的融合后分类结果。
所述模型训练模块,用于利用所述训练子集和所述训练子集中每条训练数据对应的融合后分类结果,训练学生分类模型。
其中,所述模型训练模块包括:第二分类模块和模型参数更新模块。
所述第二分类模块,用于将所述训练子集中的每条训练数据输入学生分类模型,得到学生分类模型针对所述训练子集中每条训练数据预测的分类结果。
所述模型参数更新模块,用于根据所述训练子集中每条训练数据对应的融合后分类结果和所述学生分类模型针对所述训练子集中每条训练数据预测的分类结果,更新学生分类模型的参数。
可选的,本实施例提供的数据分类装置还包括:训练集构建模块。
所述训练集构建模块可以包括:数据集获取模块、目标数据确定模块、训练集构建模块。
所述数据集获取模块,用于获取第一数据集和第二数据集,其中,所述第一数据集中的每条数据为标注有类别的数据,所述第二数据集中的每条数据为无标注数据。
所述目标数据确定模块,用于基于所述多个教师分类模型,从所述第二数据集中确定目标数据,其中,所述目标数据的质量优于所述第二数据集中非目标数据的质量。
所述训练集构建模块,用于将确定出的目标数据与所述第一数据集中的数据混合,由混合后数据组成训练集。
可选的,模型参数更新模块包括:预测损失确定子模块和参数更新子模块。
所述预测损失确定子模块,用于根据所述训练子集中每条训练数据对应的融合后分类结果和所述学生分类模型针对所述训练子集中每条训练数据预测的分类结果,确定学生分类模型的预测损失;
所述参数更新子模块,用于根据所述学生分类模型的预测损失,更新学生分类模型的参数。
可选的,所述目标数据确定模块包括:分类结果预测子模块、分类结果归一化子模块、平均散度确定子模块和目标数据确定子模块。
所述分类结果预测子模块,用于针对所述第二数据集中的每条候选数据,将所述候选数据分别输入所述多个教师分类模型,得到所述多个教师分类模型分别针对所述候选数据预测的分类结果。
所述分类结果归一化子模块,用于对所述多个教师分类模型分别针对所述候选数据预测的分类结果进行归一化,获得多个归一化分类结果。
所述平均散度确定子模块,用于计算所述多个归一化分类结果之间的平均散度,作为所述候选数据对应的平均散度。
所述目标数据确定子模块,用于根据所述候选数据对应的平均散度,确定所述候选数据是否为目标数据。
可选的,目标数据确定模块还包括:平均熵确定子模块。
所述平均熵确定子模块,用于计算所述多个归一化分类结果的平均熵,作为所述候选数据对应的平均熵。
所述目标数据确定子模块,具体用于根据所述候选数据对应的平均散度和平均熵,确定所述候选数据是否为目标数据。
可选的,所述目标数据确定子模块,具体用于若所述候选数据对应的平均散度大于或等于预设的散度阈值,或者,所述候选数据对应的平均熵小于或等于预设的熵阈值,则确定所述候选数据为非目标数据,否则,确定所述候选数据为目标数据。
可选的,所述分类结果融合模块包括:标注判别模块、第一融合模块和第二融合模块。
所述标注判别模块,用于针对所述训练子集中的每条待进行分类结果融合的目标训练数据,判断其是否为标注有类别的数据。
所述第一融合模块,用于在目标训练数据为无标注数据时,计算所述多个教师分类模型分别针对所述目标训练数据预测的分类结果的平均值,作为所述目标训练数据对应的融合后分类结果。
所述第二融合模块,用于在所述目标训练数据为标注有类别的数据时,根据所述目标训练数据标注的类别,对所述多个教师分类模型分别针对所述目标训练数据预测的分类结果进行修正,得到所述目标训练数据在各教师分类模型上的修正后分类结果,对所述目标训练数据在各教师分类模型上的修正后分类结果进行融合,得到所述目标训练数据对应的融合后分类结果。
所述第二融合模块包括:分类结果修正子模块和分类结果融合子模块。
所述分类结果修正子模块,用于针对所述多个教师分类模型分别针对所述目标训练数据预测的分类结果的每个待修正分类结果:确定所述待修正分类结果中的最大值对应的类别与所述目标训练数据标注的类别是否一致;若否,将所述待修正分类结果中与所述目标训练数据标注的类别一致的类别对应的值与所述最大值调换。
所述分类结果融合子模块,用于根据所述目标训练数据在各教师分类模型上的修正后分类结果,确定所述多个教师分类模型分别对应的权重;按所述多个教师分类模型分别对应的权重,对所述目标训练数据在各教师分类模型上的修正后分类结果加权求和,加权求和后结果作为所述目标训练数据对应的融合后分类结果。
可选的,所述分类结果融合子模块在根据所述目标训练数据在各教师分类模型上的修正后分类结果,确定所述多个教师分类模型分别对应的权重时,具体用于针对每个待确定权重的目标教师分类模型,确定所述目标训练数据在所述目标教师分类模型上的修正后分类结果分别与所述目标训练数据在其它教师分类模型上的修正后分类结果的相似度的平均值,作为所述目标教师分类模型对应的平均相似度;对所述多个教师分类模型分别对应的平均相似度归一化,得到所述多个教师分类模型分别对应的权重。
相比于现有技术中基于多个分类模型的分类装置,由于本申请实施例提供的数据分类装置只需要利用一个学生分类模型对待分类数据进行计算,且只需要对一个学生分类模型针对待分类数据预测的分类结果进行计算,因此,耗费的计算资源和时间资源大大减少,并且,由于本申请实施例中学生分类模型的训练目标为,使其针对训练数据预测的分类结果趋于预先建立的多个教师分类模型分别针对训练数据预测的分类结果的融合结果,因此,基于训练得到的学生分类模型对待分类数据进行分类,能够获得较准确的类别。
第七实施例
本申请实施例还提供了一种数据分类设备,请参阅图7,示出了该数据分类设备的结构示意图,该数据分类设备可以包括:至少一个处理器701,至少一个通信接口702,至少一个存储器703和至少一个通信总线704;
在本申请实施例中,处理器701、通信接口702、存储器703、通信总线704的数量为至少一个,且处理器701、通信接口702、存储器703通过通信总线704完成相互间的通信;
处理器701可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器703可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
获取待分类数据;
将所述待分类数据输入预先建立的第一分类模型,得到分类结果,其中,所述分类结果包能够表征所述待分类数据属于各设定类别的可能性大小的数值,所述第一分类模型采用训练集中的训练数据训练得到,所述第一分类模型的训练目标为,使其针对所述训练数据预测的分类结果趋于预先建立的多个第二分类模型分别针对所述训练数据预测的分类结果的融合结果;
根据所述第一分类模型针对所述待分类数据预测的分类结果,确定所述待分类数据所属的类别。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
第八实施例
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的程序,所述程序用于:
获取待分类数据;
将所述待分类数据输入预先建立的第一分类模型,得到分类结果,其中,所述分类结果包能够表征所述待分类数据属于各设定类别的可能性大小的数值,所述第一分类模型采用训练集中的训练数据训练得到,所述第一分类模型的训练目标为,使其针对所述训练数据预测的分类结果趋于预先建立的多个第二分类模型分别针对所述训练数据预测的分类结果的融合结果;
根据所述第一分类模型针对所述待分类数据预测的分类结果,确定所述待分类数据所属的类别。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。