1. Boosting
Boosting(提升方法)是將弱學(xué)習(xí)器算法提升為強(qiáng)學(xué)習(xí)算法的統(tǒng)計(jì)學(xué)習(xí)方法博烂。在分類問題中,提升方法通過反復(fù)修改訓(xùn)練數(shù)據(jù)的權(quán)值分布傍妒,構(gòu)建一系列基本分類器(也稱為弱分類器)夺饲,并將這些基本分類器線性組合,構(gòu)成一個(gè)強(qiáng)分類器坷虑。AdaBoost就是Boosting中的代表性算法。Boosting原理可由下面這張圖所示:
2. AdaBoost
2.1 AdaBoost算法過程
輸入:訓(xùn)練數(shù)據(jù)集埂奈,其中迄损;弱學(xué)習(xí)器算法;
輸出:最終分類器
(1)初始化訓(xùn)練數(shù)據(jù)的權(quán)值分布
(2)對個(gè)基本分類器
(a)使用具有權(quán)值分布的訓(xùn)練數(shù)據(jù)集账磺,學(xué)習(xí)得到基本分類器
(b)計(jì)算在訓(xùn)練數(shù)據(jù)集上的分類誤差率
(c)計(jì)算的權(quán)重
(d)更新訓(xùn)練數(shù)據(jù)集的權(quán)值分布
其中芹敌,是規(guī)范化因子
(3)構(gòu)建基本分類器的線性組合
得到最終分類器
其中,是符號函數(shù)垮抗,取某個(gè)數(shù)的符號(正或負(fù))氏捞。
對上述過程的說明:
??步驟(1):假設(shè)訓(xùn)練數(shù)據(jù)集具有均勻的權(quán)值分布,即每個(gè)訓(xùn)練樣本在基本分類器的學(xué)習(xí)中作用相同借宵,這一假設(shè)可以保證第1步能夠在原始數(shù)據(jù)集上學(xué)習(xí)得到基本分類器
??步驟(2):AdaBoost反復(fù)學(xué)習(xí)基本分類器幌衣,在每一輪依次執(zhí)行下列操作:
??(a)使用當(dāng)前權(quán)值分布為的訓(xùn)練數(shù)據(jù)集矾削,學(xué)習(xí)得到基本分類器
??(b)計(jì)算基本分類器在加權(quán)訓(xùn)練數(shù)據(jù)集上的分類誤差率:
其中壤玫,表示第輪迭代中第個(gè)樣本的權(quán)值豁护,即在加權(quán)訓(xùn)練數(shù)據(jù)集上的分類誤差率就是被誤分類樣本的權(quán)值之和。
??(c)計(jì)算基本分類器的權(quán)重欲间,即在最終分類器中的重要性楚里。由上面(c)中公式可知,當(dāng)分類誤差率時(shí)猎贴,班缎,且隨著的減小而增大,因此分類誤差率越小的基本分類器在最終分類器中的作用越大她渴。
??(d)更新訓(xùn)練集的權(quán)值分布為學(xué)習(xí)下一個(gè)基本分類器作準(zhǔn)備达址。當(dāng)時(shí),趁耗;當(dāng)時(shí)沉唠,;由此可知苛败,被基本分類器誤分類樣本的權(quán)值得以擴(kuò)大满葛,而被正確分類樣本的權(quán)值卻得以縮小。比較兩者的權(quán)值罢屈,發(fā)現(xiàn)誤分類樣本的權(quán)值被放大了倍嘀韧。
??步驟(3):線性組合實(shí)現(xiàn)個(gè)基本分類器的加權(quán)表決。系數(shù)表示基本分類器的重要性缠捌,的和并不為1锄贷。的符號決定了實(shí)例x的類別,的絕對值表示分類的確信度鄙币。
2.2 AdaBoost算法的訓(xùn)練誤差分析
AdaBoost最基本的性質(zhì)是它能在學(xué)習(xí)過程中不斷減少訓(xùn)練誤差肃叶,即不斷減少在訓(xùn)練數(shù)據(jù)集上的分類誤差率。對此十嘿,《統(tǒng)計(jì)學(xué)習(xí)方法》中給出了如下定理:
定理1(AdaBoost的訓(xùn)練誤差界)AdaBoost算法的訓(xùn)練誤差界為
證明過程如下:
該定理說明因惭,可以在每一輪選取適當(dāng)?shù)?img class="math-inline" src="https://math.jianshu.com/math?formula=G_m" alt="G_m" mathimg="1">使得最小,從而使訓(xùn)練誤差下降最快绩衷。對于二分類問題蹦魔,給出了如下定理:
定理2(二分類問題AdaBoost的訓(xùn)練誤差界)
其中,
證明過程如下:
推論:結(jié)合定理1與定理2咳燕,如果存在勿决,對所有的m有,則
這表明在此條件下AdaBoost的訓(xùn)練誤差是以指數(shù)速率下降的招盲。
2.3 AdaBoost算法的解釋
AdaBoost算法是模型為加法模型低缩、損失函數(shù)為指數(shù)函數(shù)、學(xué)習(xí)算法為前向分布算法的二分類學(xué)習(xí)算法。
加法模型可理解為咆繁,最終的強(qiáng)分類器是由基本分類器加權(quán)平均得到的讳推。
前向分布算法可理解為,在AdaBoost算法中我們利用前一個(gè)基本分類器的結(jié)果來更新后一個(gè)基本分類器的訓(xùn)練集數(shù)據(jù)權(quán)值玩般。假設(shè)經(jīng)過m-1輪的迭代银觅,已經(jīng)得到強(qiáng)分類器
在第m輪迭代得到和,則
由此可見強(qiáng)分類器是通過前向分布學(xué)習(xí)算法一步步得到的坏为。
下面介紹AdaBoost的損失函數(shù)
2.1節(jié)中的基本分類器權(quán)重計(jì)算公式和樣本權(quán)值更新公式都可從AdaBoost的損失函數(shù)中推導(dǎo)出來究驴。
2.4 AdaBoost算法的正則化
為了防止AdaBoost過擬合,通常也會加入正則化項(xiàng)匀伏,這個(gè)正則化項(xiàng)被稱為步長(learning rate)洒忧。記為v,對于前面的基本分類器的迭代
如果加上了正則化項(xiàng)够颠,則有
的取值范圍為跑慕。對于同樣的訓(xùn)練集學(xué)習(xí)效果,較小的意味著需要更多的基本分類器的迭代次數(shù)摧找。通常用步長和迭代最大次數(shù)來一起決定算法的擬合效果核行。
3. 總結(jié)
AdaBoost算法的兩大特點(diǎn):
- 特點(diǎn)1:通過迭代,每次學(xué)習(xí)一個(gè)基本分類器蹬耘;每次迭代中芝雪,提高那些被前一輪分類器錯(cuò)誤分類的數(shù)據(jù)的權(quán)值,同時(shí)降低那些被正確分類的數(shù)據(jù)的權(quán)值综苔;使得誤分類樣本在下一輪學(xué)習(xí)中起更大的作用惩系。即不改變所給的訓(xùn)練數(shù)據(jù),而是通過不斷改變訓(xùn)練數(shù)據(jù)的權(quán)值分布如筛,使得訓(xùn)練數(shù)據(jù)在基本分類器的學(xué)習(xí)中起不同的作用堡牡。
- 特點(diǎn)2:利用基本分類器的線性組合構(gòu)建最終分類器。對分類誤差率小的基本分類器賦予大的權(quán)值杨刨,使其在最終的模型中起較大的作用晤柄,對分類誤差率大的基本分類器賦予小的權(quán)值,使其在最終的模型中起較小的作用妖胀。
參考
1.《統(tǒng)計(jì)學(xué)習(xí)方法》-李航著