【模式识别】Boosting
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
(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经同意请勿用于商业用途)
最新文章
- JavaScript闭包之“词法作用域”
- 7、provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错
- 两种状态显示处理. enum , Linq AsEnumerable
- mysql 总结一
- oracle视图
- 使用Gulp和Browserify创建多个绑定文件
- 如何判断平台工具集去做条件编译(VC++目录、预处理器定义、$(PlatformToolsetVersion))
- SGU 134.Centroid( 树形dp )
- 利用wireshark任意获取qq好友IP实施精准定位
- 安卓9.0系统机器(亲测有效)激活Xposed框架的步骤
- 切换controller 后面的最好不要用id参数,不然会根据路由规则改变
- mysql &; sqlserver语法差异
- Oracle EBS OM 发放订单
- CSS水平导航栏
- 解决微服务网关Ocelot使用AddStoreOcelotConfigurationInConsul后请求404问题
- go 学习 ---数据类型
- Python3.5 学习五
- c++静态变量
- arcgis Listview
- Cookie &;&; Session之验证实例
热门文章
- Maven Jrebel 多模块热部署方案
- thinkphp 常用的查询
- cocos2d-x游戏开发系列教程-超级玛丽04-AppDelegate
- 【UVA】658 - It&;#39;s not a Bug, it&;#39;s a Feature!(隐式图 + 位运算)
- git 使用过程(四、回退版本)
- 2080夹角有多大II
- javascript 学习随笔1
- Oracle 游标疑问
- 高质量程序设计指南C/C++语言——C++/C程序设计入门(3)
- JQuery插件使用小结