8.1 提高方法AdaBoost(AdaptiveBoosting)算法
對提高方法來講,有兩個問題須要回答:一是在每一輪如何改變訓練
數據的權值或機率分佈;二是如何將弱分類器組合成一個強分類器。
關於第1個
問題,AdaBoost的作法是,提升那些被前一輪弱分類器錯誤分類樣本的權值,而
下降那些被正確分類樣本的權值。這樣一來,那些沒有獲得正確分類的數據,由
於其權值的加大而受到後輪的弱分類器的更大關注。因而,分類問題被一系列
的弱分類器「分而治之」。
至於第2個問題,即弱分類器的組合,AdaBoost採起
加權多數表決的方法。具體地,加大分類偏差率小的弱分類器的權值,使其在表
決中起較大的做用,減少分類偏差率大的弱分類器的權值,使其在表決中起較小
的做用。
算法步驟說明:
步驟2 (b) 代表G
m(x)在加權的
訓練數據集上的分類偏差率是被
G
m
(x)
誤分類樣本的權值之和,由此能夠看出數
據權值分佈D
m
與基本分類器
G
m
(x)
的分類偏差率的關係。
步驟2 (c
)可知,當e
m
<=1/2時,a
m
>
=0,而且
a
m
隨着
e
m
的減少而增大,因此
分類偏差率越小的基本分類器在最終分類器中的做用越大。
(d) 更新訓練數據的權值分佈爲下一輪做準備,式(8.4}能夠寫成
由此可知,被基本分類器
G
m
(x)
誤分類樣本的權值得以擴大,而被正確分類樣本
的權值卻得以縮小。.兩相比較,誤分類樣本的權值被放大。
不改變所給的訓練數據,而不斷改變
訓練數據權值的分佈,使得訓練數據在基本分類器的學習中起不一樣的做用,這是
AdaBoost的一個特色.
步驟(3)
全部
係數
a
m
之和並不爲1。
利用基本分類器的線性組合構建最終
分類器是AdaBoost的另外一特色。
8.2 AdaBoost算法的訓練偏差分析
定理8.1 (AdaBoost的訓練偏差界) AdaBoost算法最終分類器的訓練偏差
界爲
這必定理說明,能夠在每一輪選取適當的
G
m
使得Z
m
最小,從而使訓練偏差
降低最快。對二類分類問題,有以下結果:
定理8.2(二類分類問題AdaBoost的練偏差界)
推論8.1 若是存在r>0,對全部m有
r
m
>=r,則
這代表在此條件下AdaBoost的訓練偏差是以指數速率降低的。
注意,AdaBoost算法不須要知道下界r
。AdaBoost具備適應性,即它
能適應弱分類器各自的訓練偏差率。
AdaBoost的訓練偏差分析代表,AdaBoost的每次迭代能夠減小它在訓練
數據集上的分類偏差率,這說明了它做爲提高方法的有效性。
8.3 AdaBoost算法的解釋
AdaBoost算法還有另外一個解釋,便可以認爲AdaBoost算法是模型爲加法模型、損失函數爲指數函數、學習算法爲前向分步算法時的二類分類學習方法。
前向分步算法(forward stagewise algorithm)算法
其中,b爲基函數,r爲基函數的參數,beta爲基函數的係數。
前向分步算法同時求解從m=1到M全部參數的優化問題簡化爲逐次求解各個參數的優化問題.
前向分步算法與AdaBoost是等價的。函數
定理8.3 AdaBoost算法是前向分步加法算法的特例。這時,模型是由基本分類器組成的加法模型,損失函數是指數函數。
8.4 提高樹
提高樹是以分類樹或迴歸樹爲基本分類器的提高方法。提高樹被認爲是統計
學習中性能最好的方法之一。
提高樹模型性能
提高方法實際採用加法模型(即基函數的線性組合)與前向分步算法。以決
策樹爲基函數的提高方法稱爲提高樹(boosting tree)。對分類問題決策樹是二叉
分類樹,對迴歸問題決策樹是二叉迴歸樹。
基本分類器x<v或
x>v,能夠看做是由一個根結點直接鏈接兩個葉結點的簡單決策樹,即所謂的決
策樹樁(decision stump)。
提高樹模型能夠表示爲決策樹的加法模型:
其中,T表示決策樹,theta爲決策樹的參數,M爲樹的個數。
提高樹算法學習
提高樹算法採用前向分步算法。首先肯定初始提高樹f0(x)=0,第m步的模型是
其中,fm-1(x)爲當前模型,經過經驗風險極小化肯定下一棵決策樹的參數。
不一樣問題的提高樹學習算法主要區別在於使用的損失函數
不一樣。包括用平方偏差損失函數的迴歸問題,用指數損失函數的分類問題,以及
用通常損失函數的通常決策問題。
對於二類分類問題,提高樹算法只需將AdaBoost算法8.1中的基本分類器限
製爲二類分類樹便可,是AdaBoost算法的特殊狀況。
迴歸問題的提高樹算法優化
當採用平方偏差損失函數時,
其中
是當前模型擬合數據的殘差(residual)。
因此
對迴歸問題的提高樹算法來講,求解
經驗風險極小化的問題
只需簡單地擬合當前模型的殘差
。
提高樹利用加法模型與前向分步算法實現學習的優化過程。當損失函數是平
方損失和指數損失函數時。每一步優化是很簡單的。但對通常損失函數而言,往
往每一步優化並不那麼容易。針對這一問題,Freidmao提出了梯度提高(gradient
boosting)算法。這是利用最速降低法的近似方法,其關鍵是利用損失函數的負
梯度在當前模型的值
做爲迴歸問題提高樹算法中的殘差的近似值,擬合一個迴歸樹。
算法第1步初始化,估計使損失函數極小化的常數值,它是隻有一個根結點
的樹,即 x>c 和 x<c;
第2 (a)步計算損失函數的負梯度在當前模型的值,將它做爲殘差的估計。對
於平方損失函數,它就是一般所說的殘差;對於通常損失函數,它就是殘差的近
似值。
第2 (b)步估計迴歸樹葉結點區域,以擬合殘差的近似值
第2 (c)步利用線
性搜索估計葉結點區域的值,使損失函數極小化
第2 (d)步更新迴歸樹。
第3步
獲得輸出的最終模型。