机器学习技法-Adaptive Boosting

大纲

这里写图片描述

上节课我们主要开始介绍Aggregation Models,目的是将不同的hypothesis得到的 gt 集合起来,利用集体智慧得到更好的预测模型G。首先我们介绍了Blending,Blending是将已存在的所有 gt 结合起来,可以是uniformly,linearly,或者non-linearly组合形式。然后,我们讨论了在没有那么多gt的情况下,使用bootstrap方式,从已有数据集中得到新的类似的数据集,从而得到不同的 gt 。这种做法称为bagging。本节课将继续从这些概念出发,介绍一种新的演算法。

Motivation of Boosting

首先举了一个老师带学生们识别苹果的例子,最后经过老师和学生的共同努力,得到了更好的苹果定义,从而更好的识别苹果

这里写图片描述

上个苹果的例子中,不同的学生代表不同的hypotheses gt ;最终得到的苹果总体定义就代表hypothesis G;而老师就代表演算法A,指导学生的注意力集中到关键的例子中(错误样本),从而得到更好的苹果定义。其中的数学原理,我们下一部分详细介绍。

Diversity by Re-weighting

1 Bootstrapping as Re-weighting Process

在介绍这个演算法之前,我们先来讲一下上节课就介绍过的bagging。Bagging的核心是bootstrapping,通过对原始数据集D不断进行bootstrap的抽样动作,得到与D类似的数据集 Dt^ ,每组 Dt^ 都能得到相应的 gt ,从而进行aggregation的操作。现在,假如包含四个样本的D经过bootstrap,得到新的 Dt^ 如下:

这里写图片描述

那么,对于新的 Dt^ ,把它交给base algorithm,找出 Ein 最小时对应的 gt ,如下图右边所示。

E0/1in(h)=14(x,y)Dt^[yh(x)]

这里写图片描述

参数u相当于是权重因子,当 Dt^ 中第i个样本出现的次数越多的时候,那么对应的 ui 越大,表示在error function中对该样本的惩罚越多。所以,从另外一个角度来看bagging,它其实就是通过bootstrap的方式,来得到这些 ui 值,作为犯错样本的权重因子,再用base algorithm最小化包含 ui 的error function,得到不同的 gt 。这个error function被称为bootstrap-weighted error。

2 Weighted Base Algorithm

这里写图片描述

其实,这种weightd base algorithm我们之前就介绍过类似的算法形式。例如在soft-margin SVM中,我们引入允许犯错的项,同样可以将每个点的error乘以权重因子 un 。加上该项前的参数C,经过QP,最终得到 0αnCun ,有别于之前介绍的 0αnC 。这里的 un 相当于每个犯错的样本的惩罚因子,并会反映到 αn 的范围限定上。

同样在logistic regression中,同样可以对每个犯错误的样本乘以相应的 un ,作为惩罚因子。 un 表示该错误点出现的次数, un 越大,则对应的惩罚因子越大,则在最小化error时就应该更加重视这些点。如何将 un 引入惩罚函数中?我们可以通过概率分布 u 来对样本进行采样

3 Re-weighting for More Diverse Hypothesis

我们知道不同的u组合经过base algorithm得到不同的gt。那么如何选取u,使得到的 gt 之间有很大的不同呢?之所以要让所有的 gt 差别很大,是因为上节课aggregation中,我们介绍过 gt 越不一样,其aggregation的效果越好,即每个人的意见越不相同,越能运用集体的智慧,得到好的预测模型。

为了得到不同的 gt ,我们先来看看 gt gt+1 是怎么得到的:
这里写图片描述

如上所示, gt 是由 utn 得到的, gt+1 是由 u(t+1)n 得到的。如果 gt 这个模型在使用 u(t+1)n 的时候得到的error很大,即预测效果非常不好,那就表示由 u(t+1)n 计算的 gt+1 会与 gt 有很大不同。而 gt+1 gt 差异性大正是我们希望看到的。

怎么做呢?方法是利用 gt 在使用 u(t+1)n 的时候表现很差的条件,越差越好。如果在 gt 作用下, u(t+1)n 中的表现(即error)近似为0.5的时候,表明 gt u(t+1)n 的预测分类没有什么作用,就像抛硬币一样,是随机选择的。这样的做法就能最大限度地保证 gt+1 会与 gt 有较大的差异性。其数学表达式如下所示:

这里写图片描述

4 ‘Optimal’ Re-weighting

乍看上面这个式子,似乎不好求解。但是,我们对它做一些等价处理,其中分式中分子可以看成 gt 作用下犯错误的点,而分母可以看成犯错的点和没有犯错误的点的集合,即所有样本点。其中犯错误的点和没有犯错误的点分别用橘色方块和绿色圆圈表示:

这里写图片描述
要让分式等于0.5,显然只要将犯错误的点和没有犯错误的点的数量调成一样就可以了。也就是说,在gt作用下,让犯错的 u(t+1)n 数量和没有犯错的 u(t+1)n 数量一致就行。一种简单的方法就是利用放大和缩小的思想(本节课开始引入识别苹果的例子中提到的放大图片和缩小图片就是这个目的),将犯错误的 utn 和没有犯错误的 utn 做相应的乘积操作,使得二者值变成相等。例如 utn of incorrect为1126, utn of correct为6211,要让 u(t+1)n 中错误比例正好是0.5,可以这样做:

这里写图片描述

对于incorrect u(t+1)n

u(t+1)nu(t)n6211

对于correct u(t+1)n

u(t+1)nu(t)n1126

或者利用犯错的比例来做,令weighted incorrect rate和weighted correct rate分别设为 11267337 62117337 。一般求解方式是令犯错率为 ϵt ,在计算 u(t+1)n utn 的时候分别乘以 (1ϵt) ϵt

这里写图片描述

Adaptive Boosting Algorithm

1 Scaling Factor

下面我们定义一个新的缩放量

t=1ϵtϵt

这里写图片描述

对于正确的 utn ,它将乘以t,对于错误的 utn ,它将除以t.这样做的效果和以前做的效果类似。但之所以引入t,是因为它能告诉我们更多的物理意义,因为如果 epxilont12 ,得到 t1 ,那么接下来错误的 utn 与t的乘积就相当于把错误点放大了,而正确的 utn 与t的相除就相当于把正确点缩小了。这种scale up incorrect和scale down correct的做法与本节课开始介绍的学生识别苹果的例子中放大错误的图片和缩小正确的图片是一个原理,让学生能够将注意力更多地放在犯错误的点上。通过这种scaling-up incorrect的操作,能够保证得到不同于 gt gt+1

2 A Preliminary Algorithm

接下来我们形成了一个初始的算法

这里写图片描述

但是,上述步骤还有两个问题没有解决,第一个问题是初始的 u(1) 应为多少呢?一般来说,为了保证第一次 Ein 最小的话,设 u(1)=1N 即可。这样最开始的 g1 就能由此推导。第二个问题,最终的G(x)应该怎么求?是将所有的 g(t) 合并uniform在一起吗?一般来说并不是这样直接uniform求解,因为 g(t+1) 是通过 gt 得来的,二者在 Ein 上的表现差别比较大。所以,一般是对所有的 g(t) 进行linear或者non-linear组合来得到G(x)。

3 Linear Aggregation on the Fly

接下来的内容,我们将对上面的第二个问题进行探讨,研究一种算法,将所有的 g(t) 进行linear组合。方法是计算 g(t) 的同时,就能计算得到其线性组合系数 αt ,即aggregate linearly on the fly。这种算法使最终求得 g(t+1) 的时候,所有 g(t) 的线性组合系数 α 也求得了,不用再重新计算 α 了。这种Linear Aggregation on the Fly算法流程为:

这里写图片描述

如何在每次迭代的时候计算 αt 呢?我们知道 αt ϵt 是相关的: ϵt 越小,对应的应该越大, ϵt 越大,对应的 αt 应该越小。又因为t与 ϵt 是负相关的,所以 αt 应该是t的单调函数。我们构造 αt 为:

αt=ln(t)

这里写图片描述
αt 这样取值是有物理意义的,例如当 ϵt=12 时,error很大,跟掷骰子这样的随机过程没什么两样,此时对应的t=1, αt=0 ,即此 gt 对G没有什么贡献,权重应该设为零。而当 ϵt=0 时,没有error,表示该 gt 预测非常准,此时对应的 t= αt= ,即此 gt 对G贡献非常大,权重应该设为无穷大。

这种算法被称为Adaptive Boosting。它由三部分构成:base learning algorithm A,re-weighting factor t和linear aggregation αt 。这三部分分别对应于我们在本节课开始介绍的例子中的Student,Teacher和Class。

4 Adaptive Boosting (AdaBoost) Algorithm

这里写图片描述

5 Theoretical Guarantee of AdaBoost

这里写图片描述

上式中, Eout(G) 的上界由两部分组成,一项是 Ein(G) ,另一项是模型复杂度O(*)。模型复杂度中 dvc(H) gt 的VC Dimension,T是迭代次数,可以证明G的 dvc 服从 O(dvc(H)TlogT)

  • 对于VC Bound的第一项 Ein(G) ,如果满足 ϵtϵ<12 ,则经过 T=O(logN) 次迭代之后, Ein(G) 能减小到等于零的程度。

  • 而当N很大的时候,其中第二项也能变得很小。因为这两项都能变得很小,那么整个 Eout(G) 就能被限定在一个有限的上界中。

这里写图片描述

boosting的精髓所在就是:如果存在一个比较弱的算法,所产生的g比随机猜稍微好一点,那么经过AdaBoost这套算法框架,可以把算法性能变强,甚至可以达到 Ein=0 Eout 很小

Adaptive Boosting in Action

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值