AdaBoost詳解

本博客內容摘自李航老師的《統計學習方法》,加以一些整理。

相關概念

  提升(boosting)方法是一種常用的統計學習方法,應用廣泛且有效。在分類問題中,它通過改變訓練樣本的權重,學習多個分類器,並將這些分類器進行線性組合,提高分類的性能。

  對於分類問題而言,給定一個訓練集,求比較粗糙的分類規則(弱分類器)要比求精確的分類規則(強分類器)容易得多。提升(booting)方法就是從弱學習算法出發,反覆學習,得到一系列弱分類器(又稱爲基本分類器),然後組合這些弱分類器,構成一個強分類器。大多數的提升方法都是改變訓練數據的概率分佈(訓練數據的權值分佈),針對不同的訓練數據分佈調用弱學習算法學習一系列弱分類器。

  所以對於提升方法而言,有兩個問題需要解決:一是在每一輪如何改變訓練數據的權值或者概率分佈;二是如何將弱分類器組合成一個強分類器。

  對於第一個問題,AdaBoost的做法是,提高那些被前一輪弱分類器錯誤分類樣本的權值,而降低那些被正確分類樣本的權值。這樣一來,那些沒有得到正確分類的數據,由於其權值的加大而受到後一輪的弱分類器的更大關注。於是,分類問題被一系列的弱分類器”分而治之”。

  對於第二個問題,即弱分類器的組合,AdaBoost採取加權多數表決的方法。具體地,加大分類錯誤率小的弱分類器的權重,使其在表決中起較大的作用,減少分類誤差率大的弱分類器的權值,使其在表決中起較小的作用。

AdaBoost算法

  假定給定一個二分類的訓練數據集:

T={(x1,y1),(x2,y2),...,(xN,yN)}

其中,每個樣本點由實力和標記組成。實例xiXRn (表示實數),標記yiY={1,+1} ,即有兩種標籤的數據,用{1,+1} 來表示這兩種類別;X 是實例空間,Y 是標記集合。AdaBoost算法利用以下算法,從訓練數據中學習一系列弱分類器或基本分類器,並將這些弱分類器線性組合成一個強分類器。

AdaBoost描述:
  輸入:訓練數據集T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中xiXRn,yiY={1,+1} ;得到弱學習算法;
  輸出:最終分類器G(x)

算法步驟:

(1)初始化訓練數據的權值分佈

D1=(w11,...,w1i,...,w1N),w1i=1N,i=1,2,...,N(2.1)

D是用來描述各樣本的權值分佈的。

(2)m=1,2,...,Mm 表示迭代的次數
  (a)使用具有權值分佈Dm 的訓練數據集學習,得到基本分類器:

Gm(x):X{1,+1}

  (b)計算Gm 在訓練數據集上的分類誤差率
em=P(Gm(xi)yi)=i=1NwmiI(Gmyi)(2.2)

其中I(Gmyi)={0,1} ,當分類正確時,等於0;分類錯誤時,等於1;Gm(xi) 表示第m 輪得到的弱分類器Gm 對第i 個樣本xi 的分類結果,yi 表示第i 個樣本的真實類別。注意計算誤差率是用到了權重分佈D 中的wm
  (c) 計算Gm(x) 的係數
αm=12log1emem(2.3)

這裏的對數是自然對數。可以發現,當錯誤率em 越大時,am 越小。這個參數將會用在集成階段。
  (d)更新訓練數據集的權值分佈
Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)(2.4)

wm+1,i=wmiZmexp(αmyiGm(xi)),i=1,2,...,N(2.5)

這裏,Zm 是規範化因子,使得總的wm+1 值和爲1.
Zm=i=1Nwmiexp(αmyiGm(xi))(2.6)

它使得Dm+1 成爲一個概率分佈。

(3)構建基本分類器的線性組合

f(x)=m=1MαmGm(x)(2.7)

錯誤率越低的弱分類器對應的α 值越大,使其在表決中起較大的作用。
得到最終的分類器
G(x)=sign(f(x))=sign(m=1MαmGm(x))(2.8)

對AdaBoost算法作如下說明:
  步驟(1)假設訓練數據集具有均勻的權值分佈,即每個訓練樣本在基本分類器的學習中作用相同,這一假設保證第1步能夠在原始數據上學習基本分類器G1(x) .

  步驟(2)AdaBoost反覆學習基本分類器,在每一輪m=1,2,...,M 順次地執行下列操作:
  (a)使用當前分佈Dm 加權的訓練數據集,學習基本分類器Gm(x) .
  (b)計算基本分類器Gm(x) 在加權訓練數據集上的分類錯誤率:

em=P(Gm(xi)yi)=Gm(xi)yiwmi(2.9)

這裏,wmi 表示第m 輪中第i 個實例的權值,i=1Nwmi=1 .這表明,Gm(x) 在加權的訓練數據集上的分類錯誤率是被Gm(x) 誤分類樣本的權值之和,由此可以看出數據權值分佈Dm 與基本分類器Gm(x) 的分類錯誤率的關係。
  (c)計算基本分類器Gm(x) 的係數αm,αm 表示Gm(x) 在最終的分類器中的重要性。由式子(2.3)可知,當em12 時,αm0 ,並且αm 伴隨着em 的減小而增大,所以分類誤差率越小的基本分類器在最終分類器中的作用越大。
  (d)更新訓練數據的權值分佈,爲下一輪作準備。式子(2.5)可以寫成:
wm+1,i={wmiZmeαm,Gm(xi)=yiwmiZmeαm,Gm(xi)yi

由此可知,被基本分類器Gm(x) 誤分類樣本的權值得以擴大,而被正確分類樣本的權值卻得以縮小。二者比較,誤分類樣本的權值被放大e2αm=em1em 倍.因此,誤分類樣本在下一輪學習中起更大的作用。不改變所給的訓練數據,而不斷改變訓練數據的權值分佈,使得訓練數據在基本分類器的學習中起不同的作用,這是AdaBoost的一個特點。

  步驟(3)線性組合f(x) 實現了M 個基本分類器的加權表決。係數αm 表示了基本分類器Gm(x) 的重要性,這裏,所有αm 之和並不爲1.f(x) 的符號決定實例x 的類,f(x) 的絕對值表示分類的確信度,利用基本分類器的線性組合構建最終分類器是AdaBoost的另一特點。

參考例子

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

注意,權值分佈是在計算錯誤率e 時起作用,公式(2.2)中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章