大多數工程師把機率當成「加個 softmax 就好」的細節。 真正理解機率的工程師知道:每一個損失函數、每一個正則化項、每一個模型假設, 背後都是一個機率故事。 你選的分佈,決定了你的模型相信什麼樣的世界。
面試情境
面試官問:「你的分類模型在驗證集上 accuracy 已經 92%,但產品上線後客訴率比預期高出三倍。請問你會怎麼診斷這個問題?從機率與統計的角度,你會看哪些指標、做哪些檢定?」
一、核心問題:為什麼機率是 AI 的第一語言
AI 系統本質上是在處理不確定性。輸入有雜訊、標籤有錯誤、世界在變化——確定性的規則系統在這種環境下必然失敗。機率論提供了一套嚴謹的語言,讓我們能夠:
- 量化無知:我們不知道答案,但我們知道各種可能答案的相對可能性
- 更新信念:看到新資料後,理性地調整對世界的看法
- 做出決策:在不確定條件下,選擇期望效用最大的行動
- 評估模型:不只說「對或錯」,而是說「有多大把握」
許多工程師剛接觸機率時覺得抽象,但一旦你開始問「這個設計決策背後假設了什麼分佈?」,你會發現機率思維無處不在:
- Cross-entropy 損失:假設模型輸出是伯努利(二分類)或類別(多分類)分佈的參數
- L2 正則化:等價於對權重施加高斯先驗(MAP 估計)
- Dropout:對神經元激活引入伯努利雜訊,是一種 ensemble 的近似
- Batch Normalization:假設每一層的激活值服從近似高斯分佈
- Attention 機制:softmax 把分數轉為機率分佈,讓模型「選擇」關注哪裡
當你不理解這些假設,你就不知道模型在什麼情況下會失效,也不知道如何針對性地改進。
工程師常犯的三個機率錯誤
錯誤一:把 accuracy 當成唯一指標 accuracy 是 0/1 損失的期望值,它假設所有錯誤的代價相同。在醫療診斷(漏診癌症 vs 誤診)、詐欺偵測(放行詐欺 vs 誤封帳號)等場景,這個假設完全不成立。正確做法是看 precision/recall/F1,甚至直接最佳化 AUC-ROC。
錯誤二:忽略分佈偏移(Distribution Shift) 訓練集和測試集來自不同分佈時,任何在訓練集上學到的統計量都可能失效。這是上面面試題的核心:92% 的 accuracy 是在某個分佈下測的,但產品用戶的輸入分佈可能完全不同。
錯誤三:過度自信的點估計 大多數模型給出點預測(「這張圖片是貓」),但沒有說明不確定性。一個能說「我有 51% 的把握認為這是貓,你最好再確認一下」的模型,在高風險場景下遠比只說「是貓」的模型有價值。
二、三個演進階段:機率應用如何隨系統規模演進
Phase 1:POC / < 10K 用戶
核心目標:能跑起來,能得到合理的預測結果
╔══════════════════════════════════════════════════════════════╗
║ POC 階段:機率應用 ║
╠══════════════════════════════════════════════════════════════╣
║ ║
║ 輸入資料 模型 輸出 ║
║ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ ║
║ │ Raw CSV │───▶│ Sklearn │──▶│ 點預測(0 或 1) │ ║
║ │ 或圖片 │ │ / PyTorch│ │ 或 softmax 機率 │ ║
║ └──────────┘ └──────────┘ └──────────────────────┘ ║
║ ║
║ 評估:accuracy / loss curve ║
║ 假設分佈:「系統預設的,沒有特別想過」 ║
║ ║
║ 可接受的捷徑: ║
║ • 直接用 cross-entropy,不問為什麼 ║
║ • 資料不平衡時用 class_weight='balanced' ║
║ • 不做 calibration ║
╚══════════════════════════════════════════════════════════════╝
花費:工程師時間 1–2 週,算力 < $50/月 遺留問題:模型機率輸出未校準、對分佈偏移無感知、評估指標不夠完整
Phase 2:MVP / 10K–200K 用戶
核心目標:模型輸出的機率有意義、能做 A/B test、能監控模型健康
╔══════════════════════════════════════════════════════════════╗
║ MVP 階段:加入機率品質管控 ║
╠══════════════════════════════════════════════════════════════╣
║ ║
║ ┌──────────┐ ┌────────────────┐ ┌────────────────┐ ║
║ │ 訓練資料 │───▶│ 模型訓練 │───▶│ Calibration │ ║
║ │ (含驗證) │ │ + MAP 正則化 │ │ Platt / Isotonic│ ║
║ └──────────┘ └────────────────┘ └───────┬────────┘ ║
║ │ ║
║ ┌──────────────────────────────────────────────▼────────┐ ║
║ │ 評估套件 │ ║
║ │ • Brier Score(機率校準品質) │ ║
║ │ • ECE(Expected Calibration Error) │ ║
║ │ • AUC-ROC / PR-AUC(排序品質) │ ║
║ │ • Bootstrap CI(指標的信賴區間) │ ║
║ └────────────────────────────────────────────────────────┘ ║
║ ║
║ A/B test:假設檢定,p < 0.05 才上線新版本 ║
╚══════════════════════════════════════════════════════════════╝
花費:+1 週工程、calibration 幾乎無算力成本 解決:機率有意義、A/B test 有統計基礎 遺留問題:沒有不確定性估計、無法偵測分佈偏移
Phase 3:Scale / 200K–1M+ 用戶
核心目標:主動管理不確定性、自動偵測分佈偏移、支援高風險決策
╔══════════════════════════════════════════════════════════════╗
║ Scale 階段:機率工程化 ║
╠══════════════════════════════════════════════════════════════╣
║ ║
║ ┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ║
║ │ 線上輸入 │──▶│ 特徵分佈監控 │──▶│ Drift 偵測 │ ║
║ │ │ │ (均值/方差/ │ │ KL 散度 > 閾值 │ ║
║ │ │ │ 分位數) │ │ → 觸發警報 │ ║
║ └─────────────┘ └──────────────┘ └─────────────────┘ ║
║ │ ║
║ ▼ ║
║ ┌──────────────────────────────────────────────────────┐ ║
║ │ Uncertainty-aware 推論 │ ║
║ │ • Monte Carlo Dropout(推論時開啟 dropout) │ ║
║ │ • Deep Ensemble(5–10 個模型投票) │ ║
║ │ • Conformal Prediction(統計保證的預測區間) │ ║
║ └───────────────────────────────┬──────────────────────┘ ║
║ │ ║
║ ▼ ║
║ ┌──────────────────────────────────────────────────────┐ ║
║ │ 決策層 │ ║
║ │ 高不確定性 → 轉人工審核 │ ║
║ │ 低不確定性 → 自動執行 │ ║
║ └──────────────────────────────────────────────────────┘ ║
╚══════════════════════════════════════════════════════════════╝
花費:Deep Ensemble 算力成本 5–10× 單模型;Conformal Prediction 無額外算力 解決:能知道「我不知道」,能在分佈偏移前預警 成本 delta:Deep Ensemble 推論延遲從 50ms 增加到 200–400ms,需要快取或非同步處理
三、機率基礎:條件機率、貝葉斯定理
條件機率的直覺
條件機率 P(A|B) 回答:「已知 B 發生了,A 的機率是多少?」
這和 P(A) 不同,因為 B 給了我們額外資訊,縮小了樣本空間。
AI 應用:
- P(y=貓 | x=圖片) — 分類器的輸出
- P(下一個詞=“台灣” | 前文=“我來自”) — 語言模型
- P(詐欺=是 | 交易金額=9999, 時間=3am) — 詐欺偵測
貝葉斯定理
P(B|A) × P(A)
P(A|B) = ─────────────────
P(B)
後驗 似然 × 先驗
────── = ────────────────
1 邊際似然(正規化常數)
每個項目的工程意義:
| 項目 | 數學符號 | AI 意義 | 具體例子 |
|---|---|---|---|
| 先驗 | P(A) | 看資料前的信念 | 詐欺交易佔所有交易 0.1% |
| 似然 | P(B|A) | 如果假設為真,資料有多可能出現 | 詐欺交易中夜間交易佔 60% |
| 後驗 | P(A|B) | 看到資料後更新的信念 | 這筆夜間交易是詐欺的機率 |
| 邊際似然 | P(B) | 正規化常數,讓機率加總為 1 | 夜間交易佔所有交易的比例 |
貝葉斯更新的工程意義
貝葉斯最強大的地方是序貫更新:每看到一筆新資料,就把舊的後驗當成新的先驗,繼續更新。
資料 D₁ → 更新 → 後驗₁
後驗₁ 當先驗 → 看到 D₂ → 更新 → 後驗₂
後驗₂ 當先驗 → 看到 D₃ → ...
這個框架直接對應到**線上學習(Online Learning)**系統:每次用戶互動都更新模型信念,不需要從頭重新訓練。
數值陷阱:P(B) 的計算在高維空間是 intractable 的(需要對所有可能的 A 積分)。這就是為什麼我們需要變分推斷(Variational Inference)、MCMC、或近似推斷方法。
四、常用分佈與 AI 的對應
理解分佈不是為了背公式,而是為了知道**「這個假設在我的場景合不合理?」**
離散分佈
伯努利分佈(Bernoulli)
- 參數:p(成功機率)
- 用途:二元分類標籤、神經元激活(Dropout)
- AI 連結:二元分類的 cross-entropy loss 假設輸出服從伯努利分佈
類別分佈(Categorical)
- 參數:[p₁, p₂, …, pₖ],加總為 1
- 用途:多分類問題的標籤
- AI 連結:softmax 輸出是類別分佈的參數;NLP 的 next-token prediction
泊松分佈(Poisson)
- 參數:λ(單位時間平均事件數)
- 用途:計數資料(每天的點擊數、每小時的請求數)
- AI 連結:用在計數迴歸問題;異常偵測中的事件率建模
連續分佈
高斯分佈(Normal)
- 參數:μ(均值)、σ²(方差)
- 用途:幾乎無所不在
- AI 連結:L2 損失假設誤差服從高斯;L2 正則等價於高斯先驗;神經網路初始化
高斯分佈 PDF 示意(σ = 1)
P(x)
│
0.4─┤ ███
│ ███████
0.3─┤ ██████████
│ ████████████
0.2─┤█████████████
│██████████████
0.1─┤████████████████
│█████████████████████
──┼──────────────────────── x
-3 -2 -1 0 1 2 3
μ
均勻分佈(Uniform)
- 用途:超參數搜尋的先驗、隨機初始化
- AI 連結:Xavier 初始化使用均勻分佈
Beta 分佈(Beta)
- 參數:α, β
- 用途:機率的先驗(因為 Beta 的定義域是 [0,1])
- AI 連結:二元分類中對 p 的貝葉斯先驗;Thompson Sampling(Bandit 算法)
指數分佈(Exponential)
- 用途:等待時間、存活分析
- AI 連結:Lasso(L1 正則)等價於對權重施加 Laplace(雙指數)先驗
分佈假設的後果
┌───────────────────────────────────────────────────────────┐
│ 分佈假設 → 損失函數的對應關係 │
├───────────────────┬───────────────────────────────────────┤
│ 假設誤差服從... │ 對應的最適損失函數 │
├───────────────────┼───────────────────────────────────────┤
│ 高斯分佈 │ MSE(L2 損失) │
│ Laplace 分佈 │ MAE(L1 損失) │
│ 伯努利分佈 │ Binary Cross-Entropy │
│ 類別分佈 │ Categorical Cross-Entropy │
│ 泊松分佈 │ Poisson Log-Loss │
│ Huber(混合) │ Huber Loss(對 outlier 更強健) │
└───────────────────┴───────────────────────────────────────┘
工程啟示:如果你的迴歸資料有很多 outlier(例如房價、薪資),誤差分佈更像 Laplace 而不是高斯,此時 MAE 比 MSE 更合適。這不是憑感覺,是有機率理論支撐的決定。
五、最大概似估計 MLE 與最大後驗估計 MAP
MLE:讓資料「最可能」出現的參數
直覺:給定觀察到的資料 D,找一組參數 θ 使得「如果世界由 θ 描述,觀察到 D 的機率最大」。
θ_MLE = argmax P(D | θ)
θ
= argmax ∏ P(xᵢ | θ) (假設資料 i.i.d.)
θ i
= argmax ∑ log P(xᵢ | θ) (取 log,乘法變加法)
θ i
取 log 是數值穩定性的必要操作:N 個 0.01 相乘 = 10⁻²ᴺ,很快下溢到 0。
MLE 與 cross-entropy 的關係:
對分類問題,log P(xᵢ | θ) = log P(yᵢ | xᵢ, θ),最大化等於最小化負 log likelihood,即 cross-entropy loss。所以 cross-entropy 訓練就是 MLE。
MLE 的問題:
- 資料量少時容易過擬合(對訓練資料的 likelihood 太執著)
- 不能融入先驗知識
- 沒有不確定性估計
MAP:加入先驗知識
直覺:不只考慮「資料有多可能」,也考慮「這組參數本身有多合理(根據先驗)」。
θ_MAP = argmax P(θ | D)
θ
= argmax P(D | θ) × P(θ) (貝葉斯定理,忽略常數)
θ
= argmax log P(D | θ) + log P(θ)
θ
───────────────── ──────────
MLE 項 正則化項
MAP 與正則化的關係:
| 先驗 P(θ) | log P(θ) | 等價正則化 | 效果 |
|---|---|---|---|
| 高斯(μ=0, σ²) | -θ²/(2σ²) | L2(Ridge) | 權重趨向小但非零 |
| Laplace(μ=0, b) | -|θ|/b | L1(Lasso) | 權重趨向稀疏(零) |
| Beta(α,β) | (α-1)logθ+(β-1)log(1-θ) | 自定義 | 機率先驗 |
**所以 L2 正則化就是對權重加高斯先驗的 MAP 估計。**這不是人工加的技巧,是有統計意義的設計決策。
完全貝葉斯推斷:超越 MAP
MAP 仍然是點估計(給出一個最好的 θ)。完全貝葉斯推斷計算整個後驗分佈 P(θ|D),讓你能夠:
- 量化參數的不確定性
- 計算預測的信賴區間
- 自動實現 Occam’s Razor(複雜模型只在資料支持時才被選擇)
代價:計算困難,需要 MCMC 或變分推斷,推論速度慢 10–100×。
六、資訊理論:熵、KL 散度、交叉熵損失
資訊理論是連接機率論和機器學習損失函數的橋樑。
熵(Entropy):不確定性的度量
H(P) = -∑ P(x) log P(x)
x
單位:bits(log₂)或 nats(ln)
直覺:一個分佈的熵越高,就越難預測下一個樣本是什麼。
低熵分佈(高確定性) 高熵分佈(低確定性)
P = [0.99, 0.01] P = [0.5, 0.5]
P(x) P(x)
│ │
0.9─┤█ 0.5─┤█████ █████
│█ │
│ █ │
──┼────── x ──┼────────── x
0 1 0 1
H ≈ 0.08 bits H = 1.0 bit(最大)
AI 應用:
- 決策樹的分裂準則(Information Gain = 熵的減少量)
- 模型不確定性估計:預測熵高 → 模型不確信 → 可以觸發人工審核
- 主動學習(Active Learning):優先標注熵最高的樣本
KL 散度:兩個分佈的距離
D_KL(P || Q) = ∑ P(x) log [P(x) / Q(x)]
x
直覺:用 Q 來近似 P,額外需要多少 bits?
重要性質:
- D_KL ≥ 0,等號當且僅當 P = Q
- 非對稱:D_KL(P||Q) ≠ D_KL(Q||P),這有重要工程含義
非對稱的工程意義:
┌──────────────────────────────────────────────────────────┐
│ Forward KL:D_KL(P || Q) │
│ Q 試圖覆蓋 P 的所有質量(mass-covering) │
│ → Q 傾向於比 P 更「分散」(over-disperse) │
│ → 用於:變分推斷(希望近似分佈覆蓋真實分佈) │
├──────────────────────────────────────────────────────────┤
│ Reverse KL:D_KL(Q || P) │
│ Q 試圖找到 P 的一個模式並集中在上面(mode-seeking) │
│ → Q 傾向於比 P 更「集中」(under-disperse) │
│ → 用於:VAE 的訓練目標 │
└──────────────────────────────────────────────────────────┘
KL 散度的具體應用:
- VAE 損失函數 = 重建誤差 + β × D_KL(q(z|x) || p(z))
- 分佈偏移監控:D_KL(訓練分佈 || 線上分佈) > 0.1 → 觸發重訓警報
- 知識蒸餾:學生模型學習最小化與教師模型輸出的 KL 散度
交叉熵損失:MLE 的資訊理論詮釋
H(P, Q) = -∑ P(x) log Q(x)
x
= H(P) + D_KL(P || Q)
Cross-Entropy = 真實分佈的熵 + KL散度
訓練時 P 是真實標籤分佈(固定),所以最小化 cross-entropy 等同於最小化 D_KL(真實 || 模型),讓模型分佈盡量接近真實分佈。
二元分類 cross-entropy 展開:
BCE = -[y log(p) + (1-y) log(1-p)]
當真實標籤 y=1:BCE = -log(p)
p = 0.99 → BCE = 0.01(小損失,預測正確)
p = 0.50 → BCE = 0.69(中損失,不確定)
p = 0.01 → BCE = 4.61(大損失,嚴重錯誤)
對數懲罰讓過度自信的錯誤受到非常嚴重的懲罰,這是 MSE 做不到的。
七、統計推斷:假設檢定與信賴區間在 AI 評估中的應用
許多工程師做 A/B test 時只看「新版本 accuracy 比舊版高 0.5%」,卻不問「這個差距是真實的還是運氣?」統計推斷正是回答這個問題的工具。
假設檢定的框架
H₀(虛無假設):新模型和舊模型的效能相同(差異 = 0)
H₁(對立假設):新模型的效能更好(差異 > 0)
檢定流程:
1. 收集資料(在測試集或 A/B test 中)
2. 計算檢定統計量
3. 計算 p-value:如果 H₀ 為真,看到這麼大差異的機率
4. 若 p < α(通常 0.05),拒絕 H₀,認為差異顯著
在 AI 評估中的常用檢定
McNemar 檢定:比較兩個分類器在同一測試集上的錯誤模式
1# 建立 2×2 列聯表
2# 模型B對 模型B錯
3# 模型A對 a b
4# 模型A錯 c d
5
6# McNemar 統計量:只看 b 和 c(兩個模型不一致的樣本)
7# χ² = (|b - c| - 1)² / (b + c)
8# p < 0.05 → 兩模型的錯誤模式顯著不同
Bootstrap 檢定:最通用,對分佈無假設
1# 對測試集做 N=10000 次 bootstrap 重抽樣
2# 每次計算 metric_new - metric_old
3# p-value = (差異 ≤ 0 的比例)
4# 95% CI = [2.5th percentile, 97.5th percentile]
Paired t-test:當樣本數夠大且分佈接近高斯時適用
信賴區間的工程意義
「模型 accuracy = 92%」是一個點估計,缺少不確定性。加入信賴區間後:
測試集 n=1000:accuracy = 92%,95% CI = [90.2%, 93.8%]
測試集 n=100: accuracy = 92%,95% CI = [85.0%, 97.0%]
小測試集的 CI 非常寬,92% 的數字根本不可信。這說明為什麼評估測試集大小很重要。
統計功效(Statistical Power)
功效 = 1 - β = 真正有差異時,能偵測到的機率
常見的目標:功效 ≥ 0.8(80% 機率不漏掉真實差異)
需要多大的測試集?
效果量越小 → 需要越多樣本
Effect size = 0.1%(accuracy 差 0.1%)→ 需要 ~39,000 樣本
Effect size = 0.5%(accuracy 差 0.5%)→ 需要 ~1,600 樣本
Effect size = 1.0%(accuracy 差 1.0%)→ 需要 ~400 樣本
多重比較問題(Multiple Comparisons):
如果你測試 20 個指標,即使所有差異都是噪音,平均也有 1 個會顯著(p < 0.05)。解法:Bonferroni 校正(把 α 除以測試數量),或使用 FDR 控制(Benjamini-Hochberg)。
模型校準評估
好的分類器不只 accuracy 高,還要機率校準好:說 70% 把握的事情,實際發生率應該接近 70%。
可靠性圖(Reliability Diagram):
完美校準 過度自信 信心不足
實際頻率 的模型 的模型
│ / │ / │ /
1.0┤ / (對角線) │ /// │ ///
│/ │// │ ///
0.5┤/ │/ │ ///
│/ │/ │ ///
─┼──────── 預測機率 ─┼────────
0.0 1.0 0.0 1.0 0.0 1.0
Expected Calibration Error(ECE):
ECE = ∑ (|Bₘ| / n) × |acc(Bₘ) - conf(Bₘ)|
m
ECE < 0.05:校準良好
ECE 0.05–0.10:可接受
ECE > 0.10:需要校準(Platt Scaling 或 Isotonic Regression)
八、為什麼選 X 不選 Y
六個核心設計決策
決策一:損失函數
選擇 選 Cross-Entropy 的理由 不選 MSE 的理由
──────────────────────────────────────────────────────────────────
Cross-Entropy 直接最佳化機率分佈(MLE) MSE 懲罰對稱,對極端錯誤懲罰不足
vs MSE 對過度自信的錯誤有對數懲罰 MSE 隱含高斯假設,分類問題不適用
(分類問題) 梯度在整個 [0,1] 範圍都有效 MSE 在接近 0/1 時梯度消失嚴重
翻轉條件:連續輸出(迴歸)且誤差服從高斯 → 選 MSE
決策二:點估計方法
選擇 選 MAP 的理由 不選 MLE 的理由
──────────────────────────────────────────────────────
MAP 資料少時防止過擬合 MLE 無先驗,小資料集過擬合
vs MLE 等價於正則化,工程上直接加 MLE 不能融入領域知識(先驗)
L2/L1 就能實現 MLE 對 outlier 較敏感
翻轉條件:資料量 > 100K 且先驗不明確 → MLE 與 MAP 差異微小,用 MLE 更簡單
決策三:不確定性估計方法
選擇 選 MC Dropout 的理由 不選 Deep Ensemble 的理由
────────────────────────────────────────────────────────────────────
MC Dropout 單一模型,推論時開 dropout Deep Ensemble:5× 算力
vs Deep Ensemble 實作簡單,延遲 <2× DE 需要存 5 份模型權重
對多數應用足夠 部署複雜度高
翻轉條件:預算充足且準確的不確定性至關重要(如醫療)→ Deep Ensemble,DE 的校準更好
決策四:分佈偏移偵測指標
選擇 選 KL 散度的理由 不選 PSI 的理由
────────────────────────────────────────────────────────
KL 散度 有理論基礎(資訊理論) PSI:來源不明確,閾值(0.1/0.25)是經驗值
vs PSI 連續可微,可以追蹤趨勢 PSI 假設分箱數固定
(特徵監控) 對分佈的局部變化敏感 高維特徵時行為不穩定
翻轉條件:需要快速計算且工程團隊熟悉 PSI → 可用 PSI,設定合理閾值
決策五:假設檢定方法
選擇 選 Bootstrap 的理由 不選 t-test 的理由
──────────────────────────────────────────────────────────────
Bootstrap 無分佈假設 t-test 假設常態分佈
vs t-test 對 accuracy/AUC 等非常態指標 指標分佈不一定是常態
直接適用 小樣本時不可靠
計算成本低(10000 次重抽樣)
翻轉條件:n > 1000 且資料接近常態 → t-test 更快,結果相近
決策六:機率校準方法
選擇 選 Isotonic Regression 的理由 不選 Platt Scaling 的理由
──────────────────────────────────────────────────────────────────────
Isotonic 非參數,不假設函數形式 Platt 假設 sigmoid 形式
Regression 校準集 > 1000 樣本時更準確 適合校準集 < 200 樣本的情況
vs Platt Scaling 能處理非單調的校準誤差 若資料夠多,Platt 的限制可能有偏差
翻轉條件:校準資料集 < 200 樣本 → Platt Scaling,避免過擬合
九、系統效應:有無機率建模的前後對比
詐欺偵測系統案例
| 指標 | 無機率建模 | 有機率建模 | 改善幅度 |
|---|---|---|---|
| False Positive Rate | 8% | 2.1% | -74% |
| False Negative Rate | 12% | 3.8% | -68% |
| 人工審核量 | 100% 疑似案件 | 30%(高不確定性才審) | -70% |
| 分佈偏移偵測 | 無(依賴事後分析) | KL > 0.1 自動警報,提前 2 天 | N/A |
| 模型更新頻率 | 每季一次(手動觸發) | 每週(自動 drift 觸發) | 12× |
| 每筆詐欺的期望損失 | $850 | $320 | -62% |
NLP 分類系統案例
| 指標 | 純 accuracy 最佳化 | 機率校準 + 不確定性 | 改善幅度 |
|---|---|---|---|
| Accuracy | 94% | 93.5% | -0.5% |
| ECE(校準誤差) | 0.18 | 0.03 | -83% |
| AUC-PR | 0.81 | 0.89 | +10% |
| 高風險決策錯誤率 | 5.2% | 1.8% | -65% |
| 用戶對模型信任度 | 低(「它怎麼那麼自信?」) | 高(看到不確定性輸出) | 主觀改善 |
關鍵洞察:機率校準讓 accuracy 略微下降 0.5%,但真正重要的指標(高風險決策錯誤率、用戶信任)大幅改善。這正是用正確的損失函數和評估指標的價值。
A/B Test 決策品質
| 做法 | 錯誤上線次數(每 20 次 A/B test) | 真實改善被漏掉次數 |
|---|---|---|
| 只看 accuracy,無統計檢定 | 平均 4 次(20%) | 平均 6 次 |
| p < 0.05,無功效分析 | 平均 1 次(5%) | 平均 6 次 |
| p < 0.05 + 功效 ≥ 0.8 + Bonferroni | 平均 0.5 次(2.5%) | 平均 2 次 |
十、面試答題要點
面試問題重述:「分類模型驗證集 accuracy 92%,上線後客訴率比預期高三倍,你怎麼診斷?」
「我會從三個方向診斷。第一,確認是否有分佈偏移:計算訓練集與線上資料各個特徵的 KL 散度,若任一特徵 KL > 0.1,說明線上分佈已偏離訓練集,92% 的 accuracy 在新分佈下不再有效。第二,檢查模型校準品質:計算 ECE,如果 ECE > 0.1,代表模型的機率輸出不可信——說 90% 把握的案例實際上可能只有 60% 準確率——這會導致下游決策邏輯過度信任模型。第三,重新審視評估指標:客訴通常對應 False Positive(錯誤拒絕合法用戶)或 False Negative(放行問題案件),accuracy 對這兩種錯誤的代價視為相同,但業務上代價截然不同;我會計算 precision/recall curve,並在對業務的實際代價做 cost-sensitive 分析後,重新設定決策閾值。修復路徑:若是分佈偏移,用新資料 fine-tune 模型;若是校準問題,用 Isotonic Regression 校準;若是閾值問題,直接調整 classification threshold,不需要重訓模型。」
十一、系列導航
本文是「AI 工程從零開始」系列的 Phase 1 Part 2。系列基於 ai-engineering-from-scratch 開源課程,從工程師視角系統性地建立 AI 基礎。
| 章節 | 主題 | 連結 |
|---|---|---|
| Phase 1 Part 1 | 線性代數:向量、矩陣與神經網路的幾何直覺 | ← 上一篇 |
| Phase 1 Part 2 | 機率與統計(本文) | |
| Phase 1 Part 3 | 微積分與最佳化:梯度下降的數學 | 下一篇 → |
參考資料:Bishop (2006) Pattern Recognition and Machine Learning;Murphy (2022) Probabilistic Machine Learning;Guo et al. (2017) On Calibration of Modern Neural Networks
