自适应提升算法(AdaBoost)介绍(二)

来源:互联网 发布:淘宝修改密码在哪里 编辑:程序博客网 时间:2024/06/05 16:21

提升方法(boosting)介绍:

提升方法基于这样一个思想:对于一个复杂任务来说,将多个专家的判断进行适当综合所得出的判断,要比其中任何一个专家单独的判断要好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。提升方法的问题在于,在学习中,如果已经发现了弱学习算法,能否将它提升为强学习算法。因为在应用中,发现弱学习算法要比强学习算法容易得多。关于提升的策略,最具代表性是AdaBoost算法。对于分类问题,在给定的训练样本上获得一个粗糙规则(弱分类器)要比获得一个精确规则(强分类器)容易的多。提升方法就是在弱学习算法上反复学习,得到一系列的弱分类器(也叫做基本分类器),然后组合这些弱分类器,构造一个能够更加准确分类的强分类器。此时会有两个问题:

自适应提升算法(adaboost)介绍:

给定一个二分类数据集



基本分类器的选择方法
在确定基本分类器时,AdaBoost通常采取的方法是遍历所有的弱分类器(或是所有的特征),求所有的弱分类器在正负样本上的错误率,将最小错误率对应的弱分类器作为本轮迭代的基本分类器。在遍历的过程要注意,弱分类器是有两个方向的,不同的方向判为正例和负例所导致的错误率也是不相同的,所以对一个弱分类器在训练样本上需要计算两次错误率,取最小值作为该弱分类器在训练集上的训练错误率。具体过程如下:


在实际的应用中由于训练的样本量巨大,如果一一比较所有样本的特征值是否过该弱分类器所设定的阈值,需要大量的计算时间,导致训练速度很慢。实际上我们采取的是这样的方法:
训练样本事先分成两类:正样本和负样本,并按照特征值从小到大进行排序。人脸检测的弱分类器(特征)的阈值选取的方法通常定义为两个样本特征值的平均数,选取最优的阈值(错误率最小的阈值)时要遍历所有的样本,由于事先已经排序,只需要计算该样前面或后面的样本个数即可。
例如,下图中为某一个特征10000正样本和1000负样本对应的特征值:
















原创粉丝点击