基于分布式计算与检测代价排序的Adboost训练学习方法及装置与流程

文档序号:14721012发布日期:2018-06-17 14:45阅读:167来源:国知局

本发明属于计算领域,涉及一种分类器的训练学习方法。



背景技术:

随着人工智能的商业化脚步不断加快,使用机器学习算法对各种一维、二维、三维乃至更高维度的样本训练成为了许多机器学习算法应用的无形障碍。因为随着样本维度与数量的增加,训练学习样本所占用的内存资源与CPU及GPU等计算资源也不断增加。一般一个PC或服务器的内存总是会有上限,这样就会在很大程度上限制训练学习的样本数目。目前传统的机器学习算法在训练技巧上虽然千差万别,但是占用系统资源却是无法避免的。因此要实现海量数据的样本训练,并行计算与分布式计算的结合是必不可少的手段。



技术实现要素:

为了适应高维度样本训练,解决由于单个计算机的内存与计算能力上限,导致的高维度海量数据样本训练检测速度慢的问题,本发明提出了一种基于分布式计算与检测代价排序的Adboost训练学习方法及装置,以实现并行训练,且循环形成新的级联分类器,加速检测速度。

为了实现上述目的,本发明的技术要点如下:

一种基于分布式计算与检测代价排序的Adboost训练学习方法,包括如下步骤:

步骤一.设定检测目标,根据级联分类器数量确定分发的计算机数量;

步骤二.将第二样本分发各计算机;

步骤三.分布式训练,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

步骤四.下一次分布式训练,将各个计算机的分错的第一样本汇总,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

步骤五.重复步骤四,直至新的级联分类器满足退出条件;

其中:所述的第一样本为待测试的正负样本中数量较多的样本,所述的第二样本为待测试的正负样本中数量较少的样本。

本发明还涉及一种基于分布式计算与检测代价排序的Adboost训练学习装置,包括:

检测目标设定装置,设定检测目标,根据级联分类器数量确定分发的计算机数量;

第二样本分发装置,将第二样本分发各计算机;

第一分布式训练装置,分布式训练,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

第二分布式训练装置,下一次分布式训练,将各个计算机的分错的第一样本汇总,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

分布式训练重复训练装置,第二分布式训练装置重复训练,直至新的级联分类器满足退出条件;

其中:所述的第一样本为待测试的正负样本中数量较多的样本,所述的第二样本为待测试的正负样本中数量较少的样本。

有益效果:

1.本发明利用Adboost算法自身特性,将其级联分类器拆分为多个计算机分布式并行计算的强分类器,克服了单个计算机对内存与计算能力的依赖。

2.本发明利用多次分布式训练迭代的方式,不断将样本数量庞大的样本进行压缩与重新分配,并根据各个计算机中强分类器的分类能力依次进行最终级联分类器的组成,使其在实时检测的时候达到最优的检测速度。

3.本发明在迭代进行分布式训练的时候,将最后三次分布式训练进行指标策略的特殊调整,保证了最终级联分类器的平稳收敛。

附图说明

图1是分布式Adboost训练方法流程

具体实施方式

实施例1:一种基于分布式计算与检测代价排序的Adboost训练学习方法,包括如下步骤:

步骤一.设定检测目标,根据级联分类器数量确定分发的计算机数量;

步骤二.将第二样本分发各计算机;

步骤三.分布式训练,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

步骤四.下一次分布式训练,将各个计算机的分错的第一样本汇总,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

步骤五.重复步骤四,直至新的级联分类器满足退出条件;即级联分类器满足设定的检测目标,其中:所述的第一样本为待测试的正负样本中数量较多的样本,所述的第二样本为待测试的正负样本中数量较少的样本。

本实施例利用Adboost算法自身特性,将其级联分类器拆分为多个计算机分布式并行计算的强分类器,克服了单个计算机对内存与计算能力的依赖。且利用多次分布式训练迭代的方式,不断将样本数量庞大的样本进行压缩与重新分配,并根据各个计算机中强分类器的分类能力依次进行新的级联分类器的组成,使其在实时检测的时候达到最优的检测速度。

实施例2:具有与实施例1相同的技术方案,更为具体的是:所述步骤三的步骤是:

S3.1.对第一样本拆分,并依次分发给各计算机;

S3.2.将强分类器计算指标分发给各计算机;

S3.3.各计算机分别训练强分类器,并将训练所得的强分类器汇总给服务器,服务器使用汇总来的强分类器对全体样本测试,优选分段测试,对各强分类器的分类能力排序,以服务器使用汇总来的强分类器对全体样本测试中所统计的错分率为排序依据,错分率越小,分类能力越强,并按照所排顺序将汇总的强分类器依次组成级新联的分类器;

实施例3:具有与实施例1或2相同的技术方案,更为具体的是:步骤一中,所设定的检测目标,包括级联分类器的虚警率指标,级联分类器的检出率指标;其中,虚警率指标设定为等于0,检出率指标设定为等于99%;步骤二中,分配强分类器的计算指标是分配与整体级联分类器中每个强分类器相同的检出率与虚警率指标,计算机数量为n,强分类器的数量为Max_Num,联合起来的强分类器个数等于(n+n/2+n/4+...),使(n+n/2+n/4+...)<2n<=Max_Num。

设第一样本总数为N,计算机数量为n,分发给各个计算机的负样本的数量k=N/n。每一个强分类器的虚警率需要Strong_False_Alarm<=50%,假设强分类器的数量Max_Num不超过20个,所以n<=10,由于后续计算联合起来的强分类器个数等于(n+n/2+n/4+...),使得(n+n/2+n/4+...)<2n<=Max_Num,则每个强分类器的检出率需要Strong_Detection_Rate>=99.95%。

重复步骤三和步骤四时,是针对各个计算机上被排除掉的负样本,我们将其样本标签汇总于额外的一台计算机上,并对其进行重新拆分。重新拆分时,由于负样本总数最多只能达到原有规模的50%,所以需要的计算机数量也将减半。

首先,需要判断级联分类器中剩余的强分类器数量空间Max_Num-n,与本次将出现的强分类器数量n/2进行比较。需要保证剩余的强分类器数量空间比本次将出现的强分类器数量大,即(n/2)<=(Max_Num-n),而前面设定的2n<=Max_Num正好保证了这点。

实施例4:具有与实施例1或2或3相同的技术方案,更为具体的是:所述排序是:分类能力更强的强分类器排序在更靠前的位置,分类能力更弱的强分类器排序在更靠后的位置;所述组成新的级联分类器:分类能力更强的强分类器排序在级联分类器中更靠前的位置,分类能力更弱的强分类器排序在级联分类器中更靠后的位置,即将分类能力最强的强分类器作为级联分类器的第一级强分类器,并依次排出第二级强分类器、第三级分类器、……、第n级强分类器,n为计算机的数量,第一级强分类器至第n级强分类器排列组成新的级联分类器。N表示进行分布式训练所使用的计算机的数量,即每一个计算机上都完成一个强分类器的生成。

实施例5:具有与实施例1或2或3或4相同的技术方案,更为具体的是:分布式训练进行到倒数第二次和第一次时,逐次降低强分类器的计算指标中的虚警率的分配,并在倒数第一次时,设定虚警率为不大于0%。在迭代进行分布式训练的时候,将最后三次分布式训练进行指标策略的特殊调整,保证了最终级联分类器的平稳收敛。

设整体的检出率指标为A,前k级强分类器各自的检出率指标为a,那么前k级强分类器实现的整体检出率达到了ak,而此时没有退出,说明A>ak。所以,下一级强分类器作为最后一级强分类器的话,需要达到A/ak的检出率。因此,此时将强分类器的检出率设置为A/ak,当A/ak>a时,此种设置方法可以在一定程度上放宽最后强分类器的退出条件,从而加快其收敛速度。

因为在整个训练过程中,往往剩到最后还被分错的样本是区分度很低的,即很难进行正确分类的,这部分样本的训练在传统的训练方法中往往占据了大部分的训练资源与弱分类器数量。而上述方法可以在很大程度上缓解甚至极大地降低这种训练代价,从而使分类器的训练更快地收敛。

实施例6:本实施例针对Adboost学习算法,提出一种基于分布式计算与检测代价排序的Adboost训练学习方法,首先利用算法的数学性质对样本进行二分类,同时利用正负样本数量的差异关系,将样本数量相对较少的样本依次分发给各个计算机,这里以正样本比较少为例。

然后对负样本进行拆分,设负样本总数为N,我们有n个计算机,那么将k=N/n个负样本依次分发给各个计算机,具体训练流程如图1所示。

这里假设整个级联分类器的虚警率指标为Cascade_False_Alarm=0;

整个级联分类器的检出率指标为Cascade_Detection_Rate=99%;

每一个强分类器的虚警率指标为Strong_False_Alarm<=50%;

例如,设定强分类器的数量Max_Num不超过20个,所以n<=10,因为后续计算联合起来的强分类器个数=(n+n/2+n/4+...),(n+n/2+n/4+...)<2n<=Max_Num.则每个强分类器的检出率指标为Strong_Detection_Rate>=99.95%;

(1)下面介绍第一次分布式训练的过程

这里对每个计算机中的样本都进行指标分配,即分配与整体级联分类器中每个强分类器相同的检出率与误识别率指标。每个计算机收到的指标都相同,每一个强分类器的虚警率需要Strong_False_Alarm<=50%;每个强分类器的检出率需要Strong_Detection_Rate>=99.95%。

这样每个计算机中,在第一级强分类器的训练后,使用第一级强分类器对该计算机上的样本进行检测时,都至少保证有99.95%的正样本被检出,至少50%的负样本被排除掉。因此,在每一台计算机上的第一级强分类器都具备将所有正样本与被排除的负样本进行正确二分类的能力。于是,将各个计算机上的第一级强分类器依次发送给服务器,进行强分类器的汇总。

在服务器上,针对每一个计算机发送来的强分类器,我们依次使用其对所有负样本分段进行测试(负样本总数可能太多,一次测试不完),并对各个计算机送来的强分类器的对负样本的错分率进行统计并作为分类能力的指标。根据分类能力对各个强分类器进行排序,依次将分类能力最强的第一级强分类器作为级联分类器的第一级强分类器、第二级强分类器...第n级强分类器。

于是我们完成了第一次Adboost算法的分布式训练,实现了对全部正样本(99.95%)n的检出率,具备至少对50%以上的负样本的区分能力。所以在后续的分布式训练中,我们就需要对负样本的区分能力进行进一步训练。

(2)下面介绍第二次分布式训练的过程

针对各个计算机上被排除掉的负样本,我们将其样本标签汇总于额外的一台计算机上,并对其进行重新拆分。重新拆分时,由于负样本总数最多只能达到原有规模的50%,所以需要的计算机数量也将减半。

首先,需要判断级联分类器中剩余的强分类器数量空间Max_Num-n,与本次将出现的强分类器数量n/2进行比较。需要保证剩余的强分类器数量空间比本次将出现的强分类器数量大,即(n/2)<=(Max_Num-n),而前面设定的2n<=Max_Num正好保证了这点。

然后,与第一次分布式训练过程类似,对每个计算机中的样本都进行指标分配,即分配与整体级联分类器中每个强分类器相同的检出率与误识别率指标。每个计算机收到的指标都是每一个强分类器的虚警率需要Strong_False_Alarm<=50%;每个强分类器的检出率需要Strong_Detection_Rate>=99.95%。

(3)第三次分布式训练与最后一次分布式训练

从第三次分布式训练开始,之后的训练与前面两次类似,依次到只剩三台计算机时,需要特殊处理。本发明中,在训练的计算机只剩三台的时候,也就表示需要进行两次分布式训练。那么,剩下的负样本就需要在最后的两次分布式训练中完全与正样本分开。

设整体的检出率指标为A,前k级强分类器各自的检出率指标为a,那么前k级强分类器实现的整体检出率达到了ak,而此时没有退出,说明A>ak。所以,下一级强分类器作为最后一级强分类器的话,需要达到A/ak的检出率。因此,此时将强分类器的检出率设置为A/ak,当A/ak>a时,此种设置方法可以在一定程度上放宽最后强分类器的退出条件,从而加快其收敛速度。

因为在整个训练过程中,往往剩到最后还被分错的样本是区分度很低的,即很难进行正确分类的,这部分样本的训练在传统的训练方法中往往占据了大部分的训练资源与弱分类器数量。而上述方法可以在很大程度上缓解甚至极大地降低这种训练代价,从而使分类器的训练更快地收敛。

故此需要有针对性的进行评价指标的调整,倒数第二次的分布式训练的检出率与虚警率设定为Strong_Detection_Rate>=99.95%与Strong_False_Alarm<=30%,为最后一次训练的指标收敛提供一个过渡。而最后一次的指标就需要设定为Strong_Detection_Rate>=99.95%与Strong_False_Alarm<=0%。

实施例7:一种基于分布式计算与检测代价排序的Adboost训练学习装置,包括:

检测目标设定装置,设定检测目标,根据级联分类器数量确定分发的计算机数量;

第二样本分发装置,将第二样本分发各计算机;

第一分布式训练装置,分布式训练,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

第二分布式训练装置,下一次分布式训练,将各个计算机的分错的第一样本汇总,对第一样本拆分并分发各计算机,各计算机依据分配的强分类器的计算指标分别训练强分类器,并按照强分类器的分类能力组成新的级联分类器;

分布式训练重复训练装置,第二分布式训练装置重复训练,直至新的级联分类器满足退出条件;

其中:所述的第一样本为待测试的正负样本中数量较多的样本,所述的第二样本为待测试的正负样本中数量较少的样本。

更为具体的,本实施例中所述的装置,所设定的检测目标,包括级联分类器的虚警率指标,级联分类器的检出率指标;分配强分类器的计算指标是分配与整体级联分类器中每个强分类器相同的检出率与虚警率指标,计算机数量为n,强分类器的数量为Max_Num,联合起来的强分类器个数等于(n+n/2+n/4+...),使(n+n/2+n/4+...)<2n<=Max_Num。

所述排序是:分类能力更强的强分类器排序在更靠前的位置,分类能力更弱的强分类器排序在更靠后的位置;所述组成新的级联分类器:将分类能力最强的强分类器作为级联分类器的第一级强分类器,并依次排出第二级强分类器、第三级分类器、……、第n级强分类器,n为计算机的数量,第一级强分类器至第n级强分类器排列组成新的级联分类器。

分布式训练进行到倒数第二次和第一次时,逐次降低强分类器的计算指标中的虚警率的分配,并在倒数第一次时,设定虚警率为不大于0%。

本实施例中所述的任一技术方案中的装置可以用于执行实施例1-6中所述的方法。

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