集成學習是使用一系列學習器進行學習,并使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果的一種機器學習方法。一般情況下,集成學習中的多個學習器都是同質的"弱學習器"。
定義
集成學習的主要思路是先通過一定的規則生成多個學習器,再采用某種集成策略進行組合,最后綜合判斷輸出最終結果。一般而言,通常所說的集成學習中的多個學習器都是同質的"弱學習器"。基于該弱學習器,通過樣本集擾動、輸入特征擾動、輸出表示擾動、算法參數擾動等方式生成多個學習器,進行集成后獲得一個精度較好的"強學習器"。
隨著集成學習研究的深入,其廣義的定義逐漸被學者們所接受,它是指對多個學習器集合采用學習的方式,而不對學習器性質加以區分。根據這一定義,多學習器系統 (multi-classifier system) 、多專家混合 (mixture of experts) 以及基于委員會的學習 (committee-based learning)等多個領域都可以納入到集成學習中。但當前仍然以同質分類器的集成學習研究居多。
基本理論
集成學習的主要發展過程見圖1。
集成學習的理論基礎是 PAC 理論、強可學習與弱可學習理論。集成學習的理論基礎表明強可學習器與弱可學習器是等價的,因此可以尋找方法將弱可學習器轉換為強可學習器,而不必去直接尋找較難發現的強可學習器。具有代表性的集成學習方法有Boosting,Bagging,隨機森林。
以三分類問題為例,假如有個分類器相互獨立,錯誤率都為,使用簡單的投票法組合分類器,其分類器的錯誤率為:
從上式可看出, 時,錯誤率隨增大而減少。如果每個分類器的錯誤率都小于,且相互獨立,那么集成學習器個數越多,錯誤率越小,無窮大時,錯誤率為0。
另外以表為例,代表分類正確,代表分類錯誤,集成方法為簡單投票。從表1中可看出,只有當個體分類器"好而不同"時,集成才能發揮作用。因此,集成學習的關鍵在于多個學習器的兩個指標,即"精確性"和"多樣性"。
集成方法
Boosting
各種不同的Boosting算法有很多,但最具代表性的當屬AdaBoost算法,而且各種不同Boosting算法都是在AdaBoost算法的基礎上發展起來的。因此下面以AdaBoost算法為例,對Boosting算法進行簡單的介紹。
首先給出任意一個弱學習算法和訓練集,其中,,表示某個域或實例空間,在分類問題中是一個帶類別標志的集合。
初始化時,Adaboost為訓練集指定分布為,即每個訓練例的權重都相同為。接著,調用弱學習算法進行T次迭代,每次迭代后,按照訓練結果更新訓練集上的分布,對于訓練失敗的訓練例賦予較大的權重,使得下一次迭代更加關注這些訓練例,從而得到一個預測函數序列,對每個預測函數也賦予一個權重,預測效果好的,相應的權重越大。T次迭代之后,在分類問題中最終的預測函數采用帶權重的投票法產生。單個弱學習器的學習準確率不高,經過運用Boosting算法之后,最終結果準確率將得到提高。
Bagging
Bagging(bootstrap aggregating)是通過結合幾個模型降低泛化誤差的技術,主要思想是分別訓練幾個不同的模型,然后讓所有模型表決出測試樣例的輸出。這是機器學習常規策略的一個例子,被稱為 模型平均。模型平均奏效的原因是不同的模型通常不會在測試集上產生完全相同的誤差。
如上圖,Bagging涉及構造T個不同的數據集。每個數據集從原始數據集中重復采樣構成,和原始數據集具有相同數量的樣例。這意味著,每個數據集以高概率缺少一些來自原始數據集的例子,還包含若干重復的例子(如果所得訓練集與原始數據集大小相同,那所得數據集中大概有原始數據集的實例)。模型i在數據集i上訓練。每個數據集所含樣本的差異導致了訓練模型之間的差異。
隨機森林
隨機森林是2001年由Leo Breiman將Bagging集成學習理論與隨機子空間方法相結合,提出的一種機器學習算法。隨機森林是以決策樹為基分類器的一個集成學習模型,它包含多個由Bagging集成學習技術訓練得到的決策樹,當輸入待分類的樣本時,最終的分類結果由單個決策樹的輸出結果投票決定。隨機森林解決了決策樹性能瓶頸的問題,對噪聲和異常值有較好的容忍性,對高維數據分類問題具有良好的可擴展性和并行性。此外,隨機森林是由數據驅動的一種非參數分類方法,只需通過對給定樣本的學習訓練分類規則,并不需要先驗知識。
參考資料 >