集成學習-AdaBoost更新準則推導 西瓜書

1.損失函數

上一篇文章簡單介紹了集成學習和弱學習器的理論概率,最後給出了AdaBoost的僞代碼與實現步驟,思路比較清晰,這篇文章主要針對分類器的重要性α與分佈權重Dt的更新規則進行推導.推導之前先看一下常見的損失函數(損失函數在SVM(3)裏介紹過,這裏只給出損失函數形式):

                                                            

                                                            

                                                            

損失函數(loss function)用來估量你模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函數,通常使用L(Y, f(x))來表示,損失函數越小,模型就更魯棒。


2.AdabBoost的損失函數

AdaBoost算法有多種推導方式,最常見的是基於‘加性模型’,即基學習器的線性加權:

                                                                        

最小化損失函數(指數損失)

                                                         

其中f(x)爲真實值,H(x)爲真實值,二者均爲二值型(-1,1),若H(x)能令損失函數最小化,則考慮上式對H(x)的偏導:

                

                                   

令導數爲0,求解:

                                    

                                                     

                                                        

因此有:

                                        

                                                           

                                                           

這意味着sign(H(x))達到了貝葉斯最優錯誤率,也就是說指數損失函數最小化時,分類錯誤率也將最小.


3.分類器重要性α更新規則

推導前先回顧一下算法的僞代碼:

                    


開始論證~在AdaBoost中,第一個分類器h1是通過基學習算法用於初始數據分不而得,此後迭代生成ht和αt,當基分類器ht基於Dt產生後,該基分類器權重αt應使得αtht最小化損失函數.

                                               

                                                                    

                                                                    

                                                                    

當前基學習器分類錯誤的概率:

                                                                

對損失函數求導:

                                                        

令導數爲0得:

                                                                            

恰好對應僞代碼的第六步.


4.樣本權重Dt更新規則

AdaBoost在獲得Ht-1之後樣本分佈將進行調整,增加分類錯誤樣本的權數,減少分類正確樣本的權數,使下一輪基學習器ht能夠糾正Ht-1的一些錯誤,理想的ht能夠糾正Ht-1的全部錯誤,即最小化:

                                        

                                                                       

e^x在x=0處的泰勒展開

                                                

將損失函數中ht(x)部分泰勒展開得(此處忽略了餘項):

                                        

                                                                        

因爲f(x),h(x) ∈ {-1,1}


此時理想的基學習器h(t)應滿足

                                                

                                                    

                                                    

這裏運用對偶將min轉化爲max,有點類似支持向量機求最優間隔的方法,而且在優化問題中加入常數不影響最終的結果.

這裏Dt表示一個分佈

                                                                    

這裏其實就大概瞭解了爲什麼要在更新Dt時下面引入zt去規範化分佈.

根據數學期望定義,這裏等價於:

                                                                    

這裏注意求期望的x範圍不是D,而是Dt.

由於f(x),h(x) ∈ {-1,1}:

                                                            

將上式整理爲1個式子,這裏I(x)爲示性函數

                                                            

則理想的ht:

                                                        

由此可見理想的ht是在分佈Dt下最小化分類誤差,因此,弱分類器基於Dt來訓練,且錯誤率應1小於50%(僞代碼第五步),考慮Dt與Dt+1的關係:

                                                        

                                                                      

                                                                      

這裏對應僞代碼第七步的權值更新.


總結:

通過這兩篇文章的理論推導,AdaBoost的大致過程已經比較清晰了,證明步驟基本都是參考西瓜書,只是對其中一小部分加了一些小的註解,有問題歡迎大家交流~下一節將就實例python編碼看一下針對具體的數據,集成學習是如何一步一步更新權值縮小泛化誤差的.


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