机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树

上一讲主要利用不同模型计算出来的g。採用aggregation来实现更好的g。假设还没有做出来g。我们能够採用bootstrap的方法来做出一系列的“diversity”的data出来。然后训练出一系列的g。比方PLA来说,尽管模型一样,就是直线对二维平面的切割,模型都为直线,那么我们利用bootstrap来做出不同的数据,然后计算出不同的g,然后融合后就能够得到非常好的效果。或者也能够通过调整PLA的初始值来训练,得到一堆g,最后融合(parameter diversity,random initial。。。

以下主要讲一下一个更加强的机器学习的技法:Adaptive boosting。

以下以老师教小孩认识苹果的过程,将标识苹果的特征(形状(圆的),颜色(红的、绿的)。。

等等),一个同学说苹果形状是如何,还有一个同学说苹果颜色是如何,然后还有其它同学说苹果还有其它特征,就这样一次次的给苹果添加特征,然后联合起来就能让同学们都能非常好的认出苹果了(苹果的概念就非常丰富了)。

先从bootsrapping開始引入adaptive boosting,利用bootstrap来生成u,然后就比較像是Re-weighting process,用来优化Re-Weight Ein_u(h)为最小。

pic3

就是小u相应着data中数据点被抽样的次数,怎样得到g(t)与g(t+1)是有差异的呢?调整这个u(weight)来使得得到的g(t)在下一轮表现非常不好。这样g(t+1)就与g(t) diversity了。

做出u(t+1)在g(t)上的加权error大致等于掷硬币的概率0.5就好了。

在数学上仅仅须要让犯错误的u之和与没有犯错的u之和相等就能够得到0.5。处理方法:将错误的点乘以对的比率。让正确的点乘以错的比率,例如以下图所看到的:

在数学上。通过将factor规则化,scale up incorrect , scale down correct(有点类似PLA,对错误放大,然后进行调整,就像老师教学生认识苹果一样,贾同学说了苹果是圆形的,可是他在橘子上犯错了,那就放大苹果与橘子的区别,对颜色。通过颜色分别,加强对苹果认识)例如以下所看到的:

我们通过bootstrap中不同的u得到了一系列小g。那么u的更新过程就例如以下图来进行。最后将小g合并得到非常好的非常强非常丰富的G。

能够利用线性aggregation的方法来融合全部的g。得到G。

所以,这个线性的权重怎样衡量呢?我们能够用g的表现性能来进行决定alpha。算法设计的时候,用来衡量的话採用了ln()来做,当推断的概率为0.5时。就像是掷硬币一样。这样权重计算就为0,我们不选这种没用的g,当犯错误的概率为0时,计算出的权重为无穷大,这样也是合理的啊。

这样从理论上分析一下。Adaboost有何优点呢?我们知道VC bound来进行,仅仅要我们得到的小g比乱猜做的好一点。通过逐步的(AdaBoost + 演算法)。我们就能够在T=O(log(N))次的逐步演进就能够得到Ein(G)=0,同一时候依据VC bound 我们能够看出upper bound也非常小,即Eout也能保证非常小,从而实现比較好的性能。

所以。我们仅仅须要一个可以比乱猜好一点的“weak” base 学习算法A,通过adaboost就行做到最好的G。一个很好的用于adaboost的演算法---decision stump(决策树)。decision stump是利用单一的feature进行切割,二维平面上就是一条条垂直或水平的线。由于它仅仅在一个维度下进行切割。

所以,假设单独的decision stump就是一个比較弱的分类器。那么结合了adaboost呢?以下就给出几个样例

尽管单个decision stump是一个“weak”的分类器,就是说它的分界线是简单的直线,可是通过adaboost,就行拟合、逼近一个很细腻的边界。

边界的拟合过程就是vote的结果,而adaboost的过程,就是通过逐步的放大错误。纠正错误,最后通过vote来实现边界的融合。

从而做出很复杂边界的过程。并且这个过程由于有VC bound的理论指导,在一定程度上可以遏制overfitting,所以Adaboost是一种很有效的方法逐步增强的融合方法,

上面是一个比較简单的sample。那么以下的样例就是比較复杂的边界,你说用decision stump可以做出来sine波的形状吗?以下的结果就说明了这个过程。

它实际上就做出了非线性的拟合过程。AdaBoost-Stump在实际的project应用中就是世界上首个实时人脸识别:

实际上AdaBoost-Stump具备了特征选择的能力。这方面能够联想到deep learning中的一些知识。

回头能够採用opencv利用AdaBoost来对人脸进行识别的程序学习一下。以便更好地掌握AdaBoost在详细的处理中的应用。

时间: 2024-12-31 20:56:03

机器学习技法总结(五)Adaptive Boosting, AdaBoost-Stump,决策树的相关文章

Coursera台大机器学习技法课程笔记08-Adaptive Boosting

将分类器组合的过程中,将重点逐渐聚焦于那些被错分的样本点,这种做法背后的数学原因,就是这讲的内容. 在用bootstraping生成g的过程中,由于抽样对不同的g就生成了不同的u,接下来就是不断的调整u,使得Ein最小. g越不同,通过aggregation,越能得到更好的结果.通过调整u来得到不同的g.如果某个gt,在ut+1时表现的不好,那么gt或与gt很像的hypothesis就 可能不会被选到.因此,可通过调整ut+1来使g不同.那么如何定义g的表现不好呢?如果错误率与丢硬币没什么两样(

coursera机器学习技法笔记(7-8)——blending and bagging & Adaptive Boosting

7 Blending and Bagging 7.1 Motivation of Affregation 之前都是通过特征转换达到更好的分类目的,而有另一种思路就是将多个模型的分数线性组合起来以期得到更好的效果.它们的权重应为x的函数,这样能包含投票.取最大等多种情况. 7.2 Uniform Blending 本节从理论上探讨了blend的可行性: G(x)=1T∑Tt=1gt(x) 则: avg((gt?f)2)=avg((gt?G2))+(G?f)2 可以看出,任选一个g_t其误差期望是大

机器学习技法-AdaBoost元算法

课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.Adaptive Boosting 的动机 通过组合多个弱分类器(hypothese),构建一个更强大的分类器(hypothese),从而达到"三个臭皮匠赛过诸葛亮"的效果. 例如实际中,可以通过简单的"横""竖"组成比较复杂的模型. 二.样本权重 AdaBoost元算法中有个很重要的概念叫样本权重u. 学习算法A使用

coursera机器学习技法笔记(9-11)——decision tree & Random forest & GBDT

9 Decision Tree 9.1 Decision Tree Hypothesis 本节主要讲述了决策树的两种解释,一种是决策树是由叶子节点和路径组成的,当选择叶子节点对应的路径时采用对应的叶子节点结果:另一种观点是由分叉的树递归组成,当选择某一分支时将采用分支对应的子树的演算法结果. 决策树的优点在于可解释性强,高效.缺点是理论保证不足,并且算法多样. 9.2 Decision Tree Algoithm 决策树主要有4个关键部分: (1)分支分成几支? (2)该怎么分支? (3)什么时

集成学习之Boosting —— AdaBoost原理

集成学习之Boosting -- AdaBoost原理 集成学习之Boosting -- AdaBoost实现 集成学习大致可分为两大类:Bagging和Boosting.Bagging一般使用强学习器,其个体学习器之间不存在强依赖关系,容易并行.Boosting则使用弱分类器,其个体学习器之间存在强依赖关系,是一种序列化方法.Bagging主要关注降低方差,而Boosting主要关注降低偏差.Boosting是一族算法,其主要目标为将弱学习器"提升"为强学习器,大部分Boosting

机器学习技法课之Aggregation模型

Courses上台湾大学林轩田老师的机器学习技法课之Aggregation 模型学习笔记. 混合(blending) 本笔记是Course上台湾大学林轩田老师的<机器学习技法课>的学习笔记,用于学习之后的一些总结. 首先,对于Aggregation模型,其基本思想就是使用不同的 g t 来合成最后的预测模型 G t . 对于合成的方式主要有四种: 方法 数学描述 1. 选择.选择最值得可信的 g t 来当做最终的模型,而这个 gt 可以使用validation set 来进行选择 $$G(x)

机器学习技法——第1-2讲.Linear Support Vector Machine

本栏目(机器学习)下机器学习技法专题是个人对Coursera公开课机器学习技法(2015)的学习心得与笔记.所有内容均来自Coursera公开课Machine Learning Techniques中Hsuan-Tien Lin林轩田老师的讲解.(https://class.coursera.org/ntumltwo-001/lecture) 第1讲-------Linear Support Vector Machine 在机器学习基石介绍的基本工具(主要围绕特征转换Feature Transf

【作业四】林轩田机器学习技法 + 机器学习公开新课学习个人体会

这次作业的coding任务量比较大,总的来说需要实现neural network, knn, kmeans三种模型. Q11~Q14为Neural Network的题目,我用单线程实现的,运行的时间比较长,因此把这几道题的正确答案记录如下: Q11: 6 Q12: 0.001 Q13: 0.01 Q14: 0.02 ≤ Eout ≤ 0.04 其中Q11和Q14的答案比较明显,Q12和Q13有两个答案比较接近(参考了讨论区的内容,最终也调出来了) neural network的代码实现思路如下:

机器学习技法(11)--Gradient Boosted Decision Tree

AdaBoost D Tree有了新的权重的概念. 现在的优化目标,如何进行优化呢? 不更改算法的部门,而想办法在输入的数据方面做修改. 权重的意义就是被重复取到的数据的次数.这样的话,根据权重的比例进行重复的抽样.最后的结果也和之前一样能够表达权重的意义在里面了. 在一个fully grown tree的情况下: 应对办法: 如果剪枝剪到极限的时候: 就是AdaBoost Stump. 在AdaBoost中: 有阴影的部分就是用来投票决定G最终结果的.这个方程式延伸一下: 对他们这样投票的过程