統計學習方法 AdaBoost

提高方法的基本思路 算法

在機率近似正確(probably approximately correctPAC)學習的框架中, api

一個概念(一個類),若是存在一個多項式的學習算法可以學習它,而且正確率很高,那麼就稱這個概念是強可學習的; app

一個概念,若是存在一個多項式的學習算法可以學習它,學習的正確率僅比隨機猜想略好,那麼就稱這個概念是弱可學習的。 框架

Schapire後來證實強可學習弱可學習是等價的,也就是說,在PAC學習的框架下, 函數

一個概念是強可學習的充分必要條件是這個概念是弱可學習的。 學習

 

對於分類問題而言,給定一個訓練樣本集,求比較粗糙的分類規則(弱分類器)要比求精確的分類規則(強分類器)容易得多。 優化

提高方法就是從弱學習算法出發,反覆學習,獲得一系列弱分類器(又稱爲基本分類器),而後組合這些弱分類器,構成一個強分類器。 spa

大多數的提高方法都是改變訓練數據機率分佈(訓練數據的權值分佈),針對不一樣的訓練數據分佈調用弱學習算法學習一系列弱分類器。 3d

 

對提高方法來講,有兩個問題須要回答: code

一是在每一輪如何改變訓練數據的權值或機率分佈;

二是如何將弱分類器組合成一個強分類器。

1個問題,AdaBoost的作法是,提升那些被前一輪弱分類器錯誤分類樣本的權值,而下降那些被正確分類樣本的權值

那些沒有獲得正確分類的數據,因爲其權值的加大而受到後一輪的弱分類器的更大關注。因而,分類問題被一系列的弱分類器"分而治之"

2個問題,即弱分類器的組合,AdaBoost採起加權多數表決的方法。

加大分類偏差率小的弱分類器的權值,使其在表決中起較大的做用,'

減少分類偏差率大的弱分類器的權值,使其在表決中起較小的做用。

 

AdaBoost算法

訓練數據集

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

  2. M1,2,…,m

    使用具備權值分佈Dm的訓練數據集學習,獲得基本分類器:

    計算Gm(x)在訓練數據集上的分類偏差率:

    計算Gm(x)的係數

    更新訓練數據集的權值分佈:

    Zm是規範化因子:

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

AdaBoost說明:

  1. 假設訓練數據集具備均勻的權值分佈,即每一個訓練樣本在基本分類器的學習中做用相同,

    這一假設保證第1步可以在原始數據上學習基本分類器G1(x)

  2. AdaBoost反覆學習基本分類器,在每一輪m1,2,…,M順次地執行下列操做:

1.使用當前分佈Dm加權的訓練數據集,學習基本分類器Gm(x)

2.計算基本分類器Gm(x)在加權訓練數據集上的分類偏差率:

這裏,wmi表示第m輪中第i個實例的權值.

這代表,Gm(x)加權的訓練數據集上的分類偏差率是被Gm(x)誤分類樣本權值之和,

由此能夠看出數據權值分佈Dm基本分類器Gm(x)分類偏差率的關係

3. 計算基本分類器Gm(x)的係數amam表示Gm(x)在最終分類器中的重要性。

em≤1/2時,am≥0,而且am隨着em的減少而增大,

因此分類偏差率越小的基本分類器在最終分類器中的做用越大

4.更新訓練數據的權值分佈爲下一輪做準備

被基本分類器Gm(x)誤分類樣本的權值得以擴大,而被正確分類樣本的權值卻得以縮小

誤分類樣本在下一輪學習中起更大的做用。

不改變所給的訓練數據,而不斷改變訓練數據權值的分佈,使得訓練數據在基本分類器的學習中起不一樣的做用

  1. 線性組合f(x)實現M個基本分類器的加權表決。

 

AdaBoost的例子

弱分類器由x<vx>v產生, 其閾值v使該分類器在訓練數據集上分類偏差率最低.

初始化數據權值分佈

對於m1

在權值分佈爲D1的訓練數據上,閾值v2.5時分類偏差率最低,故基本分類器爲

G1(x)在訓練數據集上的偏差率e1P(G1(xi)≠yi)0.3

計算G1(x)的係數:

更新訓練數據的權值分佈:

分類器sign[f1(x)]在訓練數據集上有3個誤分類點。

對於m= 2

在權值分佈爲D2的訓練數據上,閾值v8.5分類偏差率最低,基本分類器爲

G2(x)在訓練數據集上的偏差率e20.2143

計算a20.6496

更新訓練數據權值分佈:

分類器sign[f2(x)]在訓練數據集上有3個誤分類點。

對於m = 3

在權值分佈爲D3的訓練數據上,閾值v5.5時分類偏差率最低,基本分類器爲

計算a30.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,對m1,2,…,M,極小化損失函數

計算獲得γm βm

更新fm

得到加法模型

 

前向分步算法與AdaBoost

由前向分步算法能夠推導出AdaBoost

AdaBoost算法是前向分歩加法算法的特例。

這時,模型是由基本分類器組成的加法模型,損失函數是指數函數

相關文章
相關標籤/搜索