AdaBoost 的思考
来源:互联网 发布:国家进出口数据 编辑:程序博客网 时间:2024/05/18 04:18
一个问题
今天跟超哥讨论了一下AdaBoost,结果发现自己有老多东西不懂啊~
其中有个问题:样本的权重W如何在弱分类器中使用?现在好好地梳理一下AdaBoost,细节也好好地想一想。
看博客得知:样本权重W不会在训练弱分类器中使用,只是在求弱分类器的误差时使用。
上面的回答正确与否呢?答案是让人失望的,有的博客并不尽人意,还是自己去查阅论文吧。
现在看论文《AdaBoost and the Super Bowl of Classifiers A Tutorial Introduction to Adaptive Boosting》,其中4页介绍到,只需要m轮迭代时,只需要找到分类器Km,该分类器使得We最小即可,We是之前的满足本次Km!=label 的样本权重之和。权重是累计之前的。
原作者 Yoav.Freund and Robert.Shapire《A decision-theoretic generalization of on-line learning and an application to boosting》里,是如何解释的呢?在其伪代码中,步骤2中,”Call weak learning algorithm, providing it with the distribution p; get back a hypothesis h”,此处的p相当于样本权重W,说明也是在弱学习器的训练时,是基于样本的分布W的.
所以,样本权重W是在训练新的弱分类器时,构造代价函数使用。
“We call the algorithm AdaBoost because, unlike previous algorithm, it adjusts adaptively to the errors of the weak hypotheses returned by weak learn algorithm“—解释为什么叫AdaBoost。
下面详细介绍一下AdaBoost的推导过程,此过程了解后,Adaboost的基本也就没问题了。Adaboost (adaptive boosting)利用的是boosting的思想,将多个弱分类器集成为一个强分类器。\
http://www.codecogs.com/latex/eqneditor.php(公式编辑及转换为Latex)
AdaBoost算法原理推导
AdaBoost的分类器由多个弱分类器组成.
假设是二分类问题,选择指数loss function, 错判的代价为
总代价: 训练本次弱分类器,总体模型的代价都计算在内。
令
令
令
进一步推导,得出如何用总体的代价,得到当前迭代弱分类器的代价。
上式中,在本轮迭代中
如何确定本轮迭代的
对总代价函数的
令上式等于0,则有
其中,
对判对和判错的样本的权重进行调整,以便更关注那些判错的样本。
判错的样本权重增加
判对的样本权重降低
截止到目前为止,AdaBoost的推导大体也就完成了,对其数学理论了解也够深入了。
AdaBoost伪代码(二分类问题)
1. 初始化样本权重Wi=1/N i=1,2,3...N.2. 训练弱学习器Km,使得We最小 We = ∑ Wi ,其中条件为当前Km != y3. 弱学习器的系数a em = We/W ,其中W = ∑ Wi a = 1/2 * ln[(1-em)/em]4. 更新样本权重 Wi = Wi * e^(a), 判错的样本 Wi = Wi * e^(-a), 判对的样本5. 重复步骤2到步骤4,直到达到迭代次数M(或者是em小于某个值)。其中M意味着有M个弱学习器集成最后的强学习器。
每次迭代更新的是样本分布(re weight),不是重采样。
那么,我也弄明白了样本权重是怎么回事,是怎么用的。对AdaBoost又有了进一步的了解。
总结:
多个分类器加到一起,怎么加呢,每个分类器有个分类器权重
- AdaBoost 的思考
- 关于AdaBoost的一些再思考
- adaboost简介和思考
- Adaboost的java实现
- Adaboost 总结的很好
- adaboost的通俗理解
- 转载Adaboost的讲解
- Adaboost的简单实现
- AdaBoost 简单的demo
- Adaboost
- adaBoost
- adaboost
- Adaboost
- Adaboost
- AdaBoost
- AdaBoost
- AdaBoost
- AdaBoost
- IOS 不能触发didSelectRowAtIndexPath事件的原因
- 我的Android进阶之旅------>/storage/sdcard0, /sdcard, /mnt/sdcard ,/storage/emulated/legacy 的区别
- HDOJ Doing Homework again (贪心+优先队列)
- 异步加载库Android-Universal-Image-Loader(未完结)
- 【CSS学习】CSS 列表样式(ul)
- AdaBoost 的思考
- Genymotion无法启动Android5.0及5.1模拟器的解决方案
- 用easyUI的combobox实现多选下拉框
- struts2 基于xml 配置文件的输入验证
- springMVC --配置详细与注解说明
- mimeType形式大全
- Node.js 使用 child_process 实现多进程
- mysql 递归查询的方法
- oc中的文件和目录相关操作