根据Adaboost算法更新权重的原理我们知道想要在下一轮训练中使误分类的样本的权重增加,每一轮训练的错误率都必须小于0.5,包括初始化分类器时也是如此。初始化一般都是随机初始化,对于二分类任务,每个样本都有0.5的概率被预测正确,要达到0.5以上的正确率还是比较容易的,但是对于多分类问题就不一样了,在多分类问题中如果有 K K K个不同的类别,那么随机猜测只有 1 / K 1/K 1/K 的概率预测正确,因此若直接将Adaboost算法应用于多类分类问题往往不能得到令人满意的结果。针对这个问题,Zhu Ji等人在2009年提出了SAMME及SAMME.R算法,这也是sklearn中用Adaboost做多类分类问题时采用的算法。
首先我们约定以下符号用法:
在传统的 Adaboost 算法中样本的标签是数值,表示它所属的类别,模型的输出同样也是数值;而在这个算法中两者都被推广为 1 × K 1\times K 1×K 维的向量,即任意一个样本可表示为 ( x i , y i ) (\textbf{x}_i, \textbf{y}_i) (xi,yi),其中 x i \textbf{x}_i xi 是样本的特征向量, y i \textbf{y}_i yi 是样本的标签向量, y i = ( y i 1 , y i 2 , . . . , y i K ) \textbf{y}_i = (y_{i1}, y_{i2}, ..., y_{iK}) yi=(yi1,yi2,...,yiK),其分量定义如下:
y i k = { 1 , 如 果 x i 属 于 第 k 类 − 1 K − 1 , 如 果 x i 不 属 于 第 k 类 y_{ik} = \begin{cases}1, & 如果x_{i} 属于第 k 类\\ -\frac{1}{K-1}, & 如果x_{i} 不属于第 k 类\end{cases} yik={1,−K−11,如果xi属于第k类如果xi不属于第k类
例如,假设训练集第一个样本 ( x 1 , y 1 ) (\textbf{x}_1, \textbf{y}_1) (x1,y1) 属于第一类,那么 y 1 = ( 1 , − 1 K − 1 , − 1 K − 1 , . . . , − 1 K − 1 ) \textbf{y}_1=(1, -\frac{1}{K-1}, -\frac{1}{K-1}, ..., -\frac{1}{K-1}) y1=(1,−K−11,−K−11,...,−K−11)
在这个算法中分类器依然采用加法模型,我们将训练好的分类器记为 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x),那么它可以写成如下形式:
f m ( x ) = ∑ i m β i g i ( x ) \textbf{f}_m(\textbf{x})=\sum_i^m\beta_i\textbf{g}_i(\textbf{x}) fm(x)=i∑mβigi(x)
其中 g i ( x ) \textbf{g}_i(\textbf{x}) gi(x) 是基分类器(弱分类器);它的输出也是向量:
f m ( x ) = ( f m 1 ( x ) , f m 2 ( x ) , . . . , f m K ( x ) ) \textbf{f}_m(\textbf{x})=(f_{m1}(\textbf{x}), f_{m2}(\textbf{x}), ..., f_{mK}(\textbf{x})) fm(x)=(fm1(x),fm2(x),...,fmK(x))
为了保证求解得到的 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x) 唯一,作者给它加上了一个对称约束条件:
f m 1 ( x ) + f m 2 ( x ) + . . . + f m K ( x ) = 0 f_{m1}(\textbf{x}) + f_{m2}(\textbf{x}) + ... + f_{mK}(\textbf{x}) = 0 fm1(x)+fm2(x)+...+fmK(x)=0
即限制 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x) 各分量之和为0;这里的思想和电磁学中为了使给定边界条件下求得的电磁场唯一而引入规范的概念是一样的。由于 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x) 可表示为 m m m 个基分类器之和, 而 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x) 的输出是向量,那么 g ( x ) \textbf{g}(\textbf{x}) g(x) 的输出也应该是向量:
g ( x ) = ( g 1 ( x ) , g 2 ( x ) , . . . , g K ( x ) ) \textbf{g}(\textbf{x})=(g_{1}(\textbf{x}), g_{2}(\textbf{x}), ..., g_{K}(\textbf{x})) g(x)=(g1(x),g2(x),...,gK(x))
并且我们可以强制 g ( x ) \textbf{g}(\textbf{x}) g(x) 也满足对称约束条件,此时我们注意到如果 g ( x ) \textbf{g}(\textbf{x}) g(x) 满足对称约束条件,那么由加法模型 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x) 自然也满足对称约束条件,于是对 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x) 的约束可以转为对 g ( x ) \textbf{g}(\textbf{x}) g(x) 的约束。进一步我们注意到 g ( x ) \textbf{g}(\textbf{x}) g(x) 作为一个分类器,可以看成一个函数,该函数的定义域为样本的特征空间,值域为标签构成的集合,即:
g ( x ) : R ∣ f e a t u r e ∣ → Y \textbf{g}(\textbf{x}): R^{|feature|}\rightarrow Y g(x):R∣feature∣→Y
Y = { ( 1 , − 1 K − 1 , − 1 K − 1 , . . . , − 1 K − 1 ) , ( − 1 K − 1 , 1 , − 1 K − 1 , . . . , − 1 K − 1 ) , . . . , ( − 1 K − 1 , − 1 K − 1 , − 1 K − 1 , . . . , 1 ) } Y=\{(1, -\frac{1}{K-1}, -\frac{1}{K-1}, ..., -\frac{1}{K-1}), (-\frac{1}{K-1}, 1, -\frac{1}{K-1}, ..., -\frac{1}{K-1}), ..., (-\frac{1}{K-1}, -\frac{1}{K-1}, -\frac{1}{K-1}, ..., 1)\} Y={(1,−K−11,−K−11,...,−K−11),(−K−11,1,−K−11,...,−K−11),...,(−K−11,−K−11,−K−11,...,1)}
其中 ∣ f e a t u r e ∣ |feature| ∣feature∣ 表示特征数量, ( 1 , − 1 K − 1 , − 1 K − 1 , . . . , − 1 K − 1 ) (1, -\frac{1}{K-1}, -\frac{1}{K-1}, ..., -\frac{1}{K-1}) (1,−K−11,−K−11,...,−K−11) 为第一类的类标签, ( − 1 K − 1 , 1 , − 1 K − 1 , . . . , − 1 K − 1 ) (-\frac{1}{K-1}, 1, -\frac{1}{K-1}, ..., -\frac{1}{K-1}) (−K−11,1,−K−11,...,−K−11) 为第二类的标签,……, ( − 1 K − 1 , − 1 K − 1 , − 1 K − 1 , . . . , 1 ) (-\frac{1}{K-1}, -\frac{1}{K-1}, -\frac{1}{K-1}, ..., 1) (−K−11,−K−11,−K−11,...,1) 为第 K K K 类的标签;考虑到这一点后,根据一开始对标签向量的定义,我们发现它刚好是满足对称约束条件的,即各分量相加为0,因此在这个定义下对称约束自动被满足了
该算法的损失函数依然沿用了传统 Adaboost 的指数损失函数,只要我们把标量换成向量就行了:
L ( y , f ( x ) ) = ∑ i e x p ( − 1 K y i ⋅ f m ( x i ) ) L(\textbf{y}, \textbf{f}(\textbf{x}))=\sum_iexp(-\frac{1}{K}\textbf{y}_i \cdot\textbf{f}_m(\textbf{x}_i)) L(y,f(x))=i∑exp(−K1yi⋅fm(xi))
其中为了后面计算方便,作者引入了一个常数 1 K \frac{1}{K} K1 。和 Adaboost 算法的推导一样,我们只关注当前轮的训练,因此将 f m ( x ) \textbf{f}_m(\textbf{x}) fm(x) 拆成 f m − 1 ( x ) + β m g m ( x ) \textbf{f}_{m-1}(\textbf{x})+\beta_m\textbf{g}_m(\textbf{x}) fm−1(x)+βmgm(x) ,并将上一轮训练结果 f m − 1 ( x ) \textbf{f}_{m-1}(\textbf{x}) fm−1(x) 吸收进样本权重项 ω \omega ω :
L ( y , f ( x ) ) = ∑ i e x p ( − 1 K y i ⋅ f m ( x i ) ) = ∑ i e x p ( − 1 K y i ⋅ ( f m − 1 ( x i ) + β m g m ( x i ) ) ) = ∑ i ω i e x p ( − β m K y i ⋅ g m ( x i ) ) \begin{aligned}L(\textbf{y}, \textbf{f}(\textbf{x}))&=\sum_iexp(-\frac{1}{K}\textbf{y}_i \cdot\textbf{f}_m(\textbf{x}_i))\\ &=\sum_iexp(-\frac{1}{K}\textbf{y}_i \cdot(\textbf{f}_{m-1}(\textbf{x}_i)+\beta_m\textbf{g}_m(\textbf{x}_i)))\\ &=\sum_i\omega_i exp(-\frac{\beta_m}{K}\textbf{y}_i \cdot\textbf{g}_m(\textbf{x}_i))\end{aligned} L(y,f(x))=i∑exp(−K1yi⋅fm(xi))=i∑exp(−K1yi⋅(fm−1(xi)+βmgm(xi)))=i∑ωiexp(−Kβmyi⋅gm(xi))
下面我们单独考察一下 y i ⋅ g m ( x i ) \textbf{y}_i \cdot\textbf{g}_m(\textbf{x}_i) yi⋅gm(xi) 的结果;如前所述, y i \textbf{y}_i yi 和 g m ( x i ) \textbf{g}_m(\textbf{x}_i) gm(xi) 都是 1 × K 1\times K 1×K 维的向量,当它表示第 j j j 类时则第 j j j 个分量为1 ,其余分量为 − 1 K − 1 -\frac{1}{K-1} −K−11 ,因此当分类器预测正确时, g m ( x i ) = y i \textbf{g}_m(\textbf{x}_i)=\textbf{y}_i gm(xi)=yi , y i ⋅ g m ( x i ) \textbf{y}_i \cdot\textbf{g}_m(\textbf{x}_i) yi⋅gm(xi) 的结果就是 y i \textbf{y}_i yi 的模的平方;如果分类器预测错误,可以预见 y i \textbf{y}_i yi 和 g m ( x i ) \textbf{g}_m(\textbf{x}_i) gm(xi) 的1不在同一个分量,而其他分量还是相等的,都是 − 1 K − 1 -\frac{1}{K-1} −K−11 ;经过简单的计算可得两种情况下的内积结果:
预 测 正 确 时 : y i ⋅ g m ( x i ) = 1 + ( − 1 K − 1 ) 2 ( K − 1 ) = K K − 1 预测正确时:\textbf{y}_i \cdot\textbf{g}_m(\textbf{x}_i)=1+(-\frac{1}{K-1})^2(K-1)=\frac{K}{K-1} 预测正确时:yi⋅gm(xi)=1+(−K−11)2(K−1)=K−1K
预 测 错 误 时 : y i ⋅ g m ( x i ) = − 2 K − 1 + ( − 1 K − 1 ) 2 ( K − 2 ) = − K ( K − 1 ) 2 预测错误时:\textbf{y}_i \cdot\textbf{g}_m(\textbf{x}_i)=-\frac{2}{K-1}+(-\frac{1}{K-1})^2(K-2)=-\frac{K}{(K-1)^2} 预测错误时:yi⋅gm(xi)=−K−12+(−K−11)2(K−2)=−(K−1)2K
将以上结果带入损失函数表达式可得:
L ( y , f ( x ) ) = ∑ i ω i e x p ( − β m K y i ⋅ g m ( x i ) ) = ∑ g m = y i ω i e x p ( − β m K − 1 ) + ∑ g m ≠ y i ω i e x p ( β m ( K − 1 ) 2 ) = ∑ g m = y i ω i e x p ( − β m K − 1 ) + ∑ g m ≠ y i ω i e x p ( β m ( K − 1 ) 2 ) + ∑ g m ≠ y i ω i e x p ( − β m K − 1 ) − ∑ g m ≠ y i ω i e x p ( − β m K − 1 ) = e x p ( − β m K − 1 ) ∑ i ω i + ( e x p ( β m ( K − 1 ) 2 ) − e x p ( − β m K − 1 ) ) ∑ i ω i I ( g m ≠ y i ) \begin{aligned}L(\textbf{y}, \textbf{f}(\textbf{x}))&=\sum_i\omega_i exp(-\frac{\beta_m}{K}\textbf{y}_i \cdot\textbf{g}_m(\textbf{x}_i))\\ &=\sum_{g_m=y_i}\omega_i exp(-\frac{\beta_m}{K-1})+\sum_{g_m\neq y_i}\omega_i exp\left(\frac{\beta_m}{(K-1)^2}\right)\\ &=\sum_{g_m=y_i}\omega_i exp(-\frac{\beta_m}{K-1})+\sum_{g_m\neq y_i}\omega_i exp\left(\frac{\beta_m}{(K-1)^2}\right)+\sum_{g_m\neq y_i}\omega_i exp(-\frac{\beta_m}{K-1})-\sum_{g_m\neq y_i}\omega_i exp(-\frac{\beta_m}{K-1})\\ &=exp(-\frac{\beta_m}{K-1})\sum_i\omega_i+\left(exp\left(\frac{\beta_m}{(K-1)^2}\right)-exp(-\frac{\beta_m}{K-1})\right)\sum_i\omega_iI(\textbf{g}_m\neq \textbf{y}_i)\end{aligned} L(y,f(x))=i∑ωiexp(−Kβmyi⋅gm(xi))=gm=yi∑ωiexp(−K−1βm)+gm=yi∑ωiexp((K−1)2βm)=gm=yi∑ωiexp(−K−1βm)+gm=yi∑ωiexp((K−1)2βm)+gm=yi∑ωiexp(−K−1βm)−gm=yi∑ωiexp(−K−1βm)=exp(−K−1βm)i∑ωi+(exp((K−1)2βm)−exp(−K−1βm))i∑ωiI(gm=yi)
其中第三步用到了添凑项技巧,最后一步的 I ( g m ≠ y i ) I(\textbf{g}_m\neq \textbf{y}_i) I(gm=yi) 是示性函数,只有 g m ≠ y i \textbf{g}_m\neq \textbf{y}_i gm=yi 时取1,其他情况取0。我们希望损失函数的值尽量小,因此我们令损失函数对 β m \beta_m βm 的导数等于0可得:
∂ L ∂ β m = ( − 1 K − 1 ) e x p ( − β m K − 1 ) ∑ i ω i + ( 1 ( K − 1 ) 2 e x p ( β m ( K − 1 ) 2 ) + 1 K − 1 e x p ( − β m K − 1 ) ) ∑ i ω i I ( f m ≠ y i ) = 0 \begin{aligned}\frac{\partial L}{\partial \beta_m}&=(-\frac{1}{K-1})exp(-\frac{\beta_m}{K-1})\sum_i\omega_i+\left(\frac{1}{(K-1)^2}exp\left(\frac{\beta_m}{(K-1)^2}\right)+\frac{1}{K-1}exp(-\frac{\beta_m}{K-1})\right)\sum_i\omega_iI(\textbf{f}_m\neq \textbf{y}_i)\\ &=0\end{aligned} ∂βm∂L=(−K−11)exp(−K−1βm)i∑ωi+((K−1)21exp((K−1)2βm)+K−11exp(−K−1βm))i∑ωiI(fm=yi)=0
1 K − 1 e x p ( − β m K − 1 ) ∑ i ω i = ( 1 ( K − 1 ) 2 e x p ( β m ( K − 1 ) 2 ) + 1 K − 1 e x p ( − β m K − 1 ) ) ∑ i ω i I ( f m ≠ y i ) e x p ( − β m K − 1 ) = ( 1 K − 1 e x p ( β m ( K − 1 ) 2 ) + e x p ( − β m K − 1 ) ) r e r r o r 1 − r e r r o r r e r r o r = 1 K − 1 e x p ( K β m ( K − 1 ) 2 ) β m = ( K − 1 ) 2 K ( l o g ( 1 − r e r r o r r e r r o r ) + l o g ( K − 1 ) ) \begin{aligned}\frac{1}{K-1}exp(-\frac{\beta_m}{K-1})\sum_i\omega_i&=\left(\frac{1}{(K-1)^2}exp\left(\frac{\beta_m}{(K-1)^2}\right)+\frac{1}{K-1}exp(-\frac{\beta_m}{K-1})\right)\sum_i\omega_iI(\textbf{f}_m\neq \textbf{y}_i)\\ exp(-\frac{\beta_m}{K-1})&=\left(\frac{1}{K-1}exp\left(\frac{\beta_m}{(K-1)^2}\right)+exp(-\frac{\beta_m}{K-1})\right)r_{error}\\ \frac{1-r_{error}}{r_{error}}&=\frac{1}{K-1}exp\left(\frac{K\beta_m}{(K-1)^2}\right)\\ \beta_m&=\frac{(K-1)^2}{K}\left(log\left(\frac{1-r_{error}}{r_{error}}\right)+log(K-1)\right)\end{aligned} K−11exp(−K−1βm)i∑ωiexp(−K−1βm)rerror1−rerrorβm=((K−1)21exp((K−1)2βm)+K−11exp(−K−1βm))i∑ωiI(fm=yi)=(K−11exp((K−1)2βm)+exp(−K−1βm))rerror=K−11exp((K−1)2Kβm)=K(K−1)2(log(rerror1−rerror)+log(K−1))
其中 r e r r o r = ∑ i ω i I ( f m ≠ y i ) / ∑ i ω i r_{error}=\sum_i\omega_iI(\textbf{f}_m\neq \textbf{y}_i)/\sum_i\omega_i rerror=∑iωiI(fm=yi)/∑iωi 是模型的错误率;于是我们得到了 SAMME 算法:
注意对于一个具体的问题 K K K 是确定的,所以 ( K − 1 ) 2 K \frac{(K-1)^2}{K} K(K−1)2 是一个常数,而乘以一个常数对归一化过程没有影响,因此作者在算法中没有计算 β m \beta_m βm 的系数,而是将去掉系数之后的部分记作 α m \alpha_m αm ,每一轮计算只求 α m \alpha_m αm 的值
作者在 SAMME 算法的基础上还提出了一种变体:SAMME.R 算法。和 SAMME 算法不同的是,该算法采用加权概率估计(weighted probability estimates)的方法更新加法模型,假设我们当前的分类器是 f m − 1 ( x ) \textbf{f}_{m-1}(\textbf{x}) fm−1(x) ,我们希望加入一个新的基分类器使它的表现更好: f m − 1 ( x ) + h ( x ) \textbf{f}_{m-1}(\textbf{x})+\textbf{h}(\textbf{x}) fm−1(x)+h(x) ;首先我们把损失函数写成期望的形式:
L ( y , f ( x ) ) = E ( e x p ( − 1 K y ⋅ ( f m − 1 ( x ) + h ( x ) ) ) ∣ x ) L(\textbf{y}, \textbf{f}(\textbf{x}))=E\left(exp(-\frac{1}{K}\textbf{y} \cdot(\textbf{f}_{m-1}(\textbf{x})+\textbf{h}(\textbf{x})))|\textbf{x}\right) L(y,f(x))=E(exp(−K1y⋅(fm−1(x)+h(x)))∣x)
我们依然要求 h ( x ) \textbf{h}(\textbf{x}) h(x) 满足对称约束条件:
h 1 ( x ) + h 2 ( x ) + . . . + h K ( x ) = 0 h_1(\textbf{x})+h_2(\textbf{x})+...+h_K(\textbf{x}) = 0 h1(x)+h2(x)+...+hK(x)=0
这里的损失函数是对所有样本求期望,我们可以将它改写成对每个类求期望再求和,结果是一样的:
L ( y , f ( x ) ) = e x p ( − h 1 ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 1 ∣ x ) + e x p ( − h 2 ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 2 ∣ x ) + . . . + e x p ( − h K ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = K ∣ x ) L(\textbf{y}, \textbf{f}(\textbf{x}))=exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y} \cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=1}|\textbf{x}\right)+\\ exp\left(-\frac{h_2(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=2}|\textbf{x}\right)+...+\\exp\left(-\frac{h_K(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=K}|\textbf{x}\right) L(y,f(x))=exp(−K−1h1(x))E(exp(−K1y⋅fm−1(x))Ic=1∣x)+exp(−K−1h2(x))E(exp(−K1y⋅fm−1(x))Ic=2∣x)+...+exp(−K−1hK(x))E(exp(−K1y⋅fm−1(x))Ic=K∣x)
这里 I c = i I_{c=i} Ic=i 同样是示性函数,当 x \textbf{x} x 属于第 i i i 类时取1,其他情况取0;我们以第一项为例简单说明计算过程:
E ( e x p ( − 1 K y ⋅ ( f m − 1 ( x ) + h ( x ) ) ) I c = 1 ∣ x ) = E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) − 1 K y ⋅ h ( x ) ) I c = 1 ∣ x ) = E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) e x p ( − 1 K y ⋅ h ( x ) ) I c = 1 ∣ x ) \begin{aligned}E\left(exp(-\frac{1}{K}\textbf{y}\cdot(\textbf{f}_{m-1}(\textbf{x})+\textbf{h}(\textbf{x})))I_{c=1}|\textbf{x}\right)&=E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x})-\frac{1}{K}\textbf{y}\cdot\textbf{h}(\textbf{x}))I_{c=1}|\textbf{x}\right)\\ &=E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))exp(-\frac{1}{K}\textbf{y} \cdot\textbf{h}(\textbf{x}))I_{c=1}|\textbf{x}\right)\end{aligned} E(exp(−K1y⋅(fm−1(x)+h(x)))Ic=1∣x)=E(exp(−K1y⋅fm−1(x)−K1y⋅h(x))Ic=1∣x)=E(exp(−K1y⋅fm−1(x))exp(−K1y⋅h(x))Ic=1∣x)
我们只关注 y ⋅ h ( x ) \textbf{y}\cdot\textbf{h}(\textbf{x}) y⋅h(x) 的计算,注意此时我们是在属于第一类的样本上求期望,因此 y = ( 1 , − 1 K − 1 , . . . , − 1 K − 1 ) \textbf{y}=(1, -\frac{1}{K-1}, ..., -\frac{1}{K-1}) y=(1,−K−11,...,−K−11),于是可以得到:
y ⋅ h ( x ) = h 1 ( x ) − h 2 ( x ) K − 1 − h 3 ( x ) K − 1 − . . . − h K ( x ) K − 1 \begin{aligned}\textbf{y}\cdot\textbf{h}(\textbf{x})&=h_1(\textbf{x})-\frac{h_2(\textbf{x})}{K-1}-\frac{h_3(\textbf{x})}{K-1}-...-\frac{h_K(\textbf{x})}{K-1}\end{aligned} y⋅h(x)=h1(x)−K−1h2(x)−K−1h3(x)−...−K−1hK(x)
又注意到 h ( x ) \textbf{h}(\textbf{x}) h(x) 满足对称约束条件,所以 h 2 ( x ) + . . . + h K ( x ) = − h 1 ( x ) h_2(\textbf{x})+...+h_K(\textbf{x}) = -h_1(\textbf{x}) h2(x)+...+hK(x)=−h1(x),将它带入上式即可得:
y ⋅ h ( x ) = K h 1 ( x ) K − 1 \textbf{y}\cdot\textbf{h}(\textbf{x})=\frac{Kh_1(\textbf{x})}{K-1} y⋅h(x)=K−1Kh1(x)
因此:
E ( e x p ( − 1 K y ⋅ ( f m − 1 ( x ) + h ( x ) ) ) I c = 1 ∣ x ) = E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) e x p ( − 1 K y ⋅ h ( x ) ) I c = 1 ∣ x ) = E ( e x p ( − h 1 ( x ) K − 1 ) e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 1 ∣ x ) = e x p ( − h 1 ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 1 ∣ x ) \begin{aligned}E\left(exp(-\frac{1}{K}\textbf{y}\cdot(\textbf{f}_{m-1}(\textbf{x})+\textbf{h}(\textbf{x})))I_{c=1}|\textbf{x}\right)&=E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))exp(-\frac{1}{K}\textbf{y}\cdot\textbf{h}(\textbf{x}))I_{c=1}|\textbf{x}\right)\\ &=E\left(exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=1}|\textbf{x}\right)\\ &=exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=1}|\textbf{x}\right)\end{aligned} E(exp(−K1y⋅(fm−1(x)+h(x)))Ic=1∣x)=E(exp(−K1y⋅fm−1(x))exp(−K1y⋅h(x))Ic=1∣x)=E(exp(−K−1h1(x))exp(−K1y⋅fm−1(x))Ic=1∣x)=exp(−K−1h1(x))E(exp(−K1y⋅fm−1(x))Ic=1∣x)
同理可得:
E ( e x p ( − 1 K y ⋅ ( f m − 1 ( x ) + h ( x ) ) ) I c = 2 ∣ x ) = e x p ( − h 2 ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 2 ∣ x ) E ( e x p ( − 1 K y ⋅ ( f m − 1 ( x ) + h ( x ) ) ) I c = 3 ∣ x ) = e x p ( − h 3 ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 3 ∣ x ) … E ( e x p ( − 1 K y ⋅ ( f m − 1 ( x ) + h ( x ) ) ) I c = K ∣ x ) = e x p ( − h K ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = K ∣ x ) \begin{aligned}E\left(exp(-\frac{1}{K}\textbf{y}\cdot(\textbf{f}_{m-1}(\textbf{x})+\textbf{h}(\textbf{x})))I_{c=2}|\textbf{x}\right) &=exp\left(-\frac{h_2(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=2}|\textbf{x}\right)\\ E\left(exp(-\frac{1}{K}\textbf{y}\cdot(\textbf{f}_{m-1}(\textbf{x})+\textbf{h}(\textbf{x})))I_{c=3}|\textbf{x}\right) &=exp\left(-\frac{h_3(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=3}|\textbf{x}\right)\\ \ldots\\ E\left(exp(-\frac{1}{K}\textbf{y}\cdot(\textbf{f}_{m-1}(\textbf{x})+\textbf{h}(\textbf{x})))I_{c=K}|\textbf{x}\right) &=exp\left(-\frac{h_K(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=K}|\textbf{x}\right)\end{aligned} E(exp(−K1y⋅(fm−1(x)+h(x)))Ic=2∣x)E(exp(−K1y⋅(fm−1(x)+h(x)))Ic=3∣x)…E(exp(−K1y⋅(fm−1(x)+h(x)))Ic=K∣x)=exp(−K−1h2(x))E(exp(−K1y⋅fm−1(x))Ic=2∣x)=exp(−K−1h3(x))E(exp(−K1y⋅fm−1(x))Ic=3∣x)=exp(−K−1hK(x))E(exp(−K1y⋅fm−1(x))Ic=K∣x)
将这些结果带入损失函数表达式即得:
L ( y , f ( x ) ) = e x p ( − h 1 ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 1 ∣ x ) + e x p ( − h 2 ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = 2 ∣ x ) + . . . + e x p ( − h K ( x ) K − 1 ) E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = K ∣ x ) = e x p ( − h 1 ( x ) K − 1 ) P r o b w ( c = 1 ∣ x ) + e x p ( − h 2 ( x ) K − 1 ) P r o b w ( c = 2 ∣ x ) + . . . + e x p ( − h K ( x ) K − 1 ) P r o b w ( c = K ∣ x ) \begin{aligned}L(\textbf{y}, \textbf{f}(\textbf{x}))&=exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y} \cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=1}|\textbf{x}\right)+exp\left(-\frac{h_2(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=2}|\textbf{x}\right)+...+exp\left(-\frac{h_K(\textbf{x})}{K-1}\right)E\left(exp(-\frac{1}{K}\textbf{y}\cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=K}|\textbf{x}\right)\\ &=exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)Prob_w(c=1|\textbf{x})+exp\left(-\frac{h_2(\textbf{x})}{K-1}\right)Prob_w(c=2|\textbf{x})+...+exp\left(-\frac{h_K(\textbf{x})}{K-1}\right)Prob_w(c=K|\textbf{x})\end{aligned} L(y,f(x))=exp(−K−1h1(x))E(exp(−K1y⋅fm−1(x))Ic=1∣x)+exp(−K−1h2(x))E(exp(−K1y⋅fm−1(x))Ic=2∣x)+...+exp(−K−1hK(x))E(exp(−K1y⋅fm−1(x))Ic=K∣x)=exp(−K−1h1(x))Probw(c=1∣x)+exp(−K−1h2(x))Probw(c=2∣x)+...+exp(−K−1hK(x))Probw(c=K∣x)
其中 P r o b w ( c = k ∣ x ) = E ( e x p ( − 1 K y ⋅ f m − 1 ( x ) ) I c = k ∣ x ) Prob_w(c=k|\textbf{x})=E\left(exp(-\frac{1}{K}\textbf{y} \cdot\textbf{f}_{m-1}(\textbf{x}))I_{c=k}|\textbf{x}\right) Probw(c=k∣x)=E(exp(−K1y⋅fm−1(x))Ic=k∣x)
这时我们得到了一个约束优化问题:
min e x p ( − h 1 ( x ) K − 1 ) P r o b w ( c = 1 ∣ x ) + e x p ( − h 2 ( x ) K − 1 ) P r o b w ( c = 2 ∣ x ) + . . . + e x p ( − h K ( x ) K − 1 ) P r o b w ( c = K ∣ x ) s . t . h 1 ( x ) + h 2 ( x ) + . . . + h K ( x ) = 0 \min\ \ \ exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)Prob_w(c=1|\textbf{x})+exp\left(-\frac{h_2(\textbf{x})}{K-1}\right)Prob_w(c=2|\textbf{x})+...+exp\left(-\frac{h_K(\textbf{x})}{K-1}\right)Prob_w(c=K|\textbf{x})\\ s.t.\ \ \ h_1(\textbf{x})+h_2(\textbf{x})+...+h_K(\textbf{x}) = 0 min exp(−K−1h1(x))Probw(c=1∣x)+exp(−K−1h2(x))Probw(c=2∣x)+...+exp(−K−1hK(x))Probw(c=K∣x)s.t. h1(x)+h2(x)+...+hK(x)=0
这类问题可以用拉格朗日乘子法解决,首先构造拉格朗日函数:
L = ∑ i e x p ( − h i ( x ) K − 1 ) P r o b w ( c = i ∣ x ) − λ ( h 1 ( x ) + h 2 ( x ) + . . . + h K ( x ) ) \mathcal{L}=\sum_iexp\left(-\frac{h_i(\textbf{x})}{K-1}\right)Prob_w(c=i|\textbf{x})-\lambda(h_1(\textbf{x})+h_2(\textbf{x})+...+h_K(\textbf{x})) L=i∑exp(−K−1hi(x))Probw(c=i∣x)−λ(h1(x)+h2(x)+...+hK(x))
令拉格朗日函数对 h i ( x ) h_i(\textbf{x}) hi(x) 偏导等于0可得:
− 1 K − 1 e x p ( − h 1 ( x ) K − 1 ) P r o b w ( c = 1 ∣ x ) − λ = 0 − 1 K − 1 e x p ( − h 2 ( x ) K − 1 ) P r o b w ( c = 2 ∣ x ) − λ = 0 … − 1 K − 1 e x p ( − h K ( x ) K − 1 ) P r o b w ( c = K ∣ x ) − λ = 0 \begin{aligned}-\frac{1}{K-1}exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)Prob_w(c=1|\textbf{x})-\lambda&=0\\ -\frac{1}{K-1}exp\left(-\frac{h_2(\textbf{x})}{K-1}\right)Prob_w(c=2|\textbf{x})-\lambda&=0\\ \ldots\\ -\frac{1}{K-1}exp\left(-\frac{h_K(\textbf{x})}{K-1}\right)Prob_w(c=K|\textbf{x})-\lambda&=0\end{aligned} −K−11exp(−K−1h1(x))Probw(c=1∣x)−λ−K−11exp(−K−1h2(x))Probw(c=2∣x)−λ…−K−11exp(−K−1hK(x))Probw(c=K∣x)−λ=0=0=0
然后我们需要将 h i ( x ) h_i(\textbf{x}) hi(x) 解出来,这里以 h 1 ( x ) h_1(\textbf{x}) h1(x) 的求解为例;首先我们将第一式与第二式联立得:
− 1 K − 1 e x p ( − h 1 ( x ) K − 1 ) P r o b w ( c = 1 ∣ x ) = − 1 K − 1 e x p ( − h 2 ( x ) K − 1 ) P r o b w ( c = 2 ∣ x ) − h 1 ( x ) K − 1 + ln P r o b w ( c = 1 ∣ x ) = − h 2 ( x ) K − 1 + ln P r o b w ( c = 2 ∣ x ) h 1 ( x ) − h 2 ( x ) = ( K − 1 ) ( ln P r o b w ( c = 1 ∣ x ) − ln P r o b w ( c = 2 ∣ x ) ) \begin{aligned}-\frac{1}{K-1}exp\left(-\frac{h_1(\textbf{x})}{K-1}\right)Prob_w(c=1|\textbf{x})&=-\frac{1}{K-1}exp\left(-\frac{h_2(\textbf{x})}{K-1}\right)Prob_w(c=2|\textbf{x})\\ -\frac{h_1(\textbf{x})}{K-1}+\ln Prob_w(c=1|\textbf{x})&=-\frac{h_2(\textbf{x})}{K-1}+\ln Prob_w(c=2|\textbf{x})\\ h_1(\textbf{x})-h_2(\textbf{x})&=(K-1)(\ln Prob_w(c=1|\textbf{x})-\ln Prob_w(c=2|\textbf{x}))\end{aligned} −K−11exp(−K−1h1(x))Probw(c=1∣x)−K−1h1(x)+lnProbw(c=1∣x)h1(x)−h2(x)=−K−11exp(−K−1h2(x))Probw(c=2∣x)=−K−1h2(x)+lnProbw(c=2∣x)=(K−1)(lnProbw(c=1∣x)−lnProbw(c=2∣x))
同理分别联立第一式和其他各式可得:
h 1 ( x ) − h 3 ( x ) = ( K − 1 ) ( ln P r o b w ( c = 1 ∣ x ) − ln P r o b w ( c = 3 ∣ x ) ) h 1 ( x ) − h 4 ( x ) = ( K − 1 ) ( ln P r o b w ( c = 1 ∣ x ) − ln P r o b w ( c = 4 ∣ x ) ) … h 1 ( x ) − h K ( x ) = ( K − 1 ) ( ln P r o b w ( c = 1 ∣ x ) − ln P r o b w ( c = K ∣ x ) ) \begin{aligned} h_1(\textbf{x})-h_3(\textbf{x})&=(K-1)(\ln Prob_w(c=1|\textbf{x})-\ln Prob_w(c=3|\textbf{x}))\\ h_1(\textbf{x})-h_4(\textbf{x})&=(K-1)(\ln Prob_w(c=1|\textbf{x})-\ln Prob_w(c=4|\textbf{x}))\\ \ldots\\ h_1(\textbf{x})-h_K(\textbf{x})&=(K-1)(\ln Prob_w(c=1|\textbf{x})-\ln Prob_w(c=K|\textbf{x}))\end{aligned} h1(x)−h3(x)h1(x)−h4(x)…h1(x)−hK(x)=(K−1)(lnProbw(c=1∣x)−lnProbw(c=3∣x))=(K−1)(lnProbw(c=1∣x)−lnProbw(c=4∣x))=(K−1)(lnProbw(c=1∣x)−lnProbw(c=K∣x))
我们将这 K − 1 K-1 K−1 个式子相加得:
( K − 1 ) 2 ln P r o b w ( c = 1 ∣ x ) − ( K − 1 ) ( ∑ i = 2 K ln P r o b w ( c = i ∣ x ) ) = ( K − 1 ) h 1 ( x ) − ( h 2 ( x ) + . . . + h K ( x ) ) = K h 1 ( x ) − ( h 1 ( x ) + h 2 ( x ) + . . . + h K ( x ) ) = K h 1 ( x ) \begin{aligned}(K-1)^2\ln Prob_w(c=1|\textbf{x})-(K-1)(\sum_{i=2}^K\ln Prob_w(c=i|\textbf{x}))&=(K-1)h_1(\textbf{x})-(h_2(\textbf{x})+...+h_K(\textbf{x}))\\ &=Kh_1(\textbf{x})-(h_1(\textbf{x})+h_2(\textbf{x})+...+h_K(\textbf{x}))\\ &=Kh_1(\textbf{x})\end{aligned} (K−1)2lnProbw(c=1∣x)−(K−1)(i=2∑KlnProbw(c=i∣x))=(K−1)h1(x)−(h2(x)+...+hK(x))=Kh1(x)−(h1(x)+h2(x)+...+hK(x))=Kh1(x)
从而可以解出 h 1 ( x ) h_1(\textbf{x}) h1(x) :
h 1 ( x ) = ( K − 1 ) ( ln P r o b w ( c = 1 ∣ x ) − 1 K ( ln P r o b w ( c = 1 ∣ x ) + ln P r o b w ( c = 2 ∣ x ) + ln P r o b w ( c = 3 ∣ x ) + . . . + ln P r o b w ( c = K ∣ x ) ) ) = ( K − 1 ) ( ln P r o b w ( c = 1 ∣ x ) − 1 K ( ∑ i ln P r o b w ( c = i ∣ x ) ) ) \begin{aligned}h_1(\textbf{x})&=(K-1)\left(\ln Prob_w(c=1|\textbf{x})-\frac{1}{K}(\ln Prob_w(c=1|\textbf{x})+\ln Prob_w(c=2|\textbf{x})+\ln Prob_w(c=3|\textbf{x})+...+\ln Prob_w(c=K|\textbf{x}))\right)\\ &=(K-1)\left(\ln Prob_w(c=1|\textbf{x})-\frac{1}{K}(\sum_i\ln Prob_w(c=i|\textbf{x}))\right)\end{aligned} h1(x)=(K−1)(lnProbw(c=1∣x)−K1(lnProbw(c=1∣x)+lnProbw(c=2∣x)+lnProbw(c=3∣x)+...+lnProbw(c=K∣x)))=(K−1)(lnProbw(c=1∣x)−K1(i∑lnProbw(c=i∣x)))
同理可得:
h 2 ( x ) = ( K − 1 ) ( ln P r o b w ( c = 2 ∣ x ) − 1 K ( ∑ i ln P r o b w ( c = i ∣ x ) ) ) h 3 ( x ) = ( K − 1 ) ( ln P r o b w ( c = 3 ∣ x ) − 1 K ( ∑ i ln P r o b w ( c = i ∣ x ) ) ) … h K ( x ) = ( K − 1 ) ( ln P r o b w ( c = K ∣ x ) − 1 K ( ∑ i ln P r o b w ( c = i ∣ x ) ) ) \begin{aligned}h_2(\textbf{x})&=(K-1)\left(\ln Prob_w(c=2|\textbf{x})-\frac{1}{K}(\sum_i\ln Prob_w(c=i|\textbf{x}))\right)\\ h_3(\textbf{x})&=(K-1)\left(\ln Prob_w(c=3|\textbf{x})-\frac{1}{K}(\sum_i\ln Prob_w(c=i|\textbf{x}))\right)\\ \ldots\\ h_K(\textbf{x})&=(K-1)\left(\ln Prob_w(c=K|\textbf{x})-\frac{1}{K}(\sum_i\ln Prob_w(c=i|\textbf{x}))\right)\end{aligned} h2(x)h3(x)…hK(x)=(K−1)(lnProbw(c=2∣x)−K1(i∑lnProbw(c=i∣x)))=(K−1)(lnProbw(c=3∣x)−K1(i∑lnProbw(c=i∣x)))=(K−1)(lnProbw(c=K∣x)−K1(i∑lnProbw(c=i∣x)))
于是我们得到了 SAMME.R 算法:
注意第5步更新样本权重时由于 h k m ( x ) h_k^m(\textbf{x}) hkm(x) 的第二项是对所有 p k m ( x ) p_k^m(\textbf{x}) pkm(x) 求和,在每一轮训练中都可以看成是一个常数,对权重的更新没有影响(因为权重需要归一化),因此这一步只取 h k m ( x ) h_k^m(\textbf{x}) hkm(x) 的第一项计算
Zhu, H. Zou, S. Rosset, T. Hastie, “Multi-class AdaBoost”, 2009.