「任何問題都用深度學習解決」 「Transformer 萬能,傳統模型已經過時」 ——這是 80% 初學者的第一直覺。 正確的工程師問的是:資料量多少?延遲需求是幾 ms?可解釋性重要嗎?預算有多少? 再選模型。
面試情境
你的電商平台每天有 50 萬筆訂單,需要即時預測「這筆訂單是否為詐騙」,要求推論延遲 < 5ms、需要提供法務可稽核的決策理由、訓練資料有 200 萬筆歷史記錄(其中詐騙率 0.3%)。你會選擇哪種模型?為什麼?
一、核心問題:深度學習時代為什麼還要學傳統 ML
2024 年,ChatGPT 席捲世界,LLM 成為媒體焦點。許多工程師開始質疑:傳統機器學習是否已成歷史?
答案是:不,傳統 ML 在生產系統中的佔比仍超過 80%。
原因很直接:
1. 資料量的現實
大多數企業的結構化資料集在 10 萬至 500 萬筆之間。神經網路在這個規模下通常不比梯度提升樹更好,卻需要 10–100 倍的計算資源。
2. 延遲的硬需求
金融風控、廣告競價、即時推薦的推論預算通常是 1–10ms。線性模型推論 < 0.1ms,決策樹 < 1ms,而即使是小型神經網路也需要 10–50ms(CPU),加上批次化開銷後更長。
3. 可解釋性的法規壓力
歐盟 GDPR、台灣個資法、金融監理機關都要求「自動化決策必須能解釋」。邏輯回歸的係數、決策樹的規則路徑可以直接呈給法務;神經網路的注意力權重不能。
4. 維護成本的差距
一個訓練好的 XGBoost 模型可以用 pickle 序列化,部署到任何有 Python 的環境。不需要 GPU,不需要特殊推論框架,oncall 工程師看得懂特徵重要性。
5. 過擬合風險
資料少、特徵少的場景,深度模型反而容易過擬合。L1/L2 正則化的線性模型在小資料集上往往比 5 層 MLP 表現更穩定。
傳統 ML 的適用邊界(速查表)
場景 資料量 延遲需求 推薦模型
──────────────────────────────────────────────────────────────
結構化分類(詐騙偵測) 10K–10M < 5ms XGBoost / LogReg
數值回歸(房價預測) 1K–1M < 10ms Ridge / GBM
文字分類(垃圾郵件) 1K–500K < 50ms LogReg + TF-IDF
異常偵測(設備監控) 1K–100K < 100ms IsolationForest
推薦系統(協同過濾) 100K–50M < 20ms MF / LightFM
影像分類 > 10K 任意 CNN(深度學習)
序列生成(對話) > 1M token > 100ms Transformer
二、三個演進階段(POC / MVP / Scale)— 傳統 ML 在不同規模的角色演進
╔══ Phase 1:POC(< 1 萬筆資料,< 1K QPS)══╗
目標:快速驗證假設,兩週內上線。
┌─────────────────────────────────────────────────────┐
│ Phase 1 架構 │
│ │
│ 原始資料(CSV) │
│ │ │
│ ▼ │
│ ┌──────────────┐ sklearn Pipeline │
│ │ 特徵工程 │ (StandardScaler + │
│ │ (手動) │ LogisticRegression) │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ pickle 序列化 │
│ │ 模型訓練 │──────────────────▶ model.pkl │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Flask API │ POST /predict → JSON │
│ │ (單機) │ latency: < 5ms │
│ └──────────────┘ │
└─────────────────────────────────────────────────────┘
選型:LogisticRegression 或 DecisionTreeClassifier。原因:參數少、可解釋、訓練快(< 1 秒)。
可接受的妥協:無模型版本管理、無 A/B 測試、無特徵 store。
成本:單一 t3.small EC2($0.023/hr),總月費 < $20。
╔══ Phase 2:MVP(10K–200K 筆資料,1K–10K QPS)══╗
目標:生產穩定,可監控,支援多個模型版本。
┌──────────────────────────────────────────────────────────────┐
│ Phase 2 架構 │
│ │
│ 資料倉儲(S3/BigQuery) │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────────────────────────┐ │
│ │ 特徵工程 │────▶│ MLflow Experiment Tracking │ │
│ │ Pipeline │ │ (params, metrics, artifacts) │ │
│ └──────┬──────┘ └─────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ XGBoost / │────▶│ Model │ │
│ │ LightGBM │ │ Registry │ │
│ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 推論服務 (FastAPI + uvicorn, 2 replicas) │ │
│ │ ┌──────────┐ ┌──────────┐ │ │
│ │ │ Model v1 │ │ Model v2 │ A/B traffic split │ │
│ │ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ 監控 │ Prometheus + Grafana │
│ │ (漂移偵測) │ 特徵分布 PSI > 0.2 觸發警報 │
│ └─────────────┘ │
└──────────────────────────────────────────────────────────────┘
新增組件:MLflow、模型 registry、A/B 測試框架、PSI 漂移監控。
成本:3 × c5.xlarge($0.17/hr),MLflow server(t3.medium),月費約 $400–600。
解決的問題:模型可追蹤、可回滾、漂移時有告警。
仍未解決:特徵重複計算、大規模批次推論效率。
╔══ Phase 3:Scale(200K–10M 筆資料,> 10K QPS)══╗
目標:企業級,自動化重訓,成本最佳化。
┌─────────────────────────────────────────────────────────────────┐
│ Phase 3 架構 │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Feature Store (Feast/Hopsworks) │ │
│ │ Online Store (Redis, < 1ms) Offline Store (S3+Spark) │ │
│ └──────────────────────┬───────────────────────────────────┘ │
│ │ │
│ ┌──────────────┼──────────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ 批次訓練 │ │ 線上學習 │ │ Shadow Mode │ │
│ │ (Spark ML) │ │ (River) │ │ 新模型驗證 │ │
│ └──────┬───────┘ └────┬─────┘ └──────┬───────┘ │
│ │ │ │ │
│ └──────────────┼──────────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Model Serving │ │
│ │ Triton / BentoML │ │
│ │ Auto-scaling k8s │ │
│ │ p99 latency < 2ms │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
新增組件:Feature Store、線上學習、Shadow Mode 驗證、Kubernetes 自動擴縮。
成本:約 $3,000–8,000/月,但模型推論成本是 DL 方案的 1/10–1/50。
三、線性模型:回歸與分類基礎
3.1 線性回歸的幾何直覺
線性回歸在做的事情:在 n 維空間找一個超平面,使所有訓練點到該平面的垂直距離平方和最小。
y(目標變量)
▲
│ ○ ○
│ ○ ○
│○ / ○
│ /
│ / ← 最小化 Σ(yᵢ - ŷᵢ)²
│/
└──────────────────▶ x(特徵)
殘差(residual)= yᵢ - ŷᵢ
目標:min Σ residual²
數學形式:ŷ = w₀ + w₁x₁ + w₂x₂ + … + wₙxₙ
正規化版本:
- Ridge(L2):loss + λΣwᵢ² → 係數收縮,不為零,適合多重共線性
- Lasso(L1):loss + λΣ|wᵢ| → 係數可降為零,自動特徵選擇
- ElasticNet:兩者混合,λ₁L1 + λ₂L2
何時用 Ridge vs Lasso:
- 特徵數 > 樣本數 → Lasso(強迫稀疏)
- 所有特徵都可能有用 → Ridge(平滑收縮)
- 不確定 → ElasticNet(調 l1_ratio 參數)
實際性能數字:
- 訓練(10 萬筆,100 特徵):< 1 秒(sklearn)
- 推論(單筆):< 0.1ms
- 記憶體佔用:< 1MB
3.2 邏輯回歸的直覺
邏輯回歸 ≠ 回歸。它是分類器,用 Sigmoid 函數把線性輸出壓縮到 [0,1]:
P(y=1|x) = σ(wᵀx + b) = 1 / (1 + e^(-wᵀx))
Sigmoid 函數形狀:
1.0 │ ╭──────────
│ ╭──╯
0.5 │ ──╯ ← 決策邊界(P = 0.5)
│ ╭──╯
0.0 │────── ╯
└──────────────────────────
負值 正值 wᵀx
損失函數:Binary Cross-Entropy = -Σ[yᵢlog(ŷᵢ) + (1-yᵢ)log(1-ŷᵢ)]
關鍵優勢:輸出的 P 值直接是「機率」,可以調整閾值(預設 0.5)。例如詐騙偵測可以把閾值降到 0.3,提高召回率,代價是精確率下降。
多分類延伸:Softmax 回歸,輸出 K 個類別的機率分布,Σ = 1。
實際性能:
- 訓練(100K 筆,1000 特徵):2–5 秒
- 推論(單筆):< 0.5ms
- 可解釋性:係數 exp(wᵢ) 直接是 odds ratio
四、決策樹與規則學習
4.1 決策樹的構建原理
決策樹透過遞迴地選擇「最能分隔資料的特徵」來建立二元樹結構。
┌─────────────────┐
│ Age > 35? │
└────────┬────────┘
│
┌─────────────┴─────────────┐
Yes No
│ │
┌────────▼────────┐ ┌─────────▼────────┐
│ Income > 50K? │ │ 有信用記錄? │
└────────┬────────┘ └─────────┬────────┘
│ │
┌───────┴───────┐ ┌───────┴───────┐
Yes No Yes No
│ │ │ │
✅ 核准 ❌ 拒絕 ✅ 核准 ❌ 拒絕
(信用良好) (風險高) (低風險) (無記錄)
分裂標準:
- 分類問題:Gini Impurity 或 Information Gain(Entropy)
- 回歸問題:均方誤差(MSE)減少量
Gini Impurity 計算:Gini = 1 - Σpᵢ²
- 純節點(全同類):Gini = 0
- 最混亂(均勻分布):Gini = 1 - 1/K
過擬合控制參數:
max_depth:建議從 3–7 開始調整min_samples_split:節點繼續分裂的最小樣本數min_samples_leaf:葉節點最小樣本數max_features:每次分裂考慮的特徵數(隨機森林的關鍵)
4.2 集成方法:從單棵樹到森林
單棵決策樹的問題:高方差(variance),對訓練資料敏感,容易過擬合。
解決方案:
Bagging(Random Forest):
- 對訓練集 Bootstrap 抽樣 B 次,各訓練一棵深樹
- 預測時取平均(回歸)或多數投票(分類)
- 降低方差,偏差基本不變
- 100–500 棵樹,各用 √n 個特徵子集
Boosting(XGBoost / LightGBM):
- 序列訓練,每棵新樹專門修正前一棵的殘差
- 降低偏差,也有正則化控制方差
- 通常比 Random Forest 準確率高 2–5%
- 但訓練速度較慢,超參數更多
實際性能對比(100K 筆,50 特徵,二元分類):
模型 訓練時間 推論(單筆) AUC 記憶體
────────────────────────────────────────────────────
LogisticRegression 2s < 0.1ms 0.82 < 1MB
DecisionTree 1s < 0.5ms 0.79 2MB
RandomForest(100) 30s 2–5ms 0.88 50MB
XGBoost 45s 1–3ms 0.91 30MB
LightGBM 15s < 1ms 0.91 20MB
MLP(3層) 5min 5–20ms 0.89 100MB
結論:LightGBM 在表格資料上性價比最高,推論接近 XGBoost 但訓練快 3 倍。
五、支援向量機 SVM 的直覺
5.1 最大間隔分類器
SVM 的核心思想:找到一個決策邊界,使其與最近的訓練點(支援向量)之間的距離(間隔)最大化。
類別 A (○) 類別 B (×)
○ ×
○ margin ×
○ ←──────→ ×
○ │ 決策邊界 │ ×
○ │ │ ×
支援向量 支援向量
(這些點決定邊界)
間隔 = 2 / ||w||
最大化間隔 ≡ 最小化 ||w||²
硬間隔 vs 軟間隔:
- 硬間隔:不允許任何誤分類,只適合線性可分資料
- 軟間隔(C-SVM):允許部分誤分類,C 值控制懲罰強度
- C 大 → 小間隔,低訓練誤差,易過擬合
- C 小 → 大間隔,高訓練誤差,較好泛化
5.2 核函數技巧
線性不可分的資料,透過核函數把資料映射到高維空間,在高維空間線性可分。
低維(非線性可分) 高維(線性可分)
───────────────
× × × × × ×
× ○○○○○ × K(x,z) ○ ○ ○ ○ ○
○○ × × ○○ ────────▶ × × × × ×
× ○○○○○ × ───────────────
× × ×
(圓形邊界) (超平面邊界)
常用核函數:
- 線性核:K(x,z) = xᵀz(SVM 退化為線性分類器)
- RBF(高斯核):K(x,z) = exp(-γ||x-z||²)← 最常用
- 多項式核:K(x,z) = (xᵀz + c)ᵈ
- Sigmoid 核:K(x,z) = tanh(αxᵀz + c)
RBF 核的超參數 γ:
- γ 大 → 每個點影響範圍小,邊界複雜,易過擬合
- γ 小 → 每個點影響範圍大,邊界平滑,易欠擬合
SVM 的實際限制:
- 訓練複雜度 O(n²)–O(n³),10 萬筆以上很慢
- 超過 50 萬筆資料,換用 SGD 分類器或 LightGBM
- 不直接輸出機率(需要 Platt Scaling 後處理)
SVM 現在的主要用途:小樣本高維資料(生物醫學特徵 > 10K 維但樣本 < 1K)、文字分類的競爭基線。
六、特徵工程:從原始資料到模型輸入
特徵工程是傳統 ML 中最重要的技能。好的特徵可以讓簡單模型超過特徵差的複雜模型。
6.1 特徵工程完整流程
原始資料
│
▼
┌───────────────────────────────────────────┐
│ 1. 資料清理 │
│ • 缺失值處理(均值/中位數/前向填充) │
│ • 異常值偵測(IQR / Z-score) │
│ • 重複資料移除 │
└──────────────────────┬────────────────────┘
│
▼
┌───────────────────────────────────────────┐
│ 2. 數值特徵處理 │
│ • 標準化(StandardScaler)z = (x-μ)/σ │
│ • 正規化(MinMaxScaler)x' = (x-min)/range│
│ • 對數變換(右偏分布)log(x+1) │
│ • 冪次變換(Box-Cox / Yeo-Johnson) │
└──────────────────────┬────────────────────┘
│
▼
┌───────────────────────────────────────────┐
│ 3. 類別特徵處理 │
│ • One-Hot Encoding(低基數,< 50 類) │
│ • Label Encoding(有序類別) │
│ • Target Encoding(高基數,> 100 類) │
│ • Frequency Encoding(計算出現頻率) │
└──────────────────────┬────────────────────┘
│
▼
┌───────────────────────────────────────────┐
│ 4. 特徵建構(Feature Construction) │
│ • 交互特徵:age × income │
│ • 比率特徵:clicks / impressions(CTR) │
│ • 時間特徵:hour_of_day, day_of_week │
│ • 聚合特徵:user_avg_order_7day │
└──────────────────────┬────────────────────┘
│
▼
┌───────────────────────────────────────────┐
│ 5. 特徵選擇(Feature Selection) │
│ • 過濾法:相關係數、Chi-Square、ANOVA │
│ • 包裝法:RFE(遞迴特徵消除) │
│ • 嵌入法:Lasso 係數、樹模型特徵重要性 │
│ • 降維:PCA、t-SNE(探索) │
└──────────────────────┬────────────────────┘
│
▼
模型輸入特徵矩陣 X
6.2 關鍵特徵工程技術細節
Target Encoding 的洩漏問題:
直接用訓練集的目標均值編碼類別,會造成資料洩漏。正確做法是 K-Fold Target Encoding:
1# 錯誤做法(洩漏)
2df['city_encoded'] = df.groupby('city')['target'].transform('mean')
3
4# 正確做法(K-Fold)
5from category_encoders import TargetEncoder
6encoder = TargetEncoder(smoothing=10) # smoothing 防止小樣本過擬合
時間特徵提取(以電商訂單為例):
原始:timestamp = "2026-06-21 14:32:00"
提取特徵:
• hour = 14(下午購物高峰)
• day_of_week = 6(週日)
• is_weekend = 1
• month = 6
• days_since_last_purchase = 3
• hour_sin = sin(2π × 14/24) ← 週期性編碼,避免 23→0 斷裂
• hour_cos = cos(2π × 14/24)
特徵重要性解讀:
樹模型的特徵重要性有三種計算方式:
weight:特徵被選為分裂點的次數gain:特徵帶來的平均資訊增益(推薦)cover:特徵分裂影響的樣本數
注意:weight 偏向高基數特徵,gain 更能反映真實貢獻。
七、模型選擇與評估框架
7.1 Bias-Variance Tradeoff
誤差
▲
│\
│ \ 總誤差 = 偏差² + 方差 + 不可避免噪聲
│ \
│ \─────────────── ← 方差(隨複雜度增加)
│ ╲ ╭─────
│ ╲ ╭──╯
│ ──╯ ← 偏差(隨複雜度降低)
│ ▲
│ 最佳複雜度
└────────────────────────▶ 模型複雜度
欠擬合(高偏差)的症狀:訓練誤差高,驗證誤差與訓練誤差接近。
- 解方:增加特徵、增加模型複雜度、減少正則化
過擬合(高方差)的症狀:訓練誤差低,驗證誤差顯著高於訓練誤差。
- 解方:增加訓練資料、增加正則化、降低模型複雜度、Dropout(神經網路)
7.2 交叉驗證策略
K-Fold CV(標準場景):
- K = 5 或 10,平衡偏差與方差
- 對小資料集(< 1000 筆)用 LOOCV
Stratified K-Fold(類別不平衡):
- 確保每個 fold 中各類別比例一致
- 詐騙偵測(正例 0.3%)必用
Time Series Split(時序資料):
Fold 1: Train [t₁...t₆₀] Val [t₆₁...t₇₂]
Fold 2: Train [t₁...t₇₂] Val [t₇₃...t₈₄]
Fold 3: Train [t₁...t₈₄] Val [t₈₅...t₉₆]
不能用隨機分割!未來資料不能出現在訓練集。
7.3 評估指標選擇
分類指標速查:
場景 主要指標 原因
──────────────────────────────────────────────────────
詐騙偵測 Recall(召回率) 漏報代價 > 誤報
醫療診斷 Recall + F1 漏診代價最高
廣告點擊率預測 AUC-ROC 排序質量重要
垃圾郵件過濾 Precision 誤報(正常→垃圾)代價高
類別不平衡(< 1%) PR-AUC AUC-ROC 對不平衡過度樂觀
多分類 Macro-F1 各類別等同重要
混淆矩陣的業務解讀:
預測為詐騙 預測為正常
實際為詐騙 TP(正確攔截) FN(漏報,損失最大)
實際為正常 FP(誤報,影響UX) TN(正確放行)
Precision = TP / (TP + FP) = 攔截的有多準
Recall = TP / (TP + FN) = 詐騙的有多少被抓到
F1 = 2 × P × R / (P + R)
閾值調整的業務影響:
- 閾值 0.5 → P = 0.85, R = 0.60(預設)
- 閾值 0.3 → P = 0.72, R = 0.85(詐騙偵測推薦)
- 閾值 0.7 → P = 0.94, R = 0.42(高精確需求場景)
八、為什麼選 X 不選 Y
6 個核心決策比較
決策一:邏輯回歸 vs 小型神經網路
選擇 選 X 的理由 不選 Y 的理由
───────────────────────────────────────────────────────────────────────
邏輯回歸 推論 < 0.5ms,係數直接可解釋 神經網路:黑箱,
vs 神經網路 L1 正則化自動特徵選擇 推論 10–50ms
10 萬筆以內訓練 < 5 秒 需要 GPU 或多 CPU
符合法規可解釋性要求 超參調整複雜度高
對線性可分問題效果一樣好 小資料容易過擬合
翻轉條件:> 100 萬筆 + 特徵有複雜非線性交互 + 沒有可解釋性需求 → 選神經網路
決策二:決策樹 vs SVM
選擇 選 X 的理由 不選 Y 的理由
───────────────────────────────────────────────────────────────────────
決策樹 可直接轉化為業務規則,法務看得懂 SVM:黑箱核函數
vs SVM 混合型特徵(數值+類別)直接用 對特徵尺度敏感
訓練速度快 10–100 倍 > 10 萬筆訓練慢
不需要特徵標準化 不直接輸出機率
翻轉條件:小樣本(< 1K)高維文字特徵 → 線性 SVM 或 LogReg + TF-IDF
決策三:XGBoost vs LightGBM
選擇 選 X 的理由 不選 Y 的理由
───────────────────────────────────────────────────────────────────────
LightGBM 訓練速度比 XGBoost 快 3–10 倍 XGBoost:
vs XGBoost 記憶體效率更好(直方圖算法) 社群資源更多
Leaf-wise 生長通常更準確 Kaggle 解法更豐富
支援類別特徵原生輸入 部分雲端 AutoML
預設整合 XGBoost
翻轉條件:需要整合既有 XGBoost pipeline / 雲端 ML 平台限制 → 選 XGBoost
決策四:Random Forest vs XGBoost
選擇 選 X 的理由 不選 Y 的理由
───────────────────────────────────────────────────────────────────────
Random Forest 可完全並行訓練(Bagging) XGBoost:
vs XGBoost 超參數較少,更容易調 AUC 通常高 2–5%
對雜訊和離群值更穩健 更難解釋為何這棵
訓練早停更容易實現 樹修正前一棵的誤差
適合快速基線建立
翻轉條件:需要最高精準度 + 有時間調參 + 資料相對乾淨 → 選 XGBoost/LightGBM
決策五:PCA 降維 vs 特徵選擇
選擇 選 X 的理由 不選 Y 的理由
───────────────────────────────────────────────────────────────────────
特徵選擇 保留原始特徵語義,可解釋 PCA:
vs PCA 選出的特徵直接對業務有意義 主成分無業務含義
與模型協同訓練(RFE) 資訊損失(variance
部署時只需子集特徵,成本低 explained 不是全部)
不適用類別特徵
翻轉條件:影像/音訊的高維稠密特徵 + 不需要可解釋性 → PCA / 自編碼器
決策六:One-Hot Encoding vs Target Encoding
選擇 選 X 的理由 不選 Y 的理由
───────────────────────────────────────────────────────────────────────
Target Encoding 高基數類別(城市 > 500 種) One-Hot:
vs One-Hot 不會造成維度爆炸 高基數會產生稀疏矩陣
捕捉類別與目標的統計關係 維度 = 類別數
樹模型和線性模型都能用 記憶體和計算開銷大
翻轉條件:類別 < 20 且需要避免任何資訊洩漏風險 → One-Hot;
類別有自然順序(低/中/高)→ Ordinal Encoding
九、系統效應:傳統 ML vs 深度學習對比
完整性能對比表(同等任務場景)
場景:電商詐騙偵測,200 萬筆訓練資料,結構化特徵 80 個
指標 LightGBM 小型 MLP(3層) 大型 Transformer
─────────────────────────────────────────────────────────────────────────────
推論延遲(單筆,CPU) < 1ms 15–50ms 200–500ms
推論延遲(批次 1K) 5ms 80ms 800ms
GPU 是否必需 否 建議 必須
訓練時間(100K 筆) 15 秒 5 分鐘 1 小時+
訓練時間(2M 筆) 3 分鐘 40 分鐘 8 小時+
推論服務成本(1K QPS) $50/月(2 CPU) $200/月(GPU) $2000/月(A100)
AUC 準確率 0.935 0.941 0.948
可解釋性 高(SHAP值直觀) 低 極低
特徵工程需求 高(影響 3–5%) 中(自動) 低(端到端)
冷啟動時間(重訓) 5 分鐘 1 小時 1 天+
監控複雜度 低 中 高
所需工程師技能 ML 工程師 DL 工程師 ML 研究員
─────────────────────────────────────────────────────────────────────────────
總結: 最適合生產 研究基線 特殊場景
遷移學習加持後的比較
深度學習在以下場景有壓倒性優勢(傳統 ML 無法競爭):
場景 深度學習 AUC 最佳傳統 ML 差距
──────────────────────────────────────────────────
影像分類 0.995 0.920 7.5%
自然語言理解 0.970 0.880 9.0%
語音辨識 0.985 0.820 16.5%
時序預測(複雜) 0.910 0.880 3.0% ← 差距縮小
結構化資料詐騙 0.948 0.935 1.3% ← 幾乎持平
關鍵洞察:結構化資料的深度學習優勢僅 1–2%,但成本是傳統 ML 的 20–40 倍。工程師需要問:「這 1% 的 AUC 提升,對業務的價值是否超過每月多出的 $2,000 基礎設施成本?」
十、面試答題要點
面試情境回顧:50 萬筆/天訂單,即時詐騙偵測,< 5ms,需法務稽核,200 萬歷史資料,詐騙率 0.3%。
「這個場景我會選 LightGBM 加 SHAP 值解釋,原因有四:第一,< 5ms 的延遲需求直接排除神經網路(CPU 推論 15–50ms 起跳),LightGBM CPU 推論 < 1ms;第二,0.3% 的嚴重類別不平衡,用 Stratified K-Fold + PR-AUC 評估,並設定 scale_pos_weight = 333 處理不平衡,同時把判斷閾值從 0.5 調到 0.2–0.3 以最大化詐騙召回率;第三,法務可稽核需求用 SHAP 值實現:每筆決策輸出 top-5 貢獻特徵,例如『IP 異常(+0.4)、設備首次出現(+0.3)、金額超出歷史均值 3σ(+0.2)』;第四,200 萬筆結構化資料是 LightGBM 的甜蜜點,AUC 可達 0.93–0.95,與深度模型差距 < 1.5%,但基礎設施成本低 20–40 倍。若未來詐騙模式出現概念漂移,PSI > 0.2 觸發自動重訓 pipeline,每週更新一次模型。」
RKK 答題框架:
- Requirements(需求釐清):延遲預算、可解釋性需求、資料規模、類別分布
- Key Design Decisions(關鍵決策):模型選型理由、不平衡處理策略、評估指標選擇、解釋性機制
- Knowledge of Tradeoffs(取捨認知):傳統 ML vs DL 的精度-成本-延遲三角,何時會重新評估選型
加分點:
- 主動提到 PSI 漂移監控(顯示生產意識)
- 說出具體閾值數字(0.2–0.3 而非「調低閾值」)
- 提到 SHAP 而非只說「決策樹可解釋」
- 能說出 LightGBM 的 scale_pos_weight 超參數(顯示熟悉工具)
十一、系列導航
本系列「AI Engineering from Scratch」根據 rohitg00/ai-engineering-from-scratch 整理,以工程師視角解析每個 Phase 的核心概念與生產實踐。
← Phase 1 Part 2:Python AI 生態系統與開發工具 | Phase 2 Part 2:深度學習基礎 →
本文為「AI 工程從零開始」系列 Phase 2 第 1 篇,聚焦傳統機器學習在生產系統中的角色與最佳實踐。
