AdaBoost 算法

笔记下载链接

AdaBoost 算法

  1. Boosting族算法最著名的代表是AdaBoost算法。

  2. AdaBoot算法两个核心步骤:

    • 每一轮中如何改变训练数据的权值?

      AdaBoost算法提高那 些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。

      于是那些没有得到正确分类的数据由于权值的加大而受到后一轮的弱分类器的更大关注。

    • 最后如何将一系列弱分类器组合成一个强分类器?

      AdaBoost 采用加权多数表决的方法:

      • 加大分类误差率较小的弱分类器的权值,使得它在表决中起较大作用。
      • 减小分类误差率较大的弱分类器的权值,使得它在表决中起较小的作用。
  3. AdaBoost算法有两个特点:

    • 不改变所给的训练数据,而不断改变训练数据权值的分布,使得训练数据在基本分类器的学习中起不同作用。

      • 因此AdaBoost要求基本学习器能够对特定的数据分布进行学习,这一般是在学习的时候为每个训练样本赋予一个权重。
      • 对于无法接受带权样本的基本学习算法,则可以通过“重采样法”来处理:即在每一轮学习中,根据样本分布对训练集重新采样,再用重采样的样本集对基本学习器进行训练。
      • 一般而言这两者没有显著的优劣差别。
    • 利用基本分类器的线性组合 f ( x ⃗ ) = ∑ m = 1 M α m h m ( x ⃗ ) f(\mathbf {\vec x})=\sum_{m=1}^{M}\alpha_mh_m(\mathbf {\vec x}) f(x )=m=1Mαmhm(x ) 构成最终分类器:
      H ( x ⃗ ) = sign ( f ( x ⃗ ) ) = sign ( ∑ m = 1 M α m h m ( x ⃗ ) ) H(\mathbf {\vec x})=\text{sign}(f(\mathbf {\vec x}))=\text{sign}\left(\sum_{m=1}^{M}\alpha_mh_m(\mathbf {\vec x})\right ) H(x )=sign(f(x ))=sign(m=1Mαmhm(x ))
      其中:

      • f ( x ⃗ ) f(\mathbf {\vec x}) f(x ) 的符号决定实例 x ⃗ \mathbf {\vec x} x 的分类。
      • f ( x ⃗ ) f(\mathbf {\vec x}) f(x )的绝对值表示分类的确信度。
  4. AdaBoost 算法具有自适应性,即它能够自动适应弱分类器各自的训练误差率,这也是它的名字(适应的提升)的由来。

2.1.1 算法
  1. AdaBoost算法:

    • 输入:

      • 训练数据集 D = { ( x ⃗ 1 , y ~ 1 ) , ( x ⃗ 2 , y ~ 2 ) , ⋯   , ( x ⃗ N , y ~ N ) } ,    x ⃗ i ∈ X ⊂ R n , y ~ i ∈ Y = { − 1 , + 1 } \mathbb D=\{(\mathbf{\vec x}_1,\tilde y_1),(\mathbf{\vec x}_2,\tilde y_2),\cdots,(\mathbf{\vec x}_N,\tilde y_N)\},\;\mathbf{\vec x}_i \in \mathcal X \subset \mathbb R^{n},\tilde y_i \in \mathcal Y=\{-1,+1\} D={(x 1,y~1),(x 2,y~2),,(x N,y~N)},x iXRn,y~iY={1,+1}
      • 弱学习算法
    • 输出:集成分类器 H ( x ⃗ ) H(\mathbf {\vec x}) H(x )

    • 算法步骤:

      • 初始化训练数据的权值分布 W 1 = ( w 1 , 1 , w 1 , 2 , ⋯   , w 1 , N ) , w 1 , i = 1 N W_1=(w_{1,1},w_{1,2},\cdots,w_{1,N}),w_{1,i}=\frac 1N W1=(w1,1,w1,2,,w1,N),w1,i=N1

      • m = 1 , 2 , ⋯   , M m=1,2,\cdots,M m=1,2,,M

        • 使用具有权值分布 W m W_m Wm的训练数据集学习,根据输入的弱学习算法得到基本分类器: h m ( x ⃗ ) : X → { − 1 , + 1 } h_m(\mathbf {\vec x}):\mathcal X \rightarrow \{-1,+1\} hm(x ):X{1,+1}

        • 计算 h m ( x ⃗ ) h_m(\mathbf {\vec x}) hm(x )在训练数据集上的分类误差率: e m = ∑ i = 1 N w m , i I ( h m ( x ⃗ i ) ≠ y ~ i ) e_m = \sum_{i=1}^{N}w_{m,i}I(h_m(\mathbf{\vec x}_i) \neq \tilde y_i) em=i=1Nwm,iI(hm(x i)̸=y~i)

          它就是所有误分类点的权重之和。其中权重越大的误差分类点,其在误差率中占比越大

        • e m ≥ 1 2 e_m \ge \frac 12 em21,算法终止,构建失败!

        • 计算 h m ( x ⃗ ) h_m(\mathbf {\vec x}) hm(x )的系数: α m = 1 2 log ⁡ 1 − e m e m \alpha_m=\frac 12 \log \frac{1-e_m}{e_m} αm=21logem1em

          该系数表示 h m ( x ⃗ ) h_m(\mathbf {\vec x}) hm(x ) 在集成分类器中的重要性。它是$ e_m$ 的单调减函数,说明误差越小的基本分类器,其重要性越高。

          根据系数大于零要求 e m &lt; 1 2 e_m \lt \frac 12 em<21 。此时 α m &gt; 0 \alpha_m&gt;0 αm>0

        • 更新训练数据集的权值分布: W m + 1 = ( w m + 1 , 1 , w m + 1 , 2 , ⋯ &ThinSpace; , w m + 1 , N ) W_{m+1}=(w_{m+1,1},w_{m+1,2},\cdots,w_{m+1,N}) Wm+1=(wm+1,1,wm+1,2,,wm+1,N)。其中:
          w m + 1 , i = w m , i Z m exp ⁡ ( − α m y ~ i h m ( x ⃗ i ) ) w_{m+1,i}=\frac{w_{m,i}}{Z_m}\exp(-\alpha_m\tilde y_ih_m(\mathbf{\vec x}_i)) wm+1,i=Zmwm,iexp(αmy~ihm(x i))
          Z m = ∑ i = 1 N w m , i exp ⁡ ( − α m y ~ i h m ( x ⃗ i ) ) Z_m=\sum_{i=1}^{N}w_{m,i}\exp(-\alpha_m\tilde y_ih_m(\mathbf{\vec x}_i)) Zm=i=1Nwm,iexp(αmy~ihm(x i))为规范化因子,它使得 $W_{m+1} $成为一个概率分布 ,即保证和为1。

          • y ~ i h m ( x ⃗ i ) \tilde y_ih_m(\mathbf{\vec x}_i) y~ihm(x i)的取值只能为 1 , − 1 1,-1 1,1,如果是正确分类的点,则为1,分类错误的点为-1.具体解释见算法解释2.1.2-1
      • 构建基本分类器的线性组合: f ( x ⃗ ) = ∑ m = 1 M α m h m ( x ⃗ ) , f(\mathbf {\vec x})=\sum_{m=1}^{M}\alpha_mh_m(\mathbf {\vec x}), f(x )=m=1Mαmhm(x )于是得到集成分类器: H ( x ⃗ ) = sign ( ∑ m = 1 M α m h m ( x ⃗ ) ) H(\mathbf {\vec x})=\text{sign}\left(\sum_{m=1}^{M}\alpha_mh_m(\mathbf {\vec x})\right) H(x )=sign(m=1Mαmhm(x ))

  2. 为防止过拟合,AdaBoost 通常会加入正则化项。该正则化项称作步长或者学习率,定义为 $\nu $。

    考虑正则化项之后,模型的更新方式为: f m ( x ⃗ ) = f m − 1 ( x ⃗ ) + ν α m h m ( x ⃗ ) f_m(\mathbf{\vec x}) = f_{m-1}(\mathbf{\vec x})+\nu \alpha_mh_m( \mathbf{\vec x}) fm(x )=fm1(x )+ναmhm(x )

2.1.2 算法解释
  1. AdaBoost 提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。

    这是通过更新训练数据集的权值分布 W m + 1 = ( w m + 1 , 1 , w m + 1 , 2 , ⋯ &ThinSpace; , w m + 1 , N ) W_{m+1}=(w_{m+1,1},w_{m+1,2},\cdots,w_{m+1,N}) Wm+1=(wm+1,1,wm+1,2,,wm+1,N)来实现的。其中:
    w m + 1 , i = w m , i Z m exp ⁡ ( − α m y ~ i h m ( x ⃗ i ) ) Z m = ∑ i = 1 N w m , i exp ⁡ ( − α m y ~ i h m ( x ⃗ i ) ) w_{m+1,i}=\frac{w_{m,i}}{Z_m}\exp(-\alpha_m\tilde y_ih_m(\mathbf{\vec x}_i))\\ Z_m=\sum_{i=1}^{N}w_{m,i}\exp(-\alpha_m\tilde y_ih_m(\mathbf{\vec x}_i)) wm+1,i=Zmwm,iexp(αmy~ihm(x i))Zm=i=1Nwm,iexp(αmy~ihm(x i))

    • 对于正确分类样本, h m ( x ⃗ i ) = y ~ i h_m(\mathbf{\vec x}_i)=\tilde y_i hm(x i)=y~i下一轮权重为: w m + 1 , i = w m , i Z m exp ⁡ ( − α m ) w_{m+1,i}=\frac{w_{m,i}}{Z_m}\exp(-\alpha_m) wm+1,i=Zmwm,iexp(αm)
    • 对于错误分类样本, h m ( x ⃗ i ) ≠ y ~ i h_m(\mathbf{\vec x}_i)\neq \tilde y_i hm(x i)̸=y~i 下一轮权重为: w m + 1 , i = w m , i Z m exp ⁡ ( α m ) w_{m+1,i}=\frac{w_{m,i}}{Z_m}\exp(\alpha_m) wm+1,i=Zmwm,iexp(αm)

    两者比较,误分类样本的权重是正确分类样本的权重的 exp ⁡ ( 2 α m ) = e m 1 − e m \exp(2\alpha_m)=\frac{e_m}{1-e_m} exp(2αm)=1emem倍。于是误分类样本在下一轮学习中权重更大。

  2. 集成分类器 H ( x ⃗ ) = sign ( ∑ m = 1 M α m h m ( x ⃗ ) ) H(\mathbf {\vec x})=\text{sign}\left(\sum_{m=1}^{M}\alpha_mh_m(\mathbf {\vec x})\right) H(x )=sign(m=1Mαmhm(x ))结合 M 个基本分类器的方式为加权表决。

    • 系数 α m \alpha_m αm 表示了基本分类器 h m ( x ⃗ ) h_m(\mathbf {\vec x}) hm(x ) 的重要性。其中:
      α m = 1 2 log ⁡ 1 − e m e m e m = ∑ i = 1 N w m , i I ( h m ( x ⃗ i ) ≠ y ~ i ) 令 ∂ Z m ∂ α m = ∑ i = 1 N − w m i y i h m ( x ⃗ i ) exp ⁡ ( − α m y i h m ( x ⃗ i ) ) = 0 即 − e x p ( − α m ) ( 1 − e m ) − ( − e x p ( α m ) e m ) = 0 求 得 α m \alpha_m=\frac 12 \log \frac{1-e_m}{e_m}\\ e_m = \sum_{i=1}^{N}w_{m,i}I(h_m(\mathbf{\vec x}_i) \neq \tilde y_i)\\ 令\frac{\partial Z_{m}}{\partial \alpha_{m}}=\sum_{i=1}^{N}-w_{m i} y_{i} h_{m}\left(\mathbf{\vec x}_{i}\right) \exp \left(-\alpha_{m} y_{i} h_{m}\left(\mathbf{\vec x}_{i}\right)\right)=0\\ 即-exp(-\alpha_{m})(1-e_m)-(-exp(\alpha_{m})e_m)=0求得\alpha_m αm=21logem1emem=i=1Nwm,iI(hm(x i)̸=y~i)αmZm=i=1Nwmiyihm(x i)exp(αmyihm(x i))=0exp(αm)(1em)(exp(αm)em)=0αm

    • 由于 α m \alpha_m αm 是分类误差率 $e_m $的单调递减函数,因此:

      • AdaBoost 加大分类误差率较小的弱分类器的权值,使得它在表决中起较大作用。
      • AdaBoost 减小分类误差率较大的弱分类器的权值,使得它在表决中起较小的作用。
2.1.3 误差分析
  1. 定理一:AdaBoost算法集成分类器的训练误差上界为:
    1 N ∑ i = 1 N I ( H ( x ⃗ i ) ≠ y ~ i ) ≤ 1 N ∑ i = 1 N exp ⁡ ( − y ~ i f ( x ⃗ i ) ) = ∏ m = 1 M Z m Z m = ∑ i = 1 N w m , i exp ⁡ ( − α m y ~ i h m ( x ⃗ i ) ) \frac 1N \sum_{i=1}^{N}I(H(\mathbf{\vec x}_i) \neq \tilde y_i) \le \frac 1N \sum_{i=1}^{N}\exp(-\tilde y_if(\mathbf{\vec x}_i))=\prod_{m=1}^{M}Z_m\\ Z_m=\sum_{i=1}^{N}w_{m,i}\exp(-\alpha_m\tilde y_ih_m(\mathbf{\vec x}_i)) N1i=1NI(H(x i)̸=y~i)N1i=1Nexp(y~if(x i))=m=1MZmZm=i=1Nwm,iexp(αmy~ihm(x i))

    1 N ∑ i e x p ( − y i f ( x i ) ) = 1 N ∑ i e x p ( − ∑ m = 1 M α m y i G m ( x i ) ) 由 于 w 1 i = 1 N , 且 将 e x p 中 的 求 和 写 成 连 乘 的 形 式 = ∑ i w 1 i ∏ m = 1 M e x p ( − α m y i G m ( x i ) ) = ∑ i [ w 1 i e x p ( − α 1 y i G 1 ( x i ) ) ] ∏ m = 2 M e x p ( − α m y i G m ( x i ) ) 由 于 w m + 1 , i = w m , i Z m exp ⁡ ( − α m y ~ i h m ( x ⃗ i ) ) 可 得 w m + 1 , i Z m = w m , i exp ⁡ ( − α m y ~ i h m ( x ⃗ i ) ) = ∑ i w 2 i Z 1 ∏ m = 2 M e x p ( − α m y i G m ( x i ) ) = Z 1 ∑ i w 2 i ∏ m = 2 M e x p ( − α m y i G m ( x i ) ) = Z 1 Z 2 ∑ i w 3 i ∏ m = 3 M e x p ( − α m y i G m ( x i ) ) = . . . = Z 1 Z 2 . . . Z M − 1 ∑ i w M i e x p ( − α m y i G m ( x i ) ) = ∏ m = 1 M Z m \frac{1}{N} \sum_i exp(-y_i f(x_i)) \\ = \frac{1}{N} \sum_i exp(-\sum_{m=1}^M \alpha_m y_i G_m(x_i))\\ 由于w_{1i}=\frac{1}{N},且将exp中的求和写成连乘的形式\\ = \sum_i w_{1i} \prod_{m=1}^M exp(-\alpha_m y_i G_m(x_i)) \\ =\sum_i [w_{1i}exp(-\alpha_1 y_i G_1(x_i)) ]\prod_{m=2}^M exp(-\alpha_m y_i G_m(x_i)) \\ 由于w_{m+1,i}=\frac{w_{m,i}}{Z_m}\exp(-\alpha_m\tilde y_ih_m(\mathbf{\vec x}_i))\\ 可得w_{m+1,i}Z_m=w_{m,i}\exp(-\alpha_m\tilde y_ih_m(\mathbf{\vec x}_i))\\ = \sum_i w_{2i}Z_1 \prod_{m=2}^M exp(-\alpha_m y_i G_m(x_i)) \\ = Z_1 \sum_i w_{2i} \prod_{m=2}^M exp(-\alpha_m y_i G_m(x_i)) \\ = Z_1 Z_2 \sum_i w_{3i} \prod_{m=3}^M exp(-\alpha_m y_i G_m(x_i)) \\ = ... \\ = Z_1 Z_2 ... Z_{M-1} \sum_i w_{Mi} exp(-\alpha_m y_i G_m(x_i)) \\ = \prod_{m=1}^M Z_m N1iexp(yif(xi))=N1iexp(m=1MαmyiGm(xi))w1i=N1,exp=iw1im=1Mexp(αmyiGm(xi))=i[w1iexp(α1yiG1(xi))]m=2Mexp(αmyiGm(xi))wm+1,i=Zmwm,iexp(αmy~ihm(x i))wm+1,iZm=wm,iexp(αmy~ihm(x i))=iw2iZ1m=2Mexp(αmyiGm(xi))=Z1iw2im=2Mexp(αmyiGm(xi))=Z1Z2iw3im=3Mexp(αmyiGm(xi))=...=Z1Z2...ZM1iwMiexp(αmyiGm(xi))=m=1MZm

    这一定理说明:可以在每一轮选取适当的$ h_m$ 使得 Z m Z_m Zm 最小,从而使得训练误差下降最快。

  2. 定理二:二类分类 AdaBoost 的训练误差界:
    ∏ m = 1 M Z m = ∏ m = 1 M [ 2 e m ( 1 − e m ) &ThickSpace; ] = ∏ m = 1 M ( 1 − 4 γ m 2 ) ≤ exp ⁡ ( − 2 ∑ m = 1 M γ m 2 ) \prod_{m=1}^{M}Z_m=\prod_{m=1}^{M}\left[2\sqrt{e_m(1-e_m)} \;\right]=\prod_{m=1}^{M}\sqrt{(1-4\gamma_m^{2})} \le \exp(-2\sum_{m=1}^{M}\gamma_m^{2}) m=1MZm=m=1M[2em(1em) ]=m=1M(14γm2) exp(2m=1Mγm2)
    其中 γ m = 1 2 − e m \gamma_m=\frac 12-e_m γm=21em

Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) = ∑ y i = G m ( x i ) w m i e − α m + ∑ y i ≠ G m ( x i ) w m i e α m = ( 1 − e m ) e − α m + e m e α m 代 入 α m = 1 2 log ⁡ 1 − e m e m = 2 e m ( 1 − e m ) = 1 − 4 γ m 2 Z_m = \sum_{i=1}^N w_{mi} exp(-\alpha_m y_i G_m(x_i) \\ = \sum_{y_i = G_m(x_i)} w_{mi} e^{-\alpha_m} + \sum_{y_i \neq G_m(x_i)} w_{mi} e^{\alpha_m} \\ = (1-e_m)e^{-\alpha_m} + e_m e^{\alpha_m}\\ 代入 \alpha_m=\frac 12 \log \frac{1-e_m}{e_m}\\ =2 \sqrt{e_m (1 - e_m)} = \sqrt{1 - 4\gamma_m^2 } Zm=i=1Nwmiexp(αmyiGm(xi)=yi=Gm(xi)wmieαm+yi̸=Gm(xi)wmieαm=(1em)eαm+emeαmαm=21logem1em=2em(1em) =14γm2

可 以 证 明 , 当 e m &lt; 0.5 时 , Z m = 2 e m ( 1 − e m ) &lt; 1 可以证明,当e_m&lt;0.5时,Z_m=2 \sqrt{e_m (1 - e_m)}&lt;1 em<0.5,Zm=2em(1em) <1

至于不等式 e x p ( − 2 ∑ m = 1 M γ m 2 ) ⩾ ∏ m = 1 M 1 − 4 γ m 2 exp(-2\sum_{m=1}^M \gamma_m^2) \geqslant\prod_{m=1}^M \sqrt{1-4\gamma_m^2} exp(2m=1Mγm2)m=1M14γm2 可由 ( e − 2 x 2 ) 2 (e^{-2x^2})^2 (e2x2)2 x = 0 x=0 x=0的泰勒展开得到 ( e − 2 x 2 ) 2 ⩾ 1 − 4 x 2 (e^{-2x^2})^2 \geqslant 1 - 4x^2 (e2x2)214x2进而推出。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值