继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Ensemble Learners

Alice嘟嘟
关注TA
已关注
手记 209
粉丝 75
获赞 279

Udacity
Ensemble Learners


Boosting Algorithm

不需要绞尽脑汁去想很复杂的 Rules,只需要一些简单的 Rules,这就是 Ensemble 的基本主张,先找到简单的规则,每一条都有意义,但是单独应用都无法给出最佳答案,然后将这些规则结合起来成为一个 Complex Rule,最后可以找到足够好的答案。

比如:
Spam Email 是一个分类问题,除了用 Decision Tree,KNN,NN,还可以用 Boosting。

基本流程是:训练数据集的一个子集,得到一个 simple rule,再训练另一个子集,得到另一个 rule,训练多个后,得到多个 simple rule,让后将它们结合起来。

例如:只训练有图片的邮件集,只训练有链接的邮件集,它们对于自己的相应的子集是足够好的,但是不是必须要对整个数据集很好。
如果用整个数据集来训练的话,会很难发现这些 simple rule。


训练子集和综合,这两步都可以由最简单的方法去完成,比如在训练每个子集时,得到10个数值,那最后就可以取平均值作为最终结果。

Bagging

随机取点再去平均的方法叫做 Bagging 或者 Bootstrap Aggregation

例如:
红色是训练数据集,绿色是测试数据,这是简单的 Cross Validation。
1.随机抽取一个子集,每次随机抽5个点,一共抽5次,并且每次的数据集不重复
2.要训练3阶多项式
3.最后取平均值

比较不同方法得到的结果:
红色:是用平均值算出的 Ensemble 的三阶结果
蓝色:是用四阶回归出来的
结果是:蓝色在 Training 集上表现比红色好,而红色在 Testing 集上比蓝色好


Boosting详细

比起随机挑取子集,我们应该看看我们想要学习的是什么,去挑取我们不擅长的数据,也就是这些例子是不是很难。

1.什么是hard problem
2.怎样确保已经训练过的子集 不再被训练

Error
如果是 vote,就是正确的有多少,错误的有多少
如果是 value,就是类似于 mean squared error

只有当 Testing 和 Training 有相同的分布时,学习算法才会比较有效,

D:Distribution,这些 error 一定是符合某种分布的
h:hypothesis,是学习算法的结果
c:concept,是真正的结果
所以 Error 的定义是,在一个 Distribution 下,h 不等于 c 的概率

和错误个数算出来的区别是,有些是重要的,需要去学习的,有些是不重要的,而且这个概率表示的是有多少时候是对或者错的。


Weak Lerner:不管你的分布是怎样的,得到的 Error 都小于0.5,


每一列代表一个 hypothesis,每一行代表 instance space 的一个,即一共有4个example,要在三个h中找到 weak learner,也就是 error 大于0.5.

good:
如果四个 example 都有相同的 weight,那么 h1 有三个对的,比0.5好,
evil:
如果把所有的 weight 都放在 x1 上,那么 h1,h2 做的特别差,但是 h3 做的特别好,同理,看 x2-x4,总是能找到某个 h 得到好的结果,所以可能并没有 evil distribution。
但其实,如果选择 h1-h3,它们都有50%的error,

下面这个是个没有 weak learner 的例子:


Boosting Algorithm

循环内:
建立分布:是建立在某个时间t的examples之上的
在这个分布上:找到 weak classifier,这个 weak learner 的 output 是某个 hypothesis(ht),这个 hypothesis 是有一些小 error 的,并不是非常小,而是只要小于 0.5 即可,
它在当前分布的 training 数据集上表现还好
在当前分布下,它错误的概率很小:也就是和 training lable 不同的概率是小的
经过循环,将找到最终的 hypothesis。

High Level Boosting:

1.如何找到 weak classifier
2.怎样找到 distribution,怎样找到 final hypothesis

例如:
最开始什么都不会的时候,分布可以是 uniform,得到 D1
递推式解释:
下一步的分布是以上一步为基础,根据当前的 hypothesis 表现的有多好,来变大或者变小,
yi 和 ht 都是返回 +1 或者 -1,所以当二者 agree 时,结果是1,否则结果是 -1.
alpha 是正数,
所以 e 上面的指数,要么大于0,要么小于0,
那这个系数对 D 的影响就是,要么增,要么减。

?Final Hypothesis

如何得到 final hypothesis?
weighted average - conbination
weight = alpha t

sgn是个函数,ht是weak classifier,alpah t的公式如上图, 和 underlining error 相关,如果你训练的好,weight就大,否则就小。

3 boxes 例子:
square rigon,要分类
先确认 hepothesis 的空间:在二维空间里,这个H要么是横向,要么是纵向,它的一边是正的,另外一边是负的

第一个图里,这个 classifier,左边都是正的,负的都在右边,但是有三个正的被分到了右边

所以在下一个 distribution,会发生什么呢?
被分配正确的点其 weight 比较小,分配错的点其 weight 比较大
然后继续得到第二个 output,它只把 3个负的弄错了,剩下5个红的在左边,两个负的在右边

继续在下一个 distribution里,中间的3个负的,因为划分错了,它们变得更突出,中间的3个正的,分对了,所以权重减小,但是仍然比最开始的要突出,比如最左边的2个正的,一直都被划分正确,那他们会消失

如上图,最后得到三个 hypothesis,将它们 combine 在一起,只是简单的 sum,就可以发现得到一个非常漂亮的分界线,将正负分开,这个效果很像 Decision Tree,Neural Network,和 Weighted Nearest Neighbor

为什么 boosting 好用?

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP