iPAS AI 應用規劃師 中級 科目一

系統化找出最穩定超參數組合,最該用哪種方法?

原題 36

某資料科學團隊在開發預測模型時,針對多種模型設定(如學習率、樹深度、正則化係數等)進行系統化測試,希望找出在驗證資料上表現最穩定的組合。此過程最可能採用下列哪一種方法?

白話

某資料科學團隊在開發預測模型時,針對學習率、樹深度、正則化係數等多種模型設定進行系統化測試,目標是找出在驗證資料上表現最穩定的設定組合。

問你:這個過程最可能採用下列哪一種方法?

點選你的答案。

01 總結

一句話總結

「系統化地把所有想試的超參數組合都測過一遍」,這個做法叫做網格搜尋(Grid Search)。它把每個超參數的候選值列出來,然後枚舉所有可能的組合,一組一組都跑過,找出表現最好的組合

02 情境

先感受問題:超參數有很多,要怎麼試

假設「精算智能」資料科學團隊在開發一個保險理賠預測模型,用隨機森林(Random Forest)演算法。

他們需要決定三個超參數:

樹的數量(n_estimators):[100, 200, 500]
樹的最大深度(max_depth):[3, 5, 10]
最小分裂樣本數(min_samples_split):[2, 5, 10]

三個參數各有三個候選值,總共 3 × 3 × 3 = 27 個組合。

如果他們想「系統化地把這 27 個組合全部都試過」,不漏掉任何一個,這就是網格搜尋。

每個組合用驗證資料評分,27 個都跑完,選分數最高的那個組合上線。

「系統化測試」這幾個字是最重要的線索。網格搜尋的特色就是:排列組合、全部枚舉、不跳過、不靠運氣

03 對照

手動試參數為什麼靠不住

在網格搜尋出現前,工程師靠「直覺和經驗」手動調超參數,這有五個問題:

  1. 遺漏好的組合:你猜「學習率 0.01 好」就直接跳到那裡,但也許「學習率 0.001 配上樹深度 5」才是最佳組合,你根本沒試到。
  2. 沒有基準可比較:試了三個組合,覺得第二個最好,但可能第十個才是真正最好的,你不知道。
  3. 調參順序影響結果:先調 A 再調 B 跟先調 B 再調 A,可能得到不同結論,因為超參數之間有互動效應。
  4. 重複性差:下次換個人來調,可能調出完全不同的結果,無法保證可重複性。
  5. 效果難以解釋:說不清楚「為什麼這個超參數這樣設」,只能說「我試了覺得比較好」。
04 解法

網格搜尋怎麼做到「系統化」

回到「精算智能」團隊。網格搜尋的流程:

第一步:列出候選值(畫出「網格」)

n_estimators:[100, 200, 500] ← 3 個選項
max_depth:[3, 5, 10] ← 3 個選項
min_samples_split:[2, 5, 10] ← 3 個選項

第二步:枚舉所有組合(3 × 3 × 3 = 27 種),依序全部跑過。

第三步:每個組合用交叉驗證評分(例如 5-fold CV),得到 27 個分數。

第四步:選分數最高的組合,作為最終模型設定。

好處:

  • 不漏掉任何候選組合
  • 結果可重複(給任何人同樣候選值,得到同樣答案)
  • 超參數之間的互動效應也能被捕捉到

代價:組合數量隨參數數量指數成長,計算量大。

這就是選項 B 講的:透過網格搜尋(Grid Search)在多組超參數設定中進行系統化搜尋與評估

技術版:Grid Search、Random Search、Bayesian Optimization 比較

中級考試大概率會考程式碼跟公式,所以這部分你還是要學。但如果現在學起來很痛苦,可以先跳過,等讀完其他題目回頭再來。

scikit-learn 實作網格搜尋

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier

# 定義候選超參數(網格)
param_grid = {
    'n_estimators': [100, 200, 500],
    'max_depth': [3, 5, 10],
    'min_samples_split': [2, 5, 10]
}

# 建立 Grid Search(搭配 5-fold 交叉驗證)
grid_search = GridSearchCV(
    estimator=RandomForestClassifier(),
    param_grid=param_grid,
    cv=5,           # 5-fold 交叉驗證
    scoring='f1',   # 評分指標
    n_jobs=-1       # 用所有 CPU 核心平行運算
)

# 執行搜尋(跑完 27 × 5 = 135 次訓練)
grid_search.fit(X_train, y_train)

# 查看最佳組合
print(grid_search.best_params_)
print(grid_search.best_score_)
Step 1 純故事版
  1. 把所有想試的超參數值列成一張表(網格)
  2. 枚舉表上所有組合,一個一個跑
  3. 每個組合用交叉驗證評分,確保分數可靠
  4. 選分數最高的組合作為最終設定
Step 2 中文 ↔ 程式碼對照
故事程式碼
列出候選超參數param_grid = {...}
系統化枚舉所有組合GridSearchCV(...)
每組配上交叉驗證評分cv=5
取出最佳組合best_params_
Step 3 符號角色表
超參數(Hyperparameter)
模型訓練前就要決定的設定,不是從資料裡學出來的。學習率、樹深度、正則化係數都是超參數。
param_grid
網格搜尋的候選值字典。每個鍵是超參數名稱,對應的值是候選值列表。
cv=5
5-fold 交叉驗證。把訓練資料切成 5 份,輪流用 4 份訓練、1 份驗證,確保評分不受資料切割方式影響。
best_params_
所有組合中,交叉驗證分數最高的超參數組合。
Step 4 三種超參數搜尋方法比較
方法            搜尋方式              計算量          適用場景
----------------------------------------------------------------------
Grid Search    枚舉所有組合           高(指數成長)  參數少、想確保最佳
Random Search  隨機抽樣部分組合       中              參數多、計算資源有限
Bayesian Opt.  根據歷次結果智慧選下一個  低(收斂快)  參數多且評估代價高

題目關鍵詞「系統化測試」「所有設定組合」指的是 Grid Search。

Step 5 自我複述

蓋住程式碼,說出網格搜尋的三個步驟:

  1. 列出每個超參數的候選值
  2. 枚舉所有組合,每個都用交叉驗證評分
  3. 選分數最高的組合作為最終超參數設定
05 陷阱

為什麼其他選項是錯的

A使用交叉驗證(Cross Validation)反覆評估模型以降低過擬合風險

字面在說什麼

把資料切成多份輪流做訓練和驗證,讓模型評估結果更可靠,降低因為資料切法不同而造成的偶然誤差。

為什麼不對

交叉驗證是「評估一個模型設定好不好」的工具,不是「搜尋哪個設定最好」的方法。你仍然需要先決定要試哪些超參數組合,交叉驗證只是評分機制。實際上,網格搜尋通常搭配交叉驗證(如 GridSearchCV 裡的 cv 參數),但交叉驗證本身不做系統化搜尋。

誰會選錯

把「評估模型」和「搜尋超參數」這兩個步驟混在一起的人。交叉驗證回答「這個組合有多好」,網格搜尋回答「哪個組合最好」,前者是手段,後者才是這題問的目的。

C以隨機搜尋(Random Search)快速探索部分參數空間以提升搜尋效率

字面在說什麼

不是把所有組合都試,而是隨機抽取一部分組合來試,在有限計算資源下更快找到好的設定。

為什麼不對

隨機搜尋的關鍵詞是「部分參數空間」,不是「系統化測試所有組合」。題目說「系統化測試」「希望找出表現最穩定的組合」,這是要確保沒有遺漏最好的組合,隨機搜尋不能保證這點。隨機搜尋是以「搜尋效率」換「搜尋完整性」,題目的情境明確是要系統化、不遺漏。

誰會選錯

知道「隨機搜尋通常比網格搜尋有效率」(Bergstra & Bengio, 2012 的研究確實如此),就覺得應該選更聰明的方法的人。但這題問的不是哪個方法「更好」,而是哪個方法「最符合題目描述的情境」。題目的情境特徵:系統化、所有組合,指的是網格搜尋。

D採用貝葉斯優化(Bayesian Optimization)根據歷次結果動態調整搜尋方向

字面在說什麼

用機率模型追蹤「哪些超參數值比較可能讓分數好」,每次實驗後更新模型,聰明地選下一個要試的點。

為什麼不對

貝葉斯優化是「動態調整」不是「系統化枚舉」,它不會把所有候選組合都跑過,而是根據之前的結果推測哪裡值得試,直接跳到有潛力的區域。這跟題目說的「系統化測試」(枚舉所有組合)相反。貝葉斯優化適合「超參數空間很大、每次評估代價很高(例如深度學習訓練幾個小時)」的場景,不是「系統化跑完所有候選值」。

誰會選錯

知道貝葉斯優化是「最先進的超參數搜尋方法」,就覺得應該選它的人。在機器學習競賽或資源有限的生產環境,貝葉斯優化確實很有效。但題目的情境是「系統化把所有組合都試過」,符合的是網格搜尋。解題要看題目情境,不是找「最好的方法」。

06 變形

同個考點下次怎麼變形

變形 1 邊界

超參數候選值增加會怎樣?Grid Search 還適用嗎?

直覺

如果有 10 個超參數、每個有 10 個候選值,Grid Search 要跑幾個組合?

答案

10^10 = 100 億個組合。這是典型的「維度詛咒」(Curse of Dimensionality):參數每多一個維度,組合數量就指數成長。實際上超過 4~5 個超參數、每個超過 5 個候選值,Grid Search 就計算量太大。這時候要改用 Random Search(計算量可控,有時效果接近)或 Bayesian Optimization(聰明選點,更快收斂)。

變形 2 反例

Random Search 真的比 Grid Search 差嗎?研究怎麼說?

直覺

Grid Search 更完整、Random Search 更快,所以 Grid Search 應該更好?

答案

不一定。Bergstra 和 Bengio(2012)的論文證明:當有些超參數對結果影響不大時,Random Search 在相同計算量下,往往能找到比 Grid Search 更好的設定。原因是 Grid Search 會把資源均勻分配在所有參數組合,包含那些不重要的參數維度;Random Search 隨機採樣,在重要參數維度上的探索密度反而更高。所以「系統化但低效」vs「隨機但高效」,要看具體情境選擇。

變形 3 升級版

AutoML 跟超參數搜尋有什麼關係?

直覺

現在流行的 AutoML(自動機器學習)是不是就是把 Grid Search 自動化?

答案

AutoML 比超參數搜尋更廣。超參數搜尋假設你已經選好演算法(如隨機森林),只搜最好的超參數值。AutoML 更進一步,同時搜尋「要用哪個演算法」和「那個演算法最好的超參數是什麼」,技術上叫做 NAS(Neural Architecture Search)或 CASH(Combined Algorithm Selection and Hyperparameter optimization)。代表工具有 AutoSklearn、TPOT、H2O AutoML。

變形 4 跨領域

藥物研發的「化合物篩選」跟超參數搜尋有什麼相似之處?

直覺

超參數搜尋是 AI 的問題,藥物研發是化學問題,有什麼共同點?

答案

兩個問題結構相同:都是在巨大的「搜尋空間」裡找到表現最好的「設定」。藥物研發的搜尋空間是可能的分子結構(化學空間有超過 10^60 種),評估代價極高(合成和測試一個化合物要幾個月)。因此藥物研發也在用貝葉斯優化和強化學習來智慧地選下一個要合成的化合物,跟超參數搜尋的邏輯完全相同,只是領域不同。

變形 5 評估指標

Grid Search 搭配的 Cross Validation 用幾 fold 最合適?

直覺

CV 的 fold 數越多越好嗎?5-fold 和 10-fold 哪個更常用?

答案

業界常用 5-fold 或 10-fold,各有取捨。10-fold:驗證集更小,訓練集更大,偏差(bias)較小,但計算量高 2 倍,且每個 fold 的評估誤差較大(驗證集少)。5-fold:平衡計算量和評估穩定性,是最常見的預設值。資料量特別少時(數百筆以下)用 Leave-One-Out(LOOCV)。資料量很大時(數百萬筆)甚至只用 3-fold 或 Holdout Set,因為大資料本身評估就夠穩定,不需要多次交叉。

07 延伸

想再往下看,這 5 個

  • 網格搜尋(Grid Search)超參數調整方法:列出每個超參數的候選值,枚舉所有組合並逐一評估,找出表現最好的組合。系統化、可重複,代價是計算量隨維度指數成長。
  • 超參數(Hyperparameter)機器學習模型訓練前就要設定的參數,不從資料中學習,如學習率、樹深度、正則化係數、神經網路層數等。超參數的選擇對模型最終表現影響巨大。
  • 交叉驗證(Cross Validation)模型評估技術:把資料切成 k 份,輪流用 k-1 份訓練、1 份驗證,取 k 次評分的平均,比單次 Holdout 評估更穩定可靠。常與網格搜尋搭配使用。
  • 隨機搜尋(Random Search)超參數調整方法:不枚舉所有組合,而是在參數空間隨機採樣指定次數。計算效率比網格搜尋高,在高維參數空間中有時效果更好。
  • 貝葉斯優化(Bayesian Optimization)智慧超參數搜尋:用機率代理模型(如高斯過程)建模參數與效能的關係,根據歷次實驗結果推測哪個點最值得試,適合評估代價高的場景(深度學習訓練)。
出處

iPAS 經濟部產業人才能力鑑定 ・ 114 年第二次 iPAS AI 應用規劃師 中級 科目一 第 36 題

查看官方原文 PDF