机器学习笔记:AdaBoost 公式推导

AdaBoost 是集成算法中 Boosting 家族的一种,它的特点是分类器串行。首先要知道加法模型和指数损失函数。

加法模型

f(x) = \sum\limits_{m=1}^{M}\alpha_mG_{m}(x)

加法模型是一个加和模型,每一轮训练一个分类器 G_{m}(x)​,并且基于这个分类器的误差,得到这个分类器的权重 \alpha_m​

指数损失函数

L(y,f(x)) = \exp[-yf(x)]

对于分类模型而言,上述损失函数,在分类正确的时候,指数部分为负数;在分类错误的时候,指数部分为正数,符合损失函数的意义。

公式推导

1、由加法模型的定义:
f(x) = \sum\limits_{m=1}^{M}\alpha_mG_{m}(x)
得到迭代公式:
f_m(x) = f_{m-1}(x) + \alpha_mG_{m}(x)
这里 m > 1。此时应该认为函数 f_{m-1}(x) 是已知的,每一轮迭代求的是分类器 G_{m}(x) 和这个分类器的权重 \alpha_m

2、将 f_m(x) = f_{m-1}(x) + \alpha_mG_{m}(x) 代入损失函数得:
L(y,f(x)) = \sum_{i=1}^{N}\exp[-y_i(f_{m-1}(x) + \alpha_mG_{m}(x))]
把指数加法因子展开,变成指数的乘积(想一下具体的例子:a^{5+3} = a^5 \cdot a^3)得到:
L(y,f(x)) = \sum_{i=1}^{N}[\exp[-y_i(f_{m-1}(x)][\exp(-y_i\alpha_mG_{m}(x))]]

3、由于 y_if_{m-1}(x) 已知,可以令 \overline w_{mi} =\exp[-y_if_{m-1}(x_i)],于是
L(y,f(x)) = \sum_{i=1}^{N}\overline w_{mi} \exp(-y_i\alpha_mG_{m}(x))
于是分类器 G_{m}(x)​ 和这个分类器的权重 \alpha_m​ 可以表示成:
(\alpha_m^{*},G_{m}^{*}(x)) = \underbrace{arg\;min\;}_{\alpha,G} \sum_{i=1}^{N}\overline w_{mi} \exp(-y_i\alpha_mG_{m}(x))

4、先求 G_{m}^{*}(x),看上面的式子,分类器的权重 \alpha_m 可以认为是一个确定的数,G_{m}^{*}(x) 是使得分错的(带权重的)样本里损失函数最小的那个,可以写成:
G_{m}^*(x) = \underbrace{arg\;min\;}_{G} \sum_{i=1}^{N}\overline w_{mi} I(y_i \neq G(x_i))
注意:重点理解上面两个式子的等价性,这一步相当于针对不同权重的样本训练分类器

5、得到 G_{m}^{*}(x) 以后,再求 \alpha_m^*。还是看损失函数,可以写成:
\begin {aligned} L(y,f(x)) &= \sum_{i=1}^{N}\overline w_{mi} \exp(-y_i\alpha_mG_{m}(x)) \\ &=\sum_{y_i = G_m(x_i)}\overline w_{mi} e^{-\alpha} + \sum_{y_i \neq G_m(x_i)}\overline w_{mi} e^{\alpha} \\ &=\sum_{y_i = G_m(x_i)}\overline w_{mi} e^{-\alpha} + \sum_{y_i \neq G_m(x_i)}\overline w_{mi} e^{-\alpha} - \sum_{y_i \neq G_m(x_i)}\overline w_{mi} e^{-\alpha} + \sum_{y_i \neq G_m(x_i)}\overline w_{mi} e^{\alpha} \\ &= e^{-\alpha}\sum_{i=1}^{N}\overline w_{mi} + (e^{\alpha} - e^{-\alpha})\sum_{y_i \neq G_m(x_i)}\overline w_{mi} \\ &= e^{-\alpha}\sum_{i=1}^{N}\overline w_{mi} + (e^{\alpha} - e^{-\alpha})\sum_{i=1}^N \overline w_{mi} I(y_i \neq G_m(x_i)) \end{aligned}
把上式对 \alpha 求导,再令导函数为 0,得:
-e^{-\alpha}\sum_{i=1}^{N}\overline w_{mi} + (e^{\alpha} + e^{-\alpha})\sum_{i=1}^N \overline w_{mi} I(y_i \neq G_m(x_i)) = 0
上式两边同时除以 \sum_{i=1}^{N}\overline w_{mi}​,得:
-e^{-\alpha} + (e^{\alpha} + e^{-\alpha})\cfrac{\sum_{i=1}^N \overline w_{mi} I(y_i \neq G_m(x_i))}{\sum_{i=1}^{N}\overline w_{mi}} = 0
\cfrac{\sum_{i=1}^N \overline w_{mi} I(y_i \neq G_m(x_i))}{\sum_{i=1}^{N}\overline w_{mi}} = e_m​,则有:

\begin {aligned} -e^{-\alpha} + (e^{\alpha} + e^{-\alpha})e_m &= 0 \\ (e^{\alpha} + e^{-\alpha}) e_m &= e^{-\alpha} \\ (e^{2\alpha} + 1)e_m &= 1 \\ e^{2\alpha} + 1 &= \cfrac{1}{e_m} \\ e^{2\alpha} &= \cfrac{1}{e_m} -1 = \cfrac{1 - e_m}{e_m} \\ 2\alpha &= \log\cfrac{1 - e_m}{e_m} \\ \alpha &= \cfrac{1}{2}\log\cfrac{1 - e_m}{e_m} \end {aligned}

于是得到使得损失函数最小的
\alpha_m^* = \cfrac{1}{2}\log\cfrac{1 - e_m}{e_m}
这里
e_m =\cfrac{\sum_{i=1}^N \overline w_{mi} I(y_i \neq G_m(x_i))}{\sum_{i=1}^{N}\overline w_{mi}} =\sum_{i=1}^N w_{mi} I(y_i \neq G_m(x_i))

权重更新公式

那么权重如何更新呢?
已知:
f_m(x) = f_{m-1}(x) + \alpha_mG_{m}(x)
和我们之前的定义:
\overline w_{mi} =\exp[-y_if_{m-1}(x_i)]
于是就有:
\begin {aligned} \overline w_{m+1,i} &=\exp[-y_if_{m}(x_i)] \\ &=\exp[-y_i[f_{m-1}(x_i) + \alpha_mG_{m}(x_i)]]\\ &=\exp[-y_if_{m-1}(x_i)]\exp[-y_i\alpha_mG_{m}(x_i)]\\ &=\overline w_{m,i}\exp[-y_i\alpha_mG_{m}(x_i)] \end {aligned}

(本节完)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容