一种面向标记噪声的多标记分类方法与流程

文档序号:22547642发布日期:2020-10-17 02:19阅读:157来源:国知局
一种面向标记噪声的多标记分类方法与流程

本发明涉及一种面向标记噪声的多标记分类方法,属于弱监督分类技术领域。



背景技术:

在传统的监督学习中,每一个示例都有单一和明确的标记,基于此前提的诸多监督学习方法都已经取得了巨大的成功。但是在实际应用中,我们获得的标记信息往往是多个而且可能是不准确的。所以研究者们提出了半监督学习、多标记学习、偏标记学习和多示例学习等框架用于解决此类困难。

含噪多标记学习是一种新型的学习框架,它可以看作是多标记学习和偏标记学习的结合。在多标记学习中,一个示例对应多个真实标记;在偏标记学习中,一个示例对应一个候选标记的集合,但是集合中只包含一个真实标记。而在含噪多标记学习中,一个示例对应一个候选标记的集合,集合中有一个或多个真实标记。含噪多标记学习的目标就是利用含有噪声的数据集训练一个多标记预测器,它能够预测出未见示例的所有真实标记。目前主流的方法是利用标记置信度等手段对数据集进行降噪,然后加以训练,但是这样的方法不能保证降噪的效果,因此在训练的过程中仍然会受到噪声标记的影响。



技术实现要素:

本发明针对含噪多标记数据的数据特性以及降噪的预处理步骤的不确定性加以改进,通过ecoc编码直接利用含噪数据,免去降噪步骤,充分利用原始数据来提升分类的性能。

技术方案:一种面向标记噪声的多标记分类方法,包括以下步骤:

步骤1:获取具有真实标记的多标记样本数据d={(xi,yi)|1≤i≤m},其中xi表示第i个样本数据,yi表示xi对应的候选标记集合,m表示收集的多标记样本数量;

步骤2:构建编码矩阵,其中,编码矩阵的每一行表示类别标记的编码,其每一列表示对标记的一个划分;通过构建的编码矩阵的第一列对步骤1获取到的多标记样本数据的标记进行划分得到第一列对应的子训练集,以此类推直至得到编码矩阵最后一列对应的子训练集;

步骤3:采用编码矩阵的第一列对应的子训练集对二类分类器进行训练,得到其对应可用的二类分类器;以此类推直至完成编码矩阵最后一列对应的二类分类器的训练;

步骤4:将待分类数据输入至步骤3训练好的所有二类分类器中进行分类,得到与编码矩阵每一列对应的预测标记;

步骤5:根据欧式距离,计算待分类数据的预测标记的编码码字与编码矩阵的每行码字之间的距离,将满足距离阈值的预测标记视为待分类数据的真实标记;

步骤6:判断步骤5得到的待分类数据的真实标记是否满足用户要求,若满足,则结束,否则转到步骤2,对编码矩阵进行调整。

进一步的,所述步骤2具体为:

步骤2.1:定义一个q×l的ecoc编码矩阵m∈{+1,-1}q×l,用于对多标记样本数据的标记空间进行表示,其中,m的每一行m(j,:)的长度为l,其表示类别标记yj的编码,m的每一列m(:,l)表示对标记的一个划分,初始阶段,该编码矩阵为空矩阵;

步骤2.2:引入q维向量v={v1,v2,...,vq}t∈{+1,-1}q,其各个元素的取值随机决定,向量v将样本数据的标记空间划分为两类其中:

若样本数据对应的候选标记集合能完全落入则将该样本数据划分为正例;若样本数据对应的候选标记集合能完全落入则将该样本数据划分为反例;

将基于当前向量v进行划分得到的正例与反例组成子训练集

步骤2.3:判断步骤2.2得到的子训练集的元素个数是否大于等于最小值τ_all,正例个数是否同时满足大于等于设定阈值τ_pos,反例个数是否同时满足大于等于设定阈值τ_neg,若三者同时满足,则将当前向量v作为编码矩阵m的一列,并执行步骤2.4;否则:重新随机产生向量v,执行步骤2.2;

步骤2.4:判断当前编码矩阵m的列数是否达到预设的码长l,若超过,则得到可用的编码矩阵,否则重新随机产生向量v,执行步骤2.2。

进一步的,所述步骤3具体包括以下步骤:

采用线性支持向量机生成二类分类器hl(1≤l≤l);

采用编码矩阵的第一列对应的子训练集对二类分类器进行训练,得到其对应可用的二类分类器;

以此类推直至完成编码矩阵最后一列对应的二类分类器的训练。

进一步的,所述步骤4包括:

待分类数据表示为将待分类数据输入至步骤4训练好的所有二类分类器中进行分类,得到长度为l的预测标记:

h(x*)=[sign(h1(x*)),sign(h2(x*)),...,sign(hl(x*))]

其中,hl(x*)(1≤l≤l)表示待分类数据x*在二类分类器上的预测置信度,sign(x)为符号函数,当x>0时,sign(x)返回+1,当x<0时,sign(x)返回-1,当x=0时,sign(x)返回0。

有益效果:现有的含噪多标记分类方法都在利用标记对置信度来进行一定程度的降噪,然而这种降噪过程具有不确定性,很可能会损失大量真实标记信息,造成模型效果下降,本方法通过ecoc编码矩阵来处理原始数据,对噪声数据有一定鲁棒性,可以在一定程度上避免降噪造成的真实标记信息损失。

附图说明

图1是面向噪声标记的多标记分类的工作流程图;

图2是本发明方法的流程图;

图3是ecoc编码矩阵以及重新划分训练集的示意图。

具体实施方式

现结合附图和实施例进一步阐述本发明的技术方案。

本实施例的一种面向标记噪声的多标记分类方法,在模型的训练阶段利用ecoc编码对原始标记空间进行embedding,并给编码的每个码字筛选正负训练样本。并由此为每个码字训练二类分类器,根据训练好的二类分类器对未见示例进行预测,得到预测编码和原始空间每个标记对应编码之间的距离度量并根据此给出真实标记。如果用户对所得结果不满意,可以对ecoc编码进行新的设置以期得到更好的效果。具体包括以下步骤:

步骤1:用户需在保证完全获得真实标记的前提下收集多标记数据,该多标记数据包括样本特征以及带噪声的候选标记集合对于多标记数据而言,用户想要完整准确的获得全部的标记数据是很困难的,而且极其耗费人力物力,因此在满足前提:样本的真实标记应该完全的被用户收集的情况下,允许用户收集带噪声的多标记数据。

记用户采集的多标记数据对应集合为d={(xi,yi)|1≤i≤m},其中xi∈x表示d维特征向量,即为样本,是与样本xi对应的候选标记集合,m表示收集的样本数量,x=rd代表d维特征空间,γ={y1,y2,…,yq}表示q个可能的标记,本实施例的面向标记噪声的多标记分类的关键在于样本xi的真实标记是隐藏于候选标记集合中的。

步骤2:利用ecoc编码对原始标记进行embedding,按照ecoc编码重新为每个码字选择正负训练样本;具体为:

步骤2.1:引入q×l的ecoc编码矩阵m∈{+1,-1}q×l对步骤1中的标记空间进行表示,其中,m的每一行m(j,:)表示属于类别yj(1≤j≤q)的长度为l的编码,m的每一列m(:,l)表示对标记空间的一个划分。初始阶段,该编码矩阵m为空矩阵;

步骤2.2:引入q维向量v={v1,v2,...,vq}t∈{+1,-1}q,其各个元素的取值随机决定,向量v将标记空间划分为两类其中:

步骤2.3:根据向量v从步骤1的多标记数据中筛选出子训练集

即多标记数据中,对应候选标记集合yi完全落入的样本xi划分为正例,对应候选标记集合yi完全落入的样本xi划分为反例,候选标记集合yi不能完全落入的样本xi则不包含在子训练集中。

由正例与反例组成子训练集的元素个数大于等于某个最小值τ_all,同时其正例个数大于等于设定阈值τ_pos,反例个数大于等于设定阈值τ_neg时,向量v被接受,作为编码矩阵m新的一列,即m=(m,v),并使用子训练集训练对应的二类分类器hv。

步骤2.4:判断编码矩阵m的列数是否达到预设的码长l,若超过,则得到可使用的编码矩阵m和编码矩阵每列所对应的训练集,否则随机产生向量v,执行步骤2.2;

图3-1为编码矩阵m,图3-2为步骤1得到的多标记数据对应集合图3-3为二类训练子集以m(:3)为例,y7={y1,y2}完全落入中,所以x7划分为反例;y8={y3,y5}完全落入中,所以x8划分为正例;y10={y4,y5}完全落入中,所以x10划分为正例。

步骤3:因多标记数据的标记空间是含有噪声的,使用线性支持向量机(linearsupportvectormachine)生成二类分类器hl(1≤l≤l),采用编码矩阵每列所对应的训练集分别对二类分类器进行训练,得到各自对应的可用的二类分类器;

步骤4:将待分类数据输入至所有训练好的二类分类器中进行预测,得到与编码矩阵列对应的预测标记;具体过程如下:

设待分类数据生成其对应的长度为l的预测码字:

h(x*)=[sign(h1(x*)),sign(h2(x*)),...,sign(hl(x*))]

其中,hl(x*)(1≤l≤l)表示待分类数据x*在二类分类器上的预测置信度,sign(x)为符号函数,当x>0时,sign(x)返回+1,当x<0时,sign(x)返回-1,当x=0时,sign(x)返回0。

步骤5:含噪多标记学习的最终目标是生成一个多标记预测器所以,引入下列公式:

f(x*)={yj|dist(h(x*),m(j,:))<thr,1≤j≤q}

其中,dist(a,b)表示向量a和向量b的距离度量,thr是人为设置的阈值,即f(x*)是由编码矩阵的类别码字与预测码字的距离小于固定阈值的类别组成,即对于未见示例的最终预测结果。

所以,根据欧式距离计算所有其类别码字与预测码字的距离,将满足筛选条件的标记视为未见示例的真实标记。

步骤6:若用户对预测结果满意,则结束,否则转到步骤2,对原始标记重新进行ecoc编码以期得到更好的效果。

本实施例在训练过程中可以允许用户收集含噪声的标记数据进行训练,不需要用户标记数据具有完整准确无误的标记空间,因此可以减少大量的人力成本。

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