[0001]
本发明涉及互联网技术领域,尤其涉及一种模型训练方法、数据处理方法、分类方法、装置、设备。
背景技术:[0002]
在机器学习问题中,往往假设源域数据(也俗称为训练集)和目标域数据(也俗称为测试集)的数据分布是一致的,在源域数据上训练模型,在目标域数据上进行测试。然而,实际上,测试场景往往是非可控的,目标域数据和源域数据的数据分布具有很大差异,这时候就会出现过拟合问题:模型在目标域数据上效果不理想。
[0003]
以常见的分类问题来说,比如需要识别图像中物体所属的类别,模型在目标域数据上的不理想效果体现为:基于大量的被标注类别的训练图像来训练出的模型在未被标注的测试图像上的分类结果不准确。
技术实现要素:[0004]
本发明实施例提供一种模型训练方法、数据处理方法、分类方法、装置、设备,用以实现目标域数据的准确分类。
[0005]
第一方面,本发明实施例提供一种分类方法,该方法包括:
[0006]
获取目标域中的数据;
[0007]
通过特征提取器对所述数据进行特征提取,其中,提取出的特征在源域和所述目标域具有一致的数据分布;
[0008]
将提取出的特征输入到分类器,以通过所述分类器确定所述数据对应的类别。
[0009]
第二方面,本发明实施例提供一种分类装置,该装置包括:
[0010]
数据获取模块,用于获取目标域中的数据;
[0011]
特征提取模块,用于通过特征提取器对所述数据进行特征提取,其中,提取出的特征在源域和所述目标域具有一致的数据分布;
[0012]
分类判别模块,用于将提取出的特征输入到分类器,以通过所述分类器确定所述数据对应的类别。
[0013]
第三方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现第一方面中的分类方法。
[0014]
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现第一方面中的分类方法。
[0015]
第五方面,本发明实施例提供一种数据处理方法,该方法包括:
[0016]
获取目标域中的数据;
[0017]
通过特征提取器对所述数据进行特征提取,其中,提取出的特征在源域和所述目
标域具有一致的数据分布;
[0018]
将提取出的特征输入到分类器,以通过所述分类器确定所述数据对应的类别;
[0019]
根据所述数据对应的类别对所述数据进行处理。
[0020]
第六方面,本发明实施例提供一种数据处理装置,该装置包括:
[0021]
获取模块,用于获取目标域中的数据;
[0022]
分类模块,用于通过特征提取器对所述数据进行特征提取,将提取出的特征输入到分类器,以通过所述分类器确定所述数据对应的类别,其中,提取出的特征在源域和所述目标域具有一致的数据分布;
[0023]
处理模块,用于根据所述数据对应的类别对所述数据进行处理。
[0024]
第七方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现第五方面中的数据处理方法。
[0025]
第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现第五方面中的数据处理方法。
[0026]
第九方面,本发明实施例提供一种数据处理方法,该方法包括:
[0027]
接收第一图片;
[0028]
对所述第一图片进行特征提取;
[0029]
根据提取出的特征确定所述第一图片的类别;
[0030]
输出所述第一图片的类别;
[0031]
其中,从具有类别标签的第二图片中提取出的特征与从所述第一图片中提取出的特征具有一致的数据分布。
[0032]
第十方面,本发明实施例提供一种模型训练方法,该方法包括:
[0033]
获取作为训练样本的源域数据和目标域数据;
[0034]
根据所述源域数据和所述目标域数据训练第一分类器和第二分类器,以使所述第一分类器和所述第二分类器能够对所述源域数据和所述目标域数据进行域分类;
[0035]
以使所述第一分类器和所述第二分类器不能区分出所述源域数据和所述目标域数据的数据类别为目标,训练特征提取器;
[0036]
所述模型包括所述特征提取器以及所述第一分类器和所述第二分类器中的至少一个。
[0037]
其中,以使所述第一分类器和所述第二分类器不能区分出所述源域数据和所述目标域数据的数据类别为目标,训练特征提取器,亦即以使特征提取器学习到所述源域数据和所述目标域数据的相同类别对应的数据特征为目标,训练特征提取器。
[0038]
本发明实施例中,源域是指训练样本所在的领域,具有丰富的监督信息,即训练样本是有类别标签的,而目标域是测试样本所在的领域,测试样本无类别标签。源域和目标域往往具有相同的分类任务,即源域和目标域对应的数据类别可以认为是一致的,但是,两者的数据分布不同。针对需要进行分类识别的目标域中的数据,可以先通过训练得到的特征提取器对该数据进行特征提取,经过训练使得该特征提取器所提取出的特征在源域和目标域上具有一致的数据分布,从而,将提取出的特征输入到分类器时,分类器便可以准确地确
定出该目标域的数据所对应的类别。
附图说明
[0039]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]
图1为本发明实施例提供的一种分类方法的流程图;
[0041]
图2为本发明实施例提供的对抗训练的原理图;
[0042]
图3为本发明实施例提供的一种分类器的训练方法的流程图;
[0043]
图4为本发明实施例提供的一种模型训练过程的网络结构示意图;
[0044]
图5为本发明实施例提供的一种域分类器的训练方法的流程图;
[0045]
图6为本发明实施例提供的一种域分类器的训练过程示意图;
[0046]
图7为本发明实施例提供的一种特征提取器的训练方法的流程图;
[0047]
图8为本发明实施例提供的一种特征提取器的训练过程示意图;
[0048]
图9为本发明实施例提供的一种分类装置的结构示意图;
[0049]
图10为与图9所示实施例提供的分类装置对应的电子设备的结构示意图。
[0050]
图11为本发明实施例提供的一种数据处理方法的流程图;
[0051]
图12为本发明实施例提供的一种数据处理场景的示意图;
[0052]
图13为本发明实施例提供的另一种数据处理方法的流程图;
[0053]
图14为本发明实施例提供的另一种数据处理方法的流程图;
[0054]
图15为本发明实施例提供的另一种数据处理场景的示意图;
[0055]
图16为本发明实施例提供的又一种数据处理场景的示意图;
[0056]
图17为本发明实施例提供的又一种数据处理场景的示意图;
[0057]
图18为本发明实施例提供的又一种数据处理场景的示意图;
[0058]
图19为本发明实施例提供的一种数据处理装置的结构示意图;
[0059]
图20为与图19所示实施例提供的数据处理装置对应的电子设备的结构示意图。
具体实施方式
[0060]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061]
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
[0062]
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述
的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
[0063]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
[0064]
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
[0065]
本发明实施例提供的分类方法可以由一电子设备来执行,该电子设备可以是诸如pc机、笔记本电脑、智能手机等终端设备,也可以是服务器。该服务器可以是包含一独立主机的物理服务器,或者也可以为主机集群承载的虚拟服务器,或者也可以为云服务器。
[0066]
本发明实施例提供的分类方法可以适用于任意分类任务场景,比如,对图像中包含的物体进行分类(简称图像分类)等。
[0067]
下面结合以下实施例对该分类方法的执行过程进行说明。
[0068]
先对本文中涉及到的几个核心概念进行说明:
[0069]
本文中,源域是指训练样本所在的领域,具有丰富的监督信息,即训练样本是有类别标签的,而目标域是测试样本所在的领域,测试样本无类别标签。
[0070]
在分类应用场景中,源域和目标域往往具有相同的分类任务,即源域和目标域对应的数据类别可以认为是一致的,但是,源域和目标域的数据分布不同。
[0071]
其中,源域和目标域对应的数据类别是一致的,举例来说,假设源域的分类任务是需要识别源域数据是属于a、b和c三个类别中哪个类别的,那么目标域数据的分类任务亦可以是识别目标域数据是属于a、b和c三个类别中哪个类别的。当然,源域和目标域对应的数据类别是一致的,也可以包括源域数据对应的类别与目标域数据对应的类别有部分重叠的情况。
[0072]
在现有技术中,由于源域和目标域的数据分布不同,源域和目标域的数据会被映射到不同的特征空间,从而导致使用基于源域数据训练得到的模型在对目标域的数据进行分类时,分类结果不准确。
[0073]
为了获得良好的目标域数据的分类结果,下面结合以下实施例对本文提供的分类方法的执行过程进行说明。
[0074]
图1为本发明实施例提供的一种分类方法的流程图,如图1所示,该方法包括如下步骤:
[0075]
101、获取目标域中的数据。
[0076]
102、通过特征提取器对目标域的数据进行特征提取,其中,提取出的特征在源域和目标域具有一致的数据分布。
[0077]
103、将提取出的特征输入到分类器,以通过分类器确定该目标域的数据所对应的类别。
[0078]
以图像分类的应用场景为例,此时,源域的数据可以是用于对模型(即用于进行分类的模型)进行训练的被标注的图像。该标注是指对作为训练样本的图像进行类别标注,使得图像具有类别标签,以便基于此对模型进行有监督的训练。相对地,目标域的数据是指对模型进行测试的图像,这些测试用的图像没有标注信息。
[0079]
其中,被训练的模型,从功能上拆分,可以分为两个部分:特征提取器和分类器。其中,特征提取器用于对输入的数据进行特征提取,被提取出的特征输入到分类器,由分类器根据输入的特征来识别相应数据所对应的类别。值得说明的是,本发明实施例中,在模型训练阶段,作为训练样本的数据包括源域的数据以及目标域的数据。而步骤101中的目标域中的数据是指在模型训练完毕后,实际使用该模型的阶段,输入到模型中的需要被分类的数据,由于该数据是没有标注信息的,因此称为目标域的数据。
[0080]
对特征提取器和分类器的训练过程将在后续实施例中进行说明。
[0081]
在实际应用中,特征提取器和分类器可以实现为卷积神经网络模型,其中,卷积神经网络模型的多层卷积层作为特征提取器,多层卷积层后连接的全连接层作为分类器。当然,也可以采用其他神经网络模型作为特征提取器,不以卷积神经网络模型为限。
[0082]
针对实际应用中需要进行分类识别的目标域中的数据,比如目标域中的任一张图像,可以先通过训练得到的特征提取器对该数据进行特征提取。经过训练使得该特征提取器所提取出的特征在源域和目标域上具有一致的数据分布,也就是说,该特征提取器可以将源域和目标域中的数据映射到相同的特征空间,从而,将提取出的特征输入到分类器时,分类器便可以准确地确定出该目标域的数据所对应的类别。
[0083]
下面对特征提取器和分类器的训练过程进行说明。
[0084]
首先,该训练过程的核心思想是:利用有标签的(即被标注的)源域数据和无标签的(即未被标注的)目标域数据训练一个可以在目标域数据上具有良好分类性能的模型,该模型由训练得到的特征提取器和分类器组成。
[0085]
而为了最终获得在目标域数据上具有良好分类性能的模型,本文采用了对抗训练的方法。
[0086]
该对抗训练的方法的最终目的是实现源域数据和目标域数据的类别层级的域对齐,也就是说,实现源域数据和目标域数据在类别层级的数据分布一致性。具体地,通过训练希望特征提取器可以从源域和目标域数据中提取出具有域不变性的特征,而分类器可以区分源域的特征和目标域的特征,由此可见,特征提取器和分类器的目标是相反的,因此称为对抗训练,也可以称为博弈训练。
[0087]
其中,域不变性的特征,是指从源域数据中提取的特征与从目标域数据中提取的特征在同一特征空间内,即具有一致的数据分布。另外,实现域不变性的特征的提取,亦即实现源域数据和目标域数据的类别层级的域对齐,可以简单理解为需要让特征提取器学习到两个域的相同类别的数据所具有的特征,比如两个域的类别a的数据所具有的特征以及两个域的类别b的数据所具有的特征。
[0088]
为便于理解,形象地说,如图2所示,上述对抗训练的目的是:基于源域和目标域数据,使特征提取器能够提取出令分类器区分不出来是属于哪个域的哪个类别的特征——具有域不变性的特征;不管特征提取器提取出的特征如何,使分类器能够准确识别出输入数据所属的域及具体的类别。
[0089]
为实现该目的,可以参见如下的实施例来对特征提取器和分类器进行训练。
[0090]
图3为本发明实施例提供的一种分类器的训练方法的流程图,如图3所示,分类器的训练过程可以包括如下步骤:
[0091]
301、获取源域的被标注的第一训练样本。
[0092]
以图像分类场景为例来说,假设分类任务对应的类别数量为3,并假设这3个类别分别为a、b和c。那么,可以理解的是,上述源域的第一训练样本由若干具有类别标签的图像组成。
[0093]
假设这三个类别分别是自行车、杯子、双肩包,那么可以收集大量的自行车图片、杯子图片、双肩包图片,并为每个图片进行相应类别标签的标注,从而获得大量的第一训练样本。
[0094]
302、通过特征提取器对第一训练样本进行特征提取。
[0095]
如前文所述,该特征提取器可以实现为多层卷积层,这些卷积层的初始参数可以被随机初始化,通过卷积运算对输入的作为第一训练样本的图像进行特征提取的过程,属于现有技术,在此不赘述。
[0096]
这里仅强调的是,实际应用中,为了避免不同的图像在尺寸方便的差异对训练过程的影响,可以预先对作为第一训练样本的大量图像进行一些预处理,比如将这些图像都缩放为相同的尺寸。
[0097]
303、将提取出的特征分别输入到第一分类器和第二分类器,以分别通过第一分类器和第二分类器预测第一训练样本的类别。
[0098]
本发明实施例中,基于源域数据即第一训练样本训练两个分类器,为便于理解,结合图4来说明特征提取器和这两个分类器的结构关系,如图4所示,特征提取器的输出分别与两个分类器的输入连接。在图4中,第一分类器表示为cs,第二分类器表示为ct。
[0099]
实际应用中,第一分类器和第二分类器都可以实现为与作为特征提取器的多层卷积层连接的全连接层(fc层)。也就是说,第一分类器和第二分类器具有相同的网络结构,只是,第一分类器和第二分类器可以具有不同的初始化参数。
[0100]
值得说明的是,之所以利用源域的第一训练样本来对第一分类器和第二分类器进行训练,是因为源域的第一训练样本才具有类别标签的标注信息,而目标域的训练样本(称为第二训练样本)没有类别标签的标注信息从而无法对第一分类器和第二分类器进行有监督的训练。
[0101]
基于此,假设当前输入的第一训练样本为对应于类别a的某个图像,经过特征提取器的特征提取处理后,将提取出的特征分别输入到第一分类器和第二分类器,以分别通过第一分类器和第二分类器预测第一训练样本的类别,进而基于这两个分类器各自对应的预测结果相应地对这两个分类器的参数进行调整。
[0102]
基于具有类别标签的源域数据进行训练得到的上述两个分类器此时只是在源域上具有良好的分类效果,但是并不能在目标域数据上获得良好的分类效果。
[0103]
而要想在目标域数据上获得良好的分类效果,需要实现上述提到的类别层级的域对齐。通过对抗训练才能实现类别层级的域对齐,而对抗训练的基础便是:得到一个能够区分源域和目标域的各类别的分类器,因为以此为对抗目标,才会使得特征提取器学习到不能区分源域和目标域的相同类别的特征——域不变性的特征。
[0104]
本发明实施例中,在训练得到上述第一分类器和第二分类器的基础上,基于这两个分类器来训练得到上述“能够区分源域和目标域的各类别的分类器”。从功能上说,如果将上述第一分类器和第二分类器称为类别分类器,即用于识别数据所属的具体类别的分类器,那么,能够区分源域和目标域的各类别的分类器可以称为域分类器,即用于区分不同域
的分类器,为便于描述以及与第一分类器和第二分类器相区别,将该域分类器以cst来表示。下面结合图5来说明该域分类器的训练过程。
[0105]
首先,值得说明的是,如图4所示,该域分类器cst其实是由第一分类器cs和第二分类器ct组成的。
[0106]
图5为本发明实施例提供的一种域分类器的训练方法的流程图,在基于图3所示实施例得到第一分类器cs和第二分类器ct的基础上,如图5所示,域分类器的训练过程可以包括如下步骤:
[0107]
501、通过特征提取器对源域的被标注的第一训练样本进行特征提取。
[0108]
502、将提取出的特征分别输入到第一分类器和第二分类器,拼接第一分类器输出的第一特征向量和第二分类器输出的第二特征向量,以得到第三特征向量,对第三特征向量进行分类运算处理,以得到第一概率向量。
[0109]
503、根据第一训练样本被标注的类别,确定第一概率向量中与该类别对应的第一概率值,第一概率值与第一分类器对应,以令第一概率值最大,第一概率值向量中剩余概率值最小为目标,调整第一分类器和第二分类器的参数。
[0110]
504、通过特征提取器对目标域的未被标注的第二训练样本进行特征提取。
[0111]
505、将提取出的特征分别输入到第一分类器和第二分类器,拼接第一分类器输出的第四特征向量和第二分类器输出的第五特征向量,以得到第六特征向量,对第六特征向量进行分类运算处理,以得到第二概率向量。
[0112]
506、以令第二概率向量中与第一分类器对应的各概率值的累积和最小,以及第二概率向量中与第二分类器对应的各概率值的累加和最大为目标,调整第一分类器和第二分类器的参数。
[0113]
上述步骤501-503是当输入数据为源域的第一训练样本时所执行的步骤,步骤504-506是当输入数据为目标域的第二训练样本时所执行的步骤,在执行时序上没有严格的限定,视输入数据而定。
[0114]
可以理解的是,经过上述训练过程处理后得到的第一分类器cs和第二分类器ct即组成域分类器cst。
[0115]
基于步骤503和506的调整目标进行参数调整后的第一分类器cs和第二分类器ct可以认为是分别对应于源域和目标域,第一分类器cs对应于源域,第二分类器ct对应于目标域。
[0116]
值得说明的是,前述图1所示实施例中的分类器可以是经过训练后的第一分类器cs或第二分类器ct,因为实际上,虽然经过训练后这两个分类器分别对应的参数是有差异的,但是他们对应同一张目标域的图片来说,预测出的类别确实一致的。
[0117]
为便于理解,结合图6来示例性说明域分类器cst的训练过程。假设源域和目标域具有相同的分类类别:a、b和c,那么可以理解的是,不管当前的输入数据是源域的第一训练样本还是目标域的第二训练样本,第一分类器cs和第二分类器ct对输入数据进行类别预测而输出的都是维数为3的向量。
[0118]
另外,值得说明的是,本实施例中是以这两个分类器都实现为全连接层为例进行的说明。基于此,在图6中,假设当前的输入数据为源域的某个第一训练样本:图像i,并假设该图像i对应的类别标签为类别a,并假设此时第一分类器cs输出的第一特征向量为[ds1,
ds2,ds3],假设此时第二分类器ct输出的第二特征向量为[dt1,dt2,dt3],由于域分类器cst是由第一分类器cs和第二分类器ct组成的,可以将第一特征向量[ds1,ds2,ds3]和第二特征向量[dt1,dt2,dt3]的拼接结果:第三特征向量=[ds1,ds2,ds3,dt1,dt2,dt3]经分类运算比如softmax运算处理后作为域分类器cst的概率输出结果:第一概率向量=[ps1,ps2,ps3,pt1,pt2,pt3]。其中,ps1和pt1分别是对应于类别a对应的概率值,ps2和pt2分别是对应于类别b对应的概率值,ps3和pt3分别是对应于类别c对应的概率值。ps1,ps2和ps3对应于第一分类器cs,pt1,pt2和pt3对应于第二分类器ct。
[0119]
可以理解的是,输入数据其实是自带域标注信息的,即来自源域的第一训练样本默认被关联有源域的标签,来自目标域的第二训练样本默认被关联有目标域的标签。
[0120]
从而,当输入数据为源域中的图像i时,实际上图像i关联有两个标签:域标签和类别标签,基于这两个标签的监督,实际上可以训练域分类器cst以实现区分不同域的各类别的目的。
[0121]
此时,为实现域分类器cst的区分不同域的各类别的目的,可以根据如下方式来调整第一分类器cs和第二分类器ct的参数,亦即调整域分类器cst的参数:
[0122]
根据图像i被标注的类别a,确定第一向量中与该类别a对应的第一概率值,以令该第一概率值最大,第一向量和第二向量中剩余的概率值最小为目标,调整第一分类器和第二分类器的参数。其中,在上述举例中,该第一概率值为ps1,令第一概率值最大可以令ps1=1,其他概率值最小可以是将其他概率值设置为0。
[0123]
可以理解的是,虽然ps1和pt1均是对应于类别a的概率值,但是因为图像i是来自源域的,因此,为了使得域分类器cst能够准确区分来自源域和目标域的数据,令源域的类别a对应的概率值ps1=1。
[0124]
另外,令ps1=1,其他的概率值设置为0的过程,可以细分为两个层面来理解:域级层面以及类别层面。具体来说,在域级层面,仅是为了让域分类器cst能够区分源域和目标域,为此,当输入数据为来自源域的图像i时,可以以第一向量的总和作为源域对应的预测概率,以第二向量的总和作为目标域对应的预测概率,以令源域对应的预测概率为1,目标域对应的预测概率为0为目标来调整第一分类器cs和第二分类器ct的参数即可使得域分类器cst能够区分出源域和目标域。在类别层面,是为了让域分类器cst能够区分出具体的类别,为此,当输入数据为来自源域的图像i时,若ps1=1,其他的概率值为0,则说明域分类器cst不仅能够区分出该输入数据是属于哪个域的,还能够准确区分出其对应的类别。
[0125]
上述对输入数据为源域中的图像i时,应该如何调整域分类器cst的参数的过程进行了示例性说明。那么,相对地,在图6中,若当前的输入数据为目标域的某个第二训练样本:图像j,则假设此时第一分类器cs输出的第四特征向量为[ds4,ds5,ds6],假设此时第二分类器ct输出的第五特征向量为[dt4,dt5,dt6],同样地,可以拼接第四特征向量和第五特征向量以得到第六特征向量[ds4,ds5,ds6,dt4,dt5,dt6],对第六特征向量进行分类运算处理后得到域分类器cst此时的输出结果:第二概率向量=[ps4,ps5,ps6,pt4,pt5,pt6]。
[0126]
由于输入数据是带有域标签的,从而,当输入数据为目标域中的图像j时,由于图像j来自于未被标注的目标域,因此,图像j仅关联有一个标签:域标签,基于这这个标签的监督,可以训练域分类器cst来实现区分不同域的目的。
[0127]
此时,为实现域分类器cst的区分不同域的目的,可以根据如下方式来调整第一分
类器cs和第二分类器ct的参数,亦即调整域分类器cst的参数:
[0128]
以令第二概率向量中与第一分类器对应的各概率值的累积和最小,以及第二概率向量中与第二分类器对应的各概率值的累加和最大为目标,调整第一分类器和第二分类器的参数。其中,在上述举例中,第二概率向量中与第一分类器对应的各概率值的累积和为:ps4+ps5+ps6,第二概率向量中与第二分类器对应的各概率值的累积和为:pt4+pt5+pt6。令第二概率向量中与第一分类器对应的各概率值的累积和最小可以是:ps4+ps5+ps6=0。令第二概率向量中与第二分类器对应的各概率值的累积和可以是:pt4+pt5+pt6=1。可以理解的是,ps4+ps5+ps6是源域对应的概率,pt4+pt5+pt6是目标域对应的概率。
[0129]
综上,通过综合使用源域和目标域的训练样本,对第一分类器和第二分类器亦即对域分类器进行训练,可以使得训练得到的域分类器能够很好地区分不同域的特征,甚至可以很好地区分不同域的相同类别所对应的特征。其中,以源域和目标域都具有类别a和b为例,区分不同域的相同类别所对应的特征是指,能够区分源域的类别a和目标域的类别a所对应的特征,以及能够区分源域的类别b和目标域的类别b所对应的特征。
[0130]
在实现了让域分类器能够很好地区分不同域的相同类别所对应的特征的基础上,通过对抗训练特征提取器,便可以使得特征提取器能够学习到源域和目标域的相同类别共同对应的数据特征,比如学习到源域和目标域的类别a所共同对应的数据特征,以及学习到源域和目标域的类别b所共同对应的数据特征。其中,该对抗训练过程也可以描述为以使第一分类器cs和第二分类器ct不能区分出源域的第一训练样本和目标域的第二训练样本的数据类别为目标,训练特征提取器。对特征提取器进行对抗训练的过程可以参见图7所示。
[0131]
图7为本发明实施例提供的一种特征提取器的训练方法的流程图,在基于前述实施例得到域分类器cst的基础上,如图7所示,特征提取器的训练过程可以包括如下步骤:
[0132]
701、通过特征提取器对源域的被标注的第一训练样本进行特征提取。
[0133]
702、将提取出的特征分别输入到第一分类器和第二分类器,拼接第一分类器输出的第一特征向量和第二分类器输出的第二特征向量,以得到第三特征向量,对第三特征向量进行分类运算处理,以得到第一概率向量。
[0134]
703、根据第一训练样本被标注的类别,确定第一概率向量中与该类别对应的第一概率值,第一概率值与第一分类器对应,以令第一概率值最大,第一概率值向量中剩余概率值最小为目标,调整第一分类器和第二分类器的参数。
[0135]
704、根据第一训练样本被标注的类别,确定第一概率向量中与该类别对应的第二概率值,第二概率值与第二分类器对应,以令第一概率值和第二概率值均为0.5为目标,调整特征提取器的参数。
[0136]
其中,步骤701-703的执行可以参见前述实施例中的描述,在此不赘述。
[0137]
如前文所述,通过步骤701-703的执行,可以基于源域的第一训练样本使得域分类器能够区分出源域和目标域的相同类别所对应的数据特征。此时,对特征提取器进行对抗训练的目的是:根据源域的第一训练样本对特征提取器进行对抗训练,以使特征提取器学习到源域和目标域的相同类别共同对应的数据特征,从而,使得域分类器不能再区分出源域和目标域的各相同类别。
[0138]
结合图8来示例性说明特征提取器的对抗训练过程,其中。仍以图6中的假设情况为例来说明。
[0139]
仍旧假设当前的输入数据为源域的某个第一训练样本:图像i,并假设该图像i对应的类别标签为类别a。假设此时域分类器cst的输出结果为:第一概率向量=[ps1,ps2,ps3,pt1,pt2,pt3]。如前文所述,以令ps1=1,其他概率值为0为目标,可以使得域分类器cst实现区分不同域的各类别的目的。为了与之对抗,需要训练特征提取器,使之从图像i中提取出的特征输入到域分类器cst后,域分类器cst不能区分出图像i是对应于哪个域中的哪个类别。
[0140]
为实现该目的,如图8中所示,可以根据图像i被标注的类别a,确定第一概率向量中与该类别a对应的第二概率值pt1,第二概率值与第二分类器对应,以令第一概率值ps1和第二概率值pt1均为0.5为目标,调整特征提取器的参数。令ps1=pt1=0.5,其他概率值为0,说明此时域分类器无法区分出图像i是对应于哪个域中的哪个类别。
[0141]
705、通过特征提取器对目标域的未被标注的第二训练样本进行特征提取。
[0142]
706、将提取出的特征分别输入到第一分类器和第二分类器,拼接第一分类器输出的第四特征向量和第二分类器输出的第五特征向量,以得到第六特征向量,对第六特征向量进行分类运算处理,以得到第二概率向量。
[0143]
707、以令第二概率向量中与第一分类器对应的各概率值的累积和最小,以及第二概率向量中与第二分类器对应的各概率值的累加和最大为目标,调整第一分类器和第二分类器的参数。
[0144]
708、以令第二概率向量中与第一分类器对应的各概率值的累积和,以及第二概率向量中与第二分类器对应的各概率值的累加和均为0.5为目标,调整特征提取器的参数,对第二概率向量中对应于相同类别的两个概率值相加,以得到第三概率向量;以令第三概率向量的熵最小为目标,调整特征提取器的参数。
[0145]
其中,步骤705-707的执行可以参见前述实施例中的描述,在此不赘述。通过步骤705-707的执行,可以基于目标域的第二训练样本使得域分类器能够区分出源域和目标域所对应的数据特征。此时,对特征提取器进行对抗训练的目的是:根据目标域的第二训练样本对特征提取器进行对抗训练,以使特征提取器学习到源域和目标域的相同类别共同对应的数据特征,从而,使得域分类器不能再区分出源域和目标域。
[0146]
仍旧以当前的输入数据为目标域的某个第二训练样本:图像j为例,仍旧假设此时域分类器cst的输出结果为:第二概率向量=[ps4,ps5,ps6,pt4,pt5,pt6]。
[0147]
如前文所述,以令ps4+ps5+ps6=0,pt4+pt5+pt6=1为目标,可以使得域分类器cst实现区分不同域的目的。为了与之对抗,需要训练特征提取器,使之从图像j中提取出的特征输入到域分类器cst后,域分类器cst不能区分出图像j是对应于哪个域。
[0148]
为实现该目的,如图8中所示,可以令ps4+ps5+ps6=0.5,pt4+pt5+pt6=0.5为目标,调整特征提取器的参数。其中,令ps4+ps5+ps6=0.5,pt4+pt5+pt6=0.5的目的是,为了让域分类器cst不能区分出源域和目标域。
[0149]
在此基础上,进一步地,对第二概率向量中对应于相同类别的两个概率值相加,以得到第三概率向量,以令第三概率向量的熵最小为目标,调整特征提取器的参数。其中,在假设源域和目标域均对应有类别a、b、c这三个类别的情况下,第二概率向量中的ps4,ps5,ps6是依次对应于类别a、b、c这三个类别的概率值,且这三个概率值与第一分类器对应;pt4,pt5,pt6也是依次对应于类别a、b、c这三个类别的概率值,且这三个概率值与第二分类
器对应。对第二概率向量中对应于相同类别的两个概率值相加是指:将ps4与pt4相加,假设结果记为p4;将ps5与pt5相加,假设结果记为p5;将ps6与pt6相加,假设结果记为p6,从而,第三概率向量为[p4,p5,p6]。进而,计算第三概率向量对应的熵,以该熵最小为目标,调整特征提取器的参数。
[0150]
综上,基于源域和目标域的训练样本对特征提取器进行如上的对抗训练,便可以使得特征提取器能够学习到源域和目标域的具有域不变性的特征,基于该性质的特征提取能力,便可以使得训练得到的特征提取器和分类器在目标域上具有良好的分类性能,不会受到源域和目标域的数据分布不一致的干扰而影响分类性能。
[0151]
另外,在实际应用中,上述包含特征提取器和分类器的模型的训练过程可以在服务器中进行,需要使用训练得到的模型的终端设备可以将该模型下载到本地,从而,可以在终端设备侧使用该模型。
[0152]
以下将详细描述本发明的一个或多个实施例的分类装置。本领域技术人员可以理解,这些分类装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
[0153]
图9为本发明实施例提供的一种分类装置的结构示意图,如图9所示,该分类装置包括:数据获取模块11、特征提取模块12、分类判别模块13。
[0154]
数据获取模块11,用于获取目标域中的数据。
[0155]
特征提取模块12,用于通过特征提取器对所述数据进行特征提取,其中,提取出的特征在源域和所述目标域具有一致的数据分布。
[0156]
分类判别模块13,用于将提取出的特征输入到分类器,以通过所述分类器确定所述数据对应的类别。
[0157]
可选地,所述装置还包括:分类器训练模块,用于获取所述源域的被标注的第一训练样本;通过特征提取器对所述第一训练样本进行特征提取;将提取出的特征分别输入到第一分类器和第二分类器,以分别通过所述第一分类器和所述第二分类器预测所述第一训练样本的类别,所述分类器是所述第一分类器或所述第二分类器。
[0158]
可选地,所述分类器训练模块还用于:拼接所述第一分类器输出的第一特征向量和所述第二分类器输出的第二特征向量,以得到第三特征向量;对所述第三特征向量进行分类运算处理,以得到第一概率向量;根据所述第一训练样本被标注的类别,确定所述第一概率向量中与所述类别对应的第一概率值,所述第一概率值与所述第一分类器对应;以令所述第一概率值最大,所述第一概率向量中剩余的概率值最小为目标,调整所述第一分类器和所述第二分类器的参数。
[0159]
可选地,所述装置还包括:特征提取器训练模块,用于根据所述第一训练样本对所述特征提取器进行对抗训练,以使所述特征提取器学习到所述源域和所述目标域的相同类别共同对应的数据特征。
[0160]
其中,可选地,所述特征提取器训练模块具体可以用于:根据所述第一训练样本被标注的类别,确定所述第一概率向量中与所述类别对应的第二概率值,所述第二概率值与所述第二分类器对应;以令所述第一概率值和所述第二概率值均为0.5为目标,调整所述特征提取器的参数。
[0161]
另外,可选地,所述分类器训练模块还可以用于:获取所述目标域的未被标注的第二训练样本;通过所述特征提取器对所述第二训练样本进行特征提取;将提取出的特征分
别输入到所述第一分类器和所述第二分类器,以分别通过所述第一分类器和所述第二分类器预测所述第二训练样本的类别。
[0162]
可选地,所述分类器训练模块还可以用于:拼接所述第一分类器输出的第四特征向量和所述第二分类器输出的第五特征向量,以得到第六特征向量;对所述第六特征向量进行分类运算处理,以得到第二概率向量;以令所述第二概率向量中与所述第一分类器对应的各概率值的累积和最小,以及所述第二概率向量中与所述第二分类器对应的各概率值的累加和最大为目标,调整所述第一分类器和所述第二分类器的参数数。
[0163]
可选地,所述特征提取器训练模块还可以用于:根据所述第二训练样本对所述特征提取器进行对抗训练,以使所述特征提取器学习到所述源域和所述目标域的相同类别共同对应的数据特征。
[0164]
其中,可选地,所述特征提取器训练模块还可以用于:以令所述第二概率向量中与所述第一分类器对应的各概率值的累积和,以及所述第二概率向量中与所述第二分类器对应的各概率值的累加和均为0.5为目标,调整所述特征提取器的参数;对所述第二概率向量中对应于相同类别的两个概率值相加,以得到第三概率向量;以令所述第三概率向量的熵最小为目标,调整所述特征提取器的参数。
[0165]
图9所示分类装置可以执行前述各实施例中提供的方法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。
[0166]
在一个可能的设计中,上述图9所示的分类装置的结构可实现为一电子设备。如图10所示,该电子设备可以包括:处理器21、存储器22。其中,所述存储器22上存储有可执行代码,当所述可执行代码被所述处理器21执行时,至少使所述处理器21可以实现如前述实施例中提供的分类方法。
[0167]
其中,该电子设备的结构中还可以包括通信接口23,用于与其他设备或通信网络通信。
[0168]
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行前述各实施例中提供的分类方法。
[0169]
图11为本发明实施例提供的一种数据处理方法的流程图,如图11所示,该数据处理方法可以包括如下步骤:
[0170]
1101、接收第一图片。
[0171]
1102、对第一图片进行特征提取。
[0172]
1103、根据提取出的特征确定第一图片的类别。
[0173]
1104、输出第一图片的类别,其中,从具有类别标签的第二图片中提取出的特征与从第一图片中提取出的特征具有一致的数据分布。
[0174]
本实施例提供的数据处理方法具体是对图片数据进行类别识别处理,可以用在看图识物的实际场景中,比如教孩子识别物体。
[0175]
服务端的具体的执行过程可以参考图12中虚线引出的框图中所示,在图12中,假设当前终端设备的屏幕中呈现一张图片,记为图片q,即为上述步骤中的第一图片。进而,通过前文中训练得到的特征提取器对该图片q进行特征提取,假设提取出的特征记为特征a
’
。进而,将特征a
’
输入到分类器(可以是前文中提到的第二分类器ct)中,由分类器输出该图
片q对应的类别,假设为类别x。进而,将图片q的分类结果:类别x反馈到终端设备进行显示或语音播报,使得用户得知该图片q的类别。
[0176]
其中,结合前文对特征提取器和分类器的训练过程的介绍,可以理解的是,训练得到的特征提取器从未打标签的图片,比如图片q中提取的特征a
’
与从打标签的图片(比如图12中示意的打上类别x标签的图片p)中提取到的特征a具有一致的数据分布。也就是说,特征提取器能够使得打标签数据和非打标签数据在类别层级上具有一致的数据分布特性。以上述特征a
’
和特征a为例来说,所谓的数据分布一致性是指这两个特征的边缘分布和条件分布的联合分布相同。
[0177]
其中,简单来说,假设将边缘分布表示为p(x),x表示提取出的特征;将条件分布可以表示为p(y|x),其中,y表示类别。那么,这两个分布的联合分布即为p(xy)。如果上述特征a
’
和特征a的边缘分布一致,比如都为高斯分布,并且,条件分布一致,即在相同坐标处对应的类别是一致的,那么,这两个特征的边缘分布和条件分布的联合分布将相同。
[0178]
本实施例提供的数据处理方法也可以由终端设备执行,比如笔记本电脑、pc机、智能手机等。该终端设备中可以运行有从服务端下载的包含上述特征提取器和分类器的模型。
[0179]
图13为本发明实施例提供的另一种数据处理方法的流程图,如图13所示,该数据处理方法可以包括如下步骤:
[0180]
1301、获取视频中包含的多帧图像。
[0181]
1302、分别对多帧图像进行特征提取,其中,从具有类别标签的参考图像中提取出的特征与从多帧图像中提取出的特征具有一致的数据分布。
[0182]
1303、根据多帧图像各自对应的特征确定多帧图像分别对应的类别。
[0183]
1304、根据多帧图像分别对应的类别确定视频的类别。
[0184]
本实施例中,假设需要对视频进行二分类处理,二分类是指预测视频是属于类别a还是属于类别b。实际应用中,类别a比如可以是涉黄影片,则相应的,类别b为非涉黄影片。类别a比如可以是恐怖片,则类别b为非恐怖片。
[0185]
具体地,可以根据视频中包含的多帧图像各自对应的分类结果,即对应于类别a和类别b的分类结果,最终确定视频的分类结果。
[0186]
比如,当多帧图像中大部分图像对应于类别a,则最终确定视频对应的类别为类别a。
[0187]
实际应用中,可以随机地或以设定的采样间隔从视频中包含的全部图像中筛选出上述多帧图像。
[0188]
针对每帧图像的分类处理过程可以参见前述实施例中对图片q的处理过程,在此不赘述。
[0189]
只是,可以理解的是,在本实施例中“具有类别标签的参考图像”是指训练特征提取器和分类器的训练样本,对应于前文中的源域数据,而视频中的多帧图像相当于目标域数据。该参考图像可以是从已经具有类别标记的视频中提取出的图像。
[0190]
其中,步骤1302中是由训练得到的特征提取器进行多帧图像的特征提取的。步骤1303中是由训练得到的分类器进行多帧图像的分类识别的。
[0191]
而且,从具有类别标签的参考图像中提取出的特征与从多帧图像中提取出的特征
具有一致的数据分布,该数据分布的一致性的含义可参考前述实施例中的说明。
[0192]
图14为本发明实施例提供的另一种数据处理方法的流程图,如图14所示,该数据处理方法可以包括如下步骤:
[0193]
1401、获取目标域中的数据。
[0194]
1402、通过特征提取器对该数据进行特征提取,将提取出的特征输入到分类器,以通过分类器确定该数据对应的类别,其中,提取出的特征在源域和目标域具有一致的数据分布。
[0195]
1403、根据该数据对应的类别对该数据进行处理。
[0196]
步骤1401和步骤1402的执行过程可以参见前述其他实施例中的说明,在此不赘述。这里的源域和目标域也可以称为训练域和测试域。
[0197]
下面结合图15至图18来示例性说明基于上述目标域中的数据的类别确定结果如何对该数据进行处理。
[0198]
在图15中,假设这样的一种实际场景:向不同用户推送不同类别的广告素材。该场景中,服务器中存储有广告素材库,其中存储有大量的广告素材。广告素材可以是视频的广告素材,可以是图片的广告素材,也可以是文本的广告素材。图15中以图片的广告素材为例进行说明。服务器可以依次将广告素材库中的各图片输入到特征提取器中,经过特征提取器进行特征提取,将提取出的特征输入到分类器,由分类器输出各图片对应的类别,最终根据不同用户所偏好的类别,将相应类别的广告素材推送到对应的用户,比如图15中,将类别x对应的图片推送到偏好类别x的用户;将类别y对应的图片推送到偏好类别x的用户。
[0199]
在图16中,假设这样的一种实际场景:当前某用户正在访问某个视频网站,为了实现让合适的人群观看合适的视频的目的,需要对该用户进行类别识别,比如预先设定的用户类别可以包括儿童和非儿童两类,当然,也可以设定为包括老人、成年人、儿童三类,等等。在该场景中,上述目标域中的数据可以是当前采集的该用户的图像数据,从而,可以根据该图像数据对应的用户类别,确定该用户的数据访问权限,比如若当前该用户的类别识别结果表明该用户为儿童,则如果该儿童范围的是直播、包含暴力镜头的视频时,拒绝其访问。
[0200]
在图17中,假设这样的一种实际场景:网络上每条都会产生大量的文本数据,比如微博、博客、社交媒体、新闻网站上会存在大量的文本数据,这些文本数据比如可以是有关时事政治的、有关娱乐的、有关体育的、有关财经的,等等。为了让人们能够在海量的文本数据中获取到自己感兴趣领域的内容,当某个文本数据被发布时,可以对该文本数据进行所属文章领域的分类识别,比如是属于时事政治领域的,还是属于娱乐领域的,还是属于体育领域的,等等。基于此,上述目标域中的数据可以是某个文本数据,该文本数据的分类结果可以是该文本数据所述的文章领域。从而,响应于用户针对目标文章领域的搜索请求,若该文本数据对应的类别与该目标文章领域匹配,则输出该文本数据,以该文本数据作为搜索结果中的一项被反馈给用户。
[0201]
在图18中,假设这样的一种实际场景:某用户的比如手机、照相机等终端中存储有大量照片,该用户在整理这些照片时,希望对这些照片进行分类存储,分类存储的依据就是将包含同一类或同一个对象的照片划到一组内存储,该对象比如是狗狗、风景、人物,等等。在该场景中,上述目标域中的数据是指图17中示意的需要分类识别的多个图像数据,那么,
对目标域中的数据的处理即为:根据多个图像数据各自对应的类别对该多个图像数据进行分组,以将对应于同一类别的图像数据划到同一组。比如图18中示意的将多张狗狗的照片划到同一组,将多张风景照片划到同一组。
[0202]
图16至图18未必示意出特征提取器和分类器的工作过程,与前述其他实施例中的举例情形相似,可以参见理解。
[0203]
图19为本发明实施例提供的一种数据处理装置的结构示意图,如图19所示,该装置包括:获取模块31、分类模块32、处理模块33。
[0204]
获取模块31,用于获取目标域中的数据。
[0205]
分类模块32,用于通过特征提取器对所述数据进行特征提取,将提取出的特征输入到分类器,以通过所述分类器确定所述数据对应的类别,其中,提取出的特征在源域和所述目标域具有一致的数据分布。
[0206]
处理模块33,用于根据所述数据对应的类别对所述数据进行处理。
[0207]
可选地,所述数据为多个图像数据,所述处理模块33具体可以用于:根据所述多个图像数据各自对应的类别对所述多个图像数据进行分组,以将对应于同一类别的图像数据划到同一组。
[0208]
可选地,所述数据为用户的图像数据,所述处理模块33具体可以用于:根据所述图像数据对应的用户类别,确定所述用户的数据访问权限。
[0209]
可选地,所述数据为文本数据,所述处理模块33具体可以用于:响应于用户针对目标文章领域的搜索请求,若所述文本数据对应的类别与所述目标文章领域匹配,则输出所述文本数据。
[0210]
图19所示数据处理装置可以执行前述图14至图18所示实施例中示意的数据处理方法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。
[0211]
在一个可能的设计中,上述图19所示的分类装置的结构可实现为一电子设备。如图20所示,该电子设备可以包括:处理器41、存储器42。其中,所述存储器42上存储有可执行代码,当所述可执行代码被所述处理器41执行时,至少使所述处理器41可以实现如前述图14至图18所示实施例中示意的数据处理方法。
[0212]
其中,该电子设备的结构中还可以包括通信接口43,用于与其他设备或通信网络通信。
[0213]
另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行前述图14至图18所示实施例中示意的数据处理方法。
[0214]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的各个模块可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0215]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计
算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0216]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。