AdaBoost算法详解

AdaBoost

在Overview部分我们提到了AdaBoost可以看作是模型为加法模型、损失函数为指数损失函数、学习算法为前向分步算法的分类模型。我认为在AdaBoost中,最重要的两个概念就是两组权重:基学习器权重和样本权重分布。

Weights

首先来看这两组权重,样本的权重和基学习器的权重。其实提升算法,听这个名字,就能感觉出它是在不断地提升模型的能力。

Sample weight

对于数据集 D = { ( x 1 ,   y 1 ) , ( x 2 ,   y 2 ) , … , ( x N ,   y N ) } D=\{(x_1,\ y_1),(x_2,\ y_2),\dots,(x_N,\ y_N)\} D={(x1, y1),(x2, y2),,(xN, yN)},我们令 D t ( x ) {D}_{t}(x) Dt(x)表示在第 t t t轮迭代时样本集的权重分布,即 D t ( x )   =   ( β 1 , β 2 , … , β N ) {D}_{t}(x)\ =\ (\beta_1, \beta_2, \dots, \beta_N) Dt(x) = (β1,β2,,βN)。在每一轮迭代,我们都会更新样本的权重,具体来说,对于那些被分类错误的样本,我们会提高它们地权重;对于分类正确的样本,我们会减小它们的权重。这样一来,在第 t + 1 t+1 t+1轮迭代,我们所训练的新的基学习器就会更关注那些之前被分类错误的样本。
举个例子来说,我们在期末考试之前是不是都会着重复习错题,因为对了的题说明我们会了,基本不会再错。但是错题是我们没有掌握的东西,因此应该给予更多的关注。

Learner weight

同样,对于每一轮迭代所训练出的基学习器 h t h_{t} ht,我们也会通过某种方法计算出一个它的权重 α t \alpha_{t} αt。对于那些分类效果好的基学习器,我们会赋予它一个较大的权重;对于那些分类效果不好的基学习器,我们会赋予它一个较小的权重。

Algorithm

在介绍算法之前,我们先介绍一个概念:指数损失函数

Exponential Loss

指数损失函数也是损失函数的一种,最典型的应用就是在AdaBoost当中,公式为:
L ( y ,   f ( x ) )   =   e x p ( − y f ( x ) ) L(y,\ f(x))\ =\ exp(-yf(x)) L(y, f(x)) = exp(yf(x))
它的特点是对噪声、离群点非常敏感

接下来我们先直接看算法的流程:

在这里插入图片描述

之前我们谈到Boosting算法中最重要的两个概念就是两组权重(样本权重和基学习器权重),因此下面我们就来看一下算法中两组权重的更新公式是怎么来的。

Learner Part

从算法流程中我们看到基学习器的权重更新公式为:
α t   =   1 2 l n ( 1 − ϵ t ϵ t ) \alpha_t\ =\ \frac{1}{2}ln(\frac{1-\epsilon_t}{\epsilon_t}) αt = 21ln(ϵt1ϵt)
其中 ϵ t = P x ∼ D t ( h ( x ) ≠ f ( x ) ) \epsilon_t=P_{x\sim D_t}(h(x)\ne f(x)) ϵt=PxDt(h(x)=f(x))

AdaBoost的学习算法采用的是前向分布算法,因此在第 t t t轮迭代时,我们所要找的最优基学习器应该满足指数损失最小。
l e x p ( α t h t ∣ D t )   =   E x ∼ D t [ e x p ( − f ( x ) α t h t ( x ) ) ]                                                                 =   E x ∼ D t [ e − α t I ( f ( x ) = h t ( x ) )   +   e α t I ( f ( x ) ≠ h t ( x ) ) ]                                                                  =   e − α t P x ∼ D t ( f ( x ) = h t ( x ) ) + e α t P x ∼ D t ( f ( x ) ≠ h t ( x ) )             = e − α t ( 1 − ϵ t )   +   e α t ϵ t l_{exp}(\alpha_th_t|D_t)\ =\ E_{x \sim D_t}[exp({-f(x)\alpha_th_t(x)})]\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ E_{x \sim D_t}[e^{-\alpha_t}I(f(x)=h_t(x))\ +\ e^{\alpha_t}I(f(x) \ne h_t(x))] \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ e^{-\alpha_t}P_{x \sim D_t}(f(x) = h_t(x)) + e^{\alpha_t}P_{x \sim D_t}(f(x) \ne h_t(x)) \\ \ \ \ \ \ \ \ \ \ \ \ = e^{-\alpha_t}(1-\epsilon_t) \ + \ e^{\alpha_t}\epsilon_t lexp(αthtDt) = ExDt[exp(f(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
求指数损失函数对 α t \alpha_t αt的偏导得:
∂ l e x p ( α t h t ∣ D t ) ∂ α t = − e − α t ( 1 − ϵ t ) + e α t ϵ t \frac{\partial l_{exp}(\alpha_th_t|D_t)}{\partial{\alpha_t}} = -e^{-\alpha_t}(1-\epsilon_t)+e^{\alpha_t}\epsilon_t αtlexp(αthtDt)=eαt(1ϵt)+eαtϵt
令偏导等于0得到:
α t   =   1 2 l n ( 1 − ϵ t ϵ t ) \alpha_t\ =\ \frac{1}{2}ln(\frac{1-\epsilon_t}{\epsilon_t}) αt = 21ln(ϵt1ϵt)
于是我们就得到算法中基学习器权重的更新公式(第6行)

下面是一个关于最优的 h t ( x ) h_t(x) ht(x)能够在样本分布 D t {D}_t Dt下最小化分类误差的证明

在得到 H t − 1 H_{t-1} Ht1后我们会更新样本权重得到 D t {D}_{t} Dt。我们之前提到理想的 h t ( x ) h_t(x) ht(x)能够纠正 H t − 1 H_{t-1} Ht1的全部错误,这等价于最小化
l e x p ( H t − 1 + α t h t ∣ D ) l_{exp}(H_{t-1} + \alpha_th_t|D) lexp(Ht1+αthtD)
可以简化为最小化:
l e x p ( H t − 1 + h t ∣ D )   =   E x ∼ D t [ e x p ( − f ( x ) ( H t − 1 ( x ) + h t ( x ) ) ]                                                   =   E x ∼ D t [ e x p ( − f ( x ) H t − 1 ( x ) ) ⋅ e x p ( − f ( x ) h t ( x ) ) ] l_{exp}(H_{t-1} + h_t|D)\ =\ E_{x \sim D_t}[exp({-f(x)(H_{t-1}(x) + h_t(x)})]\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \ E_{x \sim D_t}[exp({-f(x)H_{t-1}(x)})\cdot exp({-f(x)h_t(x)})] lexp(Ht1+htD) = ExDt[exp(f(x)(Ht1(x)+ht(x))]                                                 = ExDt[exp(f(x)Ht1(x))exp(f(x)ht(x))]
由于 f 2 ( x ) = h t 2 ( x ) = 1 f^2(x)=h_t^2(x)=1 f2(x)=ht2(x)=1,因此对上式进行二阶泰勒展开可以得到:

在这里插入图片描述

于是,最优的基学习器
h t ( x )   =   a r g m i n h     l e x p ( H t − 1 + h ∣ D )                                                  = a r g m a x h     E x ∼ D    [ e x p ( − f ( x ) H t − 1 ( x ) ) + f ( x ) h ( x ) ]                                                              = a r g m a x h     E x ∼ D    [ e x p ( − f ( x ) H t − 1 ( x ) ) E x ∼ D   e x p ( − f ( x ) H t − 1 ( x ) ) + f ( x ) h ( x ) ] h_t(x)\ =\ argmin_{h} \ \ \ l_{exp}(H_{t-1} + h|D) \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =argmax_{h}\ \ \ E_{x \sim { D}}\ \ [{exp(-f(x)H_{t-1}(x)) + f(x)h(x)}] \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = argmax_{h} \ \ \ E_{x \sim { D}}\ \ [\frac{exp(-f(x)H_{t-1}(x))}{E_{x \sim {D} }\ exp(-f(x)H_{t-1}(x))} + f(x)h(x)] ht(x) = argminh   lexp(Ht1+hD)                                                =argmaxh   ExD  [exp(f(x)Ht1(x))+f(x)h(x)]                                                            =argmaxh   ExD  [ExD exp(f(x)Ht1(x))exp(f(x)Ht1(x))+f(x)h(x)]

D t ( x )   =   D ( x ) e x p ( − f ( x ) H t − 1 ( x ) ) E x ∼ D   e x p ( − f ( x ) H t − 1 ( x ) ) {D}_t(x)\ =\ {D}(x)\frac{exp(-f(x)H_{t-1}(x))}{E_{x \sim {D} }\ exp(-f(x)H_{t-1}(x))} Dt(x) = D(x)ExD exp(f(x)Ht1(x))exp(f(x)Ht1(x))
则根据数学期望的定义
                                              h t ( x )   =   a r g m a x h     E x ∼ D    [ e x p ( − f ( x ) H t − 1 ( x ) ) E x ∼ D   e x p ( − f ( x ) H t − 1 ( x ) ) + f ( x ) h ( x ) ]      = a r g m a x h    E x ∼ D t   [ f ( x ) h ( x ) ] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ h_t(x)\ =\ argmax_{h} \ \ \ E_{x \sim {D}}\ \ [\frac{exp(-f(x)H_{t-1}(x))}{E_{x \sim {D} }\ exp(-f(x)H_{t-1}(x))} + f(x)h(x)] \\ \ \ \ \ =argmax_{h}\ \ E_{x \sim {D}_t}\ [f(x)h(x)]                                              ht(x) = argmaxh   ExD  [ExD exp(f(x)Ht1(x))exp(f(x)Ht1(x))+f(x)h(x)]    =argmaxh  ExDt [f(x)h(x)]
由于 f ( x ) ,   h ( x ) ∈   { − 1 , 1 } f(x),\ h(x) \in\ \{-1, 1\} f(x), h(x) {1,1},因此 f ( x ) h ( x )   =   1   −   2 I [ f ( x ) ≠ h ( x ) ] f(x)h(x)\ =\ 1\ -\ 2I[f(x)\ne h(x)] f(x)h(x) = 1  2I[f(x)=h(x)]

则最优的学习器
h t ( x )   =   a r g m i n h    E x ∼ D t   [ I ( f ( x ) ≠ h ( x ) ) ] h_t(x)\ =\ argmin_{h}\ \ E_{x \sim { D}_t}\ [I(f(x) \ne h(x))] ht(x) = argminh  ExDt [I(f(x)=h(x))]
因此可以证明,最优的 h t ( x ) h_t(x) ht(x)能够在样本分布 D t {D}_t Dt下最小化分类误差

Sample Part

首先来说明一下算法中样本权重分步更新公式中得Normalization term Z t Z_t Zt,这是一个归一化项,目的是确保得到的是一个分布。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值