集成学习与Adaboost算法

本文介绍集成学习的概念,对比Bagging和Boosting的特点,并详细推导Adaboost算法的关键步骤,包括损失函数定义、权重更新机制及基学习器的求解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 本文简要介绍了集成学习,说明了Boosting和Bagging的主要特点。接着,基于周志华的《机器学习》中关于Adaboost算法,详细推导了Adaboost算法,并给出了关键步骤的解释,更方便初学者的理解。

集成学习

 集成学习通过构建并结合多个学习器来完成学习任务,有是也称为多分类器系统,基于委员会的学习等。

这里写图片描述

 上图显示出集成学习的一般结构:先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据产生,例如BP神经网络等。此时,集成中只包含同种类型的个体学习器,这样的集成是同质的,同质集成中的个体学习器也称基学习器,相应的学习算法称为基学习算法,集成也可包含不同类型的个体学习器,例如同时包含决策树和神经网络,这样的集成是异质的。异质集成不再有基学习算法,相应的个体学习器不再称为基学习器,常称为组件学习器

 以二分类问题y{1,+1}y∈{−1,+1}和真实函数ff,假定基本分类器的错误率为ϵ,即对每个基分类器hihi,有:

P(hi(x)f(x))=ϵ(1)(1)P(hi(x)≠f(x))=ϵ

 假设集成通过简单投票法结合TT个基分类器,若有超过半数的基分类器正确,则集成分类就正确:
(2)H(x)=sign(i=1Thi(x))

说明:
  • ff是真实函数,产生的结果范围是{1,+1},分类结果是真实的,准确的。
  • hi(x)hi(x)是基分类器,产生的结果范围是{1,+1}{−1,+1},可能与真实结果有偏差。
  • H(x)H(x)是集成分类器,举例来说,如果超过一半的基分类器的分类结果是+1,则集成分类器的结果是+1。
  • 对于式(2)(2),设A=i=1T(hi(x))A=∑i=1T(hi(x)),分析如下,如果A>0A>0表明TT个基分类器分类结果为+1的较多,结果是集成分类器分类结果是+1+1;如果A=0A=0,表明TT个基分类器中,分类结果为+11−1的一样多。如果A<0A<0,表明TT个基分类器中,分类结果为1的基分类器数量较多,集成分类器的结果为1−1。函数是符号函数,在<0,=0,>0·<0,·=0,·>0时分别取值为1,0,1−1,0,1

 假设基分类器的错误率相互独立,则由hoeffding不等式可知,集成的错误率为:

P(H(x)f(x))=k=0T/2CkT(1ϵ)kϵTke12T(12ϵ)2(3)(3)P(H(x)≠f(x))=∑k=0T/2CTk(1−ϵ)kϵT−k≤e−12T(1−2ϵ)2

 上式可以看出,随着集成中个体分类器数目TT​的增大,集成的错误率将成指数级下降,最终趋于零。

hoeffding不等式为:

xi,xi{0,1},x¯¯¯=1n(x1+x2++xn)P(|x¯¯¯E(x¯¯¯)|t) e2nt2随机变量xi,xi∈{0,1},x¯=1n(x1+x2+⋯+xn)则有P(|x¯−E(x¯)|≥t) ≤e−2nt2

 式(3)(3)中,t=12ϵt=12−ϵ,n=Tn=T
P(H(x)f(x))=P(|H(x)f(x)|t)e2nt2=e2T(12ϵ)2=e12T(12ϵ)2P(H(x)≠f(x))=P(|H(x)−f(x)|≥t)≤e−2nt2=e−2T(12−ϵ)2=e−12T(1−2ϵ)2

 根据个体学习器的生产方式,目前的集成学习方法大致可以分为两大类,即个体学习器间存在强依赖关系,必须串行生成的序列化方法,以及个体学习器间不存在依赖关系,可同时生成的并行化方法;前者的代表是Boosting,后者代表的是Bagging和随机森林。

Boosting

 Boosting是一族可将弱学习器提升为强学习器的方法,这族算法的工作机制类似:先从初始训练集训练处一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

 Boosting族算法最著名的代表是Adaboost。

 Adaboost算法有多种推导方式,比较容易理解的是基于“加性模型”,即基学习器的线性组合:

H(x)=t=1Tαtht(x)(4)(4)H(x)=∑t=1Tαtht(x)

 Adaboost的推导主要有三个方面的内容:损失函数的定义,αtαt的求解和ht(x)ht(x)的求解。
损失函数:

 这里选用指数损失函数来替换0/1损失函数来作为优化目标,理由如下:

 指数损失函数的形式为:

lexp(H|D)=ExD[ef(x)H(x)](5)(5)lexp(H|D)=Ex∼D[e−f(x)H(x)]

 上式中:
  • f(x)f(x)是真实函数,函数值范围是{1,+1}{−1,+1};
  • H(x)H(x)是基学习器,函数值范围是{1,+1}{−1,+1},结果可能存在误差
  • DD指某种分布;
  • xD 的意思是,xx服从D分布;
  • lexp(H|D)lexp(H|D)的含义是在分布为DD的前提下,以H为自变量的损失函数。

 自然的,我们希望获得公式(5)(5)的最小化,考虑公式(5)(5)H(x)H(x)求一阶偏导:

lexp(H|D)H(x)=ExD[ef(x)H(x)]H(x)=eH(x)ExDf(x)=eH(x)[1P(f(x)=1|x)+(1)P(f(x)=1|x)]=eH(x)P(f(x)=1|x)+eH(x)P(f(x)=1|x)(6)(6)∂lexp(H|D)∂H(x)=∂Ex∼D[e−f(x)H(x)]∂H(x)=−e−H(x)Ex∼Df(x)=−e−H(x)[1⋅P(f(x)=1|x)+(−1)P(f(x)=−1|x)]=−e−H(x)P(f(x)=1|x)+e−H(x)P(f(x)=−1|x)

 令式(4)(4)等于0 ,则有:
lexp(H|D)H(x)eH(x)P(f(x)=1|x)(eH(x))2H(x)=eH(x)P(f(x)=1|x)+eH(x)P(f(x)=1|x)=0=eH(x)P(f(x)=1|x)=P(f(x)=1|x)P(f(x)=1|x)=12lnP(f(x)=1|x)P(f(x)=1|x)(6)(6)∂lexp(H|D)∂H(x)=−e−H(x)P(f(x)=1|x)+eH(x)P(f(x)=−1|x)=0⇒e−H(x)P(f(x)=1|x)=eH(x)P(f(x)=−1|x)⇒(eH(x))2=P(f(x)=1|x)P(f(x)=−1|x)⇒H(x)=12lnP(f(x)=1|x)P(f(x)=−1|x)

因此,有:
sign(H(x))=sign(12lnP(f(x)=1|x)P(f(x)=1|x))={1,P(f(x)=1|x)>P(f(x)=1|x)1,P(f(x)=1|x)<P(f(x)=1|x)=argminy1,1P(f(x)=y|x)(7)(7)sign(H(x))=sign(12lnP(f(x)=1|x)P(f(x)=−1|x))={1,P(f(x)=1|x)>P(f(x)=−1|x)−1,P(f(x)=1|x)<P(f(x)=−1|x)=arg⁡miny∈−1,1⁡P(f(x)=y|x)

 这意味着,sign(H(x))sign(H(x))达到了贝叶斯最优错误率,换言之,若指数损失函数最小化,则分类错误率也将最小化,这说明指数损失函数是分类任务原本0/1损失函数的一致性的替代损失函数,由于这个替代函数有更好的数学性质,如连续可微,所以替代0/1损失函数。
αtαt的求解

 在adaboost算法中,第一个基分类器h1h1是通过直接将基学习算法用于初始数据分布而得,此后迭代地生成hthtαtαt当基分类器htht基于分布DD产生后,该分类器的权重αt应是的αthtαtht最小化指数损失函数。

lexp(αtht|Dt)=ExDt[ef(x)αtht(x)]=ExDt[eαtI(f(x)=ht(x)+eαtI(f(x)ht(x))]=eαtPxDt(f(x)=ht(x))+eαtPxDt(f(x)ht(x))=eαt(1ϵt)+eαtϵt(8)(8)lexp(αtht|Dt)=Ex∼Dt[e−f(x)αtht(x)]=Ex∼Dt[e−αtI(f(x)=ht(x)+eαtI(f(x)≠ht(x))]=e−αtPx∼Dt(f(x)=ht(x))+eαtPx∼Dt(f(x)≠ht(x))=e−αt(1−ϵt)+eαtϵt

 上式中,I()I(⋅)是指示函数,在为真和假时分别取值为1,0,ϵt=PxDt(ht(x)f(x))ϵt=Px∼Dt(ht(x)≠f(x)),考虑指数损失函数的导数:
lexp(αtht|Dt)αt=eαt(1ϵt)+eαtϵt(9)(9)∂lexp(αtht|Dt)∂αt=−e−αt(1−ϵt)+eαtϵt

 使上式为零,可解得:
αt=12ln(1ϵtϵt)(10)(10)αt=12ln(1−ϵtϵt)

 式(10)(10)即为αtαt的求解结果。
ht(x)ht(x)的求解:

 adaboost算法在获得Ht1Ht−1之后样本分布将进行调整,使下一轮的基学习器htht能纠正Ht1Ht−1的一些错误,理想的htht能纠正Ht1Ht−1的全部错误,即最小化为:

lexp(Ht1+ht|Dt)=ExDt[ef(x)(Ht1(x)+ht(x))]=ExDt[ef(x)(Ht1(x)ef(x)ht(x)](11)(11)lexp(Ht−1+ht|Dt)=Ex∼Dt[e−f(x)(Ht−1(x)+ht(x))]=Ex∼Dt[e−f(x)(Ht−1(x)e−f(x)ht(x)]

 注意到f2(x)=h2t(x)=1f2(x)=ht2(x)=1,因为f(x){1,+1},ht(x){1,+1}f(x)∈{−1,+1},ht(x)∈{−1,+1},上式使用ef(x)ht(x)e−f(x)ht(x)的泰勒展开式近似为:
lexp(Ht1+ht|Dt)=ExDt[ef(x)(Ht1(x)(1f(x)ht(x)+f2(x)h2t(x)2)]=ExDt[ef(x)(Ht1(x)(1f(x)ht(x)+12)](12)(12)lexp(Ht−1+ht|Dt)=Ex∼Dt[e−f(x)(Ht−1(x)(1−f(x)ht(x)+f2(x)ht2(x)2)]=Ex∼Dt[e−f(x)(Ht−1(x)(1−f(x)ht(x)+12)]

 上式中exex的泰勒展开式为:ex=1+x+x22!++xnn!+o(xn)ex=1+x+x22!+⋯+xnn!+o(xn)

 于是,理想的基学习器:

ht(x)=argminhlexp(Ht1+h|D)=argminhExD[ef(x)Ht1(x)(1f(x)h(x)+12)]=argmaxhExD[ef(x)Ht1(x)f(x)h(x)]=argmaxhExD[ef(x)Ht1(x)ExD[ef(x)Ht1(x)]f(x)h(x)](13)(13)ht(x)=arg⁡minh⁡lexp(Ht−1+h|D)=arg⁡minh⁡Ex∼D[e−f(x)Ht−1(x)(1−f(x)h(x)+12)]=arg⁡maxh⁡Ex∼D[e−f(x)Ht−1(x)f(x)h(x)]=arg⁡maxh⁡Ex∼D[e−f(x)Ht−1(x)Ex∼D[e−f(x)Ht−1(x)]f(x)h(x)]

 上式中,ExD[ef(x)Ht1(x)]Ex∼D[e−f(x)Ht−1(x)]是一个常数,令DtDt为一个分布:
Dt(x)=D(x)ef(x)Ht1(x)ExD[ef(x)Ht1(x)](14)(14)Dt(x)=D(x)e−f(x)Ht−1(x)Ex∼D[e−f(x)Ht−1(x)]

 则根据数学期望的定义,这等价于:
ht(x)=argmaxhExD[ef(x)Ht1(x)ExD[ef(x)Ht1(x)]f(x)h(x)]=argmaxhExDt[f(x)h(x)](15)(15)ht(x)=arg⁡maxh⁡Ex∼D[e−f(x)Ht−1(x)Ex∼D[e−f(x)Ht−1(x)]f(x)h(x)]=arg⁡maxh⁡Ex∼Dt[f(x)h(x)]

 因为,f(x),h(x){1,+1}f(x),h(x)∈{−1,+1},有:
f(x)h(x)=12I(f(x)h(x))(16)(16)f(x)h(x)=1−2I(f(x)≠h(x))

 这是因为:
f(x)f(x)h(x)h(x)f(x)h(x)f(x)h(x)I(f(x)h(x))I(f(x)≠h(x))
-1-110
-1+1-11
+1+110
+1-1-11

 所以有,f(x)h(x)=12I(f(x)h(x))f(x)h(x)=1−2I(f(x)≠h(x))

 则理想的基学习器为:

ht(x)=argmaxhExDt[f(x)h(x)]=argminhExDt[I(f(x)h(x))](17)(17)ht(x)=arg⁡maxh⁡Ex∼Dt[f(x)h(x)]=arg⁡minh⁡Ex∼Dt[I(f(x)≠h(x))]

 由此可见,理想的htht将在分布DtDt下最小化分类误差。因此,弱分类器将基于分布DtDt来训练,且针对DtDt的分类误差应小于0.5,这在一定程度上类似”残差逼近”的思想,考虑到DtDtDt+1Dt+1的关系,有:
Dt+1(x)=D(x)ef(x)Ht(x)ExD[ef(x)Ht(x)]=D(x)ef(x)Ht1(x)ef(x)αtht(x)ExD[ef(x)Ht(x)]=D(x)ef(x)Ht1(x)ef(x)αtht(x)ExD[ef(x)Ht1(x)]ExD[ef(x)Ht1(x)]ExD[ef(x)Ht(x)]=Dt(x)ef(x)αtht(x)ExD[ef(x)Ht1(x)]ExD[ef(x)Ht(x)](18)(18)Dt+1(x)=D(x)e−f(x)Ht(x)Ex∼D[e−f(x)Ht(x)]=D(x)e−f(x)Ht−1(x)e−f(x)αtht(x)Ex∼D[e−f(x)Ht(x)]=D(x)e−f(x)Ht−1(x)e−f(x)αtht(x)Ex∼D[e−f(x)Ht−1(x)]Ex∼D[e−f(x)Ht−1(x)]Ex∼D[e−f(x)Ht(x)]=Dt(x)e−f(x)αtht(x)Ex∼D[e−f(x)Ht−1(x)]Ex∼D[e−f(x)Ht(x)]

 至此,ht(x)ht(x)的表达式推导完毕。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值