深度剖析adaboost

在分析adaboost算法前,首先看一幅圖。
這裏寫圖片描述
如上圖所示,adaboost算法的核心思想就是由分類效果較差的弱分類器逐步的強化成一個分類效果較好的強分類器。而強化的過程,就是如上圖所示逐步的改變樣本權重,樣本權重的高低,代表其在分類器訓練過程中的重要程度。

adaboost算法流程

下面首先來看一下在李航的《統計學習方法》一書中對adaboost的解釋:
算法的輸入:訓練數據集T={(x1,y1),(x2,y2),...,(xN,yN)} ,其中x 表示輸入樣本,y{+1,1} 爲對應的標籤。
輸出:最終分類器G(x)

Initialization:初始化訓練數據的權值分佈

D1=(w11,w12,...,w1N),w1i=1N,i=1,2,..,N
For m=1,2,..,M
- 使用具有權值分佈Dm 的訓練數據集學習,得到基本分類器Gm
Gm(x):X{1,+1}
計算Gm(x) 在訓練集上的分類誤差率
em=P(Gm(xi)yi)=i=1NwmiI(Gm(xi)yi)

-如果分類誤差率em 大於0.5,跳出循環
- 計算Gm(x) 的係數
αm=12ln(1emem)

- 更新訓練數據集的權值分佈
Dm+1=(wm+1,1,...,wm+1,i,...,wm+1,N)

wm+1,i=wmiZmexp(αmyiGm(xi))

這裏Zm 是規範化因子
Zm=i=1Nwmiexp(αmyiGm(xi))

因爲Zm 的存在,使得Dm+1 成爲一個概率分佈。

end
構建基本分類器的線性組合

f(x)=m=1NαmGm(x)

得到最終的分類器:
G(x)=sign(f(x))

end algorithm

上述算法流程中,有以下幾處需要解釋:

1、弱分類器的選取

弱分類器的選取並沒有一個特定的標準或選取準則,一般來說只要是能夠實現基本的分類功能的分類器均可以作爲adaboost中的弱分類器。比如一個簡單閾值可作爲一個弱分類器的(參見李航《統計學習方法》書中8.1.3的例子)、簡單的邏輯迴歸(LR)也可以作爲一個弱分類器,甚至是SVM、神經網絡都可以作爲弱分類器。但是在adaboost中所有的弱分類器必須是同一種分類器,不能再同一個adaboost算法的迭代步驟中使用不同的弱分類器。

2、樣本權值參數

對於樣本的權值參數推到,要涉及到損失函數的由來以及最優化求解的過程,因此這裏不予推到,具體可參見周志華《機器學習》一書或者《A decision-theoretic generalization of on-line learning and an application to boosting》一文。
樣本權值更新的中心思想是對訓練集中的每個樣本都賦予一定的權值,傳統的訓練方法中認爲訓練集中的每個樣本的重要程度是一樣的,也即具有相同的權值。但是在adaboost的每次迭代中,若某個樣本在當前的分類器中分錯了,那麼則認爲此樣本較爲特殊,加重其權值,使其在下一次的訓練中對分類器的訓練有更爲重要的影響。

3、弱分類器權值參數

參數具體推導同樣參見上述參考資料。
在adaboost的算法中,不僅每個樣本有不同的權值,每個弱分類器都有不同的權值。與樣本權值相類似,弱分類器的權值也指示了當前的弱分類器在最後合成強分類器時對強分類器的影響程度。權值越大,影響程度越高。adaboost的經典之處也就是在於樣本權值的更新和弱分類權值的更新。

4、分類誤差大於0.5,終止算法

分類誤差大於0.5代表當前的分類器是否比隨機預測要好,對於一個隨機預測模型來說,其分類誤差就是0.5,即一半預測對,一半預測錯。若當前的弱分類器還沒有隨機預測的效果好,那便直接終止算法。但是當adaboost遇到這種情形時可能學習的迭代次數遠遠沒有達到初始設置的迭代次數M,這可能會導致最終集成中只有很少的弱分類器,從而導致算法整體性能不佳。爲了化解這種情況Kohavi在《Bias plus variance decomposition for zero-one loss functions》提出了用重採樣法使得迭代過程重新啓動。

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