初识AdaBoost

AdaBoost

martin


AdaBoost是典型的Boosting方法,并且效果很显著。下图是AdaBoost的框架图:

adaboost.png-43.7kB

算法过程

下面介绍AdaBoost算法的过程:
1. 初始化训练数据的权值分布:

D1=(w11,w12,w13,...,w1N),w1i=1N,i=1,2,...,N

2. m=1,2,...,M
(a) 使用具有权值分布 Dm 的训练集学习,得到基本分类器:

Gm(x):X>{1,+1}

(b) 计算 Gm(x) 在训练数据集上的分类误差:
em=P(Gm(xi)yi)=Ni=1wmiI(Gm(xi)yi)Ni=1wmi=i=1NwmiI(Gm(xi)yi)

i=1Nwmi=1

(c) 计算 Gm(x) 的系数:
αm=12log1emem

(d) 更新数据集的权值分布:
Dm+1=(wm+1,1,wm+1,2,...,wm+1,N)

wm+1,i=wmiZmeαmyiGm(xi)

Zm=i=1NwmieαmyiGm(xi)

(e) 重复 (a)(d) m 次得到m个权值 a m个基分类器 G(x)

3. 构建基本分类器的线性组合:

f(x)=m=1MamGm(x)

4. 最终得到分类器:
G(x)=sign(f(x))=sign(m=1MamGm(x))

基分类器权值 a 与训练数据集权值w的分析

1. 先来看基分类器的权值 α ,公式如下:

α=12log1emem

我们知道AdaBoost是将多个弱分类器组合起来形成一个很强的分类器,但这里有个隐含条件:弱分类器。什么叫弱分类器?意思就是在效果上比随机猜想要好的分类器。比如二分类问题,随机猜想的正确率是0.5,所以说弱分类器的正确率一定要比0.5高,于是它的错误率 em<0.5 ,所以 αem ,这是什么意思?意思是,如果我的基分类器的错误率很小,也就是正确率很大,那么在众多基分类器中我给予它很大的权值 α ,让它能发挥更大的作用。

2. 再来看训练数据集分布的权值分配,公式如下:

wm+1,i=wm,iZmeamyiG(xi)=wm,iZmeamGm(xi)=yiwm,iZmeamGm(xi)yi

由公式可知,对训练集的样例正确分类与错误分类之间,错误分类样本的权值被放大: e2αm=1emem 倍,所以,在下一轮学习中将会被更大关注。

AdaBoost推导

AdaBoost模型是由基本分类器组成的 ,损失函数是

1. 加法模型: f(x)=Mm=1αmGm(x)

2. 损失函数: L(y,f(x))=eyf(x)

3. 每次训练后的基分类器都是乘以 α 再与前一个模型线性相加,所以对于第 m1 次训练后模型为:

fm1=fm2+αm1Gm1(x)=α1G1(x)+...+αm1Gm1(x)

4. 于是,在第 m 次训练后有:fm(x)=fm1(x)+αmGm(x)

5. 目标是每一次的损失在训练集上最小,所以最小化目标函数为:

(αm,Gm(x))=mini=1Neyifm(xi)=mini=1Neyi[fm1(xi)+αmGm(x)]=mini=1Neyifm1(xi)yiαmGm(x)=mini=1NwmieyiαmGm(x)

上式中,将 eyifm1(xi)=wmi ,因为 wmi 既不依赖 α 也不依赖与 G ,所以与最小无关。

6. 于是,有:

mini=1NwmieyiαmGm(x)=minyi=Gm(xi)wmiea+yiGm(xi)wmiea=min(eai=1NwmiI(yi=Gm(xi))+eαi=1NwmiI(yiGm(xi)))=min(eai=1Nwmi[1I(yiGm(xi))]+eαi=1NwmiI(yiGm(xi)))=min((eαeα)i=1NwmiI(yiGm(xi))+eai=1Nwmi)

所以,我们得到了优化的目标函数:

L(α)=(eαeα)i=1NwmiI(yiGm(xi))+eai=1Nwmi

7. 对6中的目标函数关于 α 求导,令 L(α)α=0 ,求的最小值:

L(α)α=eai=1Nwmi+(eα+eα)i=1NwmiI(yiGm(xi))=0

等价于:

(eα+eα)i=1NwmiI(yiGm(xi))=eai=1Nwmi

因为: em=Ni=1wmiI(yiGm(xi)) Ni=1wmi=1

所以有:

(eα+eα)em=ea

等价于:
e2a=1emem

解得:
α=12ln1emem

8. 由于之前有个假设: wmi=eyifm1(xi) ,而这个式子又可以化为:

wm+1,i=eyifm(xi)=eyi[fm1(xi)+αmGm(xi)]=wmieyiαmGm(xi)

于是,就有了更新公式:

wm+1,i=wmieyiαmGm(xi)
,与AdaBoost算法中的更新公式只差了个规范化因子而已。

参考:
[1] 《统计学习方法》李航

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值