提高方法的基本思路 算法
在機率近似正確(probably approximately correct,PAC)學習的框架中, api
一個概念(一個類),若是存在一個多項式的學習算法可以學習它,而且正確率很高,那麼就稱這個概念是強可學習的; app
一個概念,若是存在一個多項式的學習算法可以學習它,學習的正確率僅比隨機猜想略好,那麼就稱這個概念是弱可學習的。 框架
Schapire後來證實強可學習與弱可學習是等價的,也就是說,在PAC學習的框架下, 函數
一個概念是強可學習的充分必要條件是這個概念是弱可學習的。 學習
對於分類問題而言,給定一個訓練樣本集,求比較粗糙的分類規則(弱分類器)要比求精確的分類規則(強分類器)容易得多。 優化
提高方法就是從弱學習算法出發,反覆學習,獲得一系列弱分類器(又稱爲基本分類器),而後組合這些弱分類器,構成一個強分類器。 spa
大多數的提高方法都是改變訓練數據的機率分佈(訓練數據的權值分佈),針對不一樣的訓練數據分佈調用弱學習算法學習一系列弱分類器。 3d
對提高方法來講,有兩個問題須要回答: code
一是在每一輪如何改變訓練數據的權值或機率分佈;
二是如何將弱分類器組合成一個強分類器。
第1個問題,AdaBoost的作法是,提升那些被前一輪弱分類器錯誤分類樣本的權值,而下降那些被正確分類樣本的權值。
那些沒有獲得正確分類的數據,因爲其權值的加大而受到後一輪的弱分類器的更大關注。因而,分類問題被一系列的弱分類器"分而治之"。
第2個問題,即弱分類器的組合,AdaBoost採起加權多數表決的方法。
加大分類偏差率小的弱分類器的權值,使其在表決中起較大的做用,'
減少分類偏差率大的弱分類器的權值,使其在表決中起較小的做用。
AdaBoost算法
訓練數據集
使用具備權值分佈Dm的訓練數據集學習,獲得基本分類器:
計算Gm(x)在訓練數據集上的分類偏差率:
計算Gm(x)的係數
更新訓練數據集的權值分佈:
Zm是規範化因子:
AdaBoost說明:
這一假設保證第1步可以在原始數據上學習基本分類器G1(x)
1.使用當前分佈Dm加權的訓練數據集,學習基本分類器Gm(x)。
2.計算基本分類器Gm(x)在加權訓練數據集上的分類偏差率:
這裏,wmi表示第m輪中第i個實例的權值.
這代表,Gm(x)在加權的訓練數據集上的分類偏差率是被Gm(x)誤分類樣本的權值之和,
由此能夠看出數據權值分佈Dm與基本分類器Gm(x)的分類偏差率的關係
3. 計算基本分類器Gm(x)的係數am。am表示Gm(x)在最終分類器中的重要性。
當em≤1/2時,am≥0,而且am隨着em的減少而增大,
因此分類偏差率越小的基本分類器在最終分類器中的做用越大。
4.更新訓練數據的權值分佈爲下一輪做準備
被基本分類器Gm(x)誤分類樣本的權值得以擴大,而被正確分類樣本的權值卻得以縮小
誤分類樣本在下一輪學習中起更大的做用。
不改變所給的訓練數據,而不斷改變訓練數據權值的分佈,使得訓練數據在基本分類器的學習中起不一樣的做用
AdaBoost的例子
弱分類器由x<v或x>v產生, 其閾值v使該分類器在訓練數據集上分類偏差率最低.
初始化數據權值分佈
對於m=1
在權值分佈爲D1的訓練數據上,閾值v取2.5時分類偏差率最低,故基本分類器爲
G1(x)在訓練數據集上的偏差率e1=P(G1(xi)≠yi)=0.3。
計算G1(x)的係數:
更新訓練數據的權值分佈:
分類器sign[f1(x)]在訓練數據集上有3個誤分類點。
對於m= 2
在權值分佈爲D2的訓練數據上,閾值v是8.5時分類偏差率最低,基本分類器爲
G2(x)在訓練數據集上的偏差率e2=0.2143
計算a2=0.6496
更新訓練數據權值分佈:
分類器sign[f2(x)]在訓練數據集上有3個誤分類點。
對於m = 3:
在權值分佈爲D3的訓練數據上,閾值v是5.5時分類偏差率最低,基本分類器爲
計算a3=0.7514
更新訓練數據的權值分佈
D4=(0.125,0.125,0.125,0.102,0.102,0.102,0.065,0.065,0.065,0.125)
獲得:
AdaBoost算法的訓練偏差分析
AdaBoost算法最終分類器的訓練偏差界爲:
這代表在此條件下AdaBoost的訓練偏差是以指數速率降低的
AdaBoost算法的解釋
能夠認爲AdaBoost算法是
模型爲加法模型
損失函數爲指數函數
學習算法爲前向分步算法
的二分類學習方法
加法模型
其中b(x;γm)爲基函數的參數,βm是基函數的係數。
如上式所示爲一加法模型。
在給定訓練數據及損失函數L(Y,f(X))的條件下,學習加法模型f(x)成爲經驗風險極小化即損失函數極小化問題:
前向分步算法(forward stagewise algorithm)求解這一優化問題的想法是
由於學習的是加法模型,若是可以從前向後,每一步只學習一個基函數及其係數,
逐步逼近優化目標函數式(8.14),那麼就能夠簡化優化的複雜度。
就是優化以下函數:
初始化f0(x)=0,對m=1,2,…,M,極小化損失函數
計算獲得γm ,βm
更新fm
得到加法模型
前向分步算法與AdaBoost
由前向分步算法能夠推導出AdaBoost
AdaBoost算法是前向分歩加法算法的特例。
這時,模型是由基本分類器組成的加法模型,損失函數是指數函數。