Adaboost学习笔记

在之前的博客集成学习原理小结中,我们谈到了 Adaboost 算法。它凭借其优越的性能和通用性,成为 Boosting 家族中最为经典的算法之一。因此,在本文中,我们将学习 Adaboost 算法,领略其独特的魅力。

基本思路

集成学习原理小结中,我们知道 Boosting 算法是一族可将弱分类器提升为强分类器的算法。它的工作机制可总结为:先从训练集中学习得到一个弱学习器,再根据弱学习器的表现对训练样本分布进行调整,更新权重使得之前弱学习器做错的样本得到更多的关注,然后根据调整后的样本重新训练下一个弱学习器;如此重复进行,直至弱学习器个数达到事先的值 T T T,最终将 T T T 个弱学习器结合。

毫无疑问,Adaboost 算法也满足上述基本流程。那么,它到底是怎样实现的呢?其算法的基本流程又是怎样的呢?

Adaboost 算法有多个变种,比较容易理解的是加法模型(additive model),即基学习器的加权组合,如下图所示,

Adaboost

损失函数优化

在前一小结中,我们对 Adaboost 算法的基本思路有了一定的了解。那么,它的损失函数又是什么呢?我们又怎么优化呢?

前面提到,与 GBDT 算法相同,上述的 Adaboost 算法是一加法模型,并且使用前向分布算法进行求解。不同的是,Adaboost的损失函数为指数函数

a r g m i n ∑ i = 1 m e x p ( − y i H t ( x ) ) \mathop{argmin}\sum_{i=1}^m exp(-y_iH_t(x)) argmini=1mexp(yiHt(x))

我们对上式求导,并令其等于0,可得

− P ( y i = 1 ∣ x ) e − H t ( x ) + P ( y i = − 1 ∣ x ) e H t ( x ) = 0 -P(y_i=1|x)e^{-H_t(x)} + P(y_i=-1|x)e^{H_t(x)} = 0 P(yi=1x)eHt(x)+P(yi=1x)eHt(x)=0

解得

H t ( x ) = 1 2 ln ⁡ P ( y i = 1 ∣ x ) P ( y i = − 1 ∣ x ) H_t(x) = \frac{1}{2}\ln \frac{P(y_i=1|x)}{P(y_i=-1|x)} Ht(x)=21lnP(yi=1x)P(yi=1x)

因此,可有

s i g n ( H ( x ) ) = { 1 , P ( y i = 1 ∣ x ) > P ( y i = − 1 ∣ x ) − 1 , P ( y i = 1 ∣ x ) ≤ P ( y i = − 1 ∣ x ) = a r g m a x y ∈ [ − 1 , 1 ] P ( y ∣ x ) \begin{aligned} sign(H(x)) &= \left\{ \begin{aligned} 1 &, \quad P(y_i=1|x) > P(y_i=-1|x) \\ -1 &, \quad P(y_i=1|x) \le P(y_i=-1|x) \\ \end{aligned} \right. \\ &= \mathop{argmax}\limits_{y \in [-1, 1]} P(y|x)\\ \end{aligned} sign(H(x))={11,P(yi=1x)>P(yi=1x),P(yi=1x)P(yi=1x)=y[1,1]argmaxP(yx)

因此,我们可以得知当指数函数最小化等价于分类错误率最小化。而之所以使用指数函数,是因为其有更好的数学性质,如连续可微等。此外,根据前向分布算法,可得上式可改写为

a r g m i n α , h ∑ i = 1 m e x p ( − y i ( H t − 1 ( x ) + α h t ( x ) ) \mathop{argmin}\limits_{\alpha, h}\sum_{i=1}^m exp(-y_i(H_{t-1}(x) + \alpha h_t(x)) α,hargmini=1mexp(yi(Ht1(x)+αht(x))

w t , i ′ = e x p ( − y i H t − 1 ( x ) ) w_{t, i}^{'} = exp(-y_iH_{t-1}(x)) wt,i=exp(yiHt1(x))。因为其与参数 α , h \alpha, h α,h无关,所以与最小化无关,仅仅依赖于 H t − 1 ( x ) H_{t-1}(x) Ht1(x)。因此,有

a r g m i n α , h ∑ i = 1 m w t , i ′ e x p ( − y i α h t ( x ) ) \mathop{argmin}\limits_{\alpha, h}\sum_{i=1}^m w_{t, i}^{'}exp(-y_i \alpha h_t(x)) α,hargmini=1mwt,iexp(yiαht(x))

为了求解上式,我们不妨求解 h t ( x ) h_t(x) ht(x)。根据前式,我们知道指数函数最小化等价于分类错误率最小化,因此,

h t ∗ ( x ) = a r g m i n α , h ∑ i = 1 m w t , i ′ I ( y i ≠ h t ( x i ) ) h_t^*(x) = \mathop{argmin}\limits_{\alpha, h}\sum_{i=1}^m w_{t, i}^{'}I(y_i \neq h_t(x_i)) ht(x)=α,hargmini=1mwt,iI(yi̸=ht(xi))

将上式代入原损失函数,则有
a r g m i n α ∑ i = 1 m w t , i ′ e x p ( − y i α h t ( x ) ) = ∑ y i = h t ∗ ( x i ) w t , i ′ e − α + ∑ y i ≠ h t ∗ ( x i ) w t , i ′ e α = ( e α − e − α ) ∑ i = 1 m w t , i ′ I ( y i ≠ h t ∗ ( x i ) ) + ∑ i = 1 m w t , i ′ e − α \begin{aligned} \mathop{argmin}\limits_{\alpha}\sum_{i=1}^{m}w_{t, i}^{'}exp(-y_i \alpha h_t(x)) &= \sum_{y_i=h_t^*(x_i)}w_{t, i}^{'}e^{-\alpha} + \sum_{y_i \neq h_t^*(x_i)}w_{t, i}^{'}e^{\alpha} \\ &= (e^{\alpha} - e^{-\alpha})\sum_{i=1}^m w_{t, i}^{'}I(y_i \neq h_t^*(x_i)) + \sum_{i=1}^m w_{t, i}^{'}e^{-\alpha} \\ \end{aligned} αargmini=1mwt,iexp(yiαht(x))=yi=ht(xi)wt,ieα+yi̸=ht(xi)wt,ieα=(eαeα)i=1mwt,iI(yi̸=ht(xi))+i=1mwt,ieα

我们对上式求导,使其为零,则有

( e α + e − α ) ∑ i = 1 m w t , i ′ I ( y i ≠ h t ∗ ( x i ) ) − ∑ i = 1 m w t , i ′ e − α = 0 (e^{\alpha} + e^{-\alpha})\sum_{i=1}^m w_{t, i}^{'}I(y_i \neq h_t^*(x_i)) - \sum_{i=1}^m w_{t, i}^{'}e^{-\alpha} = 0 (eα+eα)i=1mwt,iI(yi̸=ht(xi))i=1mwt,ieα=0

ϵ t \epsilon_t ϵt 是样本错误率

ϵ t = ∑ i = 1 m w t , i ′ I ( h t ( x i ) ≠ y i ) ∑ i = 1 m w t , i = ∑ i = 1 m w t , i I ( h t ( x i ) ≠ y i ) \epsilon_t = \frac{\sum_{i=1}^{m}w_{t,i}^{'}I(h_t(x_i) \neq y_i)}{\sum_{i=1}^{m}w_{t,i}} = \sum_{i=1}^{m}w_{t,i}I(h_t(x_i) \neq y_i) ϵt=i=1mwt,ii=1mwt,iI(ht(xi)̸=yi)=i=1mwt,iI(ht(xi)̸=yi)

则有

α t = 1 2 ln ⁡ 1 − ϵ t ϵ t \alpha_t = \frac{1}{2}\ln \frac{1 - \epsilon_t}{\epsilon_t} αt=21lnϵt1ϵt

最后,根据 H t ( x ) = H t − 1 ( x ) + α t h t ( x ) H_t(x) = H_{t-1}(x) + \alpha_th_t(x) Ht(x)=Ht1(x)+αtht(x) w t , i ′ = e x p ( − y i h ( x i ) ) w_{t, i}^{'} = exp(-y_ih(x_i)) wt,i=exp(yih(xi)) 可得

w t + 1 , i ′ = w t , i ′ e x p ( − y i α h t ( x i ) ) w_{t+1, i}^{'} = w_{t,i}^{'}exp(-y_i\alpha h_t(x_i)) wt+1,i=wt,iexp(yiαht(xi))

总结

正如 Boosting 算法家族一样,Adaboost 的弱分类器可以为任何分类器,如决策树,神经网络等。此外,Adaboost 算法优缺点如下,

优点

  1. 分类精度很高

  2. 在Adaboost的框架下,可以使用各种回归分类模型来构建弱学习器,非常灵活。

  3. 作为简单的二元分类器时,构造简单,结果可理解。

  4. 不容易发生过拟合

缺点

  1. 对异常样本敏感,异常样本在迭代中可能会获得较高的权重,影响最终的强学习器的预测准确性。

参考文献

  1. 周志华 《机器学习》;
  2. 刘建平 集成学习之Adaboost原理小结
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值