Adaptive Boost(AdaBoost)是一种融合模型,而与Blending不同的是,Blending是在得到 g t g_t gt之后再进行融合,而AdaBoost是一边学习 g t g_t gt,一边融合。那么在介绍AdaBoost之前,首先要看的一个算法模型——前向分步算法。
那么,什么是前向分步算法?
首先,考虑如下形式的加法模型,
f
(
x
)
=
∑
m
=
1
M
β
m
b
(
x
;
γ
m
)
{\rm{f}}(x) = \sum\limits_{m = 1}^M {{\beta _m}b(x;{\gamma _m})}
f(x)=m=1∑Mβmb(x;γm)
其中
b
(
x
;
γ
m
)
b(x;{\gamma _m})
b(x;γm)是基函数,
γ
m
{\gamma _m}
γm是基函数的参数,
β
m
{\beta _m}
βm是基函数的系数。
显然,函数f(x)是基函数的线性组合,是一个加法模型。
那么,在给定数据集D和损失函数
L
(
y
,
f
(
x
)
)
L(y,f(x))
L(y,f(x))的条件下,学习加法模型就变成了极小化损失函数的问题,
min
β
m
,
γ
m
∑
i
=
1
N
L
(
y
i
,
∑
m
=
1
M
β
m
b
(
x
i
;
γ
m
)
)
\mathop {\min }\limits_{{\beta _m},{\gamma _m}} \sum\limits_{i = 1}^N {L({y_i},\sum\limits_{m = 1}^M {{\beta _m}b({x_i};\gamma {}_m)} )}
βm,γmmini=1∑NL(yi,m=1∑Mβmb(xi;γm))
解决上述问题的一个思路就是前向分步算法,其具体的想法为:因为学习算法为加法模型,如果能从前往后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式(上式),那么就可以简化优化的复杂度。
具体的,每一步只需要优化如下的损失函数,
min
β
,
γ
∑
i
=
1
N
L
(
y
i
,
b
(
x
i
;
γ
)
)
\mathop {\min }\limits_{\beta ,\gamma } \sum\limits_{i = 1}^N {L({y_i},b({x_i};\gamma ))}
β,γmini=1∑NL(yi,b(xi;γ))
具体的前向分布算法如下:
前向分步算法 |
---|
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
}
T = \{ ({x_1},{y_1}),({x_2},{y_2}), \cdots ,({x_N},{y_N})\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)};损失函数为
L
(
y
,
f
(
x
)
)
L(y,f(x))
L(y,f(x));基函数集为
{
b
(
x
;
γ
)
}
\{ b(x;\gamma )\}
{b(x;γ)}; 输出:加法模型f(x) 1.初始化 f 0 ( x ) = 0 {f_0}(x) = 0 f0(x)=0 2.对 m = 1 , 2 , ⋯   , M m = 1,2, \cdots ,M m=1,2,⋯,M 2.1 极小化损失函数 ( β m , γ m ) = arg min β , γ ∑ i = 1 N L ( y i , f m − 1 ( x i ) + β b ( x ; γ ) ) ({\beta _m},{\gamma _m}) = \arg \mathop {\min }\limits_{\beta ,\gamma } \sum\limits_{i = 1}^N {L({y_i},{f_{m - 1}}({x_i}) + \beta b(x;\gamma ))} (βm,γm)=argβ,γmini=1∑NL(yi,fm−1(xi)+βb(x;γ)) 2.2 更新 f m ( x ) = f m − 1 ( x ) + β m b ( x ; γ m ) {f_m}(x) = {f_{m - 1}}(x) + {\beta _m}b(x;{\gamma _m}) fm(x)=fm−1(x)+βmb(x;γm) 3.得到加法模型 f ( x ) = f M ( x ) = ∑ m = 0 M β m b ( x ; γ m ) f(x) = {f_M}(x) = \sum\limits_{m = 0}^M {{\beta _m}b(x;{\gamma _m})} f(x)=fM(x)=m=0∑Mβmb(x;γm) |
前向分步算法将同时求解从m=1到M的所有参数 β m , γ m {\beta _m},{\gamma _m} βm,γm的优化问题简化为逐步求解各个 β m , γ m {\beta _m},{\gamma _m} βm,γm的优化问题。
上述就是前向分步算法的主要思想,而AdaBoost就是前向分布算法的一个特例,因为在AdaBoost里,基函数为基本分类器,损失函数为指数损失函数。下面,就基于前向分步算法来推导AdaBoost。
当基函数为基本分类器时,前向分布算法中的加法模型等价于AdaBoost的最终分类器,
f
(
x
)
=
∑
m
=
1
M
α
m
G
m
(
x
)
f(x) = \sum\limits_{m = 1}^M {{\alpha _m}{G_m}(x)}
f(x)=m=1∑MαmGm(x)
其中,
G
m
(
x
)
{G_m}(x)
Gm(x)为基本分类器,
α
m
{\alpha _m}
αm为基本分类器的系数。
当前向分布算法的损失函数为指数损失函数时,
L
(
y
,
f
(
x
)
)
=
exp
(
−
y
f
(
x
)
)
L(y,f(x)) = \exp ( - yf(x))
L(y,f(x))=exp(−yf(x))
由前向分步算法,在经过了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)
求解目标是让求得的
α
m
{\alpha _m}
αm和
G
m
(
x
)
{G_m}(x)
Gm(x)使
f
m
(
x
)
{f_m}(x)
fm(x)在训练数据集T上的指数损失最小,即,
(
α
m
,
G
m
(
x
)
)
=
arg
min
α
,
G
∑
i
=
1
N
exp
(
−
y
i
(
f
m
−
1
(
x
i
)
+
α
G
(
x
i
)
)
)
                                      
=
arg
min
α
,
G
∑
i
=
1
N
exp
(
−
y
i
f
m
−
1
(
x
i
)
)
⎵
w
ˉ
m
i
exp
(
−
y
i
α
G
(
x
i
)
)
)
                                      
=
arg
min
α
,
G
∑
i
=
1
N
w
ˉ
m
i
exp
(
−
y
i
α
G
(
x
i
)
)
)
\begin{array}{l} ({\alpha _m},{G_m}(x)) = \arg \mathop {\min }\limits_{\alpha ,G} \sum\limits_{i = 1}^N {\exp ( - {y_i}({f_{m - 1}}({x_i}) + \alpha G({x_i})))} \\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\kern 1pt} {\kern 1pt} = \arg \mathop {\min }\limits_{\alpha ,G} \sum\limits_{i = 1}^N {\underbrace {\exp ( - {y_i}{f_{m - 1}}({x_i}))}_{{{\bar w}_{mi}}}\exp ( - {y_i}\alpha G({x_i})))} \\\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\kern 1pt} {\kern 1pt} = \arg \mathop {\min }\limits_{\alpha ,G} \sum\limits_{i = 1}^N {{{\bar w}_{mi}}\exp ( - {y_i}\alpha G({x_i})))} \end{array}
(αm,Gm(x))=argα,Gmini=1∑Nexp(−yi(fm−1(xi)+αG(xi)))=argα,Gmini=1∑Nwˉmi
exp(−yifm−1(xi))exp(−yiαG(xi)))=argα,Gmini=1∑Nwˉmiexp(−yiαG(xi)))
其中,
w
ˉ
m
i
=
exp
(
−
y
i
f
m
−
1
(
x
i
)
)
{\bar w_{mi}} = \exp ( - {y_i}{f_{m - 1}}({x_i}))
wˉmi=exp(−yifm−1(xi)),之所以把该项单独分出来,是因为该项既不依赖于
α
\alpha
α,也不依赖于
G
G
G,与最小化无关,但其依赖于
f
m
−
1
(
x
)
{f_{m - 1}}(x)
fm−1(x),随着每一轮的迭代而改变。
上式中优化的参数有两个
α
\alpha
α和
G
G
G,所以求解也分为两步,先求解
G
G
G,再求解
α
\alpha
α。
首先,求解G,G的含义为基本分类器,所以可由在训练集上最小化损失得到,
G
m
(
x
)
=
arg
min
G
∑
i
=
1
N
w
ˉ
m
i
[
[
y
i
≠
G
(
x
i
)
]
]
{G_m}(x) = \arg \mathop {\min }\limits_G \sum\limits_{i = 1}^N {{{\bar w}_{mi}}\left[\kern-0.15em\left[ {{y_i} \ne G({x_i})} \right]\kern-0.15em\right]}
Gm(x)=argGmini=1∑Nwˉmi[[yi̸=G(xi)]]
之后,求解
α
m
{\alpha _m}
αm,对式
(
α
m
,
G
m
(
x
)
)
({\alpha _m},{G_m}(x))
(αm,Gm(x))进行简化,
          
∑
i
=
1
N
w
ˉ
m
i
exp
(
−
y
i
α
G
(
x
i
)
)
)
=
∑
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
α
=
(
e
α
+
e
−
α
)
∑
i
=
1
N
w
ˉ
m
i
[
[
y
i
≠
G
(
x
i
)
]
]
+
e
α
∑
i
=
1
N
w
ˉ
m
i
\begin{array}{l} \;\;\;\;\;\sum\limits_{i = 1}^N {{{\bar w}_{mi}}\exp ( - {y_i}\alpha G({x_i})))} \\\\ {\kern 1pt} = \sum\limits_{i = 1}^N {{{\bar w}_{mi}}\exp ( - {y_i}\alpha G({x_i})))} \\\\ = \sum\limits_{{y_i} \ne {G_m}({x_i})} {{{\bar w}_{mi}}{e^{ - \alpha }}} + \sum\limits_{{y_i} = {G_m}({x_i})} {{{\bar w}_{mi}}{e^\alpha }} \\\\ = ({e^\alpha } + {e^{ - \alpha }})\sum\limits_{i = 1}^N {{{\bar w}_{mi}}\left[\kern-0.15em\left[ {{y_i} \ne G({x_i})} \right]\kern-0.15em\right]} + {e^\alpha }\sum\limits_{i = 1}^N {{{\bar w}_{mi}}} \end{array}
i=1∑Nwˉmiexp(−yiαG(xi)))=i=1∑Nwˉmiexp(−yiαG(xi)))=yi̸=Gm(xi)∑wˉmie−α+yi=Gm(xi)∑wˉmieα=(eα+e−α)i=1∑Nwˉmi[[yi̸=G(xi)]]+eαi=1∑Nwˉmi
对
α
\alpha
α求导并等于0,得到最优解
α
\alpha
α,其中目标函数
H
(
α
)
=
(
e
α
+
e
−
α
)
∑
i
=
1
N
w
ˉ
m
i
[
[
y
i
≠
G
(
x
i
)
]
]
+
e
α
∑
i
=
1
N
w
ˉ
m
i
H(\alpha ) = ({e^\alpha } + {e^{ - \alpha }})\sum\limits_{i = 1}^N {{{\bar w}_{mi}}\left[\kern-0.15em\left[ {{y_i} \ne G({x_i})} \right]\kern-0.15em\right]} + {e^\alpha }\sum\limits_{i = 1}^N {{{\bar w}_{mi}}}
H(α)=(eα+e−α)i=1∑Nwˉmi[[yi̸=G(xi)]]+eαi=1∑Nwˉmi ,为了方便书写,这里的
[
[
y
i
≠
G
(
x
i
)
]
]
\left[\kern-0.15em\left[ {{y_i} \ne G({x_i})} \right]\kern-0.15em\right]
[[yi̸=G(xi)]]用
I
I
I代替,
∂
H
∂
α
=
e
α
∑
w
ˉ
m
i
I
+
e
−
α
∑
w
ˉ
m
i
I
−
e
−
α
∑
w
ˉ
m
i
=
0
e
α
∑
w
ˉ
m
i
I
=
e
−
α
(
∑
w
ˉ
m
i
−
∑
w
ˉ
m
i
I
)
α
+
ln
∑
w
ˉ
m
i
I
=
−
α
+
ln
(
∑
w
ˉ
m
i
−
∑
w
ˉ
m
i
I
)
2
α
=
ln
(
∑
w
ˉ
m
i
−
∑
w
ˉ
m
i
I
∑
w
ˉ
m
i
I
)
α
=
1
2
ln
(
∑
w
ˉ
m
i
∑
w
ˉ
m
i
I
−
1
)
\begin{array}{l} \frac{{\partial H}}{{\partial \alpha }} = {e^\alpha }\sum {{{\bar w}_{mi}}I} + {e^{ - \alpha }}\sum {{{\bar w}_{mi}}I} - {e^{ - \alpha }}\sum {{{\bar w}_{mi}}} = 0\\\\ {e^\alpha }\sum {{{\bar w}_{mi}}I} = {e^{ - \alpha }}(\sum {{{\bar w}_{mi}}} - \sum {{{\bar w}_{mi}}I} )\\\\ \alpha + \ln \sum {{{\bar w}_{mi}}I} = - \alpha + \ln (\sum {{{\bar w}_{mi}}} - \sum {{{\bar w}_{mi}}I} )\\\\ 2\alpha = \ln (\frac{{\sum {{{\bar w}_{mi}}} - \sum {{{\bar w}_{mi}}I} }}{{\sum {{{\bar w}_{mi}}I} }})\\\\ \alpha = \frac{1}{2}\ln (\frac{{\sum {{{\bar w}_{mi}}} }}{{\sum {{{\bar w}_{mi}}I} }} - 1) \end{array}
∂α∂H=eα∑wˉmiI+e−α∑wˉmiI−e−α∑wˉmi=0eα∑wˉmiI=e−α(∑wˉmi−∑wˉmiI)α+ln∑wˉmiI=−α+ln(∑wˉmi−∑wˉmiI)2α=ln(∑wˉmiI∑wˉmi−∑wˉmiI)α=21ln(∑wˉmiI∑wˉmi−1)
一般,令
e
m
=
∑
i
=
1
N
w
ˉ
m
i
I
∑
i
=
1
N
w
ˉ
m
i
=
∑
i
=
1
N
w
ˉ
m
i
[
[
y
i
≠
G
m
(
x
i
)
]
]
∑
i
=
1
N
w
ˉ
m
i
{e_m} = \frac{{\sum\limits_{i = 1}^N {{{\bar w}_{mi}}I} }}{{\sum\limits_{i = 1}^N {{{\bar w}_{mi}}} }} = \frac{{\sum\limits_{i = 1}^N {{{\bar w}_{mi}}\left[\kern-0.15em\left[ {{y_i} \ne {G_m}({x_i})} \right]\kern-0.15em\right]} }}{{\sum\limits_{i = 1}^N {{{\bar w}_{mi}}} }}
em=i=1∑Nwˉmii=1∑NwˉmiI=i=1∑Nwˉmii=1∑Nwˉmi[[yi̸=Gm(xi)]],则
α
\alpha
α为,
α
m
=
1
2
ln
(
1
−
e
m
e
m
)
{\alpha _m} = \frac{1}{2}\ln (\frac{{1 - {e_m}}}{{{e_m}}})
αm=21ln(em1−em)
最后,再来看一下每一轮样本权值的更新,因为
w
ˉ
m
i
=
exp
(
−
y
i
f
m
−
1
(
x
i
)
)
{\bar w_{mi}} = \exp ( - {y_i}{f_{m - 1}}({x_i}))
wˉmi=exp(−yifm−1(xi)),所以在第m+1轮有,
w
ˉ
m
+
1
,
i
=
exp
(
−
y
i
f
m
(
x
i
)
)
                
=
exp
(
−
y
i
(
f
m
−
1
(
x
i
)
+
α
m
G
m
(
x
i
)
)
)
                  
=
w
ˉ
m
i
exp
(
−
y
i
α
m
G
m
(
x
i
)
)
\begin{array}{l} {{\bar w}_{m + 1,i}} = \exp ( - {y_i}{f_m}({x_i}))\\\\ \;\;\;\;\;\;\;\;{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} = \exp ( - {y_i}({f_{m - 1}}({x_i}) + {\alpha _m}{G_m}({x_i})))\\\\ {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \;\;\;\;\;\;\;\;\; = {\kern 1pt} {{\bar w}_{mi}}\exp ( - {y_i}{\alpha _m}{G_m}({x_i})) \end{array}
wˉm+1,i=exp(−yifm(xi))=exp(−yi(fm−1(xi)+αmGm(xi)))=wˉmiexp(−yiαmGm(xi))
这里如果对
w
ˉ
m
i
{\bar w_{mi}}
wˉmi规范化,即,使得
∑
i
=
1
N
w
m
i
=
1
\sum\limits_{i = 1}^N {{w_{mi}} = 1}
i=1∑Nwmi=1 ,则有,
w
m
i
=
w
ˉ
m
i
∑
i
=
1
N
w
ˉ
m
i
{w_{mi}} = \frac{{{{\bar w}_{mi}}}}{{\sum\limits_{i = 1}^N {{{\bar w}_{mi}}} }}
wmi=i=1∑Nwˉmiwˉmi
那么,第m+1轮规范化后的样本权值为,
w
m
+
1
,
i
=
w
m
i
Z
m
exp
(
−
y
i
α
m
G
m
(
x
i
)
)
{w_{m + 1,i}} = \frac{{{w_{mi}}}}{{{Z_m}}}\exp ( - {y_i}{\alpha _m}{G_m}({x_i}))
wm+1,i=Zmwmiexp(−yiαmGm(xi))
其中
Z
m
=
∑
i
=
1
N
w
m
i
exp
(
−
y
i
α
m
G
m
(
x
i
)
)
{Z_m} = \sum\limits_{i = 1}^N {{w_{mi}}\exp ( - {y_i}{\alpha _m}{G_m}({x_i}))}
Zm=i=1∑Nwmiexp(−yiαmGm(xi))。
以上就是,AdaBoost算法的推导,那么写成算法形式为,
AdaBoost |
---|
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
}
T = \{ ({x_1},{y_1}),({x_2},{y_2}), \cdots ,({x_N},{y_N})\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)};其中
x
i
∈
χ
⊆
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
{x_i} \in \chi \subseteq {R^n},{y_i} \in Y = \{ - 1, + 1\}
xi∈χ⊆Rn,yi∈Y={−1,+1};弱学习算法
G
m
(
x
)
{G_m}(x)
Gm(x) 输出:最终分类器G(x) 1.初始化训练数据的权值分布 D 1 = ( w 11 , w 12 , ⋯   , w 1 i , ⋯   , w 1 N ) ,            w 1 i = 1 N , i = 1 , 2 , ⋯   , N {D_1} = ({w_{11}},{w_{12}}, \cdots ,{w_{1i}}, \cdots ,{w_{1N}}),\;\;\;\;\;{w_{1i}} = \frac{1}{N},i = 1,2, \cdots ,N D1=(w11,w12,⋯,w1i,⋯,w1N),w1i=N1,i=1,2,⋯,N 2.对 m = 1 , 2 , ⋯   , M m = 1,2, \cdots ,M m=1,2,⋯,M 2.1 使用具有权值分布 D m {D_m} Dm的训练数据集学习,得到基分类器 G m ( x ) : χ → { − 1 , + 1 } {G_m}(x):\chi \to \{ - 1, + 1\} Gm(x):χ→{−1,+1} 2.2 计算 G m ( x ) {G_m}(x) Gm(x)在训练集上的分类误差率 e m = ∑ i = 1 N w m i [ [ G m ( x i ) ≠ y i ] ] {e_m} = \sum\limits_{i = 1}^N {{w_{mi}}\left[\kern-0.15em\left[ {{G_m}({x_i}) \ne {y_i}} \right]\kern-0.15em\right]} em=i=1∑Nwmi[[Gm(xi)̸=yi]] 2.3 计算 G m ( x ) {G_m}(x) Gm(x)的系数 α m = 1 2 ln ( 1 − e m e m ) {\alpha _m} = \frac{1}{2}\ln (\frac{{1 - {e_m}}}{{{e_m}}}) αm=21ln(em1−em) 2.4 更新数据集的权值分布 D m + 1 = ( w m + 1 , 1 , ⋯   , w m + 1 , i , ⋯   , w m + 1 , N ) w m + 1 , i = w m i Z m exp ( − α m y i G m ( x i ) ) , i = 1 , 2 , ⋯   , N \begin{array}{l}{D_{m + 1}} = ({w_{m + 1,1}}, \cdots ,{w_{m + 1,i}}, \cdots ,{w_{m + 1,N}})\\\\{w_{m + 1,i}} = \frac{{{w_{mi}}}}{{{Z_m}}}\exp ( - {\alpha _m}{y_i}{G_m}({x_i})),i = 1,2, \cdots ,N\end{array} Dm+1=(wm+1,1,⋯,wm+1,i,⋯,wm+1,N)wm+1,i=Zmwmiexp(−αmyiGm(xi)),i=1,2,⋯,N其中, Z m {Z_m} Zm是规范化因子, Z m = ∑ i = 1 N w m i exp ( − α m y i G m ( x i ) ) {Z_m} = \sum\limits_{i = 1}^N {{w_{mi}}\exp ( - {\alpha _m}{y_i}{G_m}({x_i}))} Zm=i=1∑Nwmiexp(−αmyiGm(xi))它使 D m + 1 {D_{m + 1}} Dm+1成为了一个概率分布,即, ∑ i = 1 N w m i = 1 \sum\limits_{i = 1}^N {{w_{mi}} = 1} i=1∑Nwmi=1。 3.得到最终的分类器 G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x) = sign(f(x)) = sign(\sum\limits_{m = 1}^M {{\alpha _m}{G_m}(x)} ) G(x)=sign(f(x))=sign(m=1∑MαmGm(x)) |
最后,来看一下有关AdaBoost算法的一些含义解释。
首先,在刚开始的时候,假设训练集具有均匀的权值分布,即,训练集里的每条样本数据都具有相同的权值,为
1
N
\frac{1}{N}
N1。这能保证在原始数据上学习得到基本分类器
G
1
(
x
)
{G_1}(x)
G1(x)。
而后的每一轮迭代,改变的其实只有两个量,一个是样本权重
w
m
i
{w_{mi}}
wmi,另一个是基本学习器的系数(权重)
α
m
{\alpha _m}
αm。在每一轮
m
=
1
,
2
,
⋯
 
,
M
m = 1,2, \cdots ,M
m=1,2,⋯,M顺次地执行下列操作:
1.使用当前加权的训练集
D
m
{D_m}
Dm,学习基本分类器
G
m
(
x
)
{G_m}(x)
Gm(x)。其实该步骤更新了
G
m
(
x
)
{G_m}(x)
Gm(x)里的参数
γ
m
{\gamma _m}
γm。
2.计算
G
m
(
x
)
{G_m}(x)
Gm(x)在加权数据集
D
m
{D_m}
Dm上的分类误差率,
e
m
=
∑
i
=
1
N
w
m
i
[
[
G
m
(
x
i
)
≠
y
i
]
]
=
∑
G
m
(
x
i
)
≠
y
i
w
m
i
{e_m} = \sum\limits_{i = 1}^N {{w_{mi}}\left[\kern-0.15em\left[ {{G_m}({x_i}) \ne {y_i}} \right]\kern-0.15em\right]} = \sum\limits_{{G_m}({x_i}) \ne {y_i}} {{w_{mi}}}
em=i=1∑Nwmi[[Gm(xi)̸=yi]]=Gm(xi)̸=yi∑wmi
w
m
i
{w_{mi}}
wmi表示第m轮中第i个样本的权值,因为是规范化之后的,所以
∑
i
=
1
N
w
m
i
=
1
\sum\limits_{i = 1}^N {{w_{mi}} = 1}
i=1∑Nwmi=1。则这里的分类误差率表示的是被
G
m
(
x
)
{G_m}(x)
Gm(x)误分类的样本权值之和。
3.计算基本分类器
G
m
(
x
)
{G_m}(x)
Gm(x)的系数
α
m
{\alpha _m}
αm,
α
m
=
1
2
ln
(
1
−
e
m
e
m
)
{\alpha _m} = \frac{1}{2}\ln (\frac{{1 - {e_m}}}{{{e_m}}})
αm=21ln(em1−em)
图像如下图,
这里的
α
m
{\alpha _m}
αm表示的是 在最终分类器中的重要程度。由函数图像可知,当
e
m
≤
1
2
{e_m} \le \frac{1}{2}
em≤21时,
α
m
≥
0
{\alpha _m} \ge 0
αm≥0,并且
α
m
{\alpha _m}
αm随
e
m
{e_m}
em的减小而增大,所以分类误差率越小的基分类器在最终分类器中的作用就越大。
4.更新样本集的权值分布,为下一轮做准备,这里的权值更新式
w
m
+
1
,
i
=
w
m
i
Z
m
exp
(
−
α
m
y
i
G
m
(
x
i
)
)
{w_{m + 1,i}} = \frac{{{w_{mi}}}}{{{Z_m}}}\exp ( - {\alpha _m}{y_i}{G_m}({x_i}))
wm+1,i=Zmwmiexp(−αmyiGm(xi))可以改写成,
w
m
+
1
,
i
=
{
w
m
i
Z
m
e
−
α
m
,
        
G
m
(
x
i
)
≠
y
i
w
m
i
Z
m
e
α
m
,
        
G
m
(
x
i
)
=
y
i
{w_{m + 1,i}} = \left\{ {\begin{array}{} {\frac{{{w_{mi}}}}{{{Z_m}}}{e^{ - {\alpha _m}}},\;\;\;\;{G_m}({x_i}) \ne {y_i}}\\\\ {\frac{{{w_{mi}}}}{{{Z_m}}}{e^{{\alpha _m}}},\;\;\;\;{G_m}({x_i}) = {y_i}} \end{array}} \right.
wm+1,i=⎩⎨⎧Zmwmie−αm,Gm(xi)̸=yiZmwmieαm,Gm(xi)=yi
由上式可知,被基本分类器
G
m
(
x
)
{G_m}(x)
Gm(x)误分类的样本的权值得以扩大,而被正确分类的样本的权值得以缩小。其中,误分类样本的权值被放大了
e
2
α
=
1
−
e
m
e
m
{e^{2\alpha }} = \frac{{1 - {e_m}}}{{{e_m}}}
e2α=em1−em倍。这就说明,误分类的样本在下一轮学习中起到了更大的作用。不改变所给的训练集,而不断改变样本的权值分布,使得训练集在基本分类器中的学习起到了不同的作用,这其实就是统计学里的boostrapping操作,即,在一个样本集里进行N次有放回的抽样,这也是AdaBoost的一个特点。
最终分类器是由M个基本分类器线性组合而成,这是AdaBoost的另一个特点。系数
α
m
{\alpha _m}
αm表示了基本分类器
G
m
(
x
)
{G_m}(x)
Gm(x)的重要性,所有的
α
m
{\alpha _m}
αm之和并不为1。最终的分类器f(x)的符号决定了实例所属的类别,而绝对值表示了分类的确信度。