什麼是 梯度提升法(Gradient Boosting)?

梯度提升法是一種機器學習技術,透過迭代地組合弱學習器(通常是決策樹)來建立強大的預測模型,每次迭代都專注於修正前一個模型的錯誤。

核心概念

梯度提升法(Gradient Boosting)是一種強大的機器學習技術,屬於集成學習(Ensemble Learning)的範疇。其核心思想是透過組合多個弱學習器(通常是決策樹)來建立一個強大的預測模型。與其他集成方法(如隨機森林)不同,梯度提升法採用的是一種迭代式的學習方式,每次迭代都專注於修正前一個模型的錯誤,從而逐步提升模型的整體性能。

弱學習器: 在梯度提升法中,弱學習器通常是指單層決策樹(也稱為決策樹樁)。這些樹的深度很淺,通常只有一到五層,因此它們的預測能力相對較弱。然而,透過組合大量的弱學習器,梯度提升法可以建立一個非常複雜且準確的模型。

梯度下降: 梯度提升法的名稱來源於梯度下降演算法。在每次迭代中,演算法會計算當前模型的預測誤差(即殘差),然後使用梯度下降來找到一個新的弱學習器,該學習器可以最大程度地減少這些殘差。換句話說,每個新的弱學習器都試圖學習如何修正前一個模型的錯誤。

損失函數: 梯度提升法需要定義一個損失函數,用於衡量模型的預測誤差。不同的損失函數適用於不同的任務。例如,對於迴歸任務,常用的損失函數包括均方誤差(Mean Squared Error)和平均絕對誤差(Mean Absolute Error);對於分類任務,常用的損失函數包括對數損失(Log Loss)和指數損失(Exponential Loss)。

正則化: 為了防止過擬合,梯度提升法通常會採用一些正則化技術。常見的正則化方法包括限制樹的深度、增加葉節點的最小樣本數、以及使用L1和L2正則化。

運作原理

梯度提升法的運作原理可以概括為以下幾個步驟:

  1. 初始化模型: 首先,演算法會初始化一個簡單的模型,例如一個常數模型,該模型預測所有樣本的相同值。
  2. 計算殘差: 演算法會計算當前模型的預測殘差,即實際值與預測值之間的差異。
  3. 訓練弱學習器: 演算法會使用殘差作為目標變數,訓練一個新的弱學習器。這個弱學習器的目標是學習如何預測這些殘差。
  4. 更新模型: 演算法會將新的弱學習器的預測結果添加到當前模型中,並乘以一個學習率(Learning Rate)。學習率控制了每個弱學習器對最終模型的貢獻程度。較小的學習率可以防止過擬合,但需要更多的迭代次數才能達到相同的性能。
  5. 重複步驟2-4: 演算法會重複步驟2-4,直到達到預定的迭代次數或模型的性能不再提升。
  6. 輸出最終模型: 最終模型是所有弱學習器的加權和,其中每個弱學習器的權重由學習率決定。

詳細步驟範例 (迴歸任務,均方誤差損失):

假設我們有以下數據:

特徵 (x) 目標 (y)
1 3
2 6
3 8
4 11
  1. 初始化模型: 假設初始模型 f0(x) = 平均值(y) = 7
  2. 計算殘差:
    • 樣本1: 3 - 7 = -4
    • 樣本2: 6 - 7 = -1
    • 樣本3: 8 - 7 = 1
    • 樣本4: 11 - 7 = 4
  3. 訓練弱學習器: 使用特徵 x 來預測殘差。假設我們訓練出一個簡單的決策樹樁 h1(x) = 2x - 6
  4. 更新模型: 設定學習率 lr = 0.1。更新模型 f1(x) = f0(x) + lr * h1(x) = 7 + 0.1 * (2x - 6)
  5. 重複: 再次計算殘差 (使用 f1(x) 的預測值),並訓練新的決策樹樁 h2(x),然後更新模型 f2(x)。
  6. 迭代: 重複以上步驟,直到達到預定的迭代次數或損失函數收斂。

實際應用

梯度提升法在許多領域都有廣泛的應用,包括:

  • 金融: 信用評分、風險管理、欺詐檢測
  • 醫療保健: 疾病診斷、藥物發現、患者預測
  • 零售: 銷售預測、客戶細分、推薦系統
  • 廣告: 點擊率預測、廣告投放最佳化
  • 自然語言處理: 文本分類、情感分析、機器翻譯
  • 電腦視覺: 物件檢測、圖像分類、人臉識別

一些流行的梯度提升法實現包括:

  • XGBoost (Extreme Gradient Boosting): 一種高度最佳化的梯度提升法實現,以其速度和性能而聞名。
  • LightGBM (Light Gradient Boosting Machine): 另一種快速且高效的梯度提升法實現,特別適合處理大型資料集。
  • CatBoost (Category Boosting): 一種專為處理類別型特徵而設計的梯度提升法實現。

常見誤區

  • 過擬合: 梯度提升法容易過擬合,特別是在訓練資料集較小或模型複雜度較高時。為了防止過擬合,需要使用正則化技術,例如限制樹的深度、增加葉節點的最小樣本數、以及使用L1和L2正則化。
  • 學習率的選擇: 學習率是一個重要的超參數,它控制了每個弱學習器對最終模型的貢獻程度。較小的學習率可以防止過擬合,但需要更多的迭代次數才能達到相同的性能。因此,需要仔細調整學習率,以找到一個平衡點。
  • 特徵重要性: 梯度提升法可以提供特徵重要性的估計,但這些估計可能並不總是準確的。特徵重要性應該與其他方法(例如排列重要性)結合使用,以獲得更可靠的結果。
  • 資料預處理: 梯度提升法對資料的預處理要求相對較低,但仍然需要進行一些基本的預處理步驟,例如處理缺失值和異常值。
  • 計算成本: 梯度提升法的訓練時間可能較長,特別是在處理大型資料集或模型複雜度較高時。可以使用並行計算來加速訓練過程。

相關術語

常見問題

← 回到 梯度提升法 快查頁

延伸學習

想看 梯度提升法 的完整影片教學?前往 美第奇 AI 學院