Svm分类器训练样本获取方法、训练方法及其系统的制作方法

文档序号:6505120阅读:1111来源:国知局
Svm分类器训练样本获取方法、训练方法及其系统的制作方法
【专利摘要】本发明提供一种SVM分类器训练样本获取方法、训练方法及其系统,包括:计算获取SVM分类器的各个样本的距离;根据各个所述样本的距离,对所述样本进行第一次聚类,获取至少一个第一分类,以及各个所述第一分类包含的样本;对所述样本进行第二次聚类,获取至少一个第二分类,以及各个所述第二分类包含的样本;其中,所述第二距离阈值大于所述第一距离阈值;将只包含一个样本的所述第二分类中的样本划分为孤立样本;分别在各个所述第一分类中选取一个样本作为代表样本,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本。可以有效减少样本的数量,降低分类器的样本空间的复杂性,使分类器训练更加简单,更加有效。
【专利说明】SVM分类器训练样本获取方法、训练方法及其系统

【技术领域】
[0001]本发明涉及SVM分类器的【技术领域】,特别是涉及一种SVM分类器训练样本获取方法及其系统,以及一种SVM分类器训练方法及其系统。

【背景技术】
[0002]SVM(Support Vector Machine)是 Cortes 和 Vapnik 于 1995 年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
[0003]SVM是建立在统计学习理论的VC维(vapnik-chervonenkis dimens1n)理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(或称泛化能力)。
[0004]在处理两类分类问题中,SVM是一种常用的方法,因为其易用性,SVM已经被应用到很多实际工程中,例如:物体检测、人脸识别等。在使用SVM处理两类分类问题时,首先要对SVM进行训练。
[0005]同时,在实际的工业化应用中,SVM面临很多问题,有很多需要优化的地方,其中样本的选择和分类器的自动训练问题是最主要的问题。
[0006]目前对于SVM分类器的使用,普遍的训练方法,第一种是预先人工好一定数量的训练正样本和训练负样本。然而该方法过分依赖人工,无法自动化操作。对于工业化需要有很多SVM分类器的场合,该方法需要花费巨大的人力成本,甚至无法完成。
[0007]第二种方法是当样本数量达到一定程度的时候,使用全部的样本自动重新训练SVM分类器。
[0008]然而,该方法训练出来的SVM分类器占用空间大。因为训练正负样本的数量越来越大,样本空间的复杂性也增加很大,训练出来的SVM分类器需要数量庞大的支持向量,导致分类器所占用的空间增加明显,并且每次识别需要的时间也明显增加。并且,使用上述方法训练的SVM分类器,容易受到噪声样本的影像。在工业化应用场合,样本中经常会出现噪声样本,这些噪声样本对于分类器的效果影响很大。例如,一个人物的人脸数据中,训练正样本中存在其他人物的人脸,会导致训练出来的人脸分类器效果下降,容易引起其他人物的误检。如果使用全部的样本作为训练样本训练分类器,必然会受到噪声样本的影响。


【发明内容】

[0009]针对上述【背景技术】中存在的分类器的样本空间的复杂性较大,容易受到噪声样本的影响的问题,本发明的目的在于提供一种SVM分类器训练样本获取方法及其系统,能够降低分类器样本空间的复杂性,并且减少噪声样本对分类器训练的影响。
[0010]一种SVM分类器训练样本获取方法,包括以下步骤:
[0011]计算获取SVM分类器的各个样本相互之间的距离;
[0012]将各个所述样本的距离与第一距离阈值比较,对所述样本进行第一次聚类,获取至少一个第一分类,以及各个所述第一分类包含的样本;
[0013]将各个所述样本的距离与第二距离阈值比较,对所述样本进行第二次聚类,获取至少一个第二分类,以及各个所述第二分类包含的样本;其中,所述第二距离阈值大于所述第一距离阈值;
[0014]当一个所述第二分类只包含一个样本,则将该样本划分为孤立样本;
[0015]分别在各个所述第一分类中选取一个样本作为代表样本,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本。
[0016]—种SVM分类器训练样本获取系统,包括:
[0017]距离计算模块,用于计算获取SVM分类器的各个样本相互之间的距离;
[0018]第一聚类模块,用于将各个所述样本的距离与第一距离阈值比较,对所述样本进行第一次聚类,获取至少一个第一分类,以及各个所述第一分类包含的样本;
[0019]第二聚类模块,用于将各个所述样本的距离与第二距离阈值比较,对所述样本进行第二次聚类,获取至少一个第二分类,以及各个所述第二分类包含的样本;其中,所述第二距离阈值大于所述第一距离阈值;
[0020]孤立样本模块,用于当一个所述第二分类只包含一个样本,则将该样本划分为孤立样本;
[0021]训练样本设置模块,用于分别在各个所述第一分类中选取一个样本作为代表样本,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本。
[0022]本发明的SVM分类器训练样本获取方法及其系统中,通过比较各个所述样本之间的距离,根据样本距离对各个样本进行聚类。因为样本是一个K维的特征向量,两个样本之间的距离表示了两个样本之间的相似性。对样本距离较接近的样本进行第一次聚类,可以将比较相似的样本归为同一个第一分类。而对样本进行所述第二分类,则可以有效地挑选出孤立样本,在得到的各个样本之中,噪声样本的可能性被大大减少,因此可以有效减少噪声样本对分类器训练的影响。而在同属于同一个第一分类的各个样本之中挑选出一个作为代表样本。以各个所述第一分类的代表样本作为训练样本,可以有效减少样本的数量,降低分类器的样本空间的复杂性,使分类器训练更加简单,更加有效。
[0023]针对上述【背景技术】中存在的分类器的样本空间的复杂性较大,容易受到噪声样本的影响的问题,本发明的目的还在于提供一种SVM分类器训练方法及其系统,能够降低分类器样本空间的复杂性,并且减少噪声样本对分类器训练的影响。
[0024]一种SVM分类器训练方法,包括以下步骤:
[0025]采用本发明的SVM分类器训练样本获取方法获取训练样本;
[0026]利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型。
[0027]一种SVM分类器训练系统,包括:
[0028]本发明的SVM分类器训练样本获取系统;
[0029]以及,利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型的训练模块。
[0030]本发明SVM分类器训练方法及其系统,可以实现自动化训练SVM分类器,对于工业化应用场合需要大量分类器、样本数量不断增长或者变化的情况,本发明可以自动完成训练并达到较好的效果。同时可以过滤掉训练样本中孤立的样本,降低分类器识别结果的错误率。过滤掉训练样本中的相似样本,降低分类器所占的空间大小,并减少分类器的识别时间。

【专利附图】

【附图说明】
[0031]图1是本发明SVM分类器训练样本获取方法第一实施方式的流程示意图;
[0032]图2是本发明SVM分类器训练样本获取方法第二实施方式中设置分类器的训练正样本的方法流程示意图;
[0033]图3是本发明SVM分类器训练样本获取方法第三实施方式中设置分类器的训练负样本的方法流程示意图;
[0034]图4是本发明SVM分类器训练样本获取系统的结构示意图;
[0035]图5是本发明SVM分类器训练系统的结构示意图。

【具体实施方式】
[0036]请参阅图1,图1是本发明SVM分类器训练样本获取方法第一实施方式的流程示意图。
[0037]所述SVM分类器训练样本获取方法,包括以下步骤:
[0038]S101,计算获取SVM分类器的各个样本相互之间的距离;
[0039]S102,将各个所述样本的距离与第一距离阈值比较,对所述样本进行第一次聚类,获取至少一个第一分类,以及各个所述第一分类包含的样本;
[0040]S103,将各个所述样本的距离与第二距离阈值比较,对所述样本进行第二次聚类,获取至少一个第二分类,以及各个所述第二分类包含的样本;其中,所述第二距离阈值大于所述第一距离阈值;
[0041]S104,当一个所述第二分类只包含一个样本,则将该样本划分为孤立样本;
[0042]S105,分别在各个所述第一分类中选取一个样本作为代表样本,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本。
[0043]本发明的SVM分类器训练样本获取方法通过比较各个所述样本之间的距离,根据样本距离对各个样本进行聚类。因为样本是一个K维的特征向量,两个样本之间的距离表示了两个样本之间的相似性。对样本距离较接近的样本进行第一次聚类,可以将比较相似的样本归为同一个第一分类。而对样本进行所述第二分类,则可以有效地挑选出孤立样本,在得到的各个样本之中,噪声样本的可能性被大大减少,因此可以有效减少噪声样本对分类器训练的影响。而在同属于同一个第一分类的各个样本之中挑选出一个作为代表样本。以各个所述第一分类的代表样本作为训练样本,可以有效减少样本的数量,降低分类器的样本空间的复杂性,使分类器训练更加简单,更加有效。
[0044]其中,对于步骤SlOl,所述SVM分类器的样本是一个K维的特征向量,两个样本之间的距离可以有多种计算方法,例如欧氏距离、COS距离、街道距离等,本发明对距离的计算方法不做限制,具体方法取决于实际应用场合特征的情况。
[0045]在计算SVM分类器的所有样本两两之间的距离时,可以将所有样本的距离保存成一个由距离组成的特征矩阵。则在所述SVM分类器的样本有新增,导致所述SVM分类器的样本的距离信息有所改变时,可以只计算新增样本与旧样本之间的距离,而无需再次计算各个旧样本之间的距离,只要从所述距离的特征矩阵中读取相应的旧样本的距离之后,就可以生成新的特征矩阵。大大减少了样本距离的计算时间,提高了分类器训练的效率。
[0046]具体包括以下步骤:
[0047]S11,分别计算所述SVM分类器的各个样本之间的距离,并将计算获得的各个所述距离保存成特征矩阵;
[0048]S12,当所述SVM分类器的样本新增时,计算新增的样本与其他样本之间的距离,并从所述特征矩阵中读取其他各个样本之间的距离,生成新的特征矩阵。
[0049]计算上述距离的特征矩阵时,需要对每个样本对(两个样本)计算出一个特征距离,最终得到所有样本对之间的特征距离,保存在一个特征矩阵中。因为特征距离的计算会消耗一定的时间,因此每次计算完距离的特征矩阵后,把该特征矩阵存放在一个指定的位置。再次计算该特征矩阵的时候,只需要对新增的样本对计算距离值,而对于已经计算过距离的样本对,从所述特征矩阵直接读取上次计算的结果即可,不需要重新计算,这样可以节省很多计算时间。
[0050]对于步骤S102,根据计算出的各个所述样本的距离与第一距离阈值,进行第一次聚类。
[0051]在进行所述第一次聚类时,根据第一距离阈值distl判断两个样本是否属于同一类,如果两个样本的距离小于distl,则将这两个样本标记为一类。如果一个样本同时和另外两个样本属于一类,则标记这三个样本为同一类。按照这样的逻辑不断循环判断,可以将所有的N个样本分成M类(M小于等于N)。对于每一个类,可能包含I?N个样本。如果其中一个类的样本数量大于1,那么该类中的每个样本肯定会和至少一个本类中其他样本的距离小于distl。将进行所述第一次聚类的结果,即至少一个所述第一分类,以及各个所述第一分类包含的样本保存到指定的文件,在样本新增需要重新进行所述第一次聚类的时候,可以从所述文件中读取所述结果,在此基础上计算。如果样本有减少,则判断包含该样本的第一分类是否需要拆分,如果样本有增加,则计算新样本的归类情况,这样可以节省计算的时间。
[0052]对于步骤S103,根据计算出的各个所述样本的距离与第二距离阈值,进行第二次聚类。
[0053]第二次聚类时,根据第二距离阈值dist2再次判断两个样本是否属于同一类,因为dist2大于distl,即第二次聚类的阈值比第一次聚类的阈值要宽松很多,所以会让绝大部分或者全部样本都聚类成功(同一类中样本数量大于I个),而只含有一个样本的类会非常少或者没有。所述第二次聚类的目的是找到孤立的样本,经过第二次聚类,只包含一个样本的第二分类中的样本,将在步骤S104中被标注为孤立样本。第二次聚类的结果同样保存到指定的文件,再次计算聚类的时候,可以在此基础上计算,减少时间成本。
[0054]对于步骤S104,将只包含一个样本的第二分类中的样本划分为孤立样本。因为所述孤立样本与其他样本之间的距离都比较大,所以孤立样本通常代表噪声。
[0055]对于步骤S105,首先分别在各个所述第一分类中选取一个样本作为代表样本。因为每一类的各个样本之间距离较小,比较接近,从每一所述第一分类中选出一个代表样本,可以通过所述代表样本“代表”该第一分类中的所有样本,有效减少分类器的训练样本的数量,提高分类器训练的效率,而且不会降低训练的效果。
[0056]根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本的方式可能有多种,可以根据具体的应用场合设置。在本实施方式中,设置所述SVM分类器的训练样本的方式为:
[0057]在各个所述代表样本中剔除所述孤立样本后,将其余的所述代表样本设置为所述训练样本。
[0058]这样不仅可以减少分类器的训练样本的数量,而且不会降低训练的效果,并可以有效降低噪声样本对分类器训练的影响。
[0059]请参阅图2,图2是本发明SVM分类器训练样本获取方法第二实施方式中设置分类器的训练正样本的方法流程示意图。
[0060]在本实施方式主要描述对所述分类器的训练正样本的设置方式。具体根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本的步骤包括:
[0061]S201,如果所述样本是正样本,并且选取的所述代表样本的数量N大于训练正样本数的最大值max,则获取包含样本数量较多的前max个所述第一分类所对应的代表样本作为训练正样本;
[0062]S202,如果所述样本是正样本,并且选取的所述代表样本的数量N小于训练正样本数的最小值min,则选取所有的代表样本作为训练正样本,并在所述孤立样本中再选取不超过min-N个作为训练正样本;
[0063]S203,如果所述样本是正样本,并且选取的所述代表样本的数量N小于或等于训练正样本数的最大值max,且大于或等于训练正样本数的最小值min,则选取所有的所述代表样本作为训练正样本。
[0064]在对正样本的聚类中,所述第二聚类后得到的孤立样本通常代表噪声。因此,对正样本的设置策略为:对第一次聚类成功的样本以及相应的类,根据每一类含有样本的数量,将各个所述第一分类按照其包含的样本数量由多至少排序,每一个所述第一分类中选择一个样本作为代表样本。当该第一分类的数量N大于训练正样本数的最大值max,则根据排序结果,获取包含样本数量较多的前max个所述第一分类所对应的代表样本作为训练正样本;当该第一分类的数量N小于训练正样本数的最小值min的时候,选择全部N个第一分类的代表样本,作为训练正样本,另外在孤立样本中再随机选择不超过min-N个正样本,同样作为训练正样本。当该第一分类的数量N小于或等于训练正样本数的最大值max,且大于或等于训练正样本数的最小值min的时候,选择全部N个所述第一分类的代表样本,作为训练正样本。
[0065]本实施方式中,对所述分类器的正样本,根据所述第一分类的数量(即代表样本的数量)N与所述训练正样本数的最大值max、最小值min比较,在代表样本的数量过多时,选择包含样本数量较多的第一分类对应的代表样本作为训练正样本,可以提高分类器的准确性;在代表样本的数量足够而不过多时,选择所有的代表样本作为训练正样本;在代表样本的数量不足时,从孤立样本中随机选择若干正样本同时作为训练正样本,可以确保训练样本的数量,不会因筛选而造成训练样本不足的情况。
[0066]请参阅图3,图3是本发明SVM分类器训练样本获取方法第三实施方式中设置分类器的训练负样本的方法流程示意图。
[0067]在本实施方式主要描述对所述分类器的训练负样本的设置方式。具体根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本的步骤包括:
[0068]S301,如果所述样本是负样本,并且选取的所述代表样本的数量大于或者等于训练负样本数的最小值,则选取所有的代表样本以及所有的所述孤立样本作为训练负样本;
[0069]S302,如果所述样本是负样本,并且选取的所述代表样本的数量小于训练负样本数的最小值,则从每个所述第一分类中再选取另一个样本作为补充代表样本,将所述代表样本以及补充代表样本一起作为训练负样本。
[0070]对负样本的设置策略为:
[0071]在所述代表样本的数量大于或者等于训练负样本数的最小值neg2时,在每个所述第一分类中选择一个代表样本,加上所有的孤立样本,作为训练负样本。所述代表样本的数量小于所述训练负样本数的最小值neg2的时候,在每个所述第一分类中选择再次选取一个补充代表样本,补充到训练负样本中去。
[0072]在本实施方式中,对于负样本,将代表样本的数量和训练负样本数的最小值比较,在代表样本数量足够时,选取全部的代表样本加上所有的孤立样本作为训练负样本;在代表样本数量不足时,在每个第一分类中选择两个代表样本作为训练负样本,可以提高所述分类器的分类准确性。
[0073]进一步地,在上述第一至第三实施方式中,可以首先判断所述分类器的所有样本的数量,如果所有样本的总数量小于预设阈值,则将所有样本作为训练样本。
[0074]S卩,当正样本数量小于训练正样本数的最小值min的时候,所有正样本都通过筛选,作为训练正样本;当正样本数量大于最小值min的时候,才对正样本进行聚类筛选,根据聚类后的结果筛选出部分训练正样本。当负样本数量小于训练负样本数的阈值negl的时候,所有负样本都通过筛选,作为训练负样本;当负样本数量大于阈值negl的时候,对负样本进行聚类,根据聚类后的结果筛选出部分训练负样本。此方法可以确保训练样本数的充足,使分类器能够完成训练。
[0075]本发明还提供一种基于上述SVM分类器训练样本获取方法的SVM分类器训练方法。所述SVM分类器训练方法包括以下步骤:
[0076]采用本发明的SVM分类器训练样本获取方法获取训练样本;
[0077]利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型。
[0078]本发明可以实现自动化训练SVM分类器,对于工业化应用场合需要大量分类器、样本数量不断增长或者变化的情况,本发明可以自动完成训练并达到较好的效果。同时可以过滤掉训练样本中孤立的样本,降低分类器识别结果的错误率。过滤掉训练样本中的相似样本,降低分类器所占的空间大小,并减少分类器的识别时间。
[0079]作为所述SVM分类器训练方法的一个优选实施方式,可以进一步执行分类器模型的自动更新。具体方法为:
[0080]设置更新触发条件,当满足所述更新触发条件时,重新获取训练样本,利用重新获取的训练样本训练SVM分类器,获取SVM分类器模型,将获取的SVM分类器模型更新当前的SVM分类器模型。
[0081]重新获取训练样本的方式包括重新获取所有的样本对所有的样本进行距离计算,获得新的距离矩阵之后进行聚类,根据聚类结果重新获取训练样本。
[0082]优选地,也包括当所述SVM分类器的样本新增时,可只计算新增的样本与其他样本之间的距离,并从所述特征矩阵中读取其他各个样本之间的距离,生成新的特征矩阵。然后根据新的距离矩阵进行聚类,根据聚类结果重新获取训练样本。
[0083]触发一次模型更新的条件可以有多种,例如:样本变化达到预设值、间隔一定时间坐寸ο
[0084]优选地,通过以下方式判断所述SVM分类器模型是否满足预设的更新触发条件:
[0085]记录每次训练SVM分类器时各个样本的唯一 ID号,将上次训练时各个样本的唯一ID号与当前所述SVM分类器各个样本的唯一 ID号比较,获取所述SVM分类器的样本变化量,当所述SVM分类器的样本变化量达到预设的变化量阈值时,判断所述SVM分类器模型满足预设的更新触发条件;
[0086]和/ 或,
[0087]记录每次训练的时间,将当前时间与上次训练的时间比较,获取当前时间与上次训练的时间之间的时间间隔,当所述时间间隔达到预定的时间间隔阈值时,判断所述SVM分类器模型满足预设的更新触发条件。
[0088]所述样本的唯一 ID号和所述每次训练的时间等训练信息可以保存到一个标签文件中,在每次需要判断更新状况时,从所述标签文件中读取并进行判断。
[0089]优选地,将每次训练SVM分类器的训练信息保存到一个meta文件中,其中,所述训练信息包括各个样本的唯一 ID号,和/或,每次训练的时间;
[0090]从所述meta文件读取上次训练SVM分类器的训练信息,根据所述训练信息判断是否满足所述更新触发条件。
[0091]S卩,在筛选出训练正样本和训练负样本后,用这些训练样本训练SVM分类器,得到训练后的SVM模型,保存下来。同时将训练前的相关信息保存到一个meta文件中,保存的信息可包括:所有样本的唯一 ID号、上次训练的时间等等。下次更新模型前,首先读取所述meta文件,根据meta文件中保存的信息,判断是否需要更新SVM模型,判断的条件本发明中不做限制,可以根据实际情况来设定。所述meta文件一个辅助性标签文件。
[0092]每次触发模型更新的时候,都先读取meta文件,判断是否需要更新模型。如果不满足条件,就不做本次更新,如果满足条件,就对样本通过上述方法进行整体聚类、对正样本和负样本分别进行筛选、训练SVM模型、然后更新所述meta文件并保存。
[0093]本发明的SVM分类器训练方法可以自动筛选分类器样本,还可以自动更新模型,因此适用于工业化场合,可以处理需要大量分类器、样本数量不断增长或者变化、需要对分类器模型经常进行更新等场合。经过两次聚类筛选,每次训练模型需要的样本数量大大减少,会使得训练出来的SVM模型需要的支持向量减少,因此模型所占空间变小、识别速度增力口。同时如果正样本中含有少量噪声样本,会在聚类过程中被过滤掉,因此分类器模型的抗噪声能力增强。因为采用聚类算法选择了代表样本进行训练,因此训练出来的SVM模型的查全率不会明显下降,还能保证有较高的查全率,但错误率会明显下降。
[0094]请参阅图4,图4是本发明SVM分类器训练样本获取系统的结构示意图。
[0095]所述SVM分类器训练样本获取系统,包括:
[0096]距离计算模块11,用于计算获取SVM分类器的各个相互之间的距离;
[0097]第一聚类模块12,用于将各个所述样本的距离与第一距离阈值比较,对所述样本进行第一次聚类,获取至少一个第一分类,以及各个所述第一分类包含的样本;
[0098]第二聚类模块13,用于将各个所述样本的距离与第二距离阈值比较,对所述样本进行第二次聚类,获取至少一个第二分类,以及各个所述第二分类包含的样本;其中,所述第二距离阈值大于所述第一距离阈值;
[0099]孤立样本模块14,用于当一个所述第二分类只包含一个样本,则该样本划分为孤立样本;
[0100]训练样本设置模块15,用于分别在各个所述第一分类中选取一个样本作为代表样本,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本。
[0101 ] 本发明的SVM分类器训练样本获取系统通过比较各个所述样本之间的距离,根据样本距离对各个样本进行聚类。因为样本是一个K维的特征向量,两个样本之间的距离表示了两个样本之间的相似性。对样本距离较接近的样本进行第一次聚类,可以将比较相似的样本归为同一个第一分类。而对样本进行所述第二分类,则可以有效地挑选出孤立样本,在得到的各个样本之中,噪声样本的可能性被大大减少,因此可以有效减少噪声样本对分类器训练的影响。而在同属于同一个第一分类的各个样本之中挑选出一个作为代表样本。以各个所述第一分类的代表样本作为训练样本,可以有效减少样本的数量,降低分类器的样本空间的复杂性,使分类器训练更加简单,更加有效。
[0102]其中,所述SVM分类器的样本是一个K维的特征向量,两个样本之间的距离可以有多种计算方法,例如欧氏距离、COS距离、街道距离等,本发明对距离的计算方法不做限制,具体方法取决于实际应用场合特征的情况。
[0103]所述距离计算模块11在计算SVM分类器的所有样本两两之间的距离时,可以将所有样本的距离保存成一个由距离组成的特征矩阵。则在所述SVM分类器的样本有新增,导致所述SVM分类器的样本的距离信息有所改变时,可以只计算新增样本与旧样本之间的距离,而无需再次计算各个旧样本之间的距离,只要从所述距离的特征矩阵中读取相应的旧样本的距离之后,就可以生成新的特征矩阵。大大减少了样本距离的计算时间,提高了分类器训练的效率。
[0104]S卩,所述距离计算模块11可包括以下子模块:
[0105]分别计算所述SVM分类器的各个样本之间的距离,并将计算获得的各个所述距离保存成特征矩阵的子模块;
[0106]以及,当所述SVM分类器的样本新增时,计算新增的样本与其他样本之间的距离,并从所述特征矩阵中读取其他各个样本之间的距离,生成新的特征矩阵的子模块。
[0107]所述距离计算模块11计算上述距离的特征矩阵时,需要对每个样本对(两个样本)计算出一个特征距离,最终得到所有样本对之间的特征距离,保存在一个特征矩阵中。因为特征距离的计算会消耗一定的时间,因此每次计算完距离的特征矩阵后,把该特征矩阵存放在一个指定的位置。再次计算该特征矩阵的时候,只需要对新增的样本对计算距离值,而对于已经计算过距离的样本对,从所述特征矩阵直接读取上次计算的结果即可,不需要重新计算,这样可以节省很多计算时间。
[0108]所述第一聚类模块12根据计算出的各个所述样本的距离与第一距离阈值,进行第一次聚类。
[0109]所述第一聚类模块12在进行所述第一次聚类时,根据第一距离阈值distl判断两个样本是否属于同一类,如果两个样本的距离小于distl,则将这两个样本标记为一类。如果一个样本同时和另外两个样本属于一类,则标记这三个样本为同一类。按照这样的逻辑不断循环判断,可以将所有的N个样本分成M类(M小于等于N)。对于每一个类,可能包含I?N个样本。如果其中一个类的样本数量大于I,那么该类中的每个样本肯定会和至少一个本类中其他样本的距离小于distl。将进行所述第一次聚类的结果,即至少一个所述第一分类,以及各个所述第一分类包含的样本保存到指定的文件,在样本新增需要重新进行所述第一次聚类的时候,可以从所述文件中读取所述结果,在此基础上计算。如果样本有减少,则判断包含该样本的第一分类是否需要拆分,如果样本有增加,则计算新样本的归类情况,这样可以节省计算的时间。
[0110]所述第二聚类模块13根据计算出的各个所述样本的距离与第二距离阈值,进行第二次聚类。
[0111]所述第二聚类模块13进行第二次聚类时,根据第二距离阈值dist2再次判断两个样本是否属于同一类,因为dist2大于distl,即第二次聚类的阈值比第一次聚类的阈值要宽松很多,所以会让绝大部分或者全部样本都聚类成功(同一类中样本数量大于I个),而只含有一个样本的类会非常少或者没有。所述第二次聚类的目的是找到孤立的样本,经过第二次聚类,只包含一个样本的第二分类中的样本,将被标注为孤立样本。第二次聚类的结果同样保存到指定的文件,再次计算聚类的时候,可以在此基础上计算,减少时间成本。
[0112]所述孤立样本模块14将只包含一个样本的第二分类中的样本划分为孤立样本。因为所述孤立样本与其他样本之间的距离都比较大,所以孤立样本通常代表噪声。
[0113]所述训练样本设置模块15首先分别在各个所述第一分类中选取一个样本作为代表样本。因为每一类的各个样本之间距离较小,比较接近,从每一所述第一分类中选出一个代表样本,可以通过所述代表样本“代表”该第一分类中的所有样本,有效减少分类器的训练样本的数量,提高分类器训练的效率,而且不会降低训练的效果。
[0114]所述训练样本设置模块15根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本的方式可能有多种,可以根据具体的应用场合设置。在本实施方式中,所述训练样本设置模块15设置所述SVM分类器的训练样本的方式为:在各个所述代表样本中剔除所述孤立样本后,将其余的所述代表样本设置为所述训练样本。
[0115]这样不仅可以减少分类器的训练样本的数量,而且不会降低训练的效果,并可以有效降低噪声样本对分类器训练的影响。
[0116]作为本发明SVM分类器训练样本获取系统的一个优选实施方式,针对所述分类器的训练正样本的设置,所述训练样本设置模块15可包括以下子模块:。
[0117]如果所述样本是正样本,并且选取的所述代表样本的数量N大于训练正样本数的最大值max,则获取包含样本数量较多的前max个所述第一分类所对应的代表样本作为训练正样本的子模块;
[0118]如果所述样本是正样本,并且选取的所述代表样本的数量N小于训练正样本数的最小值min,则选取所有的代表样本作为训练正样本,并在所述孤立样本中再选取不超过min-N个作为训练正样本的子模块;
[0119]以及,如果所述样本是正样本,并且选取的所述代表样本的数量N小于或等于训练正样本数的最大值max,且大于或等于训练正样本数的最小值min,则选取所有的所述代表样本作为训练正样本的子模块。
[0120]对于正样本,所述第二聚类后得到的孤立样本通常代表噪声。因此,对正样本的设置策略为:对第一次聚类成功的样本以及相应的类,根据每一类含有样本的数量,将各个所述第一分类按照其包含的样本数量由多至少排序,每一个所述第一分类中选择一个样本作为代表样本。当该第一分类的数量N大于训练正样本数的最大值max,则根据排序结果,获取包含样本数量较多的前max个所述第一分类所对应的代表样本作为训练正样本;当该第一分类的数量N小于训练正样本数的最小值min的时候,选择全部N个第一分类的代表样本,作为训练正样本,另外在孤立样本中再随机选择不超过min-N个正样本,同样作为训练正样本。当该第一分类的数量N小于或等于训练正样本数的最大值max,且大于或等于训练正样本数的最小值min的时候,选择全部N个所述第一分类的代表样本,作为训练正样本。
[0121]本实施方式中,对所述分类器的正样本,根据所述第一分类的数量(即代表样本的数量)N与所述训练正样本数的最大值max、最小值min比较,在代表样本的数量过多时,选择包含样本数量较多的第一分类对应的代表样本作为训练正样本,可以提高分类器的准确性;在代表样本的数量足够而不过多时,选择所有的代表样本作为训练正样本;在代表样本的数量不足时,从孤立样本中随机选择若干正样本同时作为训练正样本,可以确保训练样本的数量,不会因筛选而造成训练样本不足的情况。
[0122]作为本发明SVM分类器训练系统的另一个优选实施方式,针对所述分类器的训练负样本的设置,所述训练样本设置模块15包括以下子模块:
[0123]如果所述样本是负样本,并且选取的所述代表样本的数量大于或者等于训练负样本数的最小值,则选取所有的代表样本以及所有的所述孤立样本作为训练负样本子模块;
[0124]以及,如果所述样本是负样本,并且选取的所述代表样本的数量小于训练负样本数的最小值,则从每个所述第一分类中再选取另一个样本作为补充代表样本,再将所述代表样本以及补充代表样本一起作为训练负样本的子模块。
[0125]对负样本的设置策略为:
[0126]在所述代表样本的数量大于或者等于训练负样本数的最小值neg2时,在每个所述第一分类中选择一个代表样本,加上所有的孤立样本,作为训练负样本。所述代表样本的数量小于所述训练负样本数的最小值neg2的时候,在每个所述第一分类中选择再次选取一个补充代表样本,补充到训练负样本中去。
[0127]在本实施方式中,对于负样本,将代表样本的数量和训练负样本数的最小值比较,在代表样本数量足够时,选取全部的代表样本加上所有的孤立样本作为训练负样本;在代表样本数量不足时,在每个第一分类中选择两个代表样本作为训练负样本,可以提高所述分类器的分类准确性。
[0128]进一步地,在上述各个实施方式中,所述训练样本设置模块15可进一步包括以下子模块:
[0129]如果所有样本的总数量小于预设阈值,则将所有样本作为训练样本的子模块。
[0130]S卩,首先判断所述分类器的所有样本的数量,当正样本数量小于训练正样本数的最小值min的时候,所有正样本都通过筛选,作为训练正样本;当正样本数量大于最小值min的时候,才对正样本进行聚类筛选,根据聚类后的结果筛选出部分训练正样本。当负样本数量小于训练负样本数的阈值negl的时候,所有负样本都通过筛选,作为训练负样本;当负样本数量大于阈值negl的时候,对负样本进行聚类,根据聚类后的结果筛选出部分训练负样本。此方法可以确保训练样本数的充足,使分类器能够完成训练。
[0131]本发明还提供一种SVM分类器训练系统。请参阅图5,图5是本发明SVM分类器训练系统的结构示意图。
[0132]所述SVM分类器训练系统包括:
[0133]本发明的SVM分类器训练样本获取系统10 ;
[0134]以及,利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型的训练模块20。
[0135]本发明可以实现自动化训练SVM分类器,对于工业化应用场合需要大量分类器、样本数量不断增长或者变化的情况,本发明可以自动完成训练并达到较好的效果。同时可以过滤掉训练样本中孤立的样本,降低分类器识别结果的错误率。过滤掉训练样本中的相似样本,降低分类器所占的空间大小,并减少分类器的识别时间。
[0136]作为所述SVM分类器训练系统的一个优选实施方式,可以进一步执行分类器模型的自动更新。亦即,所述训练模块包括更新模块,所述更新模块用于设置更新触发条件,当满足所述更新触发条件时,重新获取训练样本,利用重新获取的训练样本训练SVM分类器,获取SVM分类器模型,将获取的SVM分类器模型更新当前的SVM分类器模型。
[0137]重新获取训练样本的方式包括重新获取所有的样本对所有的样本进行距离计算,获得新的距离矩阵之后进行聚类,根据聚类结果重新获取训练样本。
[0138]优选地,也包括当所述SVM分类器的样本新增时,可只计算新增的样本与其他样本之间的距离,并从所述特征矩阵中读取其他各个样本之间的距离,生成新的特征矩阵。然后根据新的距离矩阵进行聚类,根据聚类结果重新获取训练样本。
[0139]触发一次模型更新的条件可以有多种,例如:样本变化达到预设值、间隔一定时间坐寸ο
[0140]优选地,所述更新模块包括第一更新触发模块和/或第二更新触发模块;
[0141]所述第一更新触发模块用于记录每次训练SVM分类器时各个样本的唯一 ID号,将上次训练时各个样本的唯一 ID号与当前所述SVM分类器各个样本的唯一 ID号比较,获取所述SVM分类器的样本变化量,当所述SVM分类器的样本变化量达到预设的变化量阈值时,判断所述SVM分类器模型满足预设的更新触发条件;
[0142]所述第二更新触发模块用于记录每次训练的时间,将当前时间与上次训练的时间比较,获取当前时间与上次训练的时间之间的时间间隔,当所述时间间隔达到预定的时间间隔阈值时,判断所述SVM分类器模型满足预设的更新触发条件。
[0143]所述样本的唯一 ID号和所述每次训练的时间等训练信息可以保存到一个标签文件中,在每次需要判断更新状况时,从所述标签文件中读取并进行判断。
[0144]优选地,所述训练模块还包括信息保存模块,所述信息保存模块用于将每次训练SVM分类器的训练信息保存到一个meta文件中,其中,所述训练信息包括各个样本的唯一ID号,和/或,每次训练的时间;
[0145]所述更新模块从所述meta文件读取上次训练SVM分类器的训练信息,根据所述训练信息判断是否满足所述更新触发条件。
[0146]S卩,在筛选出训练正样本和训练负样本后,用这些训练样本训练SVM分类器,得到训练后的SVM模型,保存下来。同时将训练前的相关信息保存到一个meta文件中,保存的信息可包括:所有样本的唯一 ID号、上次训练的时间等等。下次更新模型前,首先读取所述meta文件,根据meta文件中保存的信息,判断是否需要更新SVM模型,判断的条件本发明中不做限制,可以根据实际情况来设定。所述meta文件一个辅助性标签文件。
[0147]每次触发模型更新的时候,都先读取meta文件,判断是否需要更新模型。如果不满足条件,就不做本次更新,如果满足条件,就对样本通过上述方法进行整体聚类、对正样本和负样本分别进行筛选、训练SVM模型、然后更新所述meta文件并保存。
[0148]本发明的SVM分类器训练系统可以自动筛选分类器样本,还可以自动更新模型,因此适用于工业化场合,可以处理需要大量分类器、样本数量不断增长或者变化、需要对分类器模型经常进行更新等场合。经过两次聚类筛选,每次训练模型需要的样本数量大大减少,会使得训练出来的SVM模型需要的支持向量减少,因此模型所占空间变小、识别速度增力口。同时如果正样本中含有少量噪声样本,会在聚类过程中被过滤掉,因此分类器模型的抗噪声能力增强。因为采用聚类算法选择了代表样本进行训练,因此训练出来的SVM模型的查全率不会明显下降,还能保证有较高的查全率,但错误率会明显下降。
[0149]本领域普通技术人员可以理解实现上述实施方式中的全部或部分流程以及对应的系统,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施方式的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory, RAM)等。
[0150]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种SVM分类器训练样本获取方法,其特征在于,包括以下步骤: 计算获取SVM分类器的各个样本相互之间的距离; 将各个所述样本的距离与第一距离阈值比较,对所述样本进行第一次聚类,获取至少一个第一分类,以及各个所述第一分类包含的样本; 将各个所述样本的距离与第二距离阈值比较,对所述样本进行第二次聚类,获取至少一个第二分类,以及各个所述第二分类包含的样本;其中,所述第二距离阈值大于所述第一距离阈值; 当一个所述第二分类只包含一个样本,则将该样本划分为孤立样本; 分别在各个所述第一分类中选取一个样本作为代表样本,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本。
2.如权利要求1所述的SVM分类器训练样本获取方法,其特征在于,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本的步骤包括: 在各个所述代表样本中剔除所述孤立样本后,将其余的所述代表样本设置为所述训练样本。
3.如权利要求1所述的SVM分类器训练样本获取方法,其特征在于,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本的步骤包括: 如果所述样本是正样本,并且选取的所述代表样本的数量N大于训练正样本数的最大值max,则获取包含样本数量较多的前max个所述第一分类所对应的代表样本作为训练正样本; 如果所述样本是正样本,并且选取的所述代表样本的数量N小于训练正样本数的最小值min,则选取所有的代表样本作为训练正样本,并在所述孤立样本中再选取不超过min-N个作为训练正样本; 如果所述样本是正样本,并且选取的所述代表样本的数量N小于或等于训练正样本数的最大值max,且大于或等于训练正样本数的最小值min,则选取所有的所述代表样本作为训练正样本。
4.如权利要求1所述的SVM分类器训练样本获取方法,其特征在于,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本的步骤包括: 如果所述样本是负样本,并且选取的所述代表样本的数量大于或者等于训练负样本数的最小值,则选取所有的代表样本以及所有的所述孤立样本作为训练负样本; 如果所述样本是负样本,并且选取的所述代表样本的数量小于训练负样本数的最小值,则从每个所述第一分类中再选取另一个样本作为补充代表样本,将所述代表样本以及补充代表样本一起作为训练负样本。
5.如权利要求1至4中任意一项所述的SVM分类器训练样本获取方法,其特征在于,计算获取SVM分类器的各个样本的距离的步骤包括: 分别计算所述SVM分类器的各个样本之间的距离,并将计算获得的各个所述距离保存成特征矩阵; 当所述SVM分类器的样本新增时,计算新增的样本与其他样本之间的距离,并从所述特征矩阵中读取其他各个样本之间的距离,生成新的特征矩阵。
6.一种SVM分类器训练方法,其特征在于,包括以下步骤: 采用权利要求1至5中任意一项所述的SVM分类器训练样本获取方法获取训练样本; 利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型。
7.如权利要求6所述的SVM分类器训练方法,其特征在于,利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型之后,还包括以下步骤: 设置更新触发条件,当满足所述更新触发条件时,重新获取训练样本,利用重新获取的训练样本训练SVM分类器,获取SVM分类器模型,将获取的SVM分类器模型更新当前的SVM分类器模型。
8.如权利要求7所述的SVM分类器训练方法,其特征在于,通过以下方式判断所述SVM分类器模型是否满足预设的更新触发条件: 记录每次训练SVM分类器时各个样本的唯一 ID号,将上次训练时各个样本的唯一 ID号与当前所述SVM分类器各个样本的唯一 ID号比较,获取所述SVM分类器的样本变化量,当所述SVM分类器的样本变化量达到预设的变化量阈值时,判断所述SVM分类器模型满足预设的更新触发条件; 和/或, 记录每次训练的时间,将当前时间与上次训练的时间比较,获取当前时间与上次训练的时间之间的时间间隔,当所述时间间隔达到预定的时间间隔阈值时,判断所述SVM分类器模型满足预设的更新触发条件。
9.一种SVM分类器训练样本获取系统,其特征在于,包括: 距离计算模块,用于计算获取SVM分类器的各个样本相互之间的距离; 第一聚类模块,用于将各个所述样本的距离与第一距离阈值比较,对所述样本进行第一次聚类,获取至少一个第一分类,以及各个所述第一分类包含的样本; 第二聚类模块,用于将各个所述样本的距离与第二距离阈值比较,对所述样本进行第二次聚类,获取至少一个第二分类,以及各个所述第二分类包含的样本;其中,所述第二距离阈值大于所述第一距离阈值; 孤立样本模块,用于当一个所述第二分类只包含一个样本,则将该样本划分为孤立样本; 训练样本设置模块,用于分别在各个所述第一分类中选取一个样本作为代表样本,根据所述代表样本和所述孤立样本设置所述SVM分类器的训练样本。
10.如权利要求9所述的SVM分类器训练样本获取系统,其特征在于,所述训练样本设置模块在各个所述代表样本中剔除所述孤立样本后,将其余的所述代表样本设置为所述训练样本。
11.如权利要求9所述的SVM分类器训练样本获取系统,其特征在于,所述训练样本设置模块包括以下子模块: 如果所述样本是正样本,并且选取的所述代表样本的数量N大于训练正样本数的最大值max,则获取包含样本数量较多的前max个所述第一分类所对应的代表样本作为训练正样本的子模块; 如果所述样本是正样本,并且选取的所述代表样本的数量N小于训练正样本数的最小值min,则选取所有的代表样本作为训练正样本,并在所述孤立样本中再选取不超过min-N个作为训练正样本的子模块; 以及, 如果所述样本是正样本,并且选取的所述代表样本的数量N小于或等于训练正样本数的最大值max,且大于或等于训练正样本数的最小值min,则选取所有的所述代表样本作为训练正样本的子模块。
12.如权利要求9所述的SVM分类器训练样本获取系统,其特征在于,所述训练样本设置模块包括以下子模块: 如果所述样本是负样本,并且选取的所述代表样本的数量大于或者等于训练负样本数的最小值,则选取所有的代表样本以及所有的所述孤立样本作为训练负样本的子模块; 以及, 如果所述样本是负样本,并且选取的所述代表样本的数量小于训练负样本数的最小值,则从每个所述第一分类中再选取另一个样本作为补充代表样本,再将所述代表样本以及补充代表样本一起作为训练负样本的子模块。
13.如权利要求9至12任意一项所述的SVM分类器训练样本获取系统,其特征在于,所述距离计算模块包括以下子模块: 分别计算所述SVM分类器的各个样本之间的距离,并将计算获得的各个所述距离保存成特征矩阵的子模块; 以及, 当所述SVM分类器的样本新增时,计算新增的样本与其他样本之间的距离,并从所述特征矩阵中读取其他各个样本之间的距离,生成新的特征矩阵的子模块。
14.一种SVM分类器训练系统,其特征在于,包括: 权利要求9至13中任意一项所述的SVM分类器训练样本获取系统; 以及,利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型的训练模块。
15.如权利要求14所述的SVM分类器训练系统,其特征在于,所述训练模块包括更新模块, 所述更新模块用于设置更新触发条件,在满足所述更新触发条件时,重新获取训练样本,利用获取的所述训练样本训练SVM分类器,获取SVM分类器模型,将获取的SVM分类器模型更新当前的SVM分类器模型。
16.如权利要求15所述的SVM分类器训练系统,其特征在于,所述更新模块包括第一更新触发模块和/或第二更新触发模块; 所述第一更新触发模块用于记录每次训练SVM分类器时各个样本的唯一 ID号,将上次训练时各个样本的唯一 ID号与当前所述SVM分类器各个样本的唯一 ID号比较,获取所述SVM分类器的样本变化量,当所述SVM分类器的样本变化量达到预设的变化量阈值时,判断所述SVM分类器模型满足预设的更新触发条件; 所述第二更新触发模块用于记录每次训练的时间,将当前时间与上次训练的时间比较,获取当前时间与上次训练的时间之间的时间间隔,当所述时间间隔达到预定的时间间隔阈值时,判断所述SVM分类器模型满足预设的更新触发条件。
【文档编号】G06K9/66GK104252627SQ201310269484
【公开日】2014年12月31日 申请日期:2013年6月28日 优先权日:2013年6月28日
【发明者】苗广艺, 路香菊, 单霆 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1