深度學習的集成方法——Ensemble Methods for Deep Learning Neural Networks


本文主要參考Ensemble Methods for Deep Learning Neural Networks一文。

1. 前言

  • 神經網絡具有很高的方差,不易復現出結果,而且模型的結果對初始化參數異常敏感。
  • 使用集成模型可以有效降低神經網絡的高方差(variance)。

2. 使用集成模型降低方差

  • 訓練多個模型,並將預測結果結合到一起,能夠降低方差。
    • 多模型集成能起到作用的前提是,每個模型有自己的特點,每個模型預測出的誤差是不同的。
    • 簡單的集成方式就是將預測結果取平均,該方法起作用的原因是,不同的模型通常不會在測試集上產生相同的錯誤。
  • 結合多個模型使得最終的預測結果添加了一個偏差(bias),而這個偏差又會與神經網絡的方差(variance)相抵消,使得模型的預測對訓練數據的細節、訓練方案的選擇和單次訓練運行的偶然性不太敏感。
  • 集成模型的結果會比任意單模型的結果都要好。

3. 如何集成神經網絡模型

  • The oldest and still most commonly used ensembling approach for neural networks is called a “committee of networks.”
  • 通常選擇多模型的方式:多個相同配置的神經網絡 + 相同的訓練數據集 + 不同的參數隨機初始化
  • 集成的模型數量通常比較小,原因如下:
    • 考慮計算復雜度。
    • 當模型數目達到一定程度,隨着數目的增加,集成模型得到的性能回報變小。
  • 集成模型一般考慮如下三種構造方式:
    • Trainning Data: 不同單模型使用不同的訓練數據
    • Ensemble Models: 選擇不同的單模型
    • Combinations: 選擇不同的組合方式

3.1 Varying Training Data

  • 一個比較簡單的方法是k折交叉驗證,能夠得到全體訓練集的k個子訓練集,用每個子集單獨去訓練模型。最后將這k個模型做集成。
    • 注意,每個子訓練集的大小是\((k-1)/k\)倍的全體訓練集,而不是\(1/k\)倍的全體訓練集。
  • 另一種方法是用重采樣(resampling)的方式構建新訓練集。
    • 重采樣過程意味着每個訓練數據集的組成是不同的,可能存在重復的例子,從而允許在數據集上訓練的模型對樣本的密度具有稍微不同的期望,並具有不同的泛化誤差(generalization error)。
    • 這種方法也叫做bootstrap aggregation,簡稱為bagging,被設計用於未剪枝且具有高方差低偏置(high variance and low bias)的決策樹。
  • 與上一個方法等價的采樣方式為欠采樣,即采樣后的訓練集不出現重復,且比全體數據集要少。
    • 注意,欠采樣得到的新數據未經過正規化(regularization),這樣可以使得模型訓練的更快(過擬合的更快)。
  • Other approaches may involve selecting a random subspace of the input space to allocate to each model, such as a subset of the hyper-volume in the input space or a subset of input features.

3.2 Varying Models

  • 對相同配置的模型,使用不同的參數隨機初始化訓練。
    • 這種方式在一定程度上可以降低方差,但是可能不會顯著地改善泛化誤差。
    • 由於模型都學習了類似的映射函數,因此模型產生的錯誤可能仍然相關性太高。
    • 這方式實際上只是受學習算法的影響,即不同隨機參數可能抵達不同的局部最優點,甚至某些參數初始化可以使得模型恰巧抵達全局最優點。
  • 另一個方法是變化模型的配置參數,如不同維度的隱狀態向量,不同的神經網絡層數,不同的學習率,不同的學習策略,不同的正則化方式等的。
    • 這些模型能夠學習更加異構的映射函數集合,並且在預測和預測誤差方面具有較低的相關性,能夠互相彌補不足。
    • Differences in random initialization, random selection of minibatches, differences in hyperparameters, or different outcomes of non-deterministic implementations of neural networks are often enough to cause different members of the ensemble to make partially independent errors.
  • 在單個模型可能需要較長訓練時間的時候,另一個備選方案在訓練過程中定期保存最佳模型(called snapshot or checkpoint models),即不同的checkpoints點,然后對保存的模型進行集成。
    • 能夠達到同一數據上訓練多個模型的效果,盡管是在單個訓練時間生成的。
    • 因為訓練時間長,所以不適用於前面兩種反復訓練模型的方式。
    • 這種集成方式還有一個變體,是選定幾個epoch區間,將這些區間的所有模型做集成。(Ensembles from such contiguous sequences of models are referred to as horizontal ensembles.)
    • 因為是在選取同一訓練期間的不同檢查點模型,所以也可以在模型的訓練過程中,根據結果的反饋,不斷改變優化方式,如學習率decay等策略,使得后續檢查點能夠得到更加有效的模型。

3.3 Varying Combinations

  • 最簡單的組合方式是選擇所有的模型,將預測結果區平均。
    • 稍微改進的方法是加權取平均,權重由驗證集提供。這種方法有時也稱為model blending。
  • 設計一個新的模型,能夠自動化學習到“加權取平均”過程中,每個單模型所占的權重大小。
    • 這種學習新模型的方式,一般被稱為model stacking, 或 stacked generalization。
    • model stacking是在第二層特征空間中進行學習的。
    • 采用更加復雜的stacking方式,例如boosting(一次添加一個模型以糾正先前模型的錯誤)。
  • 另一個結合方式是,先將具有相同結構的多個模型的權重取平均,以得到該模型結構的“最好成績模型”。之后再對不同模型結構的“最好成績模型”進行集成。

4. 總結

  • 以上內容,是我閱讀這篇文章得到的總結,感興趣的讀者可以繼續閱讀原文,原文覆蓋了更多的知識點,並提供了許多參考依據,具有權威性。
  • 原文章將深度學習的集成方式總結為如下幾點(本人總結了其中大部分方法):
    • Varying Training Data
      • k-fold Cross-Validation Ensemble
      • Bootstrap Aggregation (bagging) Ensemble
      • Random Training Subset Ensemble
    • Varying Models
      • Multiple Training Run Ensemble
      • Hyperparameter Tuning Ensemble
      • Snapshot Ensemble
      • Horizontal Epochs Ensemble
      • Vertical Representational Ensemble
    • Varying Combinations
      • Model Averaging Ensemble
      • Weighted Average Ensemble
      • Stacked Generalization (stacking) Ensemble
      • Boosting Ensemble
      • Model Weight Averaging Ensemble


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM