周志華Boosting25年(一)

Boosting 25年

地址:https://www.bilibili.com/video/av28102016

導言:

集成學習Ensemble learning:多個學習器解決問題。
學習器可以同質,可以異質。
要求:個體儘可能精確,且差異大。

按照個體分:
在這裏插入圖片描述

數據挖掘領域很牛逼的KDD CUP被集成學習攻陷啦。
在這裏插入圖片描述
在這裏插入圖片描述

別的比賽也是這樣,如Netflix比賽。
在這裏插入圖片描述

具體的展開部分可以去看書《Ensemble Methods Foundations and Algorithms》,作者是周老師。

AdaBoost:

優勢在於1. 可以做精確的預測 2. 非常簡單(十行代碼)
現在應用很廣泛,且有很好的理論支撐。
在這裏插入圖片描述

Boosting25年,要從AdaBoost的出身講起。
它是一個1989年提出的問題引起的,弱可學習的和強可學習的是不是等價?
強可學習:存在一個多項式的算法,有很大的把握,得到很高的精度。
弱可學習:我做的比隨機猜好一點點。

現實生活中,做到強可學習很難,但弱可學習沒有那麼難。能不能通過什麼方法把容易得到的弱可學習模型轉化爲強可學習的模型?
在這裏插入圖片描述

這個答案的結果在直覺上是否定的。
但1990年,Schapire證明了這是對的。弱學習可以變成強學習(存在性的證明),且給出了構造性證明(告訴你具體怎麼做可以做成)。

這個構造本身就是第一個Boosting算法。

Boosting算法的另一個源頭是,1993年Freund提出的,用很多弱學習器通過投票結合。

但以上所有的算法,只能在理論上的意義,難以解決實際問題,因爲它要求你知道一些不可能知道的東西:比如你這個學習器在學習之前,最壞情況下最好能做多少。

到1997(發表在1995年)年,兩人提出了實際使用的方法。

所以AdaBoost就伴隨着這一個重要的理論問題出世了。
在這裏插入圖片描述

題外話,因爲截圖有些不清晰,另找了一篇講AdaBoost算法的。符號表示可能不一致,但想法肯定是一致的。https://blog.csdn.net/v_july_v/article/details/40718799

簡單思想:調整權重,做的不對的樣本的權重大點,更加重視,做得對的就不那麼重視了。最後用投票法把這些結合起來。
在這裏插入圖片描述
在這裏插入圖片描述

直觀過程:
拿到初始訓練數據Dataset 1,訓練一個學習器做預測,做完肯定有對有錯;對於做錯的樣本,讓它的權重,或者代表分佈的取值變大,讓它以更大的機率出現在Dataset 2,…,做到最後就越來越關注做錯的那些樣本。這在統計上其實是殘差逼近。
最後把所有的學習器加權結合起來。
在這裏插入圖片描述

這個過程很容易理解,它的意義有幾點。
第一,這個方法很簡單而且很優秀。
算法太複雜的時候大家就不太願意用了。
Boosting/AdaBoost的想法也影響着別的領域。比如圖像的人臉檢測。
在這裏插入圖片描述

在這裏插入圖片描述

第二,它不是簡簡單單的一個算法。它其實是一個General的Boosting的過程。我根據一個分佈生成學習器,然後判斷它做的好不好,根據它做的好不好調整好分佈,不斷迭代就好了。
在這裏插入圖片描述

第三,Boosting還有很好的理論保證,這是最根本的。
對於訓練集,只要你能保證學習器的效果比隨機好,那麼隨着訓練輪數的迭代,它最後效果一般還挺不錯的。(誤差指數級下降,很快能學到不錯的結果)
當然很多人會說,這是對於訓練樣本,訓練誤差。你處理新數據的泛化誤差如何?
又有理論證明泛化誤差也是有bound的。這是很好的。
在這裏插入圖片描述

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