一种多标记学习方法与流程

文档序号:15096340发布日期:2018-08-04 14:39阅读:285来源:国知局

本发明涉及机器学习技术领域,尤其涉及一种多标记学习方法。



背景技术:

多标记学习是指为数据实例贴上多个不同的类标记,例如,将一篇新闻分类时,其可能涵盖经济,安全等多个主题;又如,对一段视频进行标注,视频的内容可能与科幻、喜剧、动作等主题相关。具体地,假设X=Rd表示d维的输入数据实例空间,Y={y1,y2,…,yq}表示具有q个标记的标记空间,多标记学习的任务是从多标记数据D={(xi,Yi)|1≤i≤m}中学习到函数h:X→Y。其中,对于每个多标记样本(xi,Yi),xi∈X,xi是一个d维向量(xi1,xi2,…,xid)T,Yi是实例xi具有的标记集合。在获得多标记函数h之后,对于一个新的实例x∈X,将x代入多标记分类器h(·),则给出x的预测标记集合。

现有的多标记学习算法主要是从问题转换或者算法改进的思路出发对多标记数据进行建模。问题转换方法将多标记学习问题进行分解或者转换,算法改进方法则通过改进算法的核心思想以适应多标记数据。这些算法都是有监督式的,需要足够多的标记样本进行学习。而且,这些方法都没有对多标记数据进行处理。模型的构建和特征的学习是割裂开的,而数据实例的原始特征往往不是最适合进行多标记学习的。此外,问题转换的算法往往需要解决多个子问题,这些子问题的计算量随着原始数据维度的增加而变得十分庞大。总的来说,传统的多标记学习算法存在着以下的局限性:

第一、是有监督式的学习方法,需要足够多的标记样本,当标记样本过少时,多标记学习的效果会受到很大影响。然而,在多数的分类场景中,已标记的样本都是相当缺乏的,并且不同标记对应的样本存在严重的不均衡现象,这导致对于某些标记来说,已标记的样本变得更为稀缺。

第二、传统的多标记算法对多标记数据的建模往往是基于数据的原始特征,当原始特征存在较大噪音时,多标记学习的效果往往不好。然而,原始特征不一定是最有利于分类的特征,在多标记学习中,所有标记对应的是相同的一组特征,但是不同标记所需要的区分特征都不一样,所以需要找出所有标记的共有的特征子空间或者不同标记的不同特征子空间。

第三、问题转换方法将多标记问题分解为多个子问题,这些子问题往往需要从原始特征中构建不同的训练数据,在这个过程中会产生很多原始特征的副本。如果原始特征维度较高,则会产生很大的内存消耗和计算量,导致模型的构建变得非常费时。

因此,需要对多标记学习方法进行改进,以解决现有技术中存在的问题。



技术实现要素:

本发明的目的在于克服上述现有技术的缺陷,提供一种改进的多标记学习方法,以在标记样本不足、原始数据特征维度过高的情况下,提高多标记学习的效果。

根据本发明的第一方面,提供了一种多标记学习模型的训练方法。该方法包括以下步骤:

步骤1:利用给定的多标记数据训练集对包含自动编码机和多分类模型的多标记学习模型进行训练,其中,在训练过程中,所述自动编码机用于对所述多标记数据训练集进行特征提取,所述多分类模型以经过特征提取之后的多标记数据训练集为输入进行训练;

步骤2:检查所述多标记学习模型的损失函数,所述多标记学习模型的损失函数包括所述自动编码机的损失项以及所述多分类模型的损失项;

步骤3:在所述损失函数不满足预定的精度要求时,迭代所述自动编码机和所述多分类模型的相关参数,执行步骤1-2;

步骤4:获得所述多分类模型对应的训练分类器以及所述自动编码机的优化权重矩阵和偏置向量。

在一个实施例中,所述多分类模型为softmax多分类回归模型。

在一个实施例中,所述多标记学习模型中的自动编码机由输入层、嵌入层、标记层、重构层和输出层构成,其中嵌入层和标记层分别是所述自动编码机的第一编码层和第二编码层,标记层的输入是所述多分类模型的输入。

在一个实施例中,所述多标记学习模型的损失函数表示为:

其中,J是自动编码机的损失项,L是多分类模型的损失项,Ω是正则化项,α和β是用于控制多标记学习模型的平衡参数,

J表示为:

其中,

t用于指示所使用样本的来源,t∈{r,s}表示可来自于训练集或测试集,表示自动编码机的输入向量,表示自动编码机的输出向量,是嵌入层的输出,W1是嵌入层的权重矩阵,b1是嵌入层的偏置向量,是标记层的输出,c表示标记的个数,W2是标记层的权重矩阵,b2是标记层的偏置向量,是重构层的输出,W2′是重构层的权重矩阵为,b′2是重构层的偏置向量;

L表示为:

是嵌入层的输出,是W2的第j行,c表示标记的个数,nr表示训练集中的样本个数,表示标记为j的向量;

Ω表示为:

Ω(W,b,W′,b′)=||W1||2+||b1||2+||W2||2+||b2||2+

||W1′||2+||b′1||2+||W2′||2+||b′2||2

在一个实施例中,步骤1包括:

步骤11:将所述多标记数据训练集转换为多分类训练数据集;

步骤12:利用所述自动编码机对所述多标记数据训练数据集进行特征提取并以经过特征提取之后的多标记数据训练集为输入训练所述多分类模型,其中,在训练所述多分类模型的过程中,将所述自动编码机的标记层的输入作为所述多分类模型的输入。

根据本发明的第二方面,提供了一种多标记分类方法。该多标记分类方法包括:根据本发明的多标记学习模型的训练方法获得的所述训练分类器和所述自动编码机预测新的实例的标记集合。

在一个实施例中,本发明的多标记分类方法包括以下子步骤:

步骤31:对于新的实例x,将所述自动编码机的标记层的输入作为所述训练分类器的输入;

步骤32:根据所述训练分类器获得实例x具有各个标记的概率;

步骤33:基于实例x各个标记概率的排序选择实例x的标记集合。

在一个实施例中,步骤33包括以下子步骤:将实例x的每个标记的概率按照降序排列为一个序列;计算所述序列上相邻两个标记的概率之间的差值,并确定差值最大处;将所述差值最大处之前的标记输出为实例x的标记集合。

根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现本发明多标记模型训练方法或多标记分类方法。

根据本发明的第四方面,提供了一种计算机设备,该计算设备包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明的多标记模型训练方法或多标记分类方法。

与现有技术相比,本发明的优点在于:通过优化将特征学习和多标记学习结合起来的模型实现对数据的分类,在进行多标记学习的同时学习到最有利于多标记分类的特征,从而能够有效的利用大量未标记的数据并克服了数据特征维度过高、特征噪音大等问题,提高了分类的精确度;模型训练简单、预测速度快,泛化能力强。

附图说明

以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:

图1示出了根据本发明一个实施例的多标记学习模型的训练过程的流程图;

图2示出了根据本发明一个实施例的多标记学习模型的框架图;

图3示出了根据本发明一个实施例预测新实例的标记集合的流程图;

图4示出了根据本发明一个实施例的标记输出方法的示意图;

图5示出了本发明的一个实施例和现有多标记学习方法的效果对比图。

具体实施方式

为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

根据本发明的一个实施例,提供了一种多标记学习方法,简言之,该方法包括对多标记学习模型的训练过程以及利用训练好的模型对新实例的标记集合进行预测的过程。

参见图1所示,本发明一个实施例的多标记学习模型的训练过程包括以下步骤:

步骤S110,初始化包含自动编码机和多分类模型的多标记学习模型。

本文所述的多标记学习模型包含自动编码机和多分类模型,自动编码机包括编码与解码过程,首先将输入数据映射到一个隐藏层表示(即编码过程),然后利用相似的变换将隐藏层重新映射回与输入数据相同形状的重建数据(即解码过程),通过最优化重建误差来学习编码,在本文中利用自动编码机对多标记训练集进行特征提取或称特征表示学习。例如,对于给定的自然风景图片,可能的标记有“树木”、“天空”、“动物”等,利用自动编码机可以学习到表示这些特征的标记。

自动编码机的隐藏层上结合多分类模型,多分类模型为数据实例贴上多个不同的类标记,该多分类模型可以是能够实现多标记分类的任何模型,例如、softmax多分类回归模型或基于SVM的多分类模型等。

图2示出了根据本发明一个实施例的多标记学习模型的框架示意图。该多标记学习模型包括两个部分,即用于特征提取的自动编码机以及用于多标记分类的多分类模型,其中,自动编码机包括一个输入层210、一个输出层250和三个隐藏层220、230、240,在本文中,将第一个隐藏层称为嵌入层220、第二个隐藏层称为标记层230,第三个隐藏层称为解码层240(或称重构层),解码层是对嵌入层220的重构。多分类模型用标号200示意,其与自动编码机的嵌入层220相连,用于接收嵌入层220的输出。

在本文中,将多标记特征提取和多标记分类统一到同一模型框架,首先初始化自动编码机的编解码参数和多分类模型的参数,以便后续进行迭代更新,从而获得自动编码机的优化参数以及多分类模型的优化参数。例如,可使用栈式降噪自动编码机来初始化权重和偏置。

步骤S120,利用自动编码机对训练集进行特征提取。

在此步骤中,定义多标记训练集,用于学习自动编码机的优化参数,包括各层的权重和偏置,也即实现的是对训练集进行特征提取的训练过程。

步骤S130,训练多分类模型。

在利用自动编码机对训练集进行特征提取的过程中,同时对多分类模型进行训练,训练多分类模型的目的在于,从输入的多标记数据中学习到分类函数h(.),从而利用该分类函数为新的数据实例贴上多个不同的类标记。

例如,在采用softmax多分类回归模型时,对于输入样本为x(i),类标记为y(i)∈{0,1,...,k},分类函数h(.)或称分类器可表示为:

该分类函数表示对于每一个输入样本其所属的类别的概率p(y(i)=j|x(i)),其中,j=0,1,...,k,θ表示多分类模型的参数,在模型训练过程中可通过最小化多分类模型的损失函数来获得优化参数。

需要说明的是,由于在本文中,多分类模型表示在自动编码机的隐藏层上,因此,多分类模型的训练数据集实际上是由自动编码机对步骤S120中定义的多标记训练集进行特征提取之后的数据。

步骤S140,判断是否满足要求。

具体地,定义多标记学习模型的损失函数,当损失函数小于预定阈值时,认为已满足精度要求,获得自动编码机的编解码权重和偏置以及多分类模型的优化参数。

当损失函数大于等于预定阈值时,继续对自动编码机的参数和多分类模型的参数进行迭代更新,下文将具体介绍损失函数的计算和迭代更新的过程。

需要说明的是,由于本发明对自动编码机和多分类模型进行联合优化,因此,整个模型的损失函数既需要考虑自动编码机的损失项,也需要考虑多分类模型的损失项。

步骤S150,获得训练好的多标记学习模型。

在已满足精度要求的情况下,获得已训练好的多标记学习模型,即自动编码机的优化参数以及多分类模型的优化参数。

下文将重点介绍图2的多标记学习模型的损失函数、迭代更新以及利用训练好的模型进行预测的过程。

1)多标记学习模型的损失函数

根据图2所示的多标记学习模型可以学习输入空间与输出空间的映射,基于该映射可以预测新的实例的类别标记。

具体地,给定多标记训练集和测试集其中(属于d维空间),其中,表第i个训练实例,是对应训练实例的标记集合,是对应测试实例的标记集合,c表示标记个数,nr是训练集中的样本数量,ns为测试集中的样本数量。

对多标记学习模型训练的目标例如是使损失函数尽量最小化,损失函数用来估量模型的预测值与真实值的不一致程度,是一个非负值,损失函数越小,模型的鲁棒性越好。

在一个实施例中,多标记学习模型的损失函数表示为:

公式(1)包括三项,其中,J是自动编码机的损失项,L是多分类模型的损失项,Ω是正则化项,α和β是平衡参数,用于控制多标记学习模型对应部分的权重。

在第一项中,同时对训练集和测试集计算重构误差,可表示为:

其中,

其中,t用于指示所使用样本的来源,t∈{r,s}表示可来自于训练集(用r指示)或测试集(用s指示),表示自动编码机的输入向量,表示自动编码机的输出向量,(属于kx1维的空间)是嵌入层的输出,嵌入层具有k个节点(k小于d,d指原始特征的维度),权重矩阵为W1∈Rk×d(属于kxd维的空间),偏置向量为b1∈Rk×1;标记层的输出为c表示标记层的节点(即c等于标记的个数),标记层的权重矩阵表示为W2∈Rc×k,偏置向量为b2∈Rc×1,标记层的输入(即嵌入层的输出)同时也是多分类模型的输入,用于引入标记信息;重构层的输出为权重矩阵为W2′∈Rk×c,偏置向量为b′2∈Rd×1

公式(1)中的第二项是多分类模型的损失项,这项为公式(1)的整个优化公式引入标记信息。自动编码机扩展为两个编码层,即嵌入层和标记层,以此和多分类模型共享第二个编码权重W2,从而和多分类模型共享信息。在对多标记学习模型训练阶段,使用多分类模型解决多标记问题之前,首先,需要进行数据转换。基本过程是将多标记数据转换为多分类数据。定义映射函数σ:(xi,Yi)→{(xi,yj)|yj∈Yi},该映射函数将多标记数据映射为多分类数据,即将(实例,标记集合)的配对转换为(实例,标记)的配对的集合,在(实例,标记)的配对中每个实例只有一个标记,而不是标记集合,例如,假设有一个实例xi,它具有标记y1,y2,y4。映射函数σ将(x1,{y1,y2,y4})转换为(x1,y1),(x1,y2),(x1,y4)。

在训练阶段,首先将原始的多标记数据Dr转换为多分类数据D′r,表达式如下:

D′r={σ(xi,Yi)|1≤i≤nr}(5)

然后,使用多分类算法,例如softmax回归算法M在转换后的多分类数据D′r上利用自动编码机进行特征表示学习并训练分类器g′:X→Y,即g′←M(D′r)(X∈Rd,Y={1,2,….c}),则多分类模型的损失函数(目标函数)可以表示为:

其中,是嵌入层的输出,是W2的第j行,W2是自动编码机的第二个编码权重。

公式(1)中的第三项是正则化项,用于控制模型的复杂度,以提升模型的泛化能力,可表示为:

Ω(W,b,W′,b′)=‖W1‖2+||b1||2+||W2||2+||b2||2+

||W1′||2+||b′1||2+||W2′||2+||b′2||2 (7)

2)多标记学习模型的迭代更新

多标记学习的目标在于求解最小化公式(1),公式(1)是参数W1,b1,W2,b2,W2′,b′2,W1′,b′1的函数,这是一个无约束的优化问题,可采取梯度下降的方式来求解,为了简化表达,首先给出中间变量的表示:

在进行梯度下降求解之前,首先需要对各个参数求解一阶偏导,如公式(9)所示,其中W2j是W2的第j行,nrj是训练集中具有标记j的样本个数,下面给出部分参数的一阶偏导:

基于以上偏导,可以通过以下规则来迭代更新参数,

其中,η是步长,用于控制学习速率。虽然目标函数的优化是非凸的,但是通过对权值和偏置初始化较好的值,仍可以获得一个较好的局部最优解。例如,可使用栈式降噪自动编码机来初始化权重W和偏置b。

通过此步骤的训练过程,可以获得优化的自动编码机中各层的对应的权重和偏置,以及多分类模型对应的训练分类器,在本文中,将训练好的多分类模型称为训练分类器或分类函数。

综上所述,在本发明中,利用自动编码机进行特征提取,并将传统的自动编码机的一个编码层扩展为两个编码层,使得多标记学习模型能够更有效学习特征;通过将自动编码机的第二个编码权重W2与多分类模型共享,使得传统的无监督式的自动编码机特征学习在多标记学习的监督下进行。通过这种半监督的学习方式,自动编码机可以充分利用标记和未标记的样本,多分类模型可以利用标记样本进行学习。此外,在本发明的多标记学习模型中,由于自动编码机和多分类模型共享信息,使得两者的效果均得到提升。

3)对新实例进行预测的过程

在训练结束后,即可利用获得的自动编码机的优化参数以及多分类模型对应的分类器来预测新实例或称测试实例的标记集合,参见图3所示。

步骤S310,利用训练好的自动编码机提取新实例的特征。

通过训练好的自动编码机提取某个新的实例x的特征,即自动编码机的标记层的输入(即嵌入层的输出)是所提取的特征。

例如,对测试集中的某个实例x,标记层的输入是a=W2ξ+b2,a是一个向量,ξ是嵌入层的输出,ξ=f(W1x+b1),其中W1、b1、W2、b2均是通过训练获得的优化参数。

步骤S320,利用多分类模型对应的分类器获得新的实例具有各个标记的概率。

将标记层的输入代入到多分类模型对应的分类器,以获得实例x具有各个标记的概率。

例如,对于softmax多分类回归模型,可采用下式计算分类的概率:

其中,ai表示softmax分类器的输入,P(ai)表示ai对应的标记i的概率。通过公式(11)可以获得实例x具有各个标记的概率。

步骤S330,对新实例的各个标记的概率进行排序,以输出新实例的标记集合。

在获得实例x具有各个标记的概率之后,利用预定的策略可输出最终的标记集合。

例如,使用最大间隔策略输出标记,其具体过程是:将实例x的每个标记的概率按照降序排列得到一个序列;然后,计算该序列上相邻两个标记概率之间的差值;找到差值最大处,将该处之前的标记输出为实例x的标记。参见图4所示,Pi是实例x具有标记i的概率,ΔPj是排序得到的序列上相邻两个标记概率之间的差值,ΔP3(即Pc和P5之间概率)的值最大,则该差值之前的标记{y2,y6,yc}分配给x,而其余的标记未分配给实例x。

为了验证本发明的实际技术效果,使用5组多标记数据集进行了实验,分别标记为slashdot、corel5k、bibtex、corel16k01、corel16k02,其中,选取的5组数据中有2组文本数据和3组图像数据,能从不同领域来评估设计的算法。实验数据集的详细信息参见下表1。

表1:实验数据集信息

表1中的列从左到右分别表示数据集的名称、数据集的样本个数(|S|)、特征的维度(dims(S))、标记的个数(L(S))、数据的类型。将本发明的方法与现有的6种基准算法进行了对比,分别是二值相关算法(简称BR)、校准的标记排位算法(简称CLR)、随机k标记子集算法(简称RAkEL)、分类器链算法(简称ECC)、基于类属属性的多标记学习算法(简称LIFT)、两步式的栈式降噪自动编码机算法(简称SDAE),本发明的方法简称SERL,实验结果参见下表2所示。

表2:实验结果

实验使用了典型的8种评价指标,分别是OneError(用来考察预测值排在第1位的标记却不隶属于该样本的情况)、Coverage(用于度量平均上需要多少步才能遍历样本所有的相关标记)、RankingLoss(用来考察样本的不相关标记的排序低于相关标记的排序的情况)、AvgPrecision(用来考察排在隶属于该样本标记之前的标记仍属于样本的相关标记集合的情况)、MacroAUC、Acuracy、F1、MacroF1,分别基于排序的指标和基于分类的指标。表2中,数字加重的一栏表示所有算法中最好的结果。

1)在基于排序的指标上的结果分析

在基于排序的指标中,OneError、Coverage、RankingLoss和AvgPrec ision是基于样本计算的,而MacroAUC是基于标记计算的。

由表2可知,对于指标Coverage、RankingLoss、AvgPrecision、本发明的方法在5个数据集上都是表现最好的。对于OneError,本发明的方法在数据集slashdot、corel5k和corel16k01上取得最好的效果,并在其他数据集上取得了同CLR相当的效果。

对于基于标记的指标MacroAUC,本发明的方法在大多数数据集上获得了最好的效果。由表1可知,数据集corel5k具有最多的标记个数374,slashdot具有最少的标记个数22。在各个数据集上的结果证明了本发明的方法对于标记概率估计的优异性,即使数据集之间的标记个数差异很大的情况下,本发明也能取得良好的效果。

2)在基于分类的指标上的结果分析

在基于分类的指标上,Acuracy和F1是基于样本计算的,MacroF1是基于标记计算的。

由表2明显可以看出,对于F1和Accuracy,本发明的方法的效果远远好于基准算法,第一,本发明的方法在每个样本上的预测结果都很好,所以最后F1和Accuracy也很好,第二,一些基准算法,比如BR和RAk EL,对于有一些样本预测出空的标记集合,没有给出标记信息。

对于MacroF1,本发明的方法在所有数据集上都取得了最好的效果,也反映出本发明对于每个标记的正负样本的区分能力较强。

综上所述,无论是基于样本还是基于标记的分类指标,本发明都取得了很好的分类效果。

进一步地,为了验证本发明的方法在标记数据比例变化时的有效性,共做了10组的实验。其中,标记数据的比例从5%增加到50%,比例的变化间隔是5%,结果如图5所示,其中,横坐标表示标记数据的比例,纵坐标是RankingLoss指标。很明显,本发明的方法在所有的比例情况下都取得了最好的效果,并且与其他基准算法相比,当标记数据的比例较低时,本发明的优势更明显,充分说明了本发明的半监督学习方式的有效性。

需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1