1. 程式人生 > >筆試題筆記——整合學習boosting和bagging

筆試題筆記——整合學習boosting和bagging

一、什麼是整合學習?

整合學習通過構建並結合多個學習器來完成學習任務,整合學習的一般結構:先產生一組“個體學習器”,再用某種策略將它們結合起來。

二、整合學習的分類

根據個體學習器的生成方式,目前的整合學習方法大致可分為兩大類,即個體學習器間存在強依賴關係、必須序列生成序列化方法;以及個體學習器間不存在強依賴關係,可同時生成並行化方法。前者的代表是Boosting,後者的代表是Bagging和隨機森林(random forest)。Bagging是為了讓整合模型比單一模型更加正則化,而Boosting構建比單個模型容量更高的整合模型。

三、Boosting

Boosting是一組可將弱學習器提升為強學習器的演算法,這族演算法的工作機制類似:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器做錯的訓練樣本在後續得到更多關注,然後基於調整後的樣本分佈來訓練下一個基學習器;如此重複進行,直至基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。

Boosting演算法要求基學習器能夠對特定的資料分佈進行學習,這可通過“重賦權法”實施,即在訓練過程的每一輪,根據樣本分佈為每個訓練樣本重新賦予一個權重。對無法接受帶權樣本的及學習演算法,則可通過“重取樣法”來處理,即在每一輪學習中,根據樣本分佈對訓練集重新進行取樣,再用重取樣而得的樣本集對基學習器進行訓練。

Boosting族演算法最著名的代表是AdaBoost

從偏差-方差分解的角度分析,Boosting主要關注降低偏差,因此Boosting能基於泛化效能相當弱的學習器構建出很強的整合。

四、Bagging

Bagging基於自助取樣法,即給定包含m個樣本的資料集,我們先隨機取出一個樣本放入取樣集中,再把該樣本放回初始資料集,使得下次取樣時該樣本仍有可能被選中,這樣經過m次隨機取樣操作,我們得到含m個樣本的取樣集,初始訓練集中有的樣本在取樣集中多次出現,有的從未出現。初始訓練集中約有63.2%的樣本會出現在取樣集中。照這樣可以構建T個含m個訓練樣本的取樣集,然後基於每個取樣集訓練出一個基學習器,再將這些學習器進行結合,這就是Bagging的基本流程。

例如:原始資料集為6、8、9,構建兩個取樣集可能分別為6、6、8和9、9,6.

在對預測輸出進行結合時,Bagging通常對分類任務使用簡單投票,對迴歸任務使用簡單平均法。

從偏差-方差分解的角度看,Bagging主要關注降低方差,因此它在不剪枝決策樹、神經網路等易受擾動的學習器上效用更加明顯。

隨機森林是Bagging的一個拓展變體,在以決策樹為基學習器構建Bagging整合的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。泛化誤差更低,訓練效率更高。

Dropout可以被認為是整合大量深層神經網路的實用Bagging方法。區別在於Bagging情況下,每一個模型在其相應的訓練集上訓練到收斂,而在Dropout情況下,通常大部分模型都沒有顯式地被訓練,因為父神經網路會很大,取而代之的是在單個步驟中我們訓練一小部分的子網路,引數共享會使得剩餘的子網路也能有好的引數設定。