本发明涉及机器学习技术领域,特别涉及一种基于深度学习的新增类别识别方法。
背景技术:
深度学习作为一种新型的机器学习方法,由于其对与时空域关联的样本数据具有很好的识别效果,例如,图像、音频、文本等,且对样本数据平移变形等变换具有一定的鲁棒性,使得其识别精度明显优于经典的机器学习方法,因此一提出即得到广泛应用。
深度学习尽管具有明显的识别精度优势,但在训练阶段的复杂度却高于svm等经典的机器学习方法。因此,如何针对特定问题,学习得到最优网络模型,并且使该网络模型适用于普适的网络结构是一个难题。例如,传统机器学习的预测样本和训练样本,通常满足严格的独立同分布假设,并且预测样本的类别结果一定是训练样本所属类别的一种,但是,在实际的识别问题中,预测样本的类别有可能是训练样本之外的,对于这种类别增加的问题,现有的深度学习可以采用如下两种方式解决:
第一种方式是参考训练样本非均衡的处理方式,在设计网络结构时,在网络的最后一层增加“新增类别”输出。但是由于没有属于新增类别的训练样本,在训练阶段生成网络模型时,对新增类别的网络参数并不能有效更新,其新增类别输出从未被激活。所以在预测阶段,属于新增类别的预测样本很难激活新增类别输出。
第二种方式是采用预处理的方式,例如,属于异常检测方法的支持向量描述算法(svdd)。在训练阶段,首先将所有现有类别的训练样本作为正常类别,其次利用这一正常类别的样本数据训练得到svdd模型,然后使用普通的深度学习训练整个样本数据得到网络模型。在预测阶段,根据svdd模型判断预测样本是否正常,如果预测样本被识别为异常样本,直接认定为新增类别,否则再利用普通的深度学习进行识别。这种方式的主要缺点存在于异常检测阶段精度较低,尤其是处理具有时空相关性的数据,例如图像、语音、文本、自然语言处理等。
因此,目前需要一种识别精度高,普适性好的新增类别识别方法。
技术实现要素:
本发明的目的是提供一种基于深度学习的新增类别识别方法,该方法能够克服上述现有技术的缺陷,具体包括以下步骤:
步骤1)、将预测样本集输入到深度网络获得预测样本的输出向量;
步骤2)、计算所述预测样本的输出向量,与训练样本中每种类别的代表向量之间的相似度值,从而识别所述预测样本的类别;
其中,所述训练样本中每种类别的代表向量是通过将所述训练样本集输入到所述深度网络获得输出向量集,并根据所述训练样本的输出向量集计算得出的。
优选的,在计算所述训练样本中每种类别的代表向量时,仅针对所述训练样本集中类别确定的训练样本进行计算。
优选的,计算所述训练样本中每种类别的代表向量包括以下步骤:
对所述训练样本的输出向量进行零值归一化,获得所述训练样本的归一化输出向量;
利用所述训练样本的归一化输出向量计算获得输出向量的单边均值向量和单边方差向量;
利用所述单边均值向量和所述单边方差向量计算获得所述训练样本的每种类别的代表向量。
优选的,所述步骤1)进一步包括:对所述预测样本的输出向量进行零值归一化,获得所述预测样本的归一化输出向量。
优选的,所述步骤2)进一步包括:计算所述预测样本的归一化输出向量与所述训练样本的每种类别的代表向量之间的相似度值。
优选的,取所述最小相似度值对应的所述训练样本的类别为所述预测样本的类别识别结果。
优选的,当所述最小相似度值大于预定的阈值时,将所述相似度值对应的预测样本的类别识别为相对于所述训练样本集新增的类别。
优选的,将获得的所有属于新增类别的所述预测样本组成新增类别样本集,通过聚类方式区分不同类型的新增类别。
根据本发明的另一方面,提供一种计算机系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器运行所述程序时执行如上所述的步骤。
根据本发明的另一个方面,提供一种计算机可读存储介质,包括存储在所述可读存储介质上的计算机程序,其中,所述程序执行如上所述的步骤。
相对于现有技术,本发明取得了如下有益技术效果:本发明提供的基于深度学习的新增类别识别方法,在训练阶段,利用单边均值/方差等算法,仅针对训练样本中的确定样本计算代表向量,与传统的机器学习方法相比,不仅保证了预测阶段的查全率和查准率,并且提高了整体的识别精度;另外,在预测阶段,通过比对预测样本与训练阶段计算得到的代表向量之间的相似度,识别出预测样本是否为新增类别,利用本发明提供的识别方法,不仅能够识别出属于具有新增类别的预测样本,还能够进一步应用于其它算法,例如聚类,具有很好的普遍适用性。
附图说明
图1是本发明提供的识别方法的训练阶段流程图。
图2是本发明提供的识别方法的预测阶段流程图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对根据本发明的实施例中提供的基于深度学习的新增类别识别方法进行说明。
一般来说,机器学习(包括深度学习)可以分为监督学习,非监督学习和半监督学习三种类型。其中,监督学习是指所有训练样本的类别均是已标记的,机器学习的目的是判定预测样本的类别,结果必然属于现有类别;非监督学习是指所有训练样本的类别均是未标记的,非监督学习的目的是对训练样本进行聚类,进一步判定预测样本的类别和哪些训练样本的类别最相似;半监督学习中的训练样本的类别,有的是已标记的,有的是未标记的,对于未标记的训练样本,其类别属于现有类别的一种,半监督学习的目的是判定预测样本的类别,结果也是属于现有类别。综上所述,传统的机器学习,其预测样本的类别结果一定是训练样本所属类别的一种。
但是,在实际的识别问题中,预测样本的类别有可能是训练样本之外的,例如对于图片识别,假设训练样本图片中仅包括三种动物:“老虎”,“大象”和“狮子”,当对一张“狐狸”的预测样本进行分类时,传统的机器学习算法会将其判定为训练样本中的三种动物之一,而这显然是不正确的。为了解决上述问题,发明人经研究提出了一种训练模型及预测方法,能够识别预测样本中相对于训练样本新增的样本类别。
在本发明的一个实施例中,提供一种基于深度学习的新增类别识别方法,该方法,包括以下步骤:
s10.训练阶段
图1是本发明提供的识别方法的训练阶段流程图,如图1所示,在训练阶段,首先需要构建训练样本中每种类别的代表向量(100)。例如,训练样本集为x,该训练样本集x中每个样本xi的标记类别cj组成了类别集c,其中,样本xi∈x,i=1,2......n,n表示样本的总数,类别cj∈c,j=1,2......m,m表示类别的合成总数;将训练样本集x中每个样本xi分别输入已有的深度网络f(x)(101),获得样本的类别输出向量yi(102),其中yi=f(xi)∈c。
为便于计算,对输出向量yi进行零值归一化,可以得到归一化输出向量
假设
为了仅针对确定类型样本计算每种类别cj的代表向量zj,可以先计算每种类别cj的所有归一化输出向量
其中,nj表示属于类别cj的样本总数,
在本发明的另一个实施例中,还可以利用每种类别cj的所有归一化输出向量
在本发明的另一个实施例中,还可以利用经验参数的方法来计算每种类别cj的代表向量zj以便用于预测阶段,或者将类别向量
s20.预测阶段
图2是本发明提供的识别方法的预测阶段流程图,如图2所示,在判定预测样本(200)的类别阶段,可以利用已有深度网络(201)获得预测样本xk的输出向量yk(202),进一步计算归一化输出向量
例如,可以定义输出向量yk和输出向量yi的相似度s(yk,yi)为:
其中,等式右侧,加号前的部分表示的是:将yk不识别为yi所属类别的惩罚;加号后的部分表示的是:将yk识别为yi非所属类别的惩罚;参数α是折中系数,当s(yk,yi)数值越小时,对应样本xk与样本xi越相似。
例如,根据步骤s10,将训练样本集输入已有深度网络得到训练样本的输出向量集,并利用获得的输出向量计算出每种类别的代表向量。假设训练样本集中共有a、b、c、d、e、f、g、h、i九种类型,利用本发明提供的计算方法获得的代表向量分别是:
a(1,0,0,0,0,0,0,0,0);
b(0,1,0,0,0,0,0,0,0);
c(0,0,1,0,0,0,0,0,0);
d(0,0,0,1,0,0,0,0,0);
e(0,0,0,0,1,0,0,0,0);
f(0,0,0,0,0,1,0,0,0);
g(0,0,0,0,0,0,1,0,0);
h(0,0,0,0,0,0,0,1,0);
i(0,0,0,0,0,0,0,0,1)。
假设利用已有深度网络得到的某一预测样本的归一化输出向量为:
(0.1,0.2,-0.1,-0.3,0,0.9,-0.8,0.3,0.1)
利用上述相似度计算公式可计算得到该预测样本的输出向量与a-i各训练样本类型的相似度分别为:
2.4,2.2,2.7,2.9,2.6,0.8,3.4,2.0,2.4
由此可知,该预测样本与类型f最相似。
在本发明的另一个实施例中,上述相似度计算公式中的折中系数α可依据经验设定,特别的,当折中系数α的取值使得等式右侧的加号前后两部分惩罚保持平衡时,此时的折中系数α的取值为最优。
在进行判定时,可以设置一个阈值t,以便判定预测样本xk的归一化输出向量
例如,在使用卷积网络进行手写数字识别时,可以应用本发明提供的方法对新增类别进行识别。已知手写体数据集mnist,该数据集包含10类共6万个训练样本和1万个测试样本,分别对应于数字0-9,每个样本数据为28×28的灰度图像(详见“http://yann.lecun.com/exdb/mnist/”)。
将mnist训练数据集中的前9类数据,即对应于数字0-8的图像作为训练数据,测试数据集中的所有10类数据,即对应于数字0-9的图像作为测试数据。假设配置参数为:折中系数α=1,阈值t=1.2,零值归一化后的类别向量
表1利用本发明提供的识别方法识别手写数字的识别结果
其中,查准率表示的是:所有预测结果中真实结果所占的比例;查全率表示的是:所有真实结果中预测结果正确所占的比例。
例如,针对训练样本和预测样本都包含的数字0,预测样本中共计有真实结果980个,利用本发明提供的识别方法识别出的结果显示,其中有965个识别正确,其余15个被识别为其它数字,查全率为98.47%;同时共计输出981个数字0的预测结果,其中包含965个真实结果,其余16个误将其它数字识别为数字0,查准率为98.37%。与利用传统的机器学习相比,利用本发明提供的识别方法识别出的查全率相当,查准率更加优秀;
针对相对于训练样本,预测样本中新增的类别数字9,预测样本中共计有真实结果1009个,利用本发明提供的识别方法识别出的结果显示,其中有934个识别正确,其余75个被识别为其它数字,查全率为92.57%;同时共计输出1080个数字9的预测结果,其中包含934个真实结果,其余146个误将其它数字识别为数字9,查准率为86.48%。与利用传统的机器学习相比,利用本发明提供的识别方法不仅能够将新增类别数字9单独识别出,其查全率和查准率都达到了相当高的水平,从而提高整体的识别精度。
尽管在上述实施例中,以一种类型新增类别,如数字9,为例对本发明提供的基于深度学习的新增类别识别方法进行了说明,但是本领域普通技术人员应当理解,在其他实施例中,本发明提供的识别方法同样适用于对包含有多种新增类别的预测样本的识别,当识别结果为新增类别的预测样本足够多时,可针对上述识别结果为新增类别的每个预测样本,计算预测样本xk的归一化输出向量
相对于现有技术,在本发明实施例中所提供的基于深度学习的新增类别识别方法,在训练阶段,将训练样本作为输入,利用已有深度网络,获得判定结果正确的输出向量集,根据训练样本的输出向量集计算出每种类别的代表向量;在测试阶段,将每个测试样本输入已有深度网络得到预测样本的输出向量,通过计算预测样本的输出向量和每种类别的代表向量的相似度来识别预测样本相对于训练样本是否为新增类别。与传统的机器学习相比,本发明提供的方法不仅能够与已有深度网络结合,且具有较高的查全率和查准率。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。