Skip to content

ML Fundamentals 面試攻略:從 bias-variance 到 evaluation metrics

2026年8月20日 1 分鐘
TL;DR ML 基礎面試不考你背公式,考你能不能用直覺解釋概念、在追問下不崩潰。高頻考點:bias-variance tradeoff 的實際意義、L1/L2 regularization 的選擇邏輯、cross-entropy 為什麼比 MSE 適合分類、SGD 與 Adam 的取捨、precision/recall 在不同場景的重要性差異。
目錄
  1. 面試怎麼考 ML 基礎
  2. Bias-Variance Tradeoff
  3. Regularization
  4. Loss Functions
  5. Optimization
  6. Evaluation Metrics
  7. 常見陷阱與面試技巧
  8. 面試模擬題
    1. 題目
    2. 拆解思路
    3. 範例回答(面試時可以這樣講)
    4. 自我核對清單
  9. 參考資料

面試怎麼考 ML 基礎

ML 基礎在面試中出現的方式因環節而異。Phone screen 通常是快問快答:「解釋一下 bias-variance tradeoff」「L1 和 L2 regularization 有什麼差別」「你怎麼選 evaluation metric」。面試官在 30 秒內判斷你的理解深度——能用直覺講清楚的人過關,需要背誦公式才能開口的人不過。

Onsite 的 ML deep dive 不會單獨考這些概念,但會在討論你的專案時追問。你說你用了 random forest,面試官可能問「你怎麼處理 overfitting」;你提到用了 cross-entropy loss,追問就是「為什麼不用 MSE」。基礎概念不是獨立的考試科目,而是你在所有技術討論中的底層語言。

這篇整理五個最高頻的基礎主題,每個都附上面試時怎麼講才算好。

Bias-Variance Tradeoff

直覺解釋:Bias 是模型的系統性偏差——模型太簡單,怎麼訓練都抓不到資料的真實模式。Variance 是模型的不穩定性——模型太複雜,對訓練資料的噪音太敏感,換一批資料預測就完全不同。

面試時這樣講:「想像你在射靶。High bias 是每次都偏左——你的瞄準方式有問題。High variance 是散佈很大——有時中靶有時飛掉。理想狀態是又準又集中,但現實中你降低 bias(用更複雜的模型)通常會增加 variance,反過來也是。」

常見追問與回答

「你怎麼判斷模型是 high bias 還是 high variance?」——看 training error 和 validation error 的落差。Training error 高 + validation error 也高 = high bias(underfitting)。Training error 低 + validation error 高 = high variance(overfitting)。

「你會怎麼處理 high variance?」——三條路:增加訓練資料、減少模型複雜度(fewer features、shallower tree)、加 regularization。如果是 ensemble 方法,bagging(如 random forest)天然降低 variance。

「Bias-variance tradeoff 在深度學習時代還成立嗎?」——經典理論說模型複雜度超過某個點 variance 必然升高,但深度學習的 double descent 現象顯示:模型參數超過訓練資料量夠多之後,test error 反而再度下降。不過在面試中提到這個要小心——先確認面試官熟悉這個概念,否則容易變成你在講面試官不懂的東西。

Regularization

Regularization 的核心思想是限制模型的自由度來降低 overfitting。面試最常考的是 L1 和 L2 的差別。

L1(Lasso):在 loss function 加上權重的絕對值總和。效果是把不重要的權重直接壓到零——L1 自帶 feature selection。面試時說「如果我預期很多 feature 是噪音,用 L1 可以自動篩掉它們」。

L2(Ridge):在 loss function 加上權重的平方和。效果是讓所有權重都變小但不會變成零——L2 傾向保留所有 feature,只是壓縮它們的影響力。面試時說「如果我相信大多數 feature 都有貢獻,只是不想讓任何一個 feature 主導模型,用 L2」。

Elastic Net:L1 + L2 的混合。面試時通常不會深問,但如果被問到就說「當 feature 之間有高度相關性時,純 L1 會隨機選其中一個,Elastic Net 傾向保留整組」。

Dropout:深度學習中最常用的 regularization。訓練時隨機關掉一定比例的神經元,強迫網路不依賴任何單一神經元。直覺解釋:「相當於同時訓練很多個子網路,inference 時取它們的平均——這和 ensemble 的效果類似。」常見追問是 dropout rate 怎麼選——經典做法是隱藏層 0.5、輸入層 0.2,但實務上都要 tune。

Loss Functions

面試官問 loss function 的目的通常不是要你推導數學,而是要你解釋「為什麼在這個場景選這個 loss」。

Cross-Entropy vs MSE 用在分類:這是最高頻的問題。答案的核心是梯度行為。MSE 在預測值遠離正確答案時梯度反而變小(sigmoid 飽和區),導致訓練初期學很慢。Cross-entropy 在預測錯誤時梯度大、預測正確時梯度小,完美匹配我們想要的學習行為。面試時說「cross-entropy 讓模型在犯大錯時學得快,MSE 在犯大錯時反而學得慢,所以分類用 cross-entropy」。

Binary vs Categorical Cross-Entropy:二分類用 binary,多分類用 categorical。如果被追問 multi-label 怎麼辦——每個 label 獨立套 binary cross-entropy。

Regression 的 Loss:MSE 對 outlier 敏感(平方放大效果),MAE 對 outlier 魯棒但在零附近不可微。Huber loss 是兩者的混合:小 error 用 MSE 的行為,大 error 用 MAE 的行為。面試時提到 Huber loss 會加分。

Optimization

面試不會要你推導更新公式,但會問你「為什麼選 Adam 而不是 SGD」。

SGD(Stochastic Gradient Descent):最基本的優化器。每步用一個 mini-batch 的梯度更新參數。問題是 learning rate 很難調——太大會震盪,太小收斂慢。而且在 loss landscape 有很多鞍點和平坦區域時容易卡住。

Momentum:SGD 加上「慣性」——不只看當前的梯度,還看過去的梯度方向。效果是在一致的方向上加速、在震盪的方向上減速。面試時說「想像一顆球滾下山坡,momentum 讓它在下坡時加速、遇到小坑不會停」。

Adam(Adaptive Moment Estimation):結合 momentum 和每個參數自適應的 learning rate。對大多數問題開箱即用,不太需要仔細調 learning rate。這是目前最常用的 default choice。

面試時的取捨邏輯:「大多數情況我從 Adam 開始,因為它對 hyperparameter 不敏感,能快速得到 baseline。如果追求最終效能(例如 ImageNet 訓練),SGD + momentum + learning rate schedule 通常能比 Adam 收斂到更好的 generalization——但需要更多 tuning 時間。」

Evaluation Metrics

面試官考 evaluation metrics 的真正目的是看你能不能根據業務場景選對指標。

Precision vs Recall:Precision 是「你說是的裡面有多少真的是」,recall 是「真的是的裡面你抓到多少」。面試最愛問的場景題:

  • 「你在做垃圾郵件偵測,重 precision 還是 recall?」——重 precision。把正常郵件標成垃圾的代價很高(使用者可能漏掉重要信),漏掉一些垃圾郵件的代價相對低。
  • 「你在做癌症篩檢,重 precision 還是 recall?」——重 recall。漏掉一個真正的癌症患者的代價遠高於把健康的人標成可疑(後者只是多做一次確認檢查)。

F1 Score:Precision 和 recall 的調和平均。當兩者都重要且資料不平衡時用。但面試時不要預設用 F1——先問清楚業務場景再決定。

AUC-ROC:衡量模型在所有 threshold 下的排序能力。AUC = 0.5 等於隨機猜,AUC = 1.0 完美分類。優點是不依賴特定 threshold,適合比較不同模型。但在極度不平衡的資料集上,AUC 可能給出過於樂觀的數字——這時 AUC-PR(precision-recall curve 下的面積)更可靠。

常見陷阱與面試技巧

不要背定義,要講直覺。面試官問「什麼是 regularization」時,不要回答「在 loss function 加上一個 penalty term」。要說「regularization 是故意限制模型的表達能力,讓它不要過度記住訓練資料的噪音,而是學到真正的模式」。

被追問時承認邊界。如果面試官問到你不確定的地方(比如 double descent 的數學解釋),說「我知道這個現象的直覺解釋,但數學上的嚴格解釋我不確定」比硬掰好得多。

用實際經驗佐證。每個概念最好都能接上一句「我在之前的專案中遇到過這個——當時我們用了 X 來處理 Y」。沒有實際經驗的概念,準備一個假設場景也行,但要說清楚是假設。

注意面試官的訊號。如果面試官在你講完 bias-variance 之後點頭往下走,不要自己加碼講 double descent。如果面試官追問,才展開。面試時間有限,不要在不需要深入的地方消耗時間。

面試模擬題

題目

「你訓練了一個分類模型,在 training set 上 accuracy 98%,在 validation set 上只有 72%。你怎麼診斷和修復?」

來源:Google MLE phone screen 難度:中等 環節:phone screen

拆解思路

  1. 先釐清問題:問面試官——資料集規模多大?類別分佈是否平衡?模型架構是什麼?有沒有用 regularization?
  2. 建立框架:這是典型的 high variance(overfitting)問題——訓練好但泛化差。用 bias-variance 框架拆解。
  3. 深入核心:逐步列出緩解手段——更多資料、regularization(L2/dropout)、降低模型複雜度、data augmentation、early stopping——並解釋每個手段的 trade-off。
  4. 收尾:提到你會怎麼驗證修復有效(learning curve 分析:畫 training/validation loss vs. epoch),以及在生產環境中怎麼持續監控。

範例回答(面試時可以這樣講)

先判斷問題類型。 Training 98% 但 validation 72%,差距 26 個百分點,這是典型的 overfitting——模型記住了訓練資料的噪音而不是學到泛化的模式。我會先畫 learning curve 確認:如果 training loss 持續下降但 validation loss 在某個 epoch 後開始上升,就確認了 overfitting。

修復方向我會從三個面向切入。 第一是資料面——增加訓練資料或做 data augmentation,讓模型看到更多變化。第二是模型面——加 L2 regularization(weight decay 設 1e-4 到 1e-2 之間 grid search)或加 dropout(0.3-0.5),如果模型太深就考慮減層。第三是訓練面——用 early stopping 在 validation loss 開始上升時停止訓練。我會先試 regularization 因為成本最低,效果不夠再加資料。

最後我會確認修復有效。 重新畫 learning curve,確認 training 和 validation 的 gap 縮小到 5% 以內。同時檢查 validation 上的 precision/recall 分佈——accuracy 可能因為類別不平衡而有誤導,如果正負樣本比差很多,我會改看 AUC-PR。

自我核對清單

核對項目有提到?
判斷 overfitting(high variance)而非 underfitting
Learning curve 診斷方法
至少三種緩解手段(data/model/training)
每個手段的具體參數或做法
修復後的驗證方式
加分:提到 class imbalance 時 accuracy 的局限性

參考資料