AdaBoost算法原理詳細總結

        在集成學習方法之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 ( x ) f_t(x) 的訓練集上的效果很差(和我們隨機瞎猜一樣),這樣 f t ( x ) f_t(x) 就能修正 f t 1 ( x ) f_{t-1}(x) 的分類誤差, f t ( x ) f_t(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) 在更新權值後的訓練集上的錯誤率 ϵ t 1 \epsilon_{t-1} 增大到0.5。(再在更新權值後的訓練集上訓練基分類器 f t ( x ) f_t(x) ,那 f t ( x ) f_t(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} x i R d x^i\in R^d y i { 1 , 1 } y^i\in\left\{ -1,1\right\}
樣本權值爲 w i n w_i^n ,誤差率 ϵ i \epsilon_i 。在訓練數據集 T T 上訓練第一個基分類器 f 1 ( x ) f_1(x) ,其錯誤率爲 ϵ 1 ϵ 1 < 0.5 \epsilon_1,\epsilon_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
        更新樣本的權值(權值爲 w 2 n w_2^n )後的訓練集爲 T {T}' ,使得 f 1 ( x ) f_1(x) T {T}' 分類效果等同於隨機瞎猜( ϵ = 0.5 \epsilon=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
        那麼樣本權重如何更新呢?AdaBoost具體做法是,減小 f 1 ( x ) f_1(x) 分類正確的樣本的權值,權值除以一個常數 d d ,即 w 1 n d 1 \frac{w_1^n}{d_1} ;增大 f 1 ( x ) f_1(x) 分類錯誤的樣本的權值,權值乘以一個常數 d d ,即 w 1 n d 1 w_1^nd_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}
        下面我們再回到下式中來,

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 = 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} ;當 f 1 ( x n ) y ^ n f_1(x^n)\neq {\hat y}^n 時, w 2 n = w 1 n d 1 w_2^n = w_1^nd_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 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

又因爲 ϵ 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 ϵ 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
因此,
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
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
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 d_1=\sqrt{\frac{1-\epsilon_1 }{\epsilon_1}}
其中 d 1 > 1 d_1>1 (因爲 ϵ 1 < 0.5 \epsilon_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}
α t = L n ( 1 ϵ t ϵ t ) \alpha_t= Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}}) α t \alpha_t 即爲基分類器 f t ( x ) f_t(x) 的權重係數。當 ϵ t = 0.1 \epsilon_t =0.1 時, α t = 1.1 \alpha_t=1.1 ,當 ϵ t = 0.4 \epsilon_t =0.4 時, α t = 0.2 \alpha_t=0.2 。這表明,當基分類器分類誤差率越小時,基分類器的權重越大,在最終表決時起的作用也越大;當基分類器分類誤差率越大時,基分類器的權重越小,在最終表決時起的作用也越小。將 α t \alpha_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 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)
f t ( x n ) = y ^ n f_t(x^n)= {\hat y}^n 時, y ^ n f t ( x n ) {\hat y}^nf_t(x^n) 爲+1,當   f t ( x n ) y ^ n \ f_t(x^n)\neq {\hat y}^n 時, y ^ n f t ( x n ) {\hat y}^nf_t(x^n) 爲-1,以上兩式爲等價變換。
       以上就是AdaBoost算法如何做樣本權值更新的整個推導過程。

       
       下面對二元分類AdaBoost算法流程進行總結
       輸入:訓練數據集 T = { ( x i , y i ) } i = 1 N T=\left\{ (x^i,y^i) \right\}^N_{i=1} x i R d x^i\in R^d y i { 1 , 1 } y^i\in\left\{ -1,1\right\}
       輸出:最終的分類器 H ( x ) H(x)
①初始化訓練數據的權值(權值相等)
w 1 n = 1 w_1^n=1
f o r   t = 1... T : for \ t=1...T:

  • 在權值爲 { w t 1 , w t 2 . . . w t N } \left\{ w_t^1,w_t^2...w_t^N\right\} 的訓練機上訓練基分類器 f t ( x ) f_t(x)

  • 計算 f t ( x ) f_t(x) 在訓練數據集上的分類誤差率 ϵ t \epsilon_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))

  • 計算 f t ( x ) f_t(x) 的權值係數
    α t = L n ( 1 ϵ t ϵ t ) \alpha_t= Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_t}})

  • f o r   n = 1 , 2.... N : for \ n=1,2....N:
            i f   x n f t ( x ) if \ 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)
            e l s e   x n else \ x^n 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)
    ③構建基分類器線性組合
    f ( x ) = T α t f t ( x ) f(x)=\sum_T\alpha_tf_t(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))

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}
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)
其中, γ t = 1 2 ϵ t \gamma_t=\frac{1}{2}-\epsilon _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))

       從上一部分內容可知,訓練數據集 T = { ( x i , y i ) } i = 1 n T=\left\{ (x^i,y^i) \right\}^n_{i=1} x i R d x^i\in R^d y i { 1 , 1 } y^i\in\left\{ -1,1\right\} ,最終的分類器 H ( x ) , α t H(x),\alpha_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 ) H(x) 的分類誤差率爲 E r r o r R a t e Error Rate 等於分類錯誤的樣本所佔總樣本的比例,用數學語言表達即爲,
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)
其中, H ( x n ) ( y ^ ) n H(x^n)\neq (\hat 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)
g ( x ) = t = 1 T α t f t ( x ) g(x)=\sum_{t=1}^T\alpha_tf_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 = 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))
其中 δ ( y ^ n g ( x ) < 0 ) \delta (\hat y^n g(x)<0) 爲01損失函數, e x p ( y ^ n g ( x ) ) exp(-\hat 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}
       已知 g ( x ) = t = 1 T α t f t ( x ) g(x)=\sum_{t=1}^T\alpha_tf_t(x) (上面我們定義的等式)。且 Z t + 1 Z_{t+1} 爲基分類器 f t + 1 ( x ) f_{t+1}(x) 所有訓練樣本的權重之和,用數學語言表示,
        Z t + 1 = n w T + 1 n Z_{t+1}=\sum _nw_{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 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 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) (連乘符號 \prod ,放到指數 e x p exp 中變成求和 \sum
                = n e x p ( y ^ n g ( x n ) ) =\sum _nexp(-\hat y^ng(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}
       已知 α t = L n ( 1 ϵ t ϵ t ) \alpha_t = Ln(\sqrt{\frac{1-\epsilon_t }{\epsilon_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)}
        Z t + 1 Z_{t+1} 爲基分類器 f t + 1 ( x ) f_{t+1}(x) 所有訓練樣本的權重之和,它是由上一輪權值 Z t Z_{t} 更新而來的,被分類錯誤的樣本權值增大,被分類正確的樣本權值減小。
       且 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 ϵ 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}}}
                       = 2 Z t ϵ t ( 1 ϵ t ) =2Z_t\sqrt{\epsilon _{t}(1-\epsilon _{t})}
                       = N t = 1 T 2 ϵ t ( 1 ϵ t ) =N\prod _{t=1}^T2\sqrt{\epsilon _{t}(1-\epsilon _{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)}
       由於 ϵ t < 0.5 \epsilon _t<0.5 ,因此 2 ϵ t ( 1 ϵ t ) 1 2\sqrt{\epsilon _t(1-\epsilon _t)}\leq 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 ) \prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _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 2 ϵ t \gamma_t=\frac{1}{2}-\epsilon _t γ t > 0 \gamma_t >0 得,
        t = 1 T 2 ϵ t ( 1 ϵ t ) \prod _{t=1}^T2\sqrt{\epsilon _t(1-\epsilon _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 1 4 γ t 2 =\prod _{t=1}^T2\sqrt{\frac{1}{4}-\gamma _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 ) 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)
       首先我們構造一個函數 f ( x ) = e x + x 1 f(x)=e^{-x}+x-1 ,由於 f ( x ) = e x > 0 f''(x)=e^{-x}>0 ,因此 f ( x ) f(x) 爲凸函數,且 m i n f ( x ) = f ( 0 ) = 0 minf(x)=f(0)=0 ,所以 f ( x ) 0 f(x) \geq 0 。下面我們進入正式證明:
        f ( x ) = e x + x 1 0 f(x)=e^{-x}+x-1 \geq 0
        e x 1 x \Rightarrow e^{-x}\geq 1-x ,令 x = 4 γ 2 x=4\gamma^2 ,得
        e 4 γ 2 1 4 γ 2 \Rightarrow e^{-4\gamma^2}\geq 1-4\gamma^2
        e 2 γ 2 1 4 γ 2 \Rightarrow e^{-2\gamma^2}\geq \sqrt{1-4\gamma^2}
因此對於 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}
       將上式連乘得:
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 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 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)

       因此,證明得到下式成立:
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)
       上不等式表明,AdaBoost的訓練誤差是以指數速率下降且無限逼近於0。( γ > 0 , 2 t = 1 T γ t 2 < 0 \gamma >0,-2\sum _{t=1}^T\gamma_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)
其中, f t ( x ) f_t(x) 爲基分類器, α t \alpha_t 爲基分類器的權值。
       前向分步學習算法,即利用前一個基分類器的結果更新後一個基分類器的訓練權重。
       假定第 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)
       而第 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 ) = g t 1 ( x ) + α t f t ( x ) g_t(x)=g_{t-1}(x)+\alpha_tf_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))
       利用前向分步學習算法可以得到損失函數爲:
( α 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))
       令 w t n = e x p ( y ^ n g t 1 ( x ) ) w'^n_t=exp(-\hat y^n g_{t-1}(x)) ,它的值不依賴 α t , f t ( x ) \alpha_t,f_t(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))

相關文章
相關標籤/搜索