AI 工程從零開始|Phase 1 Part 2:機率與統計 — 不確定性的數學語言

大多數工程師把機率當成「加個 softmax 就好」的細節。 真正理解機率的工程師知道:每一個損失函數、每一個正則化項、每一個模型假設, 背後都是一個機率故事。 你選的分佈,決定了你的模型相信什麼樣的世界。


面試情境

面試官問:「你的分類模型在驗證集上 accuracy 已經 92%,但產品上線後客訴率比預期高出三倍。請問你會怎麼診斷這個問題?從機率與統計的角度,你會看哪些指標、做哪些檢定?」


一、核心問題:為什麼機率是 AI 的第一語言

AI 系統本質上是在處理不確定性。輸入有雜訊、標籤有錯誤、世界在變化——確定性的規則系統在這種環境下必然失敗。機率論提供了一套嚴謹的語言,讓我們能夠:

  1. 量化無知:我們不知道答案,但我們知道各種可能答案的相對可能性
  2. 更新信念:看到新資料後,理性地調整對世界的看法
  3. 做出決策:在不確定條件下,選擇期望效用最大的行動
  4. 評估模型:不只說「對或錯」,而是說「有多大把握」

許多工程師剛接觸機率時覺得抽象,但一旦你開始問「這個設計決策背後假設了什麼分佈?」,你會發現機率思維無處不在:

  • 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)-|θ|/bL1(Lasso)權重趨向稀疏(零)
Beta(α,β)(α-1)logθ+(β-1)log(1-θ)自定義機率先驗

**所以 L2 正則化就是對權重加高斯先驗的 MAP 估計。**這不是人工加的技巧,是有統計意義的設計決策。

完全貝葉斯推斷:超越 MAP

MAP 仍然是點估計(給出一個最好的 θ)。完全貝葉斯推斷計算整個後驗分佈 P(θ|D),讓你能夠:

  1. 量化參數的不確定性
  2. 計算預測的信賴區間
  3. 自動實現 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 Rate8%2.1%-74%
False Negative Rate12%3.8%-68%
人工審核量100% 疑似案件30%(高不確定性才審)-70%
分佈偏移偵測無(依賴事後分析)KL > 0.1 自動警報,提前 2 天N/A
模型更新頻率每季一次(手動觸發)每週(自動 drift 觸發)12×
每筆詐欺的期望損失$850$320-62%

NLP 分類系統案例

指標純 accuracy 最佳化機率校準 + 不確定性改善幅度
Accuracy94%93.5%-0.5%
ECE(校準誤差)0.180.03-83%
AUC-PR0.810.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

Yen

Yen

Yen