集成學習-弱分類器與AdaBoost簡介 西瓜書

1.集成學習

現實情景中,一個學習器的泛化性能可能有侷限,而集成學習則可以通過構造多個學習器來完成學習任務,有時也被稱爲多分類器系統,集成學習的大致步驟是先生成一組‘個體學習器’,然後基於某種策略將學習器結合起來,個體學習器同昌由現有的算法從訓練數據產生,最常用的是決策樹,還有神經網絡,支持向量機等。根據集成學習中分類器的類別來看,如果集成學習器中的個體學習器都是相同的,則稱爲‘同質’集成,對應的個體學習器稱爲‘基學習算法’,而集成學習器中的個體學習器不同時,則稱爲‘異質集成’或‘組件學習器’。若根據個體學習器的生成方式來看,集成學習器大概分爲兩類,一類是個體學習器之間存在強依賴關係,必須串行生成的序列化方法,例如AdaBoost,以及個體學習器之間不存在強依賴關係,可同時生成的並行化方法,例如Bagging和隨機森林。這篇將主要講AdaBoost的生成過程。


2.弱分類器

集成學習器對多個學習器進行結合,常常獲得比單一學習器更優的性能,這對弱學習器尤爲明顯,因此集成學習很多時候是針對弱學習器進行的,但並不是說集成學習一定要使用弱學習器,二者沒有什麼必然的因果關係.下面做一個簡單的分析,考慮二分類問題,y∈{-1,1}和真實函數f,假設基分類器的錯誤率爲ε,即對每個分類器hi有:

                                                                            

假設集成學習通過簡單投票法結合T個基分類器,若有超過半數的基分類器分類正確,則集成分類就正確:

                                                                            

假設基分類器的錯誤率相互獨立,由Hoeffding不等式,集成的錯誤率:

                                        

                                                                    

上式表示,隨着集成中個體學習分類器數目T的增加,集成的錯誤率將指數級別的下降,最終趨於0,這也是集成學習器可以提高泛化能力的一種解釋,但也要結合前提條件。

Proof:

假設拋硬幣正面向上的概率爲p,反面朝上的概率爲1-排,令H(n)代表拋n次硬幣正面朝上的次數,則最多K次的概率爲:

                                                                    

對於,有Hoeffding不等式:

                                                                    

利用上面的Hoeffding不等式證明我們的集成錯誤率。

首先由集成錯誤率的形式得到:

                                                                                

由取整函數性質:x-1 < [x] ≤ x < [x]+1

                                                                

因爲P = 1-ε ,得:

                                                                            

帶入到Hoeffding不等式即得到書中(8.3),即集成錯誤率的不等式.


Tip:

對於二分類而言,弱分類器的準確率可能比較低,例如60%,65%等等,但它們的最低要求是一定要大於50%即隨機預測的準確率,如果一個分類器的準確率低於隨機預測的準確率,AdaBoost會將其捨棄.


3.AdaBoost

Boosting是一族可將弱學習器提升爲強學習器的過程,他的機制是先從訓練集訓練出一個基學習器,再根據基學習器的表現調整樣本分佈,使得之前分錯的樣本受到更多的關注,然後基於調整後的分佈訓練下一個基學習器,如此重複,直到學習器達到指定數目T或泛化錯誤率達到一定要求,最終將T個學習器加權結合,其中最著名的就是AdaBoost算法,它的第t+1個學習器的生成依賴第t個學習器,所以是串行生成的序列化方法,看一下具體是如何實現的。


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

T = {[x1,y1],[x2,y2]...[xn,yn]}  x爲n維實向量,yi∈{-1,+1} 爲初始數據

初始化權值分佈D1 = (w1,w2,...,wn) wi=1/N


2)訓練分類器,調整權值

根據初始數據,選擇基學習器錯誤率達到最低的閾值爲分界點,建立弱學習器h(x),並計算相應的e1,α1

對於分類器分錯的樣本,增加其權重,而對於分類正確的樣本,則相應的減少其權重,根據D1,e1,α1推導新的權值分佈D2

for i in range(T):

不斷重複上述調整權值,計算ei,αi的過程,串行生成學習器h(x),得到T個訓練分類器.


3)加權組合T個學習器,提高泛化性能

通過對上述學習器的加權組合,組成最終的分類器,並用符號函數sign預測最終的分類結果:

                                                                  



上述過程的僞代碼 by 西瓜書:

                        

其中誤分類樣本加權之和ei:

                                                        

分類器重要性度量α:

                                                                            

權值更新公式:

                                                                

規範分佈:

                                                                   


總結:

這一篇主要對集成學習,弱分類器集成提升泛化性能和AdaBoost的理論實現過程有了一些瞭解,主要就是不斷地更新迭代權數,達到最終的標準,第五步判斷大於0.5是在二分類情況下與隨機預測準確率進行比較,如果一個學習器的準確率還不如隨機猜測,理應將其捨棄。下一篇主要放在證明分類器重要性度量公式,權值公式,以及規範分佈公式是如何得來的,爲什麼採用這樣的更新方式.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章