由前向分步算法可以推导出 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=1∑Mα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 m−1 轮迭代前向分步算法已经得到 f m − 1 ( x ) f_{m-1}(x) fm−1(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) fm−1(x)=fm−2(x)+αm−1Gm−1(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)+⋯+αm−1Gm−1(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)=fm−1(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=1∑Nexp[−yi(fm−1(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=1∑Nw~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(−yifm−1(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} fm−1,随得每一轮迭代而发生改变。
现在证明使(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=1∑NwmiI(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(−yifm−1(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=1∑Nw~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=1∑Nw~miI(yi=G(xi))+e−αi=1∑Nw~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∗=21logem1−em
其中, 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~mi∑i=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=1∑NwmiI(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)=fm−1(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(−yifm−1(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) 步的样本权值的更新只相差规范化因子,因而等价。