机器学习技法课程学习笔记8 -- Adaptive Boosting
来源:互联网 发布:淘宝店起什么名字好 编辑:程序博客网 时间:2024/06/05 00:55
本文可以配套着我的另一篇博文http://blog.csdn.net/gyh_420/article/details/78095053来更进一步地理解文中 ut是怎么更新的。
上节课我们主要开始介绍Aggregation Models,目的是将不同的hypothesis得到的
Motivation of Boosting
我们先来看一个简单的识别苹果的例子,老师展示20张图片,让6岁孩子们通过观察,判断其中哪些图片的内容是苹果。从判断的过程中推导如何解决二元分类问题的方法。
显然这是一个监督式学习,20张图片包括它的标签都是已知的。首先,学生Michael回答说:所有的苹果应该是圆形的。根据Michael的判断,对应到20张图片中去,大部分苹果能被识别出来,但也有错误。其中错误包括有的苹果不是圆形,而且圆形的水果也不一定是苹果。如下图所示:
上图中蓝色区域的图片代表分类错误。显然,只用“苹果是圆形的”这一个条件不能保证分类效果很好。我们把蓝色区域(分类错误的图片)放大,分类正确的图片缩小,这样在接下来的分类中就会更加注重这些错误样本。
然后,学生Tina观察被放大的错误样本和上一轮被缩小的正确样本,回答说:苹果应该是红色的。根据Tina的判断,得到的结果如下图所示:
上图中蓝色区域的图片一样代表分类错误,即根据这个苹果是红色的条件,使得青苹果和草莓、西红柿都出现了判断错误。那么结果就是把这些分类错误的样本放大化,其它正确的样本缩小化。同样,这样在接下来的分类中就会更加注重这些错误样本。
接着,学生Joey经过观察又说:苹果也可能是绿色的。根据Joey的判断,得到的结果如下图所示:
上图中蓝色区域的图片一样代表分类错误,根据苹果是绿色的条件,使得图中蓝色区域都出现了判断错误。同样把这些分类错误的样本放大化,其它正确的样本缩小化,在下一轮判断继续对其修正。
后来,学生Jessica又发现:上面有梗的才是苹果。得到如下结果:
经过这几个同学的推论,苹果被定义为:圆的,红色的,也可能是绿色的,上面有梗。从一个一个的推导过程中,我们似乎得到一个较为准确的苹果的定义。虽然可能不是非常准确,但是要比单一的条件要好得多。也就是说把所有学生对苹果的定义融合起来,最终得到一个比较好的对苹果的总体定义。这种做法就是我们本节课将要讨论的演算法。这些学生代表的就是简单的hypotheses
所以,上个苹果的例子中,不同的学生代表不同的hypotheses
Diversity by Re-weighting
在介绍这个演算法之前,我们先来讲一下上节课就介绍过的bagging。Bagging的核心是bootstrapping,通过对原始数据集D不断进行bootstrap的抽样动作,得到与D类似的数据集
那么,对于新的
由于
参数u相当于是权重因子,当
这种算法叫做Weightd Base Algorithm,目的就是最小化bootstrap-weighted error。
其实,这种weightd base algorithm我们之前就介绍过类似的算法形式。例如在soft-margin SVM中,我们引入允许犯错的项,同样可以将每个点的error乘以权重因子
同样在logistic regression中,同样可以对每个犯错误的样本乘以相应的
其实这种example-weighted learning,我们在机器学习基石课程第8次笔记中就介绍过class-weighted的思想。二者道理是相通的。
知道了u的概念后,我们知道不同的u组合经过base algorithm得到不同的
为了得到不同的
如上所示,
怎么做呢?方法是利用
乍看上面这个式子,似乎不好求解。但是,我们对它做一些等价处理,其中分式中分子可以看成
要让分式等于0.5,显然只要将犯错误的点和没有犯错误的点的数量调成一样就可以了。也就是说,在
对于correct
或者利用犯错的比例来做,令weighted incorrect rate和weighted correct rate分别设为
Adaptive Boosting Algorithm
上一部分,我们介绍了在计算
那么引入这个新的尺度因子之后,对于错误的
值得注意的是上述的结论是建立在
从这个概念出发,我们可以得到一个初步的演算法。其核心步骤是每次迭代时,利用
但是,上述步骤还有两个问题没有解决,第一个问题是初始的
接下来的内容,我们将对上面的第二个问题进行探讨,研究一种算法,将所有的g(t)进行linear组合。方法是计算
如何在每次迭代的时候计算
这种算法被称为Adaptive Boosting。它由三部分构成:base learning algorithm A,re-weighting factor
综上所述,完整的adaptive boosting(AdaBoost)Algorithm流程如下:
从我们之前介绍过的VC bound角度来看,AdaBoost算法理论上满足:
上式中,
对这个VC bound中的第一项
其实,这种性质也正是AdaBoost算法的精髓所在。只要每次的
Adaptive Boosting in Action
上一小节我们已经介绍了选择一个“弱弱”的算法A(
如下图所示,二维平面上分布一些正负样本点,利用decision stump来做切割。
第一步:
第二步:
第三步:
第四步:
第五步:
可以看到,经过5次迭代之后,所有的正负点已经被完全分开了,则最终得到的分类线为:
另外一个例子,对于一个相对比较复杂的数据集,如下图所示。它的分界线从视觉上看应该是一个sin波的形式。如果我们再使用AdaBoost算法,通过decision stump来做切割。在迭代切割100次后,得到的分界线如下所示。
可以看出,AdaBoost-Stump这种非线性模型得到的分界线对正负样本有较好的分离效果。
课程中还介绍了一个AdaBoost-Stump在人脸识别方面的应用:
总结
本节课主要介绍了Adaptive Boosting。首先通过讲一个老师教小学生识别苹果的例子,来引入Boosting的思想,即把许多“弱弱”的hypotheses合并起来,变成很强的预测模型。然后重点介绍这种算法如何实现,关键在于每次迭代时,给予样本不同的系数u,宗旨是放大错误样本,缩小正确样本,得到不同的小矩g。并且在每次迭代时根据错误
注明:
文章中所有的图片均来自台湾大学林轩田《机器学习技法》课程
- 机器学习技法课程学习笔记8 -- Adaptive Boosting
- 台湾大学林轩田机器学习技法课程学习笔记8 -- Adaptive Boosting
- 机器学习技法-Adaptive Boosting
- 《机器学习技法》第八讲:Adaptive Boosting
- coursera机器学习技法笔记(7-8)——blending and bagging & Adaptive Boosting
- 机器学习技法笔记(7-8)——blending and bagging & Adaptive Boosting
- 机器学习笔记-Adaptive Boosting
- 台湾国立大学机器学习技法.听课笔记(第八讲):Adaptive Boosting[漸次提昇法]
- 机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树
- 机器学习技法课程学习笔记5-- Kernel Logistic Regression
- 机器学习技法课程学习笔记6-- Support Vector Regression
- 机器学习技法课程学习笔记7 -- Blending and Bagging
- 机器学习技法课程学习笔记9 -- Decision Tree
- 机器学习技法课程学习笔记10 -- Random Forest
- 机器学习技法课程学习笔记12-- Neural Network
- 机器学习技法课程学习笔记13-- Deep Learning
- 机器学习技法课程学习笔记15 -- Matrix Factorization
- 机器学习技法课程学习笔记16 -- Finale
- js限制input输入字符
- ffmpeg不同版本的NDK编译
- base64
- 第五章--数据库中间层实现读写分离
- noip 2017 注意事项
- 机器学习技法课程学习笔记8 -- Adaptive Boosting
- String,StringBuilder,StringBuffer详解
- Leetcode Remove Duplicates from Sorted Array
- MySQL优化之190秒到0.005秒的神奇飞跃【单库单表】
- 禁用火狐cookie
- docker 搭建 ELK,logstash 从 kafka读取数据
- Leetcode Valid Parentheses(java)
- css基础
- 回车刷新页面的问题