AdaBoosting 3
在学习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的更多相关文章
- Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting的区别
引自http://blog.csdn.net/xianlingmao/article/details/7712217 Jackknife,Bootstraping, bagging, boosting ...
- 各常用分类算法的优缺点总结:DT/ANN/KNN/SVM/GA/Bayes/Adaboosting/Rocchio
1决策树(Decision Trees)的优缺点 决策树的优点: 一. 决策树易于理解和解释.人们在通过解释后都有能力去理解决策树所表达的意义. 二. 对于决策树,数据的准备往往是简单或者是不必要的. ...
- 【机器学习】Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting
Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting 这些术语,我经常搞混淆, ...
- 一步一步理解AdaBoosting(Adaptive Boosting)算法
最近学习<西瓜书>的集成学习之Boosting算法,看了一个很好的例子(https://zhuanlan.zhihu.com/p/27126737),为了方便以后理解,现在更详细描述一下步 ...
- 集成学习:以Bagging、Adaboosting为例
集成学习是一大类模型融合策略和方法的统称,以下以bagging和boosting为例进行说明: 1.boosting boosting方法训练分类器采用串行的方式,每个弱分类器之间是相互依赖的,尤其后 ...
- GBDT,Adaboosting概念区分 GBDT与xgboost区别
http://blog.csdn.net/w28971023/article/details/8240756 ============================================= ...
- Boosting AdaBoosting Algorithm
http://math.mit.edu/~rothvoss/18.304.3PM/Presentations/1-Eric-Boosting304FinalRpdf.pdf Consider MIT ...
- Adaboost提升算法从原理到实践
1.基本思想: 综合某些专家的判断,往往要比一个专家单独的判断要好.在"强可学习"和"弱科学习"的概念上来说就是我们通过对多个弱可学习的算法进行"组合 ...
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考 ...
随机推荐
- windows+caffe(四)——创建模型并编写配置文件+训练和测试
1.模型就用程序自带的caffenet模型,位置在 models/bvlc_reference_caffenet/文件夹下, 将需要的两个配置文件,复制到myfile文件夹内 2. 修改solver. ...
- 【转】本地存储-localStroage/sessionStorage存储
原文地址:[js学习笔记-103]----本地存储-localStroage/sessionStorage存储 客户端存储 l WEB存储 web存储最初作为html5的一部分被定义成API形式,但 ...
- java转换unicode,筛选文件中的insert语句并把日期给转换为可以直接在数据库执行的语句
package com; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; impo ...
- stoneniqiu 理想就是自己喜欢做,并对社会和他人都有意义的事情!
H5嵌入原生开发小结----兼容安卓与ios的填坑之路 2016-11-19 08:29 by stoneniqiu, 1038 阅读, 8 评论, 收藏, 编辑 一开始听说开发H5,以为就是做适配现 ...
- [问题2014S07] 复旦高等代数II(13级)每周一题(第七教学周)
[问题2014S07] 设 \(A\in M_n(\mathbb{K})\) 在数域 \(\mathbb{K}\) 上的初等因子组为 \(P_1(\lambda)^{e_1},P_2(\lambda ...
- 【java】关于时间
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...
- 《BI那点儿事》数据流转换——字符映射表
特征映射转换如图展示数据流中列的特征,它的编辑界面很简单,只有一个标签界面,点击要进行映射的列,可以选择需要添加新列或需要更新的列.可以在Output Alias列中给原来的列一个别名,选择要进行的操 ...
- android 待机流程
以下分析基于android2.2的google源码. 开机启动时,首先执行PhoneWindowManager.systemReady()(这之前的流程不分析).调用KeyguardViewMed ...
- js正则表达式入门
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- Linux 1
1. 使用虚拟控制台 登录后按Alt+F2键这时又可以看到"login:"提示符, 这个就是第二个虚拟控制台. 一般新安装的Linux有四个虚拟控制台, 可以用Alt+F1~Al ...