第八章 集成學習
此係列文章旨在提煉周志華《機器學習》的核心要點,不斷完善中…
8.1 個體與集成
- 集成學習的一般結構
- 示意圖
- 個體學習器(individual learner)
- 基學習器(base learner)
同質(homogenous)集成:集成中只包含同種類型的個體學習器
基學習器——同質集成中的個體學習器
基學習算法(base learning algorithm)——相應的學習算法 - 組建學習器(component learner)
異質(heterogenous)集成:集成中包含不同類型的個體學習器
同質集成中的個體學習器亦稱“組建學習器”或直接稱爲個體學習器
- 基學習器(base learner)
- 示意圖
- 弱學習器(weak learner)(泛化性能略優於隨機預測的學習器)
- 集成學習的很多理論研究都是針對弱學習器進行的,而基學習器有時也被直接稱爲弱學習器
- 如何選擇集成學習的個體——集成個體“好而不同”
- 假設基分類器的錯誤率爲(對每個基分類器hi):
二分類的判定準則:
假設基分類器的錯誤率相互獨立,則由Hoeddcling不等式可知,集成的錯誤率爲:
- 集成學習大類(根據個體學習器的生成方式)
- 1)Boosting爲代表
個體學習器間存在強依賴關係
必須串行生成的序列化方法 - 2)Bagging和隨機森立爲代表
個體學習器間不存在強依賴關係
可同時生成的並行化方法
- 1)Boosting爲代表
8.2 Boosting
- 特點與工作機制
定義:Boosting是一族可將弱學習器提升爲強學習器的算法
關注:Boosting主要關注降低偏差
工作機制- 1.初始訓練集訓練->基學習器
- 2.根據基學習器的表現->調整樣本分佈->使得先前基學習出錯的訓練樣本在後續受到更多關注
- 3.基於調整後的樣本分佈來訓練下一個基學習器
- 4.重複進行,直至基學習器數目達到事先指定的值T
- 5.將這T個基學習器進行加權結合
- 代表算法—AdaBoost
1)主要推導:基於加性模型(additive model)(基學習器的線性組合):來最小化指數損失函數:
2)算法
3)兩種方法
重賦權法(re-weighting):訓練過程的每一輪中,根據樣本分佈爲每個訓練樣本重新賦予一個權重
重採樣法(re-sampling):每一輪學習中,根據樣本分佈對訓練集重新採樣,再用重採樣而得的樣本集對基學習器進行訓練
8.3 Bagging與隨機森林
8.3.1 Bagging(Bootstrap AGGregatING)
- 介紹
並行式集成學習方法代表,基於自助採樣法(bootstrap sampling)
基本流程:採樣出T個含m個訓練樣本的採樣集,然後基於每個採樣集訓練出一個基學習器,再將這些基學習器進行結合
對預測輸出進行結合
主要關注:降低方差- 分類任務:簡單投票法(相同:隨機或考察置信度)
- 迴歸任務:簡單平均法
- 算法描述
具體算法
高效的集成學習算法,標準AdaBoost只適用於二分類任務,Bagging能不經修改地用於對分類、迴歸等任務 - 包外估計(out-of-bag estimate)
自助採樣原理:36.8%包外估計
未使用x訓練的基學習器在x上的預測:
Bagging泛化誤差的包外估計:
包外估計其他用途- 基學習器爲決策樹:使用包外樣本輔助剪枝
- 用於估計決策樹中各結點的後驗概率以輔助對零樣本結點的處理
- 基學習器爲神經網絡:使用包外樣本輔助early stop減小過擬合風險
8.3.2 隨機森林(RF, Random Forest)
- 1)介紹:Bagging的一個擴展變體——進一步在決策樹的訓練過程中引入了隨機屬性選擇
- 對基決策樹每個結點,先從該結點的屬性集合中隨機選擇一個包含k個屬性的子集,然後再從這個子集中選擇一個最優屬性用於劃分
- 參數k控制隨機性的引入程度
k=d,基決策樹的構建與傳統決策樹相同
k=1,隨機選擇一個屬性用於劃分
一般情況:推薦值:k=log2d
- 2)RF與Bagging對比
RF收斂性與Bagging相似
RF起始性能往往較差(尤其當集成中只包含一個基學習器時)
隨着個體學習器數目的增加,隨機森林通常會收斂到更低的泛化誤差
RF訓練效率優於Bagging(只需考察一個屬性子集)
8.4 結合策略
8.4.1 學習器結合的好處
統計方面:減少泛化性能不佳的風險
計算方面:降低陷入糟糕局部極小點的風險
表示的方面:學得更好的近似
8.4.2 基學習器結合的常見策略
- 平均法(averaging):對數值型輸出hi(x)最常見的結合策略
- 簡單平均法(個體學習器性能相近)
- 加權平均法(集成學習研究基本出發點,個體學習器性能相差較大時採用)
- 簡單平均法(個體學習器性能相近)
- 投票法(voting):對分類任務來說最常見的結合策略
- 絕對多數投票法:標記過半數即爲該標記,否則拒絕
- 相對多數投票法:多個最高票隨機選
- 加權投票法
- 現實任務:不同類型個體學習器可能產生不同類型的h(x),不可混用
- 學習法:訓練數據很多時更強大的結合策略,通過另一個學習器來進行結合
- 典型代表:Stacking
個體學習器——初級學習器
用於結合的學習器——次級學習器/元學習器(meta-learner) - Stacking算法描述
- 次級學習器的輸入屬性表示和次級學習算法對Stacking集成的泛化性能有很大影響
將初級學習器的輸出類概率作爲次級學習器的輸入屬性
多響應線性迴歸(Multi-response Linear Regression MLR)作爲次級學習算法效果較好
在MLR中使用不同的屬性集更佳 - 貝葉斯模型平均(Bayes Model Averaging BMA)與stacking對比
理論:數據生成模型恰在當前考慮的模型中,且噪聲小,則BMA不差於Stacking
現實中:無法確保數據生成模型一定在當前考慮的模型中甚至難以近似,Robust:Stacking>BMA(對誤差敏感)
- 典型代表:Stacking
8.5 多樣性
- 誤差-分歧分解(error-ambiguity decomposition)
- 基本算式(全樣本上):
集成泛化誤差:
個體學習器hi在全樣本上的泛化誤差:
個體學習器hi在全樣本上的分歧項:
個體學習器泛化誤差的加權均值:
個體學習器的加權分歧值: - 現實任務很難直接對E右邊式子簡化
定義在整個樣本空間
個體學習器的加權分歧值不是一個可直接操作的多樣性度量 - 推導只適合迴歸學習,難以推廣與分類
- 基本算式(全樣本上):
- 多樣性度量(diversity measure)
- 基本:預測結果列聯表
- 不合度量(disagreement measure)
值域[0,1],值大多樣性大: - 相關係數(correlation coefficient)
值域[-1,1],衡量與相關性: - Q-統計量(Q-statistic)
與相關係數符號相同,絕對值≤相關係數絕對值: - k統計量(k-statistic)
分類器hi、hj在D完全一致;若偶然,k=0,k通常非負,只在達成一致概率低於偶然取負值:
- 多樣性增強
- 數據樣本擾動
對不穩定基學習器很有用:決策樹、神經網絡
對穩定學習器作用不大:線性學習器、支持向量機、樸素貝葉斯、k近鄰學習器等 - 輸入屬性擾動
隨機子空間(random subspace)算法
- 輸出表示擾動
翻轉法(Flipping Output):隨機改變一些訓練樣本的標記
輸出調製法(Output Smearing):將分裂輸出轉化爲迴歸輸出後構建個體學習器
ECOC法:利用糾錯輸出碼將多分類任務拆解爲一系列二分類任務來訓練基學習器 - 算法參數擾動
負相關法(Negative Correlation):顯式地通過正則化項來強制個體神經網絡使用不同的參數
對參數較少的算法,可通過將其學習過程中某些環節用其他類似方式代替,從而擾動
- 數據樣本擾動