AdaBoost&GBDT(二)——vincen的学习笔记

回顾

篇(一)中详细介绍了AdaBoost的算法步骤,主要结论就是下面的算法图所述,方便回顾摆在这里。

上图中的 D m , i D_{m,i} Dm,i即是上节中的 ω m , i \omega_{m,i} ωm,i,这点需要注意一下,下面关于AdaBoost性质的推导中,我将沿用 D m , i D_{m,i} Dm,i这个我认为较为直观的符号。

训练误差上界

AdaBoost的训练误差可以写为 1 N ∑ i = 1 N I { G ( x i ) ≠ y i } \frac{1}{N}\sum_{i=1}^{N}I\{G(x_i)\neq y_i\} N1i=1NI{G(xi)=yi}的形式,下面给出直接给出其上界(证明见书)

Theorem 1
1 N ∑ i = 1 N I { G ( x i ) ≠ y i } ⩽ 1 N ∑ i = 1 N e x p ( − y i f ( x i ) ) = ∏ m = 1 M Z m \frac{1}{N}\sum_{i=1}^{N}I\{G(x_i)\neq y_i\}\leqslant \frac{1}{N}\sum_{i=1}^Nexp(-y_if(x_i)) = \prod_{m=1}^MZ_m N1i=1NI{G(xi)=yi}N1i=1Nexp(yif(xi))=m=1MZm
Theorem 2
∏ m = 1 M Z m = ∏ m = 1 M 2 e m ( 1 − e m ) = 令 γ m = 1 2 − e m ∏ m = 1 M 1 − 4 γ m 2 ⩽ e x p ( − 2 ∑ m = 1 M γ m 2 ) \prod_{m=1}^MZ_m = \prod_{m=1}^M2\sqrt {e_m(1-e_m)}\overset{令\gamma_m = \frac{1}{2}-e_m}{=}\prod_{m=1}^M\sqrt{1-4\gamma_m^2}\leqslant exp(-2\sum_{m=1}^M\gamma_m^2) m=1MZm=m=1M2em(1em) =γm=21emm=1M14γm2 exp(2m=1Mγm2)
关于Theorem 2中最后一式的证明,在Taylor展开时不能忽略余项的影响,用Lagrange余项展开至二阶就有
∏ m = 1 M 1 − 4 γ m 2 = ∏ m = 1 M 1 − 2 γ m 2 − 2 γ m 4 ( 1 − ξ 1 ) 3 2 ⩽ ∏ m = 1 M 1 − 2 γ m 2 + 2 γ m 4 e ξ 2 = e x p ( − 2 ∑ m = 1 M γ m 2 ) \begin{aligned} \prod_{m=1}^M\sqrt{1-4\gamma_m^2} &= \prod_{m=1}^M{1-2\gamma_m^2-\frac{2\gamma_m^4}{(1-\xi_1)^\frac{3}{2}}} \\ &\leqslant\prod_{m=1}^M{1-2\gamma_m^2+2\gamma_m^4e^{\xi_2}} \\ &=exp(-2\sum_{m=1}^M\gamma_m^2) \end{aligned} m=1M14γm2 =m=1M12γm2(1ξ1)232γm4m=1M12γm2+2γm4eξ2=exp(2m=1Mγm2)
Corollary

若存在 γ \gamma γ,满足 γ ⩽ γ m ( m = 1 , 2 , … , M ) \gamma \leqslant \gamma_m(m = 1,2,\ldots,M) γγm(m=1,2,,M),则有
1 N ∑ i = 1 N I { G ( x i ) ≠ y i } ⩽ e x p ( − 2 M γ 2 ) \frac{1}{N}\sum_{i=1}^NI\{G(x_i)\neq y_i\} \leqslant exp(-2M\gamma^2) N1i=1NI{G(xi)=yi}exp(2Mγ2)

这个推论是Theorem 1Theorem 2的直接推论,揭示了AdaBoost训练出的强分类器的误差率与弱分类器误差率之间的关系,若弱分类器带权分类错误率 e m e_m em的上界 e ↓ e\downarrow e,则由 γ = min ⁡ m ( 1 2 − e m ) = 1 2 − e \gamma = \min_m(\frac{1}{2} - e_m)=\frac{1}{2}-e γ=minm(21em)=21e可知 γ ↑ \gamma\uparrow γ,造成强分类器的训练误差上界 e x p ( − 2 M γ 2 ) ↓ exp(-2M\gamma^2)\downarrow exp(2Mγ2),这意味着若我们通过一些方式(比如调整基分类器超参数或更换基分类器的学习算法)能达到使 e ↓ e\downarrow e的效果,则强分类错误率的上界会随着 e e e的减小以指数速率下降,这是AdaBoost的一个重要且良好的性质。

AdaBoost加法模型与前向分步算法角度

这一部分的主要目的是从AdaBoost入手去理解了前向分步算法的步骤,以便于理解后面GBDT的算法步骤。

加法模型(additive model)与前向分步算法(forward stagewise algorithm)

对加法模型
f ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m) f(x)=m=1Mβmb(x;γm)
b ( x , γ m ) 是 基 模 型 , γ m 是 基 模 型 参 数 , β m 是 基 模 型 的 系 数 b(x,\gamma_m)是基模型,\gamma_m是基模型参数,\beta_m是基模型的系数 b(x,γm),γmβm

所构建的损失函数
min ⁡ β m , γ m ∑ i = 1 N L ( y i , ∑ m = 1 M β m b ( x i ; γ m ) ) \min_{\beta_m,\gamma_m}\sum_{i=1}^NL(y_i,\sum_{m=1}^M\beta_mb(x_i;\gamma_m)) βm,γmmini=1NL(yi,m=1Mβmb(xi;γm))

是一个很复杂的优化问题,前向分步算法将其拆分为一个 M M M步的简单优化问题,每次只学习一个基模型与其系数,与向前逐步回归的思想有些类似。

我将其制作成伪代码的形式贴在这里。

说完加法模型和前向分步算法后,下面着重解析AdaBoost前向分步算法的形式

AdaBoost前向分步算法

书上以如下定理的形式给出

Theorem 3 \quad AdaBoost是由基本分类器组成的加法模型,损失函数是指数损失函数,且在每一步进行权值归一化的前向分步算法的特例。

proof.

首先,AdaBoost的形式为 f ( x ) = ∑ m = 1 M α m G m ( x ) f(x) = \sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1MαmGm(x)
他显然是一个由基分类器组成的加法模型。

当损失函数设置为指数损失函数时
L ( y , f ( x ) ) = e x p [ − y f ( x ) ] L(y,f(x)) = exp[-yf(x)] L(y,f(x))=exp[yf(x)]

由上面前向分步算法的流程,第 m m m步的优化目标如下
( α m , G m ( x ) ) = a r g min ⁡ α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] (\alpha_m,G_m(x)) = arg\min_{\alpha,G}\sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i)+\alpha G(x_i))] (αm,Gm(x))=argα,Gmini=1Nexp[yi(fm1(xi)+αG(xi))]

这里我们注意到第 m m m步优化时, f m − 1 f_{m-1} fm1是已知的,则有
( α m , G m ( x ) ) = a r g min ⁡ α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] = a r g min ⁡ α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) ] e x p [ − y i α G ( x i ) ] 记 ω ‾ m i = e x p [ − y i ( f m − 1 ( x i ) ] , 有 = a r g min ⁡ α , G ∑ i = 1 N ω ‾ m i e x p [ − y i α G ( x i ) ] = a r g min ⁡ α , G ∑ T ω ‾ m i e − α + ∑ F ω ‾ m i e α \begin{aligned} (\alpha_m,G_m(x)) &= arg\min_{\alpha,G}\sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i)+\alpha G(x_i))] \\ &=arg\min_{\alpha,G}\sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i)]exp[-y_i\alpha G(x_i)] \\ 记\overline{\omega}_{mi}=exp[-y_i(f_{m-1}(x_i)],有 \\ &=arg\min_{\alpha,G}\sum_{i=1}^N\overline{\omega}_{mi}exp[-y_i\alpha G(x_i)] \\ &=arg\min_{\alpha,G}\sum_{T}\overline{\omega}_{mi}e^{-\alpha} + \sum_{F}\overline{\omega}_{mi}e^{\alpha} \\ \end{aligned} (αm,Gm(x))ωmi=exp[yi(fm1(xi)],=argα,Gmini=1Nexp[yi(fm1(xi)+αG(xi))]=argα,Gmini=1Nexp[yi(fm1(xi)]exp[yiαG(xi)]=argα,Gmini=1Nωmiexp[yiαG(xi)]=argα,GminTωmieα+Fωmieα
其中 T , F T,F TF分别代表 G ( x ) G(x) G(x)分类正确与错误的那些样本,分类正确的样本具有特征 G ( x i ) = y i G(x_i) = y_i G(xi)=yi,分类错误的样本具有特征 G ( x i ) ≠ y i G(x_i) \neq y_i G(xi)=yi,而在 α > 0 \alpha > 0 α>0的限制下,有 e α > e − α e^{\alpha} >e^{-\alpha} eα>eα;再加上 ω ‾ m i = e x p [ − y i f m − 1 ( x i ) ] > 0 \overline{\omega}_{mi} = exp[-y_if_{m-1}(x_i)] > 0 ωmi=exp[yifm1(xi)]>0这一条信息,使上式达到最小的 G m ∗ G^*_m Gm应使分类错误的样本权值和最小,故 G m ∗ G^*_m Gm形式为
G m ∗ = a r g min ⁡ G ∑ i = 1 N ω ‾ m i I { y i ≠ G ( x i ) } G^*_m =arg\min_G\sum_{i=1}^N\overline{\omega}_{mi}I\{y_i \neq G(x_i)\} Gm=argGmini=1NωmiI{yi=G(xi)}
下求最优的 α \alpha α,承接上式
∑ i = 1 N e x p [ − y i α G ( x i ) ] = ∑ T ω ‾ m i e − α + ∑ F ω ‾ m i e α = ∑ T ω ‾ m i e − α + ∑ F ω ‾ m i e − α − ∑ F ω ‾ m i e − α + ∑ F ω ‾ m i e α = e − α ∑ i = 1 N ω ‾ m i + ( e α − e − α ) ∑ F ω ‾ m i \begin{aligned} \sum_{i=1}^Nexp[-y_i\alpha G(x_i)] &=\sum_{T}\overline{\omega}_{mi}e^{-\alpha} + \sum_{F}\overline{\omega}_{mi}e^{\alpha} \\ &=\sum_{T}\overline{\omega}_{mi}e^{-\alpha} +\sum_{F}\overline{\omega}_{mi}e^{-\alpha} - \sum_{F}\overline{\omega}_{mi}e^{-\alpha} + \sum_{F}\overline{\omega}_{mi}e^{\alpha} \\ &= e^{-\alpha}\sum_{i=1}^N\overline{\omega}_{mi} + (e^{\alpha}-e^{-\alpha})\sum_F\overline{\omega}_{mi} \end{aligned} i=1Nexp[yiαG(xi)]=Tωmieα+Fωmieα=Tωmieα+FωmieαFωmieα+Fωmieα=eαi=1Nωmi+(eαeα)Fωmi
记上式为 L L L,并对 α \alpha α求导,令导数为0,
∂ L ∂ α = − e − α ∑ i = 1 N ω ‾ m i + ( e α + e − α ) ∑ F ω ‾ m i = − e − α ∑ T ω ‾ m i + e α ∑ F ω ‾ m i = 0 \begin{aligned} \frac{\partial{L}}{\partial{\alpha}} &= -e^{-\alpha}\sum_{i=1}^N\overline{\omega}_{mi} + (e^{\alpha}+e^{-\alpha})\sum_F\overline{\omega}_{mi} \\ &=-e^{-\alpha}\sum_{T}\overline{\omega}_{mi}+e^{\alpha}\sum_F\overline{\omega}_{mi} = 0 \\ \end{aligned} αL=eαi=1Nωmi+(eα+eα)Fωmi=eαTωmi+eαFωmi=0
最终得如下 α ∗ \alpha^* α
α ∗ = 1 2 l o g ∑ T ω ‾ m i ∑ F ω ‾ m i = 1 2 l o g ∑ T ω ‾ m i / ∑ i = 1 N ω ‾ m i ∑ F ω ‾ m i / ∑ i = 1 N ω ‾ m i \begin{aligned} \alpha^* &= \frac{1}{2}log\frac{\sum_T\overline{\omega}_{mi}}{\sum_F\overline{\omega}_{mi}} \\ &=\frac{1}{2}log\frac{\sum_T\overline{\omega}_{mi}/\sum_{i=1}^N\overline{\omega}_{mi}}{\sum_F\overline{\omega}_{mi}/\sum_{i=1}^N\overline{\omega}_{mi}} \end{aligned} α=21logFωmiTωmi=21logFωmi/i=1NωmiTωmi/i=1Nωmi
e m = ∑ F ω ‾ m i ∑ i = 1 N ω ‾ m i e_m = \frac{\sum_F\overline{\omega}_{mi}}{\sum_{i=1}^N\overline{\omega}_{mi}} em=i=1NωmiFωmi,则 ∑ T ω ‾ m i ∑ i = 1 N ω ‾ m i = 1 − e m \frac{\sum_T\overline{\omega}_{mi}}{\sum_{i=1}^N\overline{\omega}_{mi}} = 1-e_m i=1NωmiTωmi=1em,这里应注意 e m e_m em与前面AdaBoost算法中的 e m e_m em的意义都是带权错误率,且此处的 e m e_m em亦属于 [ 0 , 1 ] [0,1] [0,1]

α ∗ \alpha^* α的形式变为
α m ∗ = 1 2 l o g 1 − e m e m \alpha^*_m = \frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em
至于样本权重更新公式,由 f m ( x ) = f m − 1 ( x ) + α m G m ( x ) f_m(x) = f_{m-1}(x)+\alpha_mG_m(x) fm(x)=fm1(x)+αmGm(x),知
ω ‾ m + 1 , i = e x p [ − y i f m ( x i ) ] = e x p [ − y i f m − 1 ( x ) − y i α m G m ( x ) ] = e x p [ − y i f m − 1 ( x ) ] e x p [ − y i α m G m ( x ) ] = ω ‾ m i e x p [ − y i α m G m ( x ) ] \begin{aligned} \overline{\omega}_{m+1,i} &= exp[-y_if_m(x_i)] \\ & = exp[-y_if_{m-1}(x)-y_i\alpha_mG_m(x)] \\ & = exp[-y_if_{m-1}(x)]exp[-y_i\alpha_mG_m(x)] \\ & = \overline{\omega}_{mi}exp[-y_i\alpha_mG_m(x)] \end{aligned} ωm+1,i=exp[yifm(xi)]=exp[yifm1(x)yiαmGm(x)]=exp[yifm1(x)]exp[yiαmGm(x)]=ωmiexp[yiαmGm(x)]

可以看到只相差一个规范化因子,若我们在每一步中加入规范化权值这一步,则开始由 f 0 = 0 f_0 = 0 f0=0 ω ‾ 1 i = 1 \overline{\omega}_{1i} = 1 ω1i=1,规范化后即是 ω 1 i = 1 N {\omega}_{1i} = \frac{1}{N} ω1i=N1,其后由上面推理可知, e m , α m , G m ( x ) e_m,\alpha_m,G_m(x) em,αm,Gm(x)的更新方式完全相同。

于是AdaBoost是在每一步归一化权值的前向分步算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值