🚀 機器學習的 X / Y / Z 框架整理
🔹 X:問題類型 (Task)
👉 決定「要解什麼問題」,對應不同的輸出與基本 Loss。
-
迴歸 (Regression)
-
輸出連續值
-
常用 Loss:MSE (平方誤差)
-
訊號:殘差 (y − ŷ),負梯度 = 殘差
-
-
分類 (Classification)
-
輸出類別
-
常用 Loss:Cross-Entropy
-
訊號:負梯度 ≠ 殘差,要計算 logistic 損失的導數
-
-
排序 (Ranking)
-
輸出相對順序
-
Loss:pairwise 或 listwise ranking loss
-
訊號:基於 pairwise 梯度
-
-
強化學習 (RL)
-
輸出策略,目標是最大化 reward
-
Loss:不是「殘差」,而是 reward function
-
訊號:policy gradient (正梯度,上升)
-
🔹 Y:學習模式 (Learning Paradigm)
👉 決定「怎麼學」。
-
單模型優化 (Optimization)
-
Logistic regression, Neural nets, SVM …
-
用梯度下降/上升直接優化 Loss / Likelihood。
-
-
集成學習 (Ensemble)
-
平行 (Bagging / Stacking)
-
弱學習器獨立學習,再整合 (隨機森林)。
-
-
順序 (Boosting)
-
弱學習器逐步疊加,每一步修正前一步的錯誤。
-
差別在於「修正的指標量」是什麼:
-
AdaBoost → 錯誤率 / 權重
-
Gradient Boosting → 負梯度 (殘差只是特殊情況)
-
XGBoost → 一階 + 二階導數 (Gradient + Hessian)
-
-
-
🔹 Z:指標量 / 引導訊號 (Objective / Signal)
👉 決定「如何修正」。
-
Loss / Likelihood
-
迴歸 (MSE):負梯度 = 殘差
-
分類 (Cross-Entropy):負梯度 ≠ 殘差,要算對數似然的導數
-
排序 (Ranking Loss):pairwise/listwise 的梯度
-
強化學習 (RL):policy gradient (正梯度,上升)
-
-
下降 vs 上升
-
梯度下降 (Gradient Descent):沿負梯度方向 → 損失縮小 → 殘差縮小
-
梯度上升 (Gradient Ascent):沿正梯度方向 → 效益/likelihood/reward 增加
-
-
演算法演進
-
AdaBoost:樣本權重 (error-based)
-
Gradient Boosting:負梯度 (general loss-based)
-
XGBoost:一階 + 二階導數 (Newton Boosting)
-
🎯 一句話總結
-
X (Task):你要解什麼問題?(迴歸、分類、排序、強化學習)
-
Y (Learning):你怎麼學?(單模型優化、集成 → Bagging vs Boosting)
-
Z (Signal):你根據什麼修正?(誤差、殘差、梯度、一階/二階導數、likelihood、reward)
👉 所以:
-
Boosting 是概念:一種「逐步修正」的集成方法。
-
殘差:只是平方誤差下的特例(負梯度 = 殘差)。
-
梯度:才是更一般的「指標量」。
-
梯度下降 vs 上升:取決於你是最小化誤差,還是最大化效益。
沒有留言:
張貼留言