AdaBoost(Adaptive Boosting):自適應提升方法。
1、AdaBoost算法介紹
AdaBoost是Boosting方法中最優代表性的提升算法。該方法通過在每輪降低分對樣例的權重,增加分錯樣例的權重,使得分類器在迭代過程中逐步改進,最終將所有分類器線性組合得到最終分類器,Boost算法框架如下圖所示:

圖1.1 Boost分類框架(來自PRML)
2、AdaBoost算法過程:
1)初始化每個訓練樣例的權值,共N個訓練樣例。

2)共進行M輪學習,第m輪學習過程如下:
A)使用權值分布為Wm的訓練樣例學習得到基分類器Gm。
B)計算上一步得到的基分類器的誤差率:(此公式參考PRML,其余的來自統計學習方法)

C)計算Gm前面的權重系數:

D)更新訓練樣例的權重系數,

E)重復A)到D)。得到一系列的權重參數am和基分類器Gm
4)將上一步得到的基分類器根據權重參數線性組合,得到最終分類器:

3、算法中的兩個權重分析:
1)關於基分類器權重的分析

上面計算的am表示基分類器在最終的分類器中所占的權重,am的計算根據em而得到,由於每個基分類器的分類性能要好於隨機分類器,故而誤差率em<0.5.(對二分類問題)
當em<0.5時,am>0且am隨着em的減小而增大,所以,分類誤差率越小的基分類器在最終的分類器中所占的權重越大。
注:此處的所有am之后並不為1。
2)訓練樣例的權重分析

根據公式可知,樣例分對和分錯,權重相差
倍(統計學習方法上此公式有誤)。
由於am>0,故而exp(-am)<1,當樣例被基本分類器正確分類時,其權重在減小,反之權重在增大。
通過增大錯分樣例的權重,讓此樣例在下一輪的分類器中被重點關注,通過這種方式,慢慢減小了分錯樣例數目,使得基分類器性能逐步改善。
4、訓練誤差分析
關於誤差上界有以下不等式,此不等式說明了Adaboost的訓練誤差是以指數的速度下降的,

推導過程用到的公式有:

具體推導過程請看統計學習方法課本!
5、AdaBoost算法推導過程
AdaBoost算法使用加法模型,損失函數為指數函數,學習算法使用前向分步算法。
其中加法模型為:

損失函數為指數函數:

我們的目標是要最小化損失函數,通過最小化損失函數來得到模型中所需的參數。而在Adaboost算法中,每一輪都需要更新樣例的權重參數,故而在每一輪的迭代中需要將損失函數極小化,然后據此得到每個樣例的權重更新參數。這樣在每輪的迭代過程中只需要將當前基函數在訓練集上的損失函數最小即可。

現在我們需要通過極小化上面的損失函數,得到a,G。
設:

於是有:

為了方便下面推導,我們將:

這樣,我們就有:

正式推導過程如下:
設:
對g(a)求導得:

令
,得到:

其中,在計算過程中用到的em為:

由於
,所以得到新的損失為:

最終的wmi通過規范化得到:

其中規范化因子為:

參考文獻:
[1] 李航,統計學習方法。
[2] Bishop, Pattern Recognition and Machine Learning
