在学习AdaBoosting和online Boosting, 最好有bagging和boosting基础,这样看起来比较会比较顺。有空再补上。

AdaBoost 算法的主要思想之一就是在训练集上维护一套权重分布,初始化时 ,Adaboost 为训练集的每个训练例指定相同的权重 1/m。接着调用弱学习算法进行迭代学习。每次迭代后更新训练集上不同样本的权值,对训练失败的样本赋以较大的权重,也就是让学习算法在后续的学习过程中集中对比较难的训练例进行学习

首先给定一个弱学习算法和训练集 ( x1 , y1 ), ( x2 , y2 ),..., ( xN , y N ) ,xi ∈ X , 表示某个X实例空间; yi ∈ Y = {1, −1} ,Y 表示一个带类别标志的集合。在每一步的迭代中,弱学
弱假设 ht 的性能由习算法根据训练样本的分布及权重 Dt 产生一个弱假设 ht :X→{1,-1}。
它的误差 ε m来衡量:

误差 ε m 的大小与训练弱学习算法所依赖的样本分布 Dt 相关,可以理解为对于权值较大
的样本错分会导致较大的误差增量。这样设计误差函数的目的正如前文所描述的,在
于使学习算法在后续的学习过程中集中对比较难的训练例进行学习。AdaBoost 算法根
据每次迭代后得到的预测结果,为每个弱分类器根据预测的结果赋予一个权值,最终
的预测结果由每个弱分类器通过带权重的投票方式产生。

online Adaboost

和online算法对应是offline算法(在线学习算法和离线学习算法),以前我学的大多数都是offline算法,例如,svm,神经网络等算法

offline算法最明显的特征是:首先训练模型,模型训练完就预测,预测得到一个结果,没有考虑到预测的样本对模型的影响。

而online算法:首先也要训练一个简单的模型,其主要在预测的过程中学习,由于预测的样本没有保存在内存中,只有一次的学习机会。

online adaboost, 这篇文章发表于CVPR2006引用率蛮高,在tracking方面特别牛逼。

下面来介绍一下这篇文章的主要思想,这篇文章最好最好要有online boosting基础。也和online boosting差不多。先看算法的流程。

首先介绍一下选择选择器(selectors)和分类器(classifier).

在算法的开始,每个选择器里面都有m个弱分类器,算法的目的就是每个选择器在m个分类器中找出最优的一个分类器。然后再把n个选择器组合起来。这种思想确实和adbooost一样。m个弱分类器可以自己建立,也可以在每一维上建立分类器。

λ的作用是样本在每个分类上的权重。当第一个选择器分类正确是,λ的值就回减少,否则就增加,这也和adboost有点像。

αn表示每个选择器的权重,是按选择器错误率来定权的,这也和adboost有点像。所以online adoosting就是offline adboosting算法的山寨版。

这几年的cvpr上的几篇做tracking的文章以这个idea为基础。tracking的方法是用最近比较流行的tracking-by-detection的方法。简答的说就是在tracking的时候,observation model这一块是用一个在线训练的分类器。tracking的过程如下图所示(图中还有一步是用跟踪的结果作为训练器的新的输入):

AdaBoosting 3的更多相关文章

  1. Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting的区别

    引自http://blog.csdn.net/xianlingmao/article/details/7712217 Jackknife,Bootstraping, bagging, boosting ...

  2. 各常用分类算法的优缺点总结:DT/ANN/KNN/SVM/GA/Bayes/Adaboosting/Rocchio

    1决策树(Decision Trees)的优缺点 决策树的优点: 一. 决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义. 二. 对于决策树,数据的准备往往是简单或者是不必要的. ...

  3. 【机器学习】Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting

    Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting 这些术语,我经常搞混淆, ...

  4. 一步一步理解AdaBoosting(Adaptive Boosting)算法

    最近学习<西瓜书>的集成学习之Boosting算法,看了一个很好的例子(https://zhuanlan.zhihu.com/p/27126737),为了方便以后理解,现在更详细描述一下步 ...

  5. 集成学习:以Bagging、Adaboosting为例

    集成学习是一大类模型融合策略和方法的统称,以下以bagging和boosting为例进行说明: 1.boosting boosting方法训练分类器采用串行的方式,每个弱分类器之间是相互依赖的,尤其后 ...

  6. GBDT,Adaboosting概念区分 GBDT与xgboost区别

    http://blog.csdn.net/w28971023/article/details/8240756 ============================================= ...

  7. Boosting AdaBoosting Algorithm

    http://math.mit.edu/~rothvoss/18.304.3PM/Presentations/1-Eric-Boosting304FinalRpdf.pdf Consider MIT ...

  8. Adaboost提升算法从原理到实践

    1.基本思想: 综合某些专家的判断,往往要比一个专家单独的判断要好.在"强可学习"和"弱科学习"的概念上来说就是我们通过对多个弱可学习的算法进行"组合 ...

  9. 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

    前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考 ...

随机推荐

  1. 匹配所有不可见元素,或者type为hidden的元素

    查找隐藏的 tr HTML 代码: <table> <tr style="display:none"><td>Value 1</td> ...

  2. QTP

    QTP支持功能测试和回归测试的自动化. 支持录制功能,可以对脚本设置检查点,也可以进行参数化.可以在一个ACTION中调用另外一个ACTION action可以调用外部脚本.可以复制已有的ACTION ...

  3. MySQL中select * for update锁表的问题

    MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例 ...

  4. css样式控制鼠标滑过显示

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 改变Web Browser控件IE版本

    默认的webbrowser控件使用的渲染模式版本似乎是IE7,想要更改更高版本,如下: 在注册表位置 HKEY_CURRENT_USER\Software\Microsoft\Internet Exp ...

  6. 2016年12月23日 星期五 --出埃及记 Exodus 21:18

    2016年12月23日 星期五 --出埃及记 Exodus 21:18 "If men quarrel and one hits the other with a stone or with ...

  7. python 学习笔记十二 html基础(进阶篇)

    HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身 是一种文本文件,通过在文本文件中添加标记符, 可以告诉浏览 ...

  8. jquery.validate使用 - 自定义验证方法

    自定义jquery-validate的验证行为 1: 自定义表单提交 设置submitHandler来自定义表单提交动作 $(".selector").validate({    ...

  9. phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别

    [题外话]phpinfo()这个函数可以查看很多php的信息,要 记得使用 phpinfo() 的很多部分有两个Column:Local Value(局部变量)和 Master Value(主变量) ...

  10. Oracle使用经验总结

    oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多.Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库 ...