本文是将文章《8.3.2 前向分步算法与 AdaBoost》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。
α m ∗ = 1 2 log 1 − e m e m \alpha_m^* = \frac{1}{2} \log \frac{1 - e_m}{e_m} αm∗=21logem1−em
我们从公式 ( 8.22 ) (8.22) (8.22) 开始,详细列出将 G m ∗ ( x ) G_m^*(x) Gm∗(x) 代入后并一步步化简的过程。
公式 ( 8.22 ) (8.22) (8.22)
首先,公式 ( 8.22 ) (8.22) (8.22) 的初始形式为:
∑ i = 1 N w m i exp ( − y i α G ( x i ) ) = ( e α − e − α ) ∑ i = 1 N w m i I ( y i ≠ G ( x i ) ) + e − α ∑ i = 1 N w m i \sum_{i=1}^N w_{mi} \exp(-y_i \alpha G(x_i)) = (e^{\alpha} - e^{-\alpha}) \sum_{i=1}^N w_{mi} I(y_i \neq G(x_i)) + e^{-\alpha} \sum_{i=1}^N w_{mi} i=1∑Nwmiexp(−yiαG(xi))=(eα−e−α)i=1∑NwmiI(yi=G(xi))+e−αi=1∑Nwmi
其中:
- G ( x ) G(x) G(x) 是一个弱分类器。
- w m i w_{mi} wmi 是样本 x i x_i xi 的权重。
- I ( y i ≠ G ( x i ) ) I(y_i \neq G(x_i)) I(yi=G(xi)) 是指示函数,当 y i ≠ G ( x i ) y_i \neq G(x_i) yi=G(xi) 时取 1,否则取 0。
1. 将 G m ∗ ( x ) G_m^*(x) Gm∗(x) 代入公式 ( 8.22 ) (8.22) (8.22)
已知 G m ∗ ( x ) G_m^*(x) Gm∗(x) 是在第 m m m 轮使分类误差最小的弱分类器,因此将 G ( x ) G(x) G(x) 替换为 G m ∗ ( x ) G_m^*(x) Gm∗(x),公式变为:
∑ i = 1 N w m i exp ( − y i α G m ∗ ( x i ) ) = ( e α − e − α ) ∑ i = 1 N w m i I ( y i ≠ G m ∗ ( x i ) ) + e − α ∑ i = 1 N w m i \sum_{i=1}^N w_{mi} \exp(-y_i \alpha G_m^*(x_i)) = (e^{\alpha} - e^{-\alpha}) \sum_{i=1}^N w_{mi} I(y_i \neq G_m^*(x_i)) + e^{-\alpha} \sum_{i=1}^N w_{mi} i=1∑Nwmiexp(−yiαGm∗(xi))=(eα−e−α)i=1∑NwmiI(yi=Gm∗(xi))+e−αi=1∑Nwmi
接下来我们简化公式中的各项。
2. 定义分类误差率 e m e_m em
定义当前弱分类器 G m ∗ ( x ) G_m^*(x) Gm∗(x) 的加权分类误差率为:
e m = ∑ i = 1 N w m i I ( y i ≠ G m ∗ ( x i ) ) e_m = \sum_{i=1}^N w_{mi} I(y_i \neq G_m^*(x_i)) em=i=1∑NwmiI(yi=Gm∗(xi))
在这个定义下,公式可以重写为:
∑ i = 1 N w m i exp ( − y i α G m ∗ ( x i ) ) = ( e α − e − α ) e m + e − α ∑ i = 1 N w m i \sum_{i=1}^N w_{mi} \exp(-y_i \alpha G_m^*(x_i)) = (e^{\alpha} - e^{-\alpha}) e_m + e^{-\alpha} \sum_{i=1}^N w_{mi} i=1∑Nwmiexp(−yiαGm∗(xi))=(eα−e−α)em+e−αi=1∑Nwmi
3. 求解总权重和
权重 w m i w_{mi} wmi 是在上一轮(即第 m − 1 m-1 m−1 轮)归一化过的权重,因此满足:
∑ i = 1 N w m i = 1 \sum_{i=1}^N w_{mi} = 1 i=1∑Nwmi=1
于是公式可以进一步简化为:
∑ i = 1 N w m i exp ( − y i α G m ∗ ( x i ) ) = ( e α − e − α ) e m + e − α \sum_{i=1}^N w_{mi} \exp(-y_i \alpha G_m^*(x_i)) = (e^{\alpha} - e^{-\alpha}) e_m + e^{-\alpha} i=1∑Nwmiexp(−yiαGm∗(xi))=(eα−e−α)em+e−α
4. 对 α \alpha α 求导,找到最优 α m \alpha_m αm
我们希望找到一个最优的 α \alpha α 值,使得上式的损失最小。为此,对 α \alpha α 求导并令其等于 0。
将公式记为:
f ( α ) = ( e α − e − α ) e m + e − α f(\alpha) = (e^{\alpha} - e^{-\alpha}) e_m + e^{-\alpha} f(α)=(eα−e−α)em+e−α
对 f ( α ) f(\alpha) f(α) 关于 α \alpha α 求导,得到:
f ′ ( α ) = e α e m + e − α e m − e − α f'(\alpha) = e^{\alpha} e_m + e^{-\alpha} e_m - e^{-\alpha} f′(α)=eαem+e−αem−e−α
令导数等于 0:
e α e m + e − α e m − e − α = 0 e^{\alpha} e_m + e^{-\alpha} e_m - e^{-\alpha} = 0 eαem+e−αem−e−α=0
移项得到:
e α e m = e − α ( 1 − e m ) e^{\alpha} e_m = e^{-\alpha} (1 - e_m) eαem=e−α(1−em)
两边同时乘以 e α e^{\alpha} eα 得:
e 2 α e m = 1 − e m e^{2\alpha} e_m = 1 - e_m e2αem=1−em
解出 e α e^{\alpha} eα:
e α = 1 − e m e m e^{\alpha} = \sqrt{\frac{1 - e_m}{e_m}} eα=em1−em
取对数,得到:
α m = 1 2 log 1 − e m e m \alpha_m = \frac{1}{2} \log \frac{1 - e_m}{e_m} αm=21logem1−em
最终结果
我们得到了最优的 α m \alpha_m αm 值为:
α m = 1 2 log 1 − e m e m \alpha_m = \frac{1}{2} \log \frac{1 - e_m}{e_m} αm=21logem1−em
这个结果表明了在给定分类器 G m ∗ ( x ) G_m^*(x) Gm∗(x) 的情况下,权重 α m \alpha_m αm 的计算公式。