在集成學習方法之Bagging,Boosting,Stacking 篇章中,我們談論boosting框架的原理,在boosting系列算法中,AdaBoost是著名的算法之一。AdaBoost是英文"Adaptive Boosting"(自適應增強)的縮寫,由Yoav Freund和Robert Schapire在1995年提出。 今天我們就來探討下AdaBoost分類算法的原理,本篇我們先介紹AdaBoost算法;然後通過誤差分析探討AdaBoost爲什麼能提升模型的學習精度;並且從前向分步加法模型角度解釋AdaBoost;最後對AdaBoost的算法優缺點進行一個總結。
1)從boosting到AdaBoost算法
集成原理中,我們提到的boosting框架的思想是選擇同質的基分類器,讓基分類器之間按照順序進行訓練,並讓每個基分類器都嘗試去修正前面的分類。既然這樣,怎樣才能讓同質的基分類器能夠修正前面的分類?或者說怎樣才能讓同質的基分類器之間保持「互助」呢? AdaBoost的做法是,讓前一個基分類器
f
t
−
1
(
x
)
f_{t-1}(x)
f t − 1 ( x ) 在當前基分類器
f
t
(
x
)
f_t(x)
f t ( x ) 的訓練集上的效果很差(和我們隨機瞎猜一樣),這樣
f
t
(
x
)
f_t(x)
f t ( x ) 就能修正
f
t
−
1
(
x
)
f_{t-1}(x)
f t − 1 ( x ) 的分類誤差,
f
t
(
x
)
f_t(x)
f t ( x ) 和
f
t
−
1
(
x
)
f_{t-1}(x)
f t − 1 ( x ) 之間也就產生了「互助」。 AdaBoost的具體做法是,通過提高被前一輪基分類器
f
t
−
1
(
x
)
f_{t-1}(x)
f t − 1 ( x ) 分類錯誤的樣本的權值,降低被正確分類樣本的權值,使得上一個基分類器
f
t
−
1
(
x
)
f_{t-1}(x)
f t − 1 ( x ) 在更新權值後的訓練集上的錯誤率
ϵ
t
−
1
\epsilon_{t-1}
ϵ t − 1 增大到0.5。(再在更新權值後的訓練集上訓練基分類器
f
t
(
x
)
f_t(x)
f t ( x ) ,那
f
t
(
x
)
f_t(x)
f t ( x ) 必能和
f
t
−
1
(
x
)
f_{t-1}(x)
f t − 1 ( x ) 產生互助。)
2)AdaBoost算法
下面我們在二分類問題上介紹AdaBoost算法。假如給定訓練數據集
T
=
{
(
x
i
,
y
i
)
}
i
=
1
n
T=\left\{ (x^i,y^i) \right\}^n_{i=1}
T = { ( x i , y i ) } i = 1 n ,
x
i
∈
R
d
x^i\in R^d
x i ∈ R d ,
y
i
∈
{
−
1
,
1
}
y^i\in\left\{ -1,1\right\}
y i ∈ { − 1 , 1 } 樣本權值爲
w
i
n
w_i^n
w i n ,誤差率
ϵ
i
\epsilon_i
ϵ i 。在訓練數據集
T
T
T 上訓練第一個基分類器
f
1
(
x
)
f_1(x)
f 1 ( x ) ,其錯誤率爲
ϵ
1
,
ϵ
1
<
0.5
\epsilon_1,\epsilon_1 < 0.5
ϵ 1 , ϵ 1 < 0 . 5 (起碼比瞎猜要好一些)
ϵ
1
=
∑
n
w
1
n
δ
(
(
f
1
(
x
n
)
≠
y
^
n
)
Z
1
Z
1
=
∑
n
w
1
n
\epsilon_1=\frac{\sum_nw_1^n\delta((f_1(x^n)\neq {\hat y}^n)}{Z_1} \qquad Z_1 = \sum_nw_1^n
ϵ 1 = Z 1 ∑ n w 1 n δ ( ( f 1 ( x n ) = y ^ n ) Z 1 = n ∑ w 1 n 更新樣本的權值(權值爲
w
2
n
w_2^n
w 2 n )後的訓練集爲
T
′
{T}'
T ′ ,使得
f
1
(
x
)
f_1(x)
f 1 ( x ) 在
T
′
{T}'
T ′ 分類效果等同於隨機瞎猜(
ϵ
=
0.5
\epsilon=0.5
ϵ = 0 . 5 )。用數學語言表示即爲
∑
n
w
2
n
δ
(
(
f
1
(
x
n
)
≠
y
^
n
)
Z
2
=
0.5
Z
2
=
∑
n
w
2
n
\frac{\sum_nw_2^n\delta((f_1(x^n)\neq {\hat y}^n)}{Z_2}=0.5 \qquad Z_2 = \sum_nw_2^n
Z 2 ∑ n w 2 n δ ( ( f 1 ( x n ) = y ^ n ) = 0 . 5 Z 2 = n ∑ w 2 n 那麼樣本權重如何更新呢?AdaBoost具體做法是,減小
f
1
(
x
)
f_1(x)
f 1 ( x ) 分類正確的樣本的權值,權值除以一個常數
d
d
d ,即
w
1
n
d
1
\frac{w_1^n}{d_1}
d 1 w 1 n ;增大
f
1
(
x
)
f_1(x)
f 1 ( x ) 分類錯誤的樣本的權值,權值乘以一個常數
d
d
d ,即
w
1
n
d
1
w_1^nd_1
w 1 n d 1 。用數學語言表示即爲
{
w
2
n
=
w
1
n
d
1
i
f
f
1
(
x
n
)
≠
y
^
n
)
w
2
n
=
w
1
n
d
1
i
f
f
1
(
x
n
)
=
y
^
n
)
\begin{cases} w_2^n = w_1^nd_1 \qquad if \ f_1(x^n)\neq {\hat y}^n)\\ w_2^n = \frac{w_1^n}{d_1} \qquad if \ f_1(x^n)= {\hat y}^n)\\ \end{cases}
{ w 2 n = w 1 n d 1 i f f 1 ( x n ) = y ^ n ) w 2 n = d 1 w 1 n i f f 1 ( x n ) = y ^ n ) 下面我們再回到下式中來,
∑
n
w
2
n
δ
(
(
f
1
(
x
n
)
≠
y
^
n
)
Z
2
=
0.5
\frac{\sum_nw_2^n\delta((f_1(x^n)\neq {\hat y}^n)}{Z_2}=0.5
Z 2 ∑ n w 2 n δ ( ( f 1 ( x n ) = y ^ n ) = 0 . 5
其中,
Z
2
=
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
d
1
+
∑
f
1
(
x
n
)
=
y
^
n
w
1
n
d
1
Z_2=\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n d_1+\sum_{f_1(x^n)= {\hat y}^n} \frac{w_1^n}{d_1}
Z 2 = ∑ f 1 ( x n ) = y ^ n w 1 n d 1 + ∑ f 1 ( x n ) = y ^ n d 1 w 1 n ;當
f
1
(
x
n
)
≠
y
^
n
f_1(x^n)\neq {\hat y}^n
f 1 ( x n ) = y ^ n 時,
w
2
n
=
w
1
n
d
1
w_2^n = w_1^nd_1
w 2 n = w 1 n d 1 。 將上面兩式帶入得:
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
d
1
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
d
1
+
∑
f
1
(
x
n
)
=
y
^
n
w
1
n
d
1
=
0.5
\frac{\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n d_1}{\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n d_1+\sum_{f_1(x^n)= {\hat y}^n} \frac{w_1^n}{d_1}}=0.5
∑ f 1 ( x n ) = y ^ n w 1 n d 1 + ∑ f 1 ( x n ) = y ^ n d 1 w 1 n ∑ f 1 ( x n ) = y ^ n w 1 n d 1 = 0 . 5
∑
f
1
(
x
n
)
=
y
^
n
w
1
n
d
1
=
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
d
1
\sum_{f_1(x^n)= {\hat y}^n} \frac{w_1^n}{d_1}=\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n d_1
f 1 ( x n ) = y ^ n ∑ d 1 w 1 n = f 1 ( x n ) = y ^ n ∑ w 1 n d 1
又因爲
ϵ
1
=
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
Z
1
⇒
ϵ
1
Z
1
=
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
\epsilon_1=\frac{\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n}{Z_1}\Rightarrow \epsilon_1Z_1=\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n
ϵ 1 = Z 1 ∑ f 1 ( x n ) = y ^ n w 1 n ⇒ ϵ 1 Z 1 = f 1 ( x n ) = y ^ n ∑ w 1 n
1
−
ϵ
1
=
∑
f
1
(
x
n
)
=
y
^
n
w
1
n
Z
1
⇒
(
1
−
ϵ
1
)
Z
1
=
∑
f
1
(
x
n
)
=
y
^
n
w
1
n
1-\epsilon_1=\frac{\sum_{f_1(x^n)= {\hat y}^n} w_1^n}{Z_1}\Rightarrow (1-\epsilon_1)Z_1=\sum_{f_1(x^n)= {\hat y}^n} w_1^n
1 − ϵ 1 = Z 1 ∑ f 1 ( x n ) = y ^ n w 1 n ⇒ ( 1 − ϵ 1 ) Z 1 = f 1 ( x n ) = y ^ n ∑ w 1 n 因此,
∑
f
1
(
x
n
)
=
y
^
n
w
1
n
d
1
=
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
d
1
\sum_{f_1(x^n)= {\hat y}^n} \frac{w_1^n}{d_1}=\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n d_1
f 1 ( x n ) = y ^ n ∑ d 1 w 1 n = f 1 ( x n ) = y ^ n ∑ w 1 n d 1
1
d
1
∑
f
1
(
x
n
)
=
y
^
n
w
1
n
=
d
1
∑
f
1
(
x
n
)
≠
y
^
n
w
1
n
\frac{1}{d_1}\sum_{f_1(x^n)= {\hat y}^n} {w_1^n}=d_1\sum_{f_1(x^n)\neq {\hat y}^n} w_1^n
d 1 1 f 1 ( x n ) = y ^ n ∑ w 1 n = d 1 f 1 ( x n ) = y ^ n ∑ w 1 n
1
d
1
(
1
−
ϵ
1
)
Z
1
=
d
1
ϵ
1
Z
1
\frac{1}{d_1}(1-\epsilon_1)Z_1=d_1\epsilon_1Z_1
d 1 1 ( 1 − ϵ 1 ) Z 1 = d 1 ϵ 1 Z 1
d
1
=
1
−
ϵ
1
ϵ
1
d_1=\sqrt{\frac{1-\epsilon_1 }{\epsilon_1}}
d 1 = ϵ 1 1 − ϵ 1
其中
d
1
>
1
d_1>1
d 1 > 1 (因爲
ϵ
1
<
0.5
\epsilon_1<0.5
ϵ 1 < 0 . 5 )。 因此AdaBoost每次更新權值表達式爲:
{
w
t
+
1
n
=
w
t
n
1
−
ϵ
t
ϵ
t
=
w
t
n
e
x
p
(
L
n
(
1
−
ϵ
t
ϵ
t
)
)
i
f
f
t
(
x
n
)
≠
y
^
n
)
w
t
+
1
n
=
w
t
n
1
−
ϵ
t
ϵ
t
=
w
t
n
e
x
p
(
−
L
n
(
1
−
ϵ
t
ϵ
t
)
)
i
f
f
t
(
x
n
)
=
y
^
n
)
\begin{cases} w_{t+1}^n = w_t^n\sqrt{\frac{1-\epsilon_t }{\epsilon_t}}=w_t^nexp(Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}})) \qquad if \ f_t(x^n)\neq {\hat y}^n)\\ w_{t+1}^n = \frac{w_t^n}{\sqrt{\frac{1-\epsilon_t }{\epsilon_t}}}=w_t^nexp(-Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}})) \qquad if \ f_t(x^n)= {\hat y}^n)\\ \end{cases}
⎩ ⎪ ⎨ ⎪ ⎧ w t + 1 n = w t n ϵ t 1 − ϵ t
= w t n e x p ( L n ( ϵ t 1 − ϵ t
) ) i f f t ( x n ) = y ^ n ) w t + 1 n = ϵ t 1 − ϵ t
w t n = w t n e x p ( − L n ( ϵ t 1 − ϵ t
) ) i f f t ( x n ) = y ^ n ) 令
α
t
=
L
n
(
1
−
ϵ
t
ϵ
t
)
\alpha_t= Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}})
α t = L n ( ϵ t 1 − ϵ t
) ,
α
t
\alpha_t
α t 即爲基分類器
f
t
(
x
)
f_t(x)
f t ( x ) 的權重係數。當
ϵ
t
=
0.1
\epsilon_t =0.1
ϵ t = 0 . 1 時,
α
t
=
1.1
\alpha_t=1.1
α t = 1 . 1 ,當
ϵ
t
=
0.4
\epsilon_t =0.4
ϵ t = 0 . 4 時,
α
t
=
0.2
\alpha_t=0.2
α t = 0 . 2 。這表明,當基分類器分類誤差率越小時,基分類器的權重越大,在最終表決時起的作用也越大;當基分類器分類誤差率越大時,基分類器的權重越小,在最終表決時起的作用也越小。將
α
t
\alpha_t
α t 帶入上式,樣本權值更新表達式變成:
{
w
t
+
1
n
=
w
t
n
1
−
ϵ
t
ϵ
t
=
w
t
n
e
x
p
(
α
t
)
i
f
f
t
(
x
n
)
≠
y
^
n
)
w
t
+
1
n
=
w
t
n
1
−
ϵ
t
ϵ
t
=
w
t
n
e
x
p
(
−
α
t
)
i
f
f
t
(
x
n
)
=
y
^
n
)
\begin{cases} w_{t+1}^n = w_t^n\sqrt{\frac{1-\epsilon_t }{\epsilon_t}}=w_t^nexp(\alpha_t) \qquad if \ f_t(x^n)\neq {\hat y}^n)\\ w_{t+1}^n = \frac{w_t^n}{\sqrt{\frac{1-\epsilon_t }{\epsilon_t}}}=w_t^nexp(-\alpha_t) \qquad if \ f_t(x^n)= {\hat y}^n)\\ \end{cases}
⎩ ⎨ ⎧ w t + 1 n = w t n ϵ t 1 − ϵ t
= w t n e x p ( α t ) i f f t ( x n ) = y ^ n ) w t + 1 n = ϵ t 1 − ϵ t
w t n = w t n e x p ( − α t ) i f f t ( x n ) = y ^ n ) 爲了方便表示,將上式兩項合併成一項得,權值更新的表達式爲:
w
t
+
1
n
=
w
t
n
e
x
p
(
−
y
^
n
f
t
(
x
n
)
α
t
)
w_{t+1}^n =w_t^nexp(-{\hat y}^nf_t(x^n)\alpha_t)
w t + 1 n = w t n e x p ( − y ^ n f t ( x n ) α t ) 當
f
t
(
x
n
)
=
y
^
n
f_t(x^n)= {\hat y}^n
f t ( x n ) = y ^ n 時,
y
^
n
f
t
(
x
n
)
{\hat y}^nf_t(x^n)
y ^ n f t ( x n ) 爲+1,當
f
t
(
x
n
)
≠
y
^
n
\ f_t(x^n)\neq {\hat y}^n
f t ( x n ) = y ^ n 時,
y
^
n
f
t
(
x
n
)
{\hat y}^nf_t(x^n)
y ^ n f t ( x n ) 爲-1,以上兩式爲等價變換。 以上就是AdaBoost算法如何做樣本權值更新的整個推導過程。
下面對二元分類AdaBoost算法流程進行總結 : 輸入:訓練數據集
T
=
{
(
x
i
,
y
i
)
}
i
=
1
N
T=\left\{ (x^i,y^i) \right\}^N_{i=1}
T = { ( x i , y i ) } i = 1 N ,
x
i
∈
R
d
x^i\in R^d
x i ∈ R d ,
y
i
∈
{
−
1
,
1
}
y^i\in\left\{ -1,1\right\}
y i ∈ { − 1 , 1 } 輸出:最終的分類器
H
(
x
)
H(x)
H ( x ) ①初始化訓練數據的權值(權值相等)
w
1
n
=
1
w_1^n=1
w 1 n = 1 ②
f
o
r
t
=
1...
T
:
for \ t=1...T:
f o r t = 1 . . . T :
在權值爲
{
w
t
1
,
w
t
2
.
.
.
w
t
N
}
\left\{ w_t^1,w_t^2...w_t^N\right\}
{ w t 1 , w t 2 . . . w t N } 的訓練機上訓練基分類器
f
t
(
x
)
f_t(x)
f t ( x )
計算
f
t
(
x
)
f_t(x)
f t ( x ) 在訓練數據集上的分類誤差率
ϵ
t
\epsilon_t
ϵ t
ϵ
t
=
P
(
f
t
(
x
n
≠
y
^
n
)
)
=
∑
n
w
t
n
δ
(
f
t
(
x
n
≠
y
^
n
)
)
\epsilon_t=P(f_t(x^n\neq {\hat y}^n))=\sum_nw_t^n\delta (f_t(x^n\neq {\hat y}^n))
ϵ t = P ( f t ( x n = y ^ n ) ) = n ∑ w t n δ ( f t ( x n = y ^ n ) )
計算
f
t
(
x
)
f_t(x)
f t ( x ) 的權值係數
α
t
=
L
n
(
1
−
ϵ
t
ϵ
t
)
\alpha_t= Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}})
α t = L n ( ϵ t 1 − ϵ t
)
f
o
r
n
=
1
,
2....
N
:
for \ n=1,2....N:
f o r n = 1 , 2 . . . . N :
i
f
x
n
被
f
t
(
x
)
分
類
錯
誤
:
if \ x^n 被f_t(x)分類錯誤:
i f x n 被 f t ( x ) 分 類 錯 誤 :
w
t
+
1
n
=
w
t
n
1
−
ϵ
t
ϵ
t
=
w
t
n
e
x
p
(
α
t
)
w_{t+1}^n= w_t^n\sqrt{\frac{1-\epsilon_t }{\epsilon_t}}=w_t^nexp(\alpha_t)
w t + 1 n = w t n ϵ t 1 − ϵ t
= w t n e x p ( α t )
e
l
s
e
x
n
else \ x^n
e l s e x n 被
f
t
(
x
)
f_t(x)
f t ( x ) 分類正確:
w
t
+
1
n
=
w
t
n
1
−
ϵ
t
ϵ
t
=
w
t
n
e
x
p
(
−
α
t
)
w_{t+1}^n = \frac{w_t^n}{\sqrt{\frac{1-\epsilon_t }{\epsilon_t}}}=w_t^nexp(-\alpha_t)
w t + 1 n = ϵ t 1 − ϵ t
w t n = w t n e x p ( − α t ) ③構建基分類器線性組合
f
(
x
)
=
∑
T
α
t
f
t
(
x
)
f(x)=\sum_T\alpha_tf_t(x)
f ( x ) = T ∑ α t f t ( x ) 得到最終的分類器
H
(
x
)
H(x)
H ( x )
H
(
x
)
=
s
i
g
n
(
∑
T
α
t
f
t
(
x
)
)
H(x)=sign(\sum_T\alpha_tf_t(x))
H ( x ) = s i g n ( T ∑ α t f t ( x ) )
3)AdaBoost的訓練誤差分析
AdaBoost最基本的性質是它能在學習的過程中不斷減少訓練誤差,且訓練誤差以指數速率下降,且無限逼近於0。具體的數學表達式爲:
E
r
r
o
r
R
a
t
e
=
1
N
∑
δ
(
y
^
n
g
(
x
)
<
0
)
≤
1
N
∑
n
e
x
p
(
−
y
^
n
g
(
x
)
)
=
1
N
Z
T
+
1
Error Rate=\frac{1}{N}\sum \delta (\hat y^n g(x)<0)\leq \frac{1}{N}\sum_nexp(-\hat y^n g(x))=\frac{1}{N}Z_{T+1}
E r r o r R a t e = N 1 ∑ δ ( y ^ n g ( x ) < 0 ) ≤ N 1 n ∑ e x p ( − y ^ n g ( x ) ) = N 1 Z T + 1
1
N
Z
T
+
1
=
∏
t
=
1
T
2
ϵ
t
(
1
−
ϵ
t
)
=
∏
t
=
1
T
(
1
−
4
γ
t
2
)
≤
e
x
p
(
−
2
∑
t
=
1
T
γ
t
2
)
\frac{1}{N}Z_{T+1}=\prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _t)}=\prod _{t=1}^T\sqrt{(1-4\gamma _t^2)}\leq exp(-2\sum _{t=1}^T\gamma _t^2)
N 1 Z T + 1 = t = 1 ∏ T 2 ϵ t ( 1 − ϵ t )
= t = 1 ∏ T ( 1 − 4 γ t 2 )
≤ e x p ( − 2 t = 1 ∑ T γ t 2 ) 其中,
γ
t
=
1
2
−
ϵ
t
\gamma_t=\frac{1}{2}-\epsilon _t
γ t = 2 1 − ϵ t 。
下面我們就AdaBoost做二元分類的情況,對這一結論分步進行證明。證明過程會涉及較多的數學公式的推導,對證明不感興趣的小夥伴可以直接跳到第5部分AdaBoost算法總結。 首先我們證明:
E
r
r
o
r
R
a
t
e
=
1
N
∑
δ
(
y
^
n
g
(
x
)
<
0
)
≤
1
N
e
x
p
(
−
y
^
n
g
(
x
)
)
Error Rate=\frac{1}{N}\sum \delta (\hat y^n g(x)<0)\leq \frac{1}{N}exp(-\hat y^n g(x))
E r r o r R a t e = N 1 ∑ δ ( y ^ n g ( x ) < 0 ) ≤ N 1 e x p ( − y ^ n g ( x ) )
從上一部分內容可知,訓練數據集
T
=
{
(
x
i
,
y
i
)
}
i
=
1
n
T=\left\{ (x^i,y^i) \right\}^n_{i=1}
T = { ( x i , y i ) } i = 1 n ,
x
i
∈
R
d
x^i\in R^d
x i ∈ R d ,
y
i
∈
{
−
1
,
1
}
y^i\in\left\{ -1,1\right\}
y i ∈ { − 1 , 1 } ,最終的分類器
H
(
x
)
,
α
t
H(x),\alpha_t
H ( x ) , α t 的表達式爲
H
(
x
)
=
s
i
g
n
(
∑
t
=
1
T
α
t
f
t
(
x
)
)
α
t
=
L
n
(
1
−
ϵ
t
ϵ
t
)
H(x)=sign(\sum_{t=1}^T\alpha_tf_t(x)) \qquad \alpha_t = Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}})
H ( x ) = s i g n ( t = 1 ∑ T α t f t ( x ) ) α t = L n ( ϵ t 1 − ϵ t
) 分類器
H
(
x
)
H(x)
H ( x ) 的分類誤差率爲
E
r
r
o
r
R
a
t
e
Error Rate
E r r o r R a t e 等於分類錯誤的樣本所佔總樣本的比例,用數學語言表達即爲,
E
r
r
o
r
R
a
t
e
=
1
N
∑
δ
(
H
(
x
n
)
≠
(
y
^
)
n
)
Error Rate=\frac{1}{N}\sum \delta (H(x^n)\neq (\hat y)^n)
E r r o r R a t e = N 1 ∑ δ ( H ( x n ) = ( y ^ ) n ) 其中,
H
(
x
n
)
≠
(
y
^
)
n
H(x^n)\neq (\hat y)^n
H ( x n ) = ( y ^ ) n 表示模型的預測值和真實值異號,因此,
E
r
r
o
r
R
a
t
e
=
1
N
∑
δ
(
y
^
n
∑
t
=
1
T
α
t
f
t
(
x
)
<
0
)
Error Rate=\frac{1}{N}\sum \delta (\hat y^n \sum_{t=1}^T\alpha_tf_t(x)<0)
E r r o r R a t e = N 1 ∑ δ ( y ^ n t = 1 ∑ T α t f t ( x ) < 0 ) 令
g
(
x
)
=
∑
t
=
1
T
α
t
f
t
(
x
)
g(x)=\sum_{t=1}^T\alpha_tf_t(x)
g ( x ) = ∑ t = 1 T α t f t ( x ) ,因此,
E
r
r
o
r
R
a
t
e
=
1
N
∑
δ
(
y
^
n
g
(
x
)
<
0
)
Error Rate=\frac{1}{N}\sum \delta (\hat y^n g(x)<0)
E r r o r R a t e = N 1 ∑ δ ( y ^ n g ( x ) < 0 ) 下面我們開始證明:
E
r
r
o
r
R
a
t
e
=
1
N
∑
δ
(
y
^
n
g
(
x
)
<
0
)
≤
1
N
e
x
p
(
−
y
^
n
g
(
x
)
)
Error Rate =\frac{1}{N}\sum \delta (\hat y^n g(x)<0)\leq \frac{1}{N}exp(-\hat y^n g(x))
E r r o r R a t e = N 1 ∑ δ ( y ^ n g ( x ) < 0 ) ≤ N 1 e x p ( − y ^ n g ( x ) ) 其中
δ
(
y
^
n
g
(
x
)
<
0
)
\delta (\hat y^n g(x)<0)
δ ( y ^ n g ( x ) < 0 ) 爲01損失函數,
e
x
p
(
−
y
^
n
g
(
x
)
)
exp(-\hat y^n g(x))
e x p ( − y ^ n g ( x ) ) 爲指數損失函數。畫出函數圖像很容易發現上式不等式成立: 下面我們證明
E
r
r
o
r
R
a
t
e
≤
1
N
∑
n
e
x
p
(
−
y
^
n
g
(
x
)
)
=
1
N
Z
T
+
1
Error Rate\leq \frac{1}{N}\sum_nexp(-\hat y^n g(x))=\frac{1}{N}Z_{T+1}
E r r o r R a t e ≤ N 1 n ∑ e x p ( − y ^ n g ( x ) ) = N 1 Z T + 1 已知
g
(
x
)
=
∑
t
=
1
T
α
t
f
t
(
x
)
g(x)=\sum_{t=1}^T\alpha_tf_t(x)
g ( x ) = ∑ t = 1 T α t f t ( x ) (上面我們定義的等式)。且
Z
t
+
1
Z_{t+1}
Z t + 1 爲基分類器
f
t
+
1
(
x
)
f_{t+1}(x)
f t + 1 ( x ) 所有訓練樣本的權重之和,用數學語言表示,
Z
t
+
1
=
∑
n
w
T
+
1
n
Z_{t+1}=\sum _nw_{T+1}^n
Z t + 1 = ∑ n w T + 1 n
=
∑
n
w
T
n
e
x
p
(
−
y
^
n
f
t
(
x
n
)
α
t
)
=\sum _nw_{T}^nexp(-\hat y^nf_t(x^n)\alpha_t)
= ∑ n w T n e x p ( − y ^ n f t ( x n ) α t ) (權值更新公式)
=
∑
n
∏
t
=
1
T
e
x
p
(
−
y
^
n
f
t
(
x
n
)
α
t
)
=\sum _n\prod _{t=1}^Texp(-\hat y^nf_t(x^n)\alpha_t)
= ∑ n ∏ t = 1 T e x p ( − y ^ n f t ( x n ) α t )
=
∑
n
e
x
p
(
−
y
^
n
∑
t
=
1
T
f
t
(
x
n
)
α
t
)
=\sum _nexp(-\hat y^n\sum _{t=1}^Tf_t(x^n)\alpha_t)
= ∑ n e x p ( − y ^ n ∑ t = 1 T f t ( x n ) α t ) (連乘符號
∏
\prod
∏ ,放到指數
e
x
p
exp
e x p 中變成求和
∑
\sum
∑ )
=
∑
n
e
x
p
(
−
y
^
n
g
(
x
n
)
)
=\sum _nexp(-\hat y^ng(x^n))
= ∑ n e x p ( − y ^ n g ( x n ) ) 因此,
E
r
r
o
r
R
a
t
e
≤
1
N
∑
n
e
x
p
(
−
y
^
n
g
(
x
)
)
=
1
N
Z
T
+
1
Error Rate\leq \frac{1}{N}\sum_nexp(-\hat y^n g(x))=\frac{1}{N}Z_{T+1}
E r r o r R a t e ≤ N 1 n ∑ e x p ( − y ^ n g ( x ) ) = N 1 Z T + 1 已知
α
t
=
L
n
(
1
−
ϵ
t
ϵ
t
)
\alpha_t = Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}})
α t = L n ( ϵ t 1 − ϵ t
) ,下面我們證明
E
r
r
o
r
R
a
t
e
≤
1
N
Z
T
+
1
=
∏
t
=
1
T
2
ϵ
t
(
1
−
ϵ
t
)
Error Rate\leq \frac{1}{N}Z_{T+1}=\prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _t)}
E r r o r R a t e ≤ N 1 Z T + 1 = t = 1 ∏ T 2 ϵ t ( 1 − ϵ t )
Z
t
+
1
Z_{t+1}
Z t + 1 爲基分類器
f
t
+
1
(
x
)
f_{t+1}(x)
f t + 1 ( x ) 所有訓練樣本的權重之和,它是由上一輪權值
Z
t
Z_{t}
Z t 更新而來的,被分類錯誤的樣本權值增大,被分類正確的樣本權值減小。 且
Z
1
=
N
Z_1=N
Z 1 = N ,因此,
Z
T
+
1
=
Z
t
ϵ
t
e
x
p
(
α
t
)
+
Z
t
(
1
−
ϵ
t
)
e
x
p
(
−
α
t
)
Z_{T+1}=Z_t \epsilon _{t}exp(\alpha _{t})+Z_t(1-\epsilon _{t})exp(-\alpha _{t})
Z T + 1 = Z t ϵ t e x p ( α t ) + Z t ( 1 − ϵ t ) e x p ( − α t )
=
Z
t
ϵ
t
1
−
ϵ
t
ϵ
t
+
Z
t
(
1
−
ϵ
t
)
ϵ
t
1
−
ϵ
t
=Z_t \epsilon _{t}\sqrt{\frac{1-\epsilon _{t}}{\epsilon _{t}}}+Z_t(1-\epsilon _{t})\sqrt{\frac{\epsilon _{t}}{1-\epsilon _{t}}}
= Z t ϵ t ϵ t 1 − ϵ t
+ Z t ( 1 − ϵ t ) 1 − ϵ t ϵ t
=
2
Z
t
ϵ
t
(
1
−
ϵ
t
)
=2Z_t\sqrt{\epsilon _{t}(1-\epsilon _{t})}
= 2 Z t ϵ t ( 1 − ϵ t )
=
N
∏
t
=
1
T
2
ϵ
t
(
1
−
ϵ
t
)
=N\prod _{t=1}^T2\sqrt{\epsilon _{t}(1-\epsilon _{t})}
= N ∏ t = 1 T 2 ϵ t ( 1 − ϵ t )
因此,
E
r
r
o
r
R
a
t
e
≤
1
N
Z
T
+
1
=
∏
t
=
1
T
2
ϵ
t
(
1
−
ϵ
t
)
Error Rate\leq \frac{1}{N}Z_{T+1}=\prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _t)}
E r r o r R a t e ≤ N 1 Z T + 1 = t = 1 ∏ T 2 ϵ t ( 1 − ϵ t )
由於
ϵ
t
<
0.5
\epsilon _t<0.5
ϵ t < 0 . 5 ,因此
2
ϵ
t
(
1
−
ϵ
t
)
≤
1
2\sqrt{\epsilon _t(1-\epsilon _t)}\leq 1
2 ϵ t ( 1 − ϵ t )
≤ 1 ,所以AdaBoost的分類誤差率是不斷的再減小的。 下面我們證明
∏
t
=
1
T
2
ϵ
t
(
1
−
ϵ
t
)
=
∏
t
=
1
T
(
1
−
4
γ
t
2
)
≤
e
x
p
(
−
2
∑
t
=
1
T
γ
t
2
)
\prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _t)}=\prod _{t=1}^T\sqrt{(1-4\gamma _t^2)}\leq exp(-2\sum _{t=1}^T\gamma _t^2)
t = 1 ∏ T 2 ϵ t ( 1 − ϵ t )
= t = 1 ∏ T ( 1 − 4 γ t 2 )
≤ e x p ( − 2 t = 1 ∑ T γ t 2 )
∏
t
=
1
T
2
ϵ
t
(
1
−
ϵ
t
)
\prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _t)}
∏ t = 1 T 2 ϵ t ( 1 − ϵ t )
=
∏
t
=
1
T
2
(
1
2
−
(
1
2
−
ϵ
t
)
)
(
1
2
+
1
2
−
ϵ
t
)
=\prod _{t=1}^T2\sqrt{(\frac{1}{2}-(\frac{1}{2}-\epsilon _t))(\frac{1}{2}+\frac{1}{2}-\epsilon _t)}
= ∏ t = 1 T 2 ( 2 1 − ( 2 1 − ϵ t ) ) ( 2 1 + 2 1 − ϵ t )
令
γ
t
=
1
2
−
ϵ
t
\gamma_t=\frac{1}{2}-\epsilon _t
γ t = 2 1 − ϵ t ,
γ
t
>
0
\gamma_t >0
γ t > 0 得,
∏
t
=
1
T
2
ϵ
t
(
1
−
ϵ
t
)
\prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _t)}
∏ t = 1 T 2 ϵ t ( 1 − ϵ t )
=
∏
t
=
1
T
2
(
1
2
−
(
1
2
−
ϵ
t
)
)
(
1
2
+
1
2
−
ϵ
t
)
=\prod _{t=1}^T2\sqrt{(\frac{1}{2}-(\frac{1}{2}-\epsilon _t))(\frac{1}{2}+\frac{1}{2}-\epsilon _t)}
= ∏ t = 1 T 2 ( 2 1 − ( 2 1 − ϵ t ) ) ( 2 1 + 2 1 − ϵ t )
=
∏
t
=
1
T
2
1
4
−
γ
t
2
=\prod _{t=1}^T2\sqrt{\frac{1}{4}-\gamma _t^2}
= ∏ t = 1 T 2 4 1 − γ t 2
=
∏
t
=
1
T
1
−
4
γ
t
2
=\prod _{t=1}^T\sqrt{1-4\gamma _t^2}
= ∏ t = 1 T 1 − 4 γ t 2
最後我們證明,
∏
t
=
1
T
(
1
−
4
γ
t
2
)
≤
e
x
p
(
−
2
∑
t
=
1
T
γ
t
2
)
\prod _{t=1}^T\sqrt{(1-4\gamma _t^2)}\leq exp(-2\sum _{t=1}^T\gamma _t^2)
t = 1 ∏ T ( 1 − 4 γ t 2 )
≤ e x p ( − 2 t = 1 ∑ T γ t 2 ) 首先我們構造一個函數
f
(
x
)
=
e
−
x
+
x
−
1
f(x)=e^{-x}+x-1
f ( x ) = e − x + x − 1 ,由於
f
′
′
(
x
)
=
e
−
x
>
0
f''(x)=e^{-x}>0
f ′ ′ ( x ) = e − x > 0 ,因此
f
(
x
)
f(x)
f ( x ) 爲凸函數,且
m
i
n
f
(
x
)
=
f
(
0
)
=
0
minf(x)=f(0)=0
m i n f ( x ) = f ( 0 ) = 0 ,所以
f
(
x
)
≥
0
f(x) \geq 0
f ( x ) ≥ 0 。下面我們進入正式證明:
f
(
x
)
=
e
−
x
+
x
−
1
≥
0
f(x)=e^{-x}+x-1 \geq 0
f ( x ) = e − x + x − 1 ≥ 0
⇒
e
−
x
≥
1
−
x
\Rightarrow e^{-x}\geq 1-x
⇒ e − x ≥ 1 − x ,令
x
=
4
γ
2
x=4\gamma^2
x = 4 γ 2 ,得
⇒
e
−
4
γ
2
≥
1
−
4
γ
2
\Rightarrow e^{-4\gamma^2}\geq 1-4\gamma^2
⇒ e − 4 γ 2 ≥ 1 − 4 γ 2
⇒
e
−
2
γ
2
≥
1
−
4
γ
2
\Rightarrow e^{-2\gamma^2}\geq \sqrt{1-4\gamma^2}
⇒ e − 2 γ 2 ≥ 1 − 4 γ 2
因此對於
t
=
1
,
2...
T
t=1,2...T
t = 1 , 2 . . . T ,都有
{
e
−
2
γ
1
2
≥
1
−
4
γ
1
2
e
−
2
γ
2
2
≥
1
−
4
γ
2
2
.
.
.
e
−
2
γ
t
2
≥
1
−
4
γ
t
2
\begin{cases} e^{-2\gamma_1^2}\geq \sqrt{1-4\gamma_1^2}\\ e^{-2\gamma_2^2}\geq \sqrt{1-4\gamma_2^2}\\ ...\\ e^{-2\gamma_t^2}\geq \sqrt{1-4\gamma_t^2}\\ \end{cases}
⎩ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎧ e − 2 γ 1 2 ≥ 1 − 4 γ 1 2
e − 2 γ 2 2 ≥ 1 − 4 γ 2 2
. . . e − 2 γ t 2 ≥ 1 − 4 γ t 2
將上式連乘得:
⇒
∏
t
=
1
T
e
x
p
(
−
2
γ
t
2
)
≥
∏
t
=
1
T
1
−
4
γ
t
2
\Rightarrow\prod _{t=1}^Texp(-2\gamma_t^2) \geq \prod _{t=1}^T \sqrt{1-4\gamma_t^2}
⇒ t = 1 ∏ T e x p ( − 2 γ t 2 ) ≥ t = 1 ∏ T 1 − 4 γ t 2
⇒
∏
t
=
1
T
1
−
4
γ
t
2
≤
∏
t
=
1
T
e
x
p
(
−
2
γ
t
2
)
\Rightarrow\prod _{t=1}^T \sqrt{1-4\gamma_t^2}\leq \prod _{t=1}^Texp(-2\gamma_t^2)
⇒ t = 1 ∏ T 1 − 4 γ t 2
≤ t = 1 ∏ T e x p ( − 2 γ t 2 )
⇒
∏
t
=
1
T
1
−
4
γ
t
2
≤
e
x
p
(
−
2
∑
t
=
1
T
γ
t
2
)
\Rightarrow \prod _{t=1}^T \sqrt{1-4\gamma_t^2}\leq exp(-2\sum _{t=1}^T\gamma_t^2)
⇒ t = 1 ∏ T 1 − 4 γ t 2
≤ e x p ( − 2 t = 1 ∑ T γ t 2 )
因此,證明得到下式成立:
E
r
r
o
r
R
a
t
e
=
1
N
∑
δ
(
y
^
n
g
(
x
)
<
0
)
≤
e
x
p
(
−
2
∑
t
=
1
T
γ
t
2
)
Error Rate=\frac{1}{N}\sum \delta (\hat y^n g(x)<0)\leq exp(-2\sum _{t=1}^T\gamma_t^2)
E r r o r R a t e = N 1 ∑ δ ( y ^ n g ( x ) < 0 ) ≤ e x p ( − 2 t = 1 ∑ T γ t 2 ) 上不等式表明,AdaBoost的訓練誤差是以指數速率下降且無限逼近於0。(
γ
>
0
,
−
2
∑
t
=
1
T
γ
t
2
<
0
\gamma >0,-2\sum _{t=1}^T\gamma_t^2<0
γ > 0 , − 2 ∑ t = 1 T γ t 2 < 0 ,小於0的數求指數小於1,小於1的數無限連乘,將無限逼近與0)
4)前向分步加法模型解釋AdaBoost
AdaBoost的另外一種解釋,認爲AdaBoost是加法模型、損失函數爲指數函數、學習算法爲前向分步算法的分類學習算法。 加法模型比較好理解,最終的分類器是有若干個基分類器加權平均得到。即
H
(
x
)
=
∑
T
α
t
f
t
(
x
)
H(x)=\sum_T\alpha_tf_t(x)
H ( x ) = T ∑ α t f t ( x ) 其中,
f
t
(
x
)
f_t(x)
f t ( x ) 爲基分類器,
α
t
\alpha_t
α t 爲基分類器的權值。 前向分步學習算法,即利用前一個基分類器的結果更新後一個基分類器的訓練權重。 假定第
t
−
1
t-1
t − 1 輪後分類器爲:
g
t
−
1
(
x
)
=
∑
t
=
1
t
−
1
α
t
f
t
(
x
)
g_{t-1}(x)= \sum_{t=1}^{t-1}\alpha_tf_t(x)
g t − 1 ( x ) = t = 1 ∑ t − 1 α t f t ( x ) 而第
t
t
t 輪後分類器爲爲:
g
t
(
x
)
=
∑
t
=
1
t
α
t
f
t
(
x
)
g_{t}(x)= \sum_{t=1}^{t}\alpha_tf_t(x)
g t ( x ) = t = 1 ∑ t α t f t ( x ) 有上兩式可以得:
g
t
(
x
)
=
g
t
−
1
(
x
)
+
α
t
f
t
(
x
)
g_t(x)=g_{t-1}(x)+\alpha_tf_t(x)
g t ( x ) = g t − 1 ( x ) + α t f t ( x ) 因此,最終的分類器是通過前向學習算法得到的。 AdaBoost的損失函數爲,
a
r
g
m
i
n
⏟
α
,
f
∑
n
e
x
p
(
−
y
^
n
g
t
(
x
)
)
\underbrace{argmin}_{\alpha,f}\sum_nexp(-\hat y^n g_t(x))
α , f
a r g m i n n ∑ e x p ( − y ^ n g t ( x ) ) 利用前向分步學習算法可以得到損失函數爲:
(
α
t
,
f
t
(
x
)
)
=
a
r
g
m
i
n
⏟
α
,
f
∑
n
e
x
p
(
−
y
^
n
(
g
t
−
1
(
x
)
+
α
t
f
t
(
x
)
)
(\alpha_t,f_t(x))= \underbrace{argmin}_{\alpha,f}\sum_nexp(-\hat y^n (g_{t-1}(x)+\alpha_tf_t(x))
( α t , f t ( x ) ) = α , f
a r g m i n n ∑ e x p ( − y ^ n ( g n ∑ e x p ( − y ^ n ( g t − 1 ( x ) + α t f t ( x ) ) 令
w
t
′
n
=
e
x
p
(
−
y
^
n
g
t
−
1
(
x
)
)
w'^n_t=exp(-\hat y^n g_{t-1}(x))
w t ′ n = e x p ( − y ^ n g t − 1 ( x ) ) ,它的值不依賴
α
t
,
f
t
(
x
)
\alpha_t,f_t(x)
α t , f t ( x ) ,因此與最小化無關,僅僅依賴於
g
t
−
1
(
x
)
g_{t-1}(x)
g t − 1 ( x ) ,隨着每一輪迭代而改變。將上式子代入損失函數,得
(
α
t
,
f
t
(
x
)
)
=
a
r
g
m
i
n
⏟
α
,
f
∑
n
w
t
′
n
e
x
p
(
−
y
^
α
t
f
t
(
x
)
)
(\alpha_t,f_t(x))= \underbrace{argmin}_{\alpha,f}\sum_n w'^n_texp(-\hat y \alpha_tf_t(x))
( α t , f ,
f
t
(
x
)
)
=
a
r
g
m
i
n
⏟
α
,
f
∑
n
w
t
′
n
e
x
p
(
−
y
^
α
t
f
t
(
x
)
)
(\alpha_t,f_t(x))= \underbrace{argmin}_{\alpha,f}\sum_n w'^n_texp(-\hat y \alpha_tf_t(x))
( α t , f t ( x ) ) = α , f
a r g m i n n ∑ w t ′ n e x p ( − y ^ α t f t ( x ) ) 我們先求
f
t
∗
(
x
)
f^*_t(x)
f t ∗ ( x ) ,對於任意的
α
t
>
0
\alpha_t>0
α t (
x
)
f^*_t(x)
f t