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其误差期望是大于平均后的误差期望的。另外,令f=0:

avg(Eout(gt))=avg((gt?G)2)+Eout(G)

可以看出,blend做的事就是令前一项尽量小以得到更加稳定的结果。

7.3 Linear and Any Blending

  在给定gt的情况下如何求解将它们线性组合起来的权重αn呢。即先计算每个gt的结果,并将T个结果作为特征,对它们进行二次线性训练,其得到的权重即对应gt的αt。该方法即linear Blending。这里需要注意的是,αt可能为负,我们可以把它的符号给gt,这意味着gt起了反作用,我们将它反向使用。

  另外,在选择gt的时候应注意如果将数据集划分为了训练集和验证集,最后计算得到αt后应当在完整数据集上重新训练gt。

  另外,如果在两次训练中不使用线性模型,而使用非线性模型,则该方法称为Any Blending或是stacking。如果使用非线性模型,应当注意过拟合问题。

7.4 Bagging Booststrap Aggregation

  如果gt之间差距很大,那么它们组合起来效果越好。而之前提到过一种方法就是,通过同一个分布采样出N个数据集,并在这N个数据集上跑出N个gt。这种思路的一种实现方法是在数据集中进行re-sample,即经过多次有放回采样获得N个数据集。

8 Adaptive Boosting

8.1 Motivation of Boosting

  本节主要讲述了boost算法的动机,即一个分类器没有办法很好的分类,但是当一个分类器犯错之后加大犯错样本的权重,让后来的分类器更重视这个样本,最后把所有方法组合起来能得到一个好的分类器。

8.2 Diversity by Re-weighting

  在bootstrap中我们通过对训练集进行可重复采样得到不同的训练集,我们可以把这一过程看做是对不同样本集进行了加权处理。因此,当我们使用多个分类器进行聚合的时候,我们希望不同的分类器通过对样本进行不同加权的方法使他们表现的区别很大。具体的来说,就是在给定分类器gt所使用的样本加权u(t)n,分类器gt+1所使用的样本加权u(t+1)n的情况下,gt+1在样本加权u(t)n的条件下所得到的分类表现接近于12.

  我们希望的是

?=∑Nn=1u(t+1)nI[yn≠gt(xn)]∑Nn=1u(t+1)n

可以看到,分子是分类错误的权重,分母是分类正确与分类错误的权重和,而我们要做的是让分类错误的权重和等于分类正确的权重和。因此,假设分类错误的权重和是1126,分类正确的权重和是6211,则在每个错误分类的权重上乘以6211,在每个正确分类的权重上乘以1126即可。注意的是,乘以的比例可以拉伸,因此将6211拉伸成正确率,将1126拉伸成错误率。

8.3 Adaptive Boosting Algorithm

  接上节的思路,我们可以让错误的样本权重乘以1??????√,而让正确的样本权重除以1??????√,这样的效果与上述一致(可以两者相除来进行验证)。可以看到,当正确率大于0.5的时候,错误样本权重上升而正确样本权重下降。另外,为了使得g1在Ein上表现最好,我们令最开始的样本权重为1N。

  由此,我们得到了每一轮训练之后的样本权重变化方式,那么还有个问题就在于算法如何组合起来。这里可以排除投票法,因为不能让一个在某些样本上表现很差的g也和其他表现好的g有相同的权重,因此我们根据g的表现决定它们的权重,即1??????√的函数。

  这里使用了ln((1??)/????????√)作为权重的决定函数,因为当?=12的时候,这个分类器接近于乱猜,就给他0的权重,当?很小的时候,则权重无限大,说明我们很信赖这个分类器。

最后得到线性组合是:

f(x)=sign(∑Tt=1αtgt(x))

另外,从VC维的角度说,该算法的误差上限是:

Eout(G)≤Ein(G)+O((O(dvc(H)TlogT)logNN)???????????????????√)

  根据作者的相关证明,当每个分类器的错误率略大于一半时,经过T=O(logN)次迭代,Ein(G)=0。同时由于T的复杂度是logN的,因此右边O(dvc(H)TlogT)也会相应很小,故当N比较大时,这会是个好算法。

8.4 Adaptive Boosting in Action

  在实际上经常应用于adaboost的算法是decision stump:

hs,i,θ(x)=s?sign(xi?θ)

这个分类器的意思是,在所有维度里面选择一个维度、一个阈值以及一个方向,据此决定这个样本的分类,例如当第三个向量大于2时为负。选择它是因为实现简单,只需O(d?NlogN)的时间复杂度就可以训练出来。

时间: 2024-10-09 13:31:33

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

coursera机器学习技法笔记(15)——Matrix Factorization

15 Matrix Factorization 15.1 Linear Network Hypothesis 将类别数据转换成向量数据,然后以每个样本的向量数据作为输入,评分数据作为输出,利用3层神经网络进行特征萃取. 由于向量特征数据大量稀疏,因此中间层的tanh函数并不会起什么作用,可以直接换成线性模型,即Linear Network. 将第1/2层网络的权重设为VT,第2/3层网络权重设为W,则该模型可以表述为: h(x)=WTVx 如果x是一个只有1个元素为1的向量,则该式可以写成: h

coursera机器学习技法笔记(13-14)——deep learning & RBFNetwork

13 Deep Learning 13.1 Deep Neural Network 将神经网络的层数增大,即称为深度学习.深度学习一般在输入数据为row data的时候使用,因为这些数据很难人为构造出合适的特征.深度学习一般面临如下挑战: (1)神经网络结构的决定:一般只能通过人的主观领域知识来决定神经网络结构,例如图像识别中的convolutional NNet,即认为相邻的像素才有必要连接到下一层的同一神经元. (2)模型复杂度:由于高层神经网络会有很多变量,因此显然会提高模型复杂度.但是一

coursera机器学习技法笔记(12)——Neural Network

12 Neural Network 12.1 Motivation 在神经网络的节点上使用感知机,那我们可以把神经网络看作是通过不同感知机以及常数的线性组合得到一个新的特征,将新的特征加上一个常数再进行线性组合得到结果.其原理和aggregation类似,但是在神经网络中进行了多层级的aggregation. 从生物的角度来说神经网络模拟了人脑神经网络. 12.2 Neural Network Hypothesis 如果神经元节点都用线性回归的话,那么无论怎么组合最终都是个线性回归,模型的能力没

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)什么时

Coursera机器学习week10 笔记

Large scale machine learning Learning with large datasets 如果我们有一个低方差的模型,增加数据集的规模可以帮助你获得更好的结果.我们应该怎样应对一个有 100 万条记录的训练集? 以线性回归模型为例,每一次梯度下降迭代,我们都需要计算训练集的误差的平方和,如果我们的学习算法需要有 20 次迭代,这便已经是非常大的计算代价. 首先应该做的事是去检查一个这么大规模的训练集是否真的必要,也许我们只用 1000 个训练集也能获得较好的效果,我们可

Coursera机器学习week11 笔记

Application example:Photo OCR Problem description and pipeline 图像文字识别应用所作的事是,从一张给定的图片中识别文字.这比从一份扫描文档中识别文字要复杂的多. 为了完成这样的工作,需要采取如下步骤: 1. 文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来 2. 字符切分(Character segmentation)——将文字分割成一个个单一的字符 3. 字符分类(Character classifi

机器学习技法 笔记六 Support Vector Regressssion

今天要说的是SVR 上一次提到了kernel logistic rgeression 1.kernel ridge regression 同时也提到了,对于任何的L2-regularized linear model,它的w都可以用资料的线性组合来表示 对于以前学的linear regression ,我们的error,是用的squared error,即差值的平方来达到regression 如果把这个regression配合上regularization的话,那么就是ridge regress

机器学习技法笔记-Lecture 13 Deep learning

一些挑战: 网络结构的选择.CNN的想法是对邻近的输入,有着相同的weight. 模型复杂度. 最优化的初始点选择.pre-training 计算复杂度. 包含pre-training的DL框架 如何做pre-training? 下面介绍了一种方式. weight可以看做是对x做特征转换,那么希望在第一次转换后(从0层到1层)仍然能保持足够多的原来的信息,那么再从1层回到0层,应该得到近似的结果. 这种NN叫做autoencoder,两层分别是编码和解码的操作,来逼近 identity func

机器学习技法笔记-Lecture 12 Neural network

介绍神经网络的基本概念以及Backprop的推导. 输入为x, 首先对x做一个线性变换到s,然后对s做(通常是非线性的)变换,作为下一层的输入.如果对s也是线性的,那整个网络就是线性的,就不需要那么多层了. 对 s 经常使用的一个是双曲余弦的变换tanh 在离原点比较远的地方,它比较像阶梯函数,在接近原点的地方,接近线性函数. 网络的计算过程 可以分两步看,一个是算score,一个是做transform. 如何学习网络中的权重呢? 学习的最终目标仍然是让Ein最小,Ein可以看做是关于全部的w_