Boosting简单介绍

分类中通常使用将多个弱分类器组合成强分类器进行分类的方法,统称为集成分类方法(Ensemble Method)。比較简单的如在Boosting之前出现Bagging的方法,首先从从总体样本集合中抽样採取不同的训练集训练弱分类器,然后使用多个弱分类器进行voting,终于的结果是分类器投票的优胜结果。这样的简单的voting策略通常难以有非常好的效果。直到后来的Boosting方法问世,组合弱分类器的威力才被发挥出来。Boosting意为加强、提升,也就是说将弱分类器提升为强分类器。而我们常听到的AdaBoost是Boosting发展到后来最为代表性的一类。所谓AdaBoost,即Adaptive Boosting,是指弱分类器依据学习的结果反馈Adaptively调整如果的错误率,所以也不须要不论什么的先验知识就能够自主训练。Breiman在他的论文里赞扬AdaBoost是最好的off-the-shelf方法。

两类Discrete AdaBoos算法流程

AdaBoosting方法大致有:Discrete Adaboost, Real AdaBoost, LogitBoost, 和Gentle AdaBoost。全部的方法训练的框架的都是类似的。以Discrete Adaboost为例,其训练流程例如以下:

首先初始化每一个样本同样的权重(步骤2);之后使用加权的样本训练每一个弱分类器 (步骤3.1);分类后得到加权的训练错误率和比例因子 (步骤3.2);将被错误分类的样本的权重加大,并将改动后的权重再次归一化(步骤3.3);循环训练过程,终于使用比例因子 组合组合弱分类器构成终于的强分类器。
以下看一个更形象的图,多个弱分类器的组合过程和结果大致为:

训练的循环过程,加重被错误分类的样本的权重是一种有效的加速训练的方法。因为训练中正确率高的弱分类器权重较大,新一轮的训练中正确分类的样本会越来越多,权重较小的训练样本对在新一轮的训练中起作用较小,也就是,每一轮新的训练都着重训练被错误分类的样本。

实际训练中弱分类器是一样的,但弱分类器实际使用的训练数据不同,通常使用特征向量的每一维分别构成一个弱分类器。而后来大名鼎鼎的Haar+Adaboost人脸检測方法是使用每种Haar特征构成一个弱分类器,基于Block的Haar特征比简单的基于pixel的特征有带有很多其它的信息,通常能得到更好的检測效果,而积分图Integral的方法使其在计算速度上也有非常大优势。有兴趣可參考《基于Adaboost和Haar-like特征人脸识别》。

Real AdaBoost和Gentle AdaBoost

Discrete Adaboost是最简单的两类Boosting分类结果,而兴许的Real AdaBoost(也称为AdaBoost.MH)能够看做Discrete Adaboost的泛化形式,弱分类器能够输出多个分类结果,并输出这几个分类结果的可能性,能够看成每一个弱分类器都更不“武断”。而Gentle AdaBoost则是改动了迭代训练过程中错误样本权重调整的方法,较少地强调难以分类的样本,从而避免了原本AdaBoost对”非典型”的正样本权值调整非常高而导致了分类器的效率下降的情况。,而产生的变种算法。AdaBoost的Matlabe工具箱GML_AdaBoost_Matlab_Toolbox实现了Real AdaBoost, Gentle AdaBoost和Modest AdaBoost,且有个概况明了的介绍(工具箱的使用内部用手冊,也能够參考下一篇《CART和GML AdaBoost Matlab Toolbox》):
至于LogitAdaBoost我事实上不太了解,详细可參考《OpenCV关于AdaBoost的一些说明》。

(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经同意请勿用于商业用途)

【模式识别】Boosting的更多相关文章

  1. 模式识别与机器学习—bagging与boosting

    声明:本文用到的代码均来自于PRTools(http://www.prtools.org)模式识别工具箱,并以matlab软件进行实验. (1)在介绍Bagging和Boosting算法之前,首先要简 ...

  2. 深度学习 vs 机器学习 vs 模式识别

    http://www.csdn.net/article/2015-03-24/2824301 [编者按]本文来自CMU的博士,MIT的博士后,vision.ai的联合创始人Tomasz Malisie ...

  3. 计算机视觉与模式识别代码合集第二版two

    Topic Name Reference code Image Segmentation Segmentation by Minimum Code Length AY Yang, J. Wright, ...

  4. 计算机视觉与模式识别代码合集第二版three

    计算机视觉与模式识别代码合集第二版three     Topic Name Reference code Optical Flow Horn and Schunck's Optical Flow   ...

  5. boosting、adaboost

    1.boosting Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数.他是一种框架算法,主要是通过对样本集的操作获 ...

  6. [Mechine Learning & Algorithm] 集成学习方法——Bagging和 Boosting

    使用机器学习方法解决问题时,有较多模型可供选择. 一般的思路是先根据数据的特点,快速尝试某种模型,选定某种模型后, 再进行模型参数的选择(当然时间允许的话,可以对模型和参数进行双向选择) 因为不同的模 ...

  7. paper 118:计算机视觉、模式识别、机器学习常用牛人主页链接

    牛人主页(主页有很多论文代码) Serge Belongie at UC San Diego Antonio Torralba at MIT Alexei Ffros at CMU Ce Liu at ...

  8. 转载:bootstrap, boosting, bagging 几种方法的联系

    转:http://blog.csdn.net/jlei_apple/article/details/8168856 这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, ja ...

  9. Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结

    Atitit 图像处理--图像分类 模式识别 肤色检测识别原理 与attilax的实践总结 1.1. 五中滤镜的分别效果..1 1.2. 基于肤色的图片分类1 1.3. 性能提升2 1.4. --co ...

随机推荐

  1. MySQL server has gone away 解决方法

    应用程序(比如PHP)长时间的执行批量的MYSQL语句.执行一个SQL,但SQL语句过大或者语句中含有BLOB或者longblob字段.比如,图片数据的处理.都容易引起MySQL server has ...

  2. C# 基础知识 (三).主子对话框数值传递

    在C# winform编程中,我们经常会遇到不同窗口间需要传递数值的问题.比如数据库的应用,主窗口填写内容num1,点击按钮,在弹出的子窗口显示对应num1值;或者在子窗口填写新注册用户名信息,在主窗 ...

  3. unity3d大型手游 可以打包obb文件

    用unity3d开发手游,有个很大的问题就是apk的size太大, 如果超过50M,一般很多平台就不会肯上线. 一个好的方法是把app打成apk + obb数据包的方式. 1. 编译成obb数据包的方 ...

  4. 复习知识点:TabBarViewController(微信框架)

    TabBarViewController:标签视图控制器 在application设置 创建四个视图控制器 引入视图控制器头文件 #import "AppDelegate.h" # ...

  5. css基础(二)

    一.元素内容的字体属性 1.font-family   字体名称,例如:宋体,新罗马字体等 注意:1.不能使用偏僻的字体,要使用安全字体,如:arial;verdana;times new roman ...

  6. Intent过滤,intent-filter

    Intent过滤 编写:kesenhoo - 原文:http://developer.android.com/training/basics/intents/filters.html 前两节课主要讲了 ...

  7. Oracle AWR 报告详解

    转自:http://blog.csdn.net/laoshangxyc/article/details/8615187 持续更新中... Oracle awr报告详解 DB Name DB Id In ...

  8. Android 中 ListView Adapter getView 被多次调用问题 解决方法

    执行多次原因是因为每显示一个VIew,它都去测量view的高度,执行measure方法,导致getView执行多次. 解决方法是将 ListView 的 layout_width 设置为 fill_p ...

  9. java排序方法中的选择排序方法

    每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完. package array; //选择排序方法 public class arra ...

  10. ContentType

    常用的 ContentType XML <% response.ContentType ="text/xml" %>  GIF images <% respons ...