8.3.2 前向分步算法与 AdaBoost

由前向分步算法可以推导出 AdaBoost,用定理叙述这一关系。
  定理 8.3  AdaBoost 算法是前向分步加法算法的特例。 这时,模型是由基本分类器组成的加法模型,损失函数是指数函数。
  证明 前向分步算法学习的正加法模型,当基函数为基本分类器时,该加法模型等价于 AdaBoost 的最终分类器:

f ( x ) = ∑ m = 1 M α m G m ( x ) (8.19) f(x) = \sum_{m=1}^M \alpha_m G_m(x) \tag{8.19} f(x)=m=1MαmGm(x)(8.19)

由基本分类器 G m ( x ) G_m(x) Gm(x) 及其系数 α m \alpha_m αm 组成, m = 1 , 2 , ⋯   , M m = 1, 2, \cdots, M m=1,2,,M。前向分步算法逐一学习基函数,这一过程与 AdaBoost 算法逐一学习基本分类器的过程一致。下面证明前向分步算法的损失函数是指数损失函数(exponential loss function)

L ( y , f ( x ) ) = exp ⁡ ( − y f ( x ) ) L(y, f(x)) = \exp(-y f(x)) L(y,f(x))=exp(yf(x))

时,其学习的具体操作等价于 AdaBoost 算法学习的具体操作。

假设经过 m − 1 m - 1 m1 轮迭代前向分步算法已经得到 f m − 1 ( x ) f_{m-1}(x) fm1(x)

f m − 1 ( x ) = f m − 2 ( x ) + α m − 1 G m − 1 ( x ) f_{m-1}(x) = f_{m-2}(x) + \alpha_{m-1} G_{m-1}(x) fm1(x)=fm2(x)+αm1Gm1(x)

= α 1 G 1 ( x ) + ⋯ + α m − 1 G m − 1 ( x ) = \alpha_1 G_1(x) + \cdots + \alpha_{m-1} G_{m-1}(x) =α1G1(x)++αm1Gm1(x)

在第 m m m 轮选择得到 α m \alpha_m αm G m ( x ) G_m(x) Gm(x) f m ( x ) f_m(x) fm(x)

f m ( x ) = f m − 1 ( x ) + α m G m ( x ) f_m(x) = f_{m-1}(x) + \alpha_m G_m(x) fm(x)=fm1(x)+αmGm(x)

目标是使前向分步算法得到的 α m \alpha_m αm G m ( x ) G_m(x) Gm(x) 使 f m ( x ) f_m(x) fm(x) 在训练数据集 T T T 上的指数损失最小,即

( α m , G m ( x ) ) = arg ⁡ min ⁡ α , G ∑ i = 1 N exp ⁡ [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] (8.20) (\alpha_m, G_m(x)) = \arg \min_{\alpha, G} \sum_{i=1}^N \exp \left[ -y_i \left( f_{m-1}(x_i) + \alpha G(x_i) \right) \right] \tag{8.20} (αm,Gm(x))=argα,Gmini=1Nexp[yi(fm1(xi)+αG(xi))](8.20)

式(8.20)可以表示为

( α m , G m ( x ) ) = arg ⁡ min ⁡ α , G ∑ i = 1 N w ~ m i exp ⁡ ( − y i α G ( x i ) ) (8.21) (\alpha_m, G_m(x)) = \arg \min_{\alpha, G} \sum_{i=1}^N \tilde{w}_{mi} \exp(-y_i \alpha G(x_i)) \tag{8.21} (αm,Gm(x))=argα,Gmini=1Nw~miexp(yiαG(xi))(8.21)

其中, w ~ m i = exp ⁡ ( − y i f m − 1 ( x i ) ) \tilde{w}_{mi} = \exp(-y_i f_{m-1}(x_i)) w~mi=exp(yifm1(xi)),因为 w ~ m i \tilde{w}_{mi} w~mi 已不依赖于 G G G,所以与最小化无关。 w ~ m i \tilde{w}_{mi} w~mi 依赖于 f m − 1 f_{m-1} fm1,随得每一轮迭代而发生改变。
  现在证明使(8.21)达到最小的 α m ∗ \alpha^*_m αm G m ∗ ( x ) G^*_m(x) Gm(x) 就是 AdaBoost 算法所得得到的 α m \alpha_m αm G m ( x ) G_m(x) Gm(x)。求解式(8.21)可分两步:
  首先,求 G m ∗ ( x ) G^*_m(x) Gm(x) 对任意 α > 0 \alpha > 0 α>0,使式(8.21)最小的 G ( x ) G(x) G(x) 由下式得到:

G m ∗ ( x ) = arg ⁡ min ⁡ G ∑ i = 1 N w m i I ( y i ≠ G ( x i ) ) G^*_m(x) = \arg \min_G \sum_{i=1}^N w_{mi} I(y_i \ne G(x_i)) Gm(x)=argGmini=1NwmiI(yi=G(xi))

其中, w ~ m i = exp ⁡ ( − y i f m − 1 ( x i ) ) \tilde{w}_{mi} = \exp(-y_i f_{m-1}(x_i)) w~mi=exp(yifm1(xi))
  此处分类器 G m ∗ ( x ) G^*_m(x) Gm(x) 即为 AdaBoost 算法的基本分类器 G m ( x ) G_m(x) Gm(x),因为它是使第 m m m 轮加权训练数据集分类误差最小的基本分类器。
  然后,求 α m ∗ \alpha_m^* αm 参式(8.11),式(8.21)中

∑ i = 1 N w ~ m i exp ⁡ ( − y i α G ( x i ) ) = ∑ y i = G m ( x i ) w ~ m i e − α + ∑ y i ≠ G m ( x i ) w ~ m i e α \sum_{i=1}^N \tilde{w}_{mi} \exp(-y_i \alpha G(x_i)) = \sum_{y_i = G_m(x_i)} \tilde{w}_{mi} e^{-\alpha} + \sum_{y_i \ne G_m(x_i)} \tilde{w}_{mi} e^\alpha i=1Nw~miexp(yiαG(xi))=yi=Gm(xi)w~mieα+yi=Gm(xi)w~mieα

= ( e α − e − α ) ∑ i = 1 N w ~ m i I ( y i ≠ G ( x i ) ) + e − α ∑ i = 1 N w ~ m i (8.22) = (e^\alpha - e^{-\alpha}) \sum_{i=1}^N \tilde{w}_{mi} I(y_i \ne G(x_i)) + e^{-\alpha} \sum_{i=1}^N \tilde{w}_{mi} \tag{8.22} =(eαeα)i=1Nw~miI(yi=G(xi))+eαi=1Nw~mi(8.22)

将它求得的 G m ∗ ( x ) G^*_m(x) Gm(x) 代入式(8.22),对 α \alpha α 求导并使导数数为0,即得到使式(8.21)最小的 α \alpha α

α m ∗ = 1 2 log ⁡ 1 − e m e m \alpha_m^* = \frac{1}{2} \log \frac{1 - e_m}{e_m} αm=21logem1em

其中, e m e_m em 是分类误差率:

e m = ∑ i = 1 N w ~ m i I ( y i ≠ G m ( x i ) ) ∑ i = 1 N w ~ m i e_m = \frac{\sum_{i=1}^N \tilde{w}_{mi} I (y_i \ne G_m(x_i))}{\sum_{i=1}^N \tilde{w}_{mi}} em=i=1Nw~mii=1Nw~miI(yi=Gm(xi))

= ∑ i = 1 N w m i I ( y i ≠ G m ( x i ) ) (8.23) = \sum_{i=1}^N w_{mi} I(y_i \ne G_m(x_i)) \tag{8.23} =i=1NwmiI(yi=Gm(xi))(8.23)

这里的 α m ∗ \alpha_m^* αm 与 AdaBoost 算法第 2(c) 步的 α m \alpha_m αm 完全一致。
  最后来看每一轮样本权值的更新。由

f m ( x ) = f m − 1 ( x ) + α m G m ( x ) f_m(x) = f_{m-1}(x) + \alpha_m G_m(x) fm(x)=fm1(x)+αmGm(x)

以及 w ~ m i = exp ⁡ ( − y i f m − 1 ( x i ) ) \tilde{w}_{mi} = \exp(-y_i f_{m-1}(x_i)) w~mi=exp(yifm1(xi)),可得:

w ~ m + 1 , i = w ~ m , i exp ⁡ ( − y i α m G m ( x ) ) \tilde{w}_{m+1, i} = \tilde{w}_{m,i} \exp(-y_i \alpha_m G_m(x)) w~m+1,i=w~m,iexp(yiαmGm(x))

这与 AdaBoost 算法第 2(d) 步的样本权值的更新只相差规范化因子,因而等价。


公式8.22简化过程
最小α公式如何通过简化得到的

猜你喜欢

转载自blog.csdn.net/u013172930/article/details/143442383