背景技术
分类器设计是计算机模式识别领域中的研究重点,因为分类器是作为模式识别研究的基本工具。总的来说,目前的分类器算法主要两个关键性的问题:(1)分类器的推广能力;(2)对新样本进行分类时所耗费的时间。
一般来说,分类器的推广能力就是分类器预测未知样本类别的能力,即分类正确率的高低。基于统计学习理论和结构风险最小化理论的SVM分类器,由于它具有全局最优解和很好的推广能力等优点,已经成为近年来最为成功的分类器,被广泛应用于人工智能、机器学习、神经生物学、医学等众多领域。它最初的动机就是对于线性可分的两类数据样本集,找出能够分开这两类样本的最大间隔。但在实际应用中,许多分类数据是线性不可分的。为此,人们引入了核函数的概念,将原始空间的数据通过核映射到高维甚至无限维核空间中,而这些映射到核空间中的数据可以看作是线性可分或者是近似线性可分的,从而解决了对于线性不可分数据的分类问题。虽然基于核方法的SVM成功拓展了线性SVM的应用范围,并且有很好的推广能力,但是它依然有以下三大缺点:
1)核函数及其参数选择的困难:目前有很多核函数,如多项式核函数、样条核函数、径向基核函数等,每一个核函数又有各自的参数。核函数及其参数的选择对于SVM分类器的推广能力有着举足轻重的作用。如何选择合适的核函数及其参数使得分类器的推广能力达到最好仍然是一个亟待解决的难题。
2)训练分类器时需要占据很大的内存:基于核函数的SVM在训练时需要存储一个O(l2)的非稀疏核矩阵,其中l是训练样本的个数。这就使得SVM不能处理大数据量的分类问题。
3)分类时间复杂度高:基于核函数的SVM分类器在对新样本进行分类时,需要计算这个新样本与所有支持向量之间的核函数。所以其分类复杂度是跟支持向量的个数线性相关的。而 Steinwart证明支持向量的个数的增长至少同训练样本个数增长呈线性关系的。因此,大数据量训练出来的分类器,对新数据样本的分类时间就会非常慢,这就使得其不能运用于一些实时模式识别***中,比如行人检测***和飞机视觉导航***。
为了克服基于核函数SVM的上述缺陷,一些在原始数据空间中构造分类器的方法被提了出来。Fu基于训练数据和标签的联合分布模型,提出了一个混合的线性SVM分类器。但是,由于数据的联合分布很难估计,当实际的数据分布与假设的概率模型不相符时,分类器的推广能力就会大大降低。Li基于“凸可分”的概念,提出了一个分段线性分类器——多凸线性感知器。但是由于这种分类器没有引入软间隔的概念,因此它不能处理那些两类有相互交叠的分类数据,这样就大大限制了应用范围。
发明内容
本发明提供一种具有层次结构的混合线性SVM分类器的模式识别方法——H-MLSVMs,它具有层次树结构,而且每一个结点处都对应着一个混合的线性SVM分类器。相对于其它的经典SVM方法,该分类方法具有和基于核函数的SVM方法几乎一样的推广能力,而不存在着核函数及其参数选择困难、占用很大内存等缺点,特别是具有和线性SVM等阶的分类时间复杂度,使得该分类方法在对新样本分类时更加有效。
为了实现上述目的,本发明采用了以下的技术方案:
具有层次结构的混合线性SVM分类器的模式识别方法,其每一个结点处的分类器都对应着一次迭代过程。每一次迭代过程主要包括以下两个步骤:
(1)运用训练数据的近邻几何结构关系和当前H-MLSVMs分类器的分类误差,更新每个样本的训练权重;
(2)利用带有权重的样本训练出一个带权重的线性SVM分类器,将此分类器嵌入到当前H-MLSVMs中,并更新分类器的分类误差,返回到第一步。
其中,H-MLSVMs根结点分类器是通过训练等权重的线性SVM得到。上述迭代过程一直到H-MLSVMs中所有结点处分类器的数目达到一个给定的整数,或者在测试数据集上正确率的增长幅度在足够小的范围之内时,停止。
进一步说,所述的步骤(1)具体包括以下子步骤:
首先,通过训练数据的近邻几何结构关系和当前H-MLSVMs分类器的分类误差选择出“训练中心样本”,即此“训练中心样本”附近的区域为当前H-MLSVMs分类器错分最为严重的区域;
其次,根据各个样本和上一步所选的“训练中心样本”之间的距离,计算出各个样本的训练权重;
最后,为了防止训练权重偏向于某一类,在各类中将训练权重做归一化处理。
更进一步说,所述的步骤(2)具体包括以下子步骤:
首先,利用上面带有权重的训练样本训练出一个带权重的线性SVM分类器;
其次,结合“训练中心样本”所在结点的父母结点处的分类器,得到一个混合线性SVM分类器;
再次,将此混合线性SVM分类器作为“训练中心样本”所在结点处的分类器;
最后,更新分类器的分类误差。
本发明的有益效果是:
1、本发明所提出的分类算法是一种通用的方法,对任意分类数据类型都适用。
2、本发明提出一种自适应调整权重策略,能够根据当前的分类误差自动地调整各个样本的训练权重,相比于经典的设置权重的方法,由于不仅考虑了分类误差,而且融入了数据的几何结构关系,使得这种权重设置方法对噪音点更加鲁棒。
3、本发明采用了一种层次树结构的分类器,其中每一结点处都存在着一个混合线性SVM分类器,其基本思想就是分层地将错分的正样本从负样本中分离出来,或者将错分的负样本从正样本中分离出来。相比于经典的线性SVM分类器,极大提高了对线性不可分数据的推广能力;相比于经典的基于核函数的SVM分类器,此H-MLSVMs分类器的推广能力能够近似达到核SVM分类器的推广能力,而克服了核SVM在训练过程中核函数及其参数选取困难、耗用内存等缺点,更重要的是使得需要的分类时间复杂度大大降低,从而能够用于实时模式识别***中。
具体实施方式
下面通过实施例对本发明进行具体的描述,只用于对本发明进行进一步说明,不能理解为对本发明保护范围的限定,该领域的技术人员可根据上述发明的内容对本发明作出一些非本质的改进和调整。
图1为本发明的H-MLSVMs分类器的训练流程图,它是一种具有层次结构的混合线性SVM分类器的模式识别方法。图2为本发明的分类器训练过程的二维例子展示。图3为H-MLSVMs分类器对新样本的分类过程的流程图。本发明的方法具体运行的硬件和编程语言并不限制,用任何语言编写都可以完成,为此其它工作模式不再赘述。
本发明的实施例采用一台具有3.2G赫兹中央处理器和1G字节内存的奔腾4计算机并用Matlab语言编制了H-MLSVMs分类器的工作程序,实现了本发明的方法。
本发明的具有层次结构的混合线性SVM分类器的模式识别方法主要包括以下两个步骤:训练样本权重的更新和层次结构分类器H-MLSVMs的更新。
在介绍具体步骤之前,我们先介绍下面所要用到的符号的意义。
·S:训练样本集合,即 ;
·I:表示H-MLSVMs分类器中的结点。I=[0]代表根结点,如
果它***,[0,1]和[0,-1]就为其左孩子结点和右孩子结点。类似的,如果结点[0,1]再***,则[0,1,1]和[0,1,-1]就为它的左孩子结点和右孩子结点。如果一个结点不再***,则这个结点就叫做叶子结点。I中元素的个数代表着结点I在H-MLSVMs中的层数。如图2(f)所示,结点[0,1,1,1]在H-MLSVMs的第四层;
·f(t):在训练H-MLSVMs分类器的过程中,第t次迭代时所计算出的带权重的线性SVM;
·fI:在结点I处的分类器(如图2(f)所示),其中叶子结点处没有分类器;
·S
I:划分到结点I处样本集。如图2(f)所示,所有训练样本在最初时都被划分到根结点处,即:
在根结点处的分类器f
[0]将集合S
[0]分为集合S
[0,1]和S
[0,-1]。在[0,1]结点处的分类器f
[0,1]又将S
[0,1]分为S
[0,1,1]和S
[0,1,-1]。类似的,其他结点处的集合也可以得到。我们可以看出,叶子节点处的集合两两不相交, 它们的并集构成了全部训练样本。如果记叶子结点I中最后一个元素为I(|I|),则I(|I|)决定了集合S
I中样本的类别属性。I(|I|)=1(I(|I|)=-1)代表S
I中样本被H-MLSVMs分类器划分为正类(负类);
·M:H-MLSVMs中所有结点处分类器的个数;
·Ft:在第t次迭代后H-MLSVMs中结点处分类器的集合,如图2(f)所示,F4={f[0],f[0,1],f[0,1,1],f[0,-1]};
·
其中
表示在第t次迭代后H-MLSVMs
分类器对样本xi的预测值。
图2中红圈表示正样本,蓝叉表示负样本。下面参考图2来说明H-MLSVMs分类器的训练过程和分类流程,具体步骤如下所述:
初始H-MLSVMs:所有训练样本都被划分到根结点处,即:
用等权重的训练样本训练出一个线性SVM分类器f
(1)(如图2(a)中所示),并将其赋予根结点处分类器,即f
[0]=f
(1)。f
[0]将集合S
[0]分为集合S
[0,1]和S
[0,-1],其中S
[0,1]={x|f
[0](x)≥0,x∈S
[0]},S
[0,-1]={x|f
[0](x)<0,x∈S
[0]},可以看出S
[0,1]中有大量被错分的负样本,S
[0,-1]中有大量被错分的正样本。此时H-MLSVMs F
1的结构如图2(f)中所示,F
1对训练样本的预测值为V
(1)=F
1(S
[0])=f
[0](S
[0])。
下面进入循环阶段,其主要有以下两步
(1)运用训练数据的近邻几何结构关系和当前H-MLSVMs分类器的分类误差,更新每个样本的训练权重。其主要包含:
a)找出“训练中心样本”(如图2(b)中蓝色三角所示)
邻居,其定义为N
ε(x
i)={x
j|||x
j-x
i||<ε,y
i=y
i,(x
j,y
j)∈S},ε一般取值为
b)根据样本距离“训练中心样本”的距离计算样本权重,即
c)为了防止训练权重偏向于某一类,在各类中将训练权重做归一化处理
如图2(b)所示,标记的大小代表着样本权重的大小。
从上面的计算过程可以看出,我们将分类器F1错分最为严重的区域中的样本赋予了很大的权重。
(2)利用带有权重的样本训练出一个带权重的线性SVM分类 器,将此分类器嵌入到当前H-MLSVMs中,并更新分类器的分类误差。其主要包含:
a)如图2(b)所示,用带权重
的训练样本训练出带权重线性SVM分类器f
(2)(图2(b)中玫红色线);
b)假设x
c∈S
I,即说明集合S
I中错分的样本最为严重。令I
1=I(1:|I|-1),I
2=I(|I|),则I
1即为I的父母结点。参考结点I
1处分类器,得到一个混合线性SVM分类器。如果I(|I|)=1,则此混合线性SVM分类器为
如果I(|I|)=-1,则此混合线性SVM分类器为
在图2(b)中,由于I=[0,1],所以混合线性SVM分类器为min{f
(2),f
[0]};
c)将上面得到的线性SVM分类器min{f(2),f[0]}赋予结点[0,1]处的分类器f[0,1],f[0,1]进一步将集合S[0,1]分为S[0,1,1]和S[0,1,-1],其中S[0,1,1]={x|f[0,1](x)≥0,x∈S[0,1]},S[0,1,-1]={x|f[0,1](x)<0,x∈S[0,1]},可以看出,将f[0,1]集合S[0,1]中一部分被F1错分的负样本分离出来。此时的H-MLSVMs为F2=F1∪{f[0,1]},可以看出F2比F1多出了一个结点处分类器f[0,1],从而提高了分类正确率。其结构如图2(f)中所示;
d)计算F2对训练样本的预测值,即 返回(1)。
重复类似于步骤(1)(2)的过程,我们得到了H-MLSVMs分类器F3(如图2(c)中所示)和F4(如图2(d)中所示),其结构分别为图2(f)中所示。上述迭代过程一直到H-MLSVMs中所有结点处分类器的数目达到一个给定的整数,或者在测试数据集上正确率的增长幅度在足够小的范围之内时,停止。在试验中,我们采用第一种迭代停止方法。图2(e)是经过二十五次迭代后H-MLSVMs分类器的分类边界。
当新来一个样本需要H-MLSVMs分类时,让这个新来的样本从层次结构分类器H-MLSVMs的根结点出发一直到达某个叶子结点,根据计算出来的函数值判断其类别,具体分类流程如图3所示。
由于FM中包含了H-MLSVMs中所有结点处的分类器,所以图2中“ ”标志着x已经到达叶子结点,输出其函数值即可,如果其函数值大于等于零,其为正类,否则为负类。“f[I,1]∈FM(f[I,-1]∈FM)”意味着x还没有到达叶子结点,需要用分类器“f[I,1](f[I,-1])”进一步划分。如图2(c)中样本x(五角星)所示,其分类过程中前三步所走的路径如图2(f)箭头所示。