boosting算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


下面我们举一个简单的例子来看看Adaboost的实现过 程:
图中,“+”和“-”分别表示两种类别,在这个过程中, 我们使用水平或者垂直的直线作为分类器,来进行分类。
第一步:
根据分类的正确率,得到一个新的样本分布D2­,一个子分类 器h1 其中划圈的样本表示被分错的。在右边的图中,比较大的 “+”表示对该样本做了加权。
Boosting算法
一、Boosting算法的发展历史
Boosting的基本思想很简单,就是“三个臭皮匠顶个诸葛亮”。 将若干个弱分类器(base learner)组合起来,变成一个强分类器。在 Boosting算法产生之前,还出现过两种比较重要的将多个分类器整 合为一个分类器的方法,即boostrapping方法和bagging方法。我们 先简要介绍一下bootstrapping方法。 bootstrapping方法的主要过程 i)重复地从一个样本集合D中采样n个样本 ii)针对每次采样的子样本集,进行统计学习,获得假设 H i iii)将若干个假设进行组合,形成最终的假设 H final iv)将最终的假设用于具体的分类任务
Schapire还提出了一种早期的boosting算法,其主要过程如下: i)从样本整体集合D中,不放回的随机抽样n1 < n 个样本,得到集
二、Adaboost算法及分析
到了1995年,Freund and schapire提出了现在 的Adaboost算法,其主要框架可以描述为: i)循环迭代多次 更新样本分布 寻找当前分布下的最优弱分类器 计算弱分类器误差率 ii)聚合多次训练的弱分类器 现在,boost算法有了很大的发展,出现了很多 的其他boost算法,例如:logitboost算法, gentleboost算法等等。我们着重介绍adaboost算法。
但是,上述这两种方法,都只是将分类器进行简单的组合,实际上, 并没有发挥出分类器组合的威力来。直到1989年,Yoav Freund与 Robert Schapire提出了一种可行的将弱分类器组合为强分类器的方法。 并由此而获得了2003年的哥德尔奖(Godel price)。
合 D1 训练弱分类器C1 ii)从样本整体集合D中,抽取 n2 < n 个样本,其中合并进一半 被 C1 分类错误的样本。得到样本集合 D2 训练弱分类器C2 iii)抽取D样本集合中,C1 和 C2 分类不一致样本,组成D3 训练弱分类器C3 iv)用三个分类器做投票,得到最后分类结果
Байду номын сангаас
AdaBoost算法应用
随着AdaBoost算法的发展,目前AdaBoost算 法广泛的应用于人脸检测、目标识别等领域, 其中有在人脸识别、汽车识别、驾驶员眨眼 识别的方面的应用和研究
总结
Boosting更像是一个人学习的过程,开始学一样东西 的时候,会去做一些习题,但是常常连一些简单的题目都 会弄错,但是越到后面,简单的题目已经难不倒他了,就 会去做更复杂的题目,等到他做了很多的题目后,不管是 难题还是简单的题都可以解决掉了。 算法的流程: 1. 给每个样本都赋予一个权重,可以是随机,也可以是相 等的权重 2. 按照样本权重从大到小的顺序,选择n个样本训练弱分 类器 C i 3. 在样本预测阶段,多个分类器进行投票决定样本数据哪 种分类
第二步
根据分类的正确率,得到一个新的样本分D3, 一个子分类器h2
第三步:
得到一个子分类器h3
整合所有子分类器:
因此可以得到整合的结果,从结果中看,即使简单的分类器,组合起来 也能获得很好的分类效果。
为什么每次迭代都要把分错的点的权值变大呢?这样有什么好处呢?不 这样不行吗? 注意到算法最后的表到式为
这里面的a 表示的权值,是由 得到的。而a是关于误差的表达式,到这里就可以得到比较清晰的答案了, 所有的一切都指向了误差。提高错误点的权值,当下一次分类器再次分 错了这些点之后,会提高整体的错误率,这样就导致 a 变的很小,最终 导致这个分类器在整个混合分类器的权值变低。也就是说,这个算法让 优秀的分类器占整体的权值更高,而差的分类器权值更低。
完整的Adaboost算法
Adaboost算法及分析
Adaboost算法可以总结如下: 1)每次迭代改变的是样本的分布,而不是重复采样 2)样本分布的改变取决于样本是否被正确分类 总是分类正确的样本权值低 总是分类错误的样本权值高(通常是边界附近的样本) 3)最终的结果是弱分类器的加权组合 权值表示该弱分类器的性能 简单来说,Adaboost有很多优点: 1) Adaboost是一种有很高精度的分类器 2) 可以使用各种方法构建子分类器,Adaboost算法提供的是框架 3) 当使用简单分类器时,计算出的结果是可以理解的。而且弱分类 器构造极其简单 4) 简单,不用做特征筛选 5) 不用担心过度拟合(过拟合现象指的是,随着模型训练误差的下 降,模型的泛化误差(测试误差)在上升。对于adaboost算法,当训练误 差小到一定程度以后,继续训练,返回误差仍然不会增加。) 总之:Adaboost是简单,有效。
相关文档
最新文档