化實戰(zhàn):從高斯過程到采集函數(shù)的高效調(diào)參指南)
簡介超參數(shù)優(yōu)化是機器學習與深度學習建模中的關鍵環(huán)節(jié)直接影響模型性能與訓練效率。這份貝葉斯優(yōu)化實踐包面向需要系統(tǒng)學習自動調(diào)參的中高級開發(fā)者圍繞高斯過程與獲取函數(shù)展開演示如何用最少迭代找到較優(yōu)超參數(shù)組合。壓縮包共4個文件約10.96MB包含兩個Python腳本、一份Iris數(shù)據(jù)集和一份MNIST數(shù)據(jù)分別覆蓋經(jīng)典機器學習與深度學習場景前者可用于SVM、隨機森林等分類調(diào)參后者可配合MNIST手寫數(shù)字數(shù)據(jù)優(yōu)化神經(jīng)網(wǎng)絡結構、學習率等。已有4393人學習下載。通過研讀腳本可掌握貝葉斯優(yōu)化庫如bayesian-optimization、scikit-optimize的調(diào)用方式理解探索與開發(fā)平衡的完整思路并將同一套方法遷移到自己的分類或回歸任務中值得作為入門貝葉斯優(yōu)化與自動化調(diào)參的配套練習顯著減少手動試錯成本。1. 網(wǎng)格搜索為什么慢得讓人絕望貝葉斯優(yōu)化是在“猜函數(shù)”而不是“試參數(shù)”調(diào)深度學習模型時網(wǎng)格搜索看起來最“穩(wěn)”每個參數(shù)組合都試一遍結果總不會漏掉最優(yōu)??僧斈阌辛鶄€超參數(shù)、每個取十個值就得訓練百萬次模型這在大模型場景下根本跑不動。貝葉斯優(yōu)化的反直覺之處在于它不追求把每個參數(shù)組合都試到而是先用少量評估畫出“目標函數(shù)長什么樣”的低分辨率草圖再挑最值得試的點去驗證讓每一次訓練都物盡其用。為什么它敢這么干、憑什么它猜得準取決于三個底層機制代理模型、采集函數(shù)、以及它們的輪換更新。搞懂這套機制你才真正理解深度學習調(diào)參背后的概率邏輯。2. 代理模型高斯過程如何用“先驗”猜測損失函數(shù)長什么樣貝葉斯優(yōu)化的第一步不是直接搜參數(shù)而是先給目標函數(shù)建一個“替身”。這里的目標函數(shù)是什么在深度學習里它就是輸入一組超參數(shù)學習率、批大小、網(wǎng)絡寬度、dropout比率輸出驗證集損失的那個映射。它沒有解析式你只能通過一次完整訓練得到一個值所以每個數(shù)據(jù)點都極其昂貴。高斯過程Gaussian Process簡稱 GP被選作代理模型是因為它能在只觀測到少量點的情況下同時給出“這個點會是多少”的預測以及“這個預測有多不確定”。這兩個輸出恰好是后續(xù)采集函數(shù)做決策的原料。這一章我們把 GP 從“黑匣子”拆成三塊它到底在猜什么、用什么尺子度量點之間的相似度、以及觀測之后如何更新。2.1 從概率分布到函數(shù)分布高斯過程在猜什么常規(guī)的機器學習模型學習的是參數(shù)分布GP 學習的則是“函數(shù)的分布”。一個隨機函數(shù) f(x) 本身有一個均值函數(shù) m(x) 和一個協(xié)方差函數(shù) k(x, x)任意有限多個點 x?...x? 上的函數(shù)值 f(x?)...f(x?) 服從聯(lián)合高斯分布。這個性質(zhì)讓 GP 的一切計算都能用線性代數(shù)的閉式解表達。為什么這個定義能成立核心在于協(xié)方差函數(shù) k(x, x) 決定了任意兩個位置函數(shù)值的相關性如果兩個點在參數(shù)空間里靠得近它們對應的損失值應該也接近如果離得遠就沒什么必然聯(lián)系。所謂“先驗”就是你還沒跑任何訓練時對目標函數(shù)平滑性的一種假設。當我們觀測了一些點比如跑了十組超參數(shù)得到十個驗證損失貝葉斯公式把先驗函數(shù)分布更新成后驗。觀測點處的函數(shù)值被確定下來未觀測點處的函數(shù)值變成一個條件高斯分布。這個分布同樣由均值和方差刻畫均值就是 GP 對“該點損失最可能是多少”的猜測方差就是“這個猜測有多沒底”。2.2 核函數(shù)是“相似度尺子”RBF、Matern 與超參數(shù)響應面協(xié)方差函數(shù)通常由核函數(shù)給出它是對“相似度”的一種度量。RBF 核假設目標函數(shù)無限可微也就是說響應面極其光滑。這在超參數(shù)優(yōu)化里并不總是合適的深度學習的驗證損失曲面往往在局部有陡峭的溝壑RBF 容易把遠處的抖動誤當成噪聲低估不確定性。Matern 核引入了平滑參數(shù) ν當 ν1.5 或 2.5 時函數(shù)只有有限階可導。相比 RBF它允許目標函數(shù)有更“粗糲”的變化對真實超參數(shù)響應面的擬合通常更穩(wěn)健。另一個關鍵參數(shù)是長度尺度它回答“兩個點相距多遠才開始變得不相關”。長度尺度太大GP 會把整個空間看作一塊鐵板任何點都和其他點相關方差被壓得很低長度尺度太小每個點都像是孤島后驗方差在遠處迅速回到先驗采集函數(shù)就會退化成到處亂試。更精細的做法是給每個維度配一個獨立的長度尺度這就是自動相關確定ARD核。它天然具備“特征重要性排序”的能力某個維度長度尺度極大意味著該維度上的變化對損失幾乎無影響優(yōu)化器會自動忽略它。這一特性在深度學習超參數(shù)篩選中非常實用能幫你定位哪些超參數(shù)根本不值得調(diào)。2.3 高斯過程回歸的更新公式后驗閉式解與數(shù)值穩(wěn)定性給定觀測數(shù)據(jù) X已評估的參數(shù)點和 y對應損失GP 對新點 x* 的預測均值 μ(x*) 和方差 σ2(x*) 有解析式。我習慣用 numpy 手寫一遍這樣能看清每一步在做什么import numpy as np def rbf_kernel(xa, xb, length_scale1.0): RBF核兩點距離越遠函數(shù)值相關性越弱 diff xa - xb return np.exp(-0.5 * np.sum(diff ** 2) / length_scale ** 2) def gp_regression(X, y, Xs, length_scale1.0, noise1e-4): X: 已觀測的參數(shù)點 (n, d) y: 對應的驗證損失 (n,) Xs: 想要預測的新點 (m, d) 返回 mu, sigma: 新點處的預測均值與標準差 K np.zeros((len(X), len(X))) for i in range(len(X)): for j in range(len(X)): K[i, j] rbf_kernel(X[i], X[j], length_scale) # 在核矩陣對角線上加噪聲既能表達觀測噪聲也避免求逆時奇異 K noise * np.eye(len(X)) k np.zeros((len(X), len(Xs))) for i in range(len(X)): for j in range(len(Xs)): k[i, j] rbf_kernel(X[i], Xs[j], length_scale) diag np.array([rbf_kernel(x, x, length_scale) for x in Xs]) K_inv np.linalg.inv(K) mu k.T K_inv y sigma2 diag - np.einsum(ij,ji-i, k.T K_inv, k) sigma np.sqrt(np.maximum(sigma2, 0)) return mu, sigma這段代碼中mu k.T K_inv y的本質(zhì)是“用觀測點的損失對新點做加權外推”權重由核函數(shù)決定。sigma2的第一項是未觀測時的先驗方差第二項是觀測信息已經(jīng)“抹掉”的不確定性。于是離觀測點越近的位置方差越小離得越遠方差越接近先驗水平。這個過程解釋了為什么 GP 能在幾十次評估后畫出整個參數(shù)空間的“風險地圖”。數(shù)值穩(wěn)定性上np.linalg.inv(K)在生產(chǎn)環(huán)境里要換成 Cholesky 分解或np.linalg.solve因為求逆會放大舍入誤差。noise項也不能設成絕對零哪怕目標函數(shù)本身無噪聲也要留一個 1e-6 量級的抖動jitter防止核矩陣因為重復觀測點而奇異。提示GP 的核心建模成本在核矩陣求逆復雜度 O(n3)。當觀測點數(shù)到幾百個時需要轉(zhuǎn)向稀疏近似或直接換別的代理模型。3. 采集函數(shù)探索與利用的數(shù)學權衡代理模型告訴我們每個點的猜測值和不確定性下一步是決定“下一個要訓練的超參數(shù)組合選誰”。這一步由采集函數(shù)完成。采集函數(shù)的核心矛盾是探索與利用利用是撲向當前預測均值最好的區(qū)域探索是走向不確定性最大的區(qū)域。如果只利用你會在前幾步就困在局部最優(yōu)如果只探索你就是在做沒有記憶的隨機搜索。3.1 提升概率與期望提升兩個候選策略的本質(zhì)區(qū)別最簡單的采集函數(shù)是提升概率Probability of ImprovementPI。它計算新點函數(shù)值超過當前最優(yōu)值的概率選概率最大的點去試。問題是PI 只關心“有沒有可能更好”不關心“能好多少”。一個區(qū)域可能提升概率是 80%但提升幅度只有 0.001另一個區(qū)域提升概率只有 30%一旦提升就是質(zhì)的飛躍。PI 會毫不猶豫選擇前者于是很容易陷進“小提升泥潭”。期望提升Expected ImprovementEI把提升幅度也納入計算所以它是絕大多數(shù)開源超參數(shù)優(yōu)化庫的默認采集函數(shù)。EI(x) 的公式可以寫成EI(x) (μ(x) - y_best - ε)·Φ(z) σ(x)·φ(z)其中 z (μ(x) - y_best - ε) / σ(x)Φ 是標準正態(tài)分布的累積分布函數(shù)φ 是概率密度函數(shù)ε 是一個很小的提升閾值。公式第一項獎勵預測均值高過當前最優(yōu)值第二項獎勵高不確定性。兩個項的平衡是自動發(fā)生的不確定性大的區(qū)域即使均值不高只要 σ 夠大EI 依然可能很高。3.2 UCB 與 EI 的公式拆解與超參數(shù)另一種常見的采集函數(shù)是置信上界Upper Confidence BoundUCB形式為UCB(x) μ(x) κ·σ(x)κ 是手動設置的探索系數(shù)。κ 大策略偏向探索κ 小偏向利用。UCB 的優(yōu)點是超參數(shù)語義直觀缺點是這個 κ 在不同問題之間很難復用同一個 κ在某個損失尺度下探索力度剛好換一個數(shù)據(jù)集就完全失效。EI 看起來沒有自由超參數(shù)但那個 ε 就是它的“隱藏旋鈕”。ε0 時EI 會認為任何微小的提升都值得嘗試ε 調(diào)大后只有收益大到能覆蓋訓練成本的點才會被選中。在深度學習場景里一次評估意味著完整訓練一遍模型ε 的物理意義就是“這次訓練期望收益最低要超過多少才不算浪費”。我一般會把 ε 設成當前最優(yōu)損失值的 1% 量級防止優(yōu)化器在損失平臺區(qū)的噪聲上反復橫跳。策略公式核心探索控制方式典型風險PI只看提升概率閾值 ε 越小越保守陷入微小提升區(qū)域EI概率×提升幅度ε 調(diào)節(jié)最小收益對噪聲敏感UCB均值κ×標準差κ 顯式控制全局探索κ 難復用需要調(diào)3.3 一個生產(chǎn)級的采集函數(shù)實現(xiàn)EI 的實現(xiàn)只有幾行但每一列都有文章。下面是我常用的版本from scipy.stats import norm def expected_improvement(mu, sigma, y_best, eps0.01): mu, sigma: 候選點處的預測均值與標準差 y_best: 當前已觀測的最優(yōu)值 eps: 最小提升幅度抑制過小的噪聲波動 delta mu - y_best - eps # sigma 為 0 時 EI 沒有意義直接返回 0 if sigma 1e-12: return 0.0 z delta / sigma # 第一項均值優(yōu)勢第二項不確定性帶來的潛在驚喜 return delta * norm.cdf(z) sigma * norm.pdf(z) def find_next_point(mu, sigma, candidates, y_best): acq expected_improvement(mu, sigma, y_best) idx int(np.argmax(acq)) return candidates[idx], acq[idx]注意candidates不是所有可能參數(shù)組合而是一個預先隨機采樣的候選池。每次循環(huán)從物理空間里新采樣幾千個點對它們計算 EI取最大值作為下一步。相比于直接對采集函數(shù)做梯度優(yōu)化候選池方案實現(xiàn)簡單、不容易掉進數(shù)值洼地代價是候選池密度不夠時會錯過真正的最優(yōu)點。提示如果追求極限精度可以對采集函數(shù)做多起點梯度上升L-BFGS 從多個隨機點出發(fā)再把 EI 最大值對應的點送去評估。4. 完整流程與實戰(zhàn)從隨機初始化到收斂代理模型和采集函數(shù)裝好之后貝葉斯優(yōu)化的整體流程就是一個反復迭代的“猜測-驗證-更新”循環(huán)。這一章把前面所有部件組裝起來展示一個最小可運行的完整例子并解釋每個可調(diào)參數(shù)在真實深度學習調(diào)參中扮演的角色。4.1 初始化采樣為什么要留開頭的“隨機試探”GP 在沒有觀測數(shù)據(jù)時給不出任何有信息量的后驗所以優(yōu)化器必須以隨機采樣的方式先“試水溫”。初始點數(shù)量與總預算的關系很微妙太少GP 先驗主導決策容易把方向帶偏太多相當于把預算白白浪費在信息量很低的隨機評估上。經(jīng)驗值是把總預算的 10%30% 留給初始化。初始點怎么撒也有講究。純隨機均勻采樣在高維空間會出現(xiàn)“中心化聚集”的問題因為均勻分布在高維球的體積集中在邊界中心區(qū)域反而稀疏。拉丁超立方體采樣把每個維度分成等概率區(qū)間保證每個維度的邊緣分布都覆蓋均勻Sobol 序列則更進一步讓點在空間和時間上都均勻分布。對深度學習調(diào)參來說Sobol 初始化的效果通常最穩(wěn)代價是實現(xiàn)稍微復雜一點。無論選哪種初始化階段記住一個原則先讓觀測點鋪滿整個參數(shù)空間再談局部精細搜索。4.2 一個完整的貝葉斯優(yōu)化循環(huán)下面的代碼把 GP、EI 和初始化串成一個完整的優(yōu)化器。為了聚焦機制這里省去了很多工程細節(jié)但骨架完整def bayesian_optimize(candidate_pool, evaluate, n_init10, n_iter40): candidate_pool: 預先采樣的候選點矩陣形狀 (N, d) evaluate: 對一組超參數(shù)執(zhí)行完整訓練返回驗證指標越大越好 # 1) 隨機初始化先從候選池里均勻挑一批點評估 rng np.random.default_rng(0) init_idx rng.choice(len(candidate_pool), n_init, replaceFalse) Xs [candidate_pool[i] for i in init_idx] ys [evaluate(x) for x in Xs] # 2) 主循環(huán)每一輪用GP EI選下一個點 for step in range(n_iter): # 用全部觀測訓練GP得到候選池每一點的預測 mu, sigma gp_regression( np.array(Xs), np.array(ys), np.array(candidate_pool) ) y_best np.max(ys) # 3) 采集函數(shù)選點 x_next, acq_value find_next_point(mu, sigma, candidate_pool, y_best) # 4) 真實驗證這一步代價最高是完整訓練 y_next evaluate(x_next) Xs.append(x_next) ys.append(y_next) print(fstep{step} best{y_best:.4f} next{y_next:.4f} acq{acq_value:.4f}) best_idx np.argmax(ys) return Xs[best_idx], ys[best_idx]這個循環(huán)里有幾個容易被新手忽略的細節(jié)。evaluate返回的是驗證指標而不是損失因為貝葉斯優(yōu)化的慣例是“越大越好”。第 2) 步每輪都重建一次 GP原因是新增觀測點會改變整個后驗分布上一輪的采集函數(shù)決策已經(jīng)過期貝葉斯優(yōu)化的“在線學習”本質(zhì)就體現(xiàn)在這里。acq_value的值本身也值得觀察如果一對情侶連續(xù)三輪縮水說明參數(shù)空間里值得探索的區(qū)域正在被消耗該考慮是否停止。4.3 關鍵參數(shù)如何影響整個搜索行為把貝葉斯優(yōu)化看成一套系統(tǒng)它也有自己的超參數(shù)。第一個是核函數(shù)的長度尺度。長度尺度設得過大GP 認為所有點高度相關后驗方差低估EI 只敢在已觀測區(qū)域附近打轉(zhuǎn)設得過小GP 認為任何點都互不認識后驗方差處處巨大EI 退化成隨機搜索。在深度學習調(diào)參中我習慣先把長度尺度設成參數(shù)范圍寬度的 1/3跑十幾輪后根據(jù) EI 的行為再調(diào)整。第二個是觀測噪聲。深度學習的每次訓練都有隨機性數(shù)據(jù)加載順序、權重初始化、GPU 上的非確定性算子都會讓相同超參數(shù)跑出略有差異的驗證損失。如果 GP 的 noise 設為 0它會把這種隨機抖動當成真實信號在同一個點附近反復選擇。第三個是候選池規(guī)模。候選池太小比如幾百個EI 的最大值會被離散采樣密度限制住候選池太大幾十萬個每輪對全池計算 GP 預測的代價會壓過一次真實訓練的成本得不償失。一個常見的做法是每輪從參數(shù)空間新采樣 500020000 個點構成臨時候選池保證采樣密度同時控制計算量。最后所有超參數(shù)維度在送進 GP 前都應歸一化到 [0,1] 區(qū)間。如果不歸一化量綱大的維度會主導核函數(shù)里的距離計算讓長度尺度失去按維度調(diào)整的意義。5. 貝葉斯優(yōu)化避坑為什么我的調(diào)參總是翻車貝葉斯優(yōu)化看著優(yōu)雅真跑起來翻車概率一點不低。這一章列幾個我在實際調(diào)參中反復踩過的坑每一條都是具體的現(xiàn)象、原因和解決方式按“現(xiàn)象 → 原因 → 解決”的排查思路來寫。5.1 現(xiàn)象優(yōu)化器連續(xù)多輪采樣同一個邊角現(xiàn)象從第 10 輪開始EI 的最大值總是落在參數(shù)空間的同一個角落新評估的驗證損失毫無變化但采集函數(shù)依舊癡迷地指向那里。原因長度尺度過大時GP 模型把所有已觀測點都視為高度相關它們周圍的方差被壓得接近零而那個遠離所有觀測點的角落在 GP 看來是一片“未知大陸”方差被錯誤地推到最大。EI 公式里有 σ(x) 這一項于是虛假的不確定性成了主導信號。解決打印出候選池的 σ 分布如果幾乎處處小于 0.001說明長度尺度設大了。把長度尺度降一個數(shù)量級或者換成 Maternν1.5核減少過度平滑的先驗假設。同時把 EI 的 ε 從 0 調(diào)到當前最優(yōu)值的 1% 左右過濾掉那些只靠不確定性支撐的候選點。5.2 現(xiàn)象優(yōu)化提前收斂結果還不如隨機搜索現(xiàn)象只跑了 15 輪EI 就一路衰減到零優(yōu)化器宣稱找到最優(yōu)把同樣的預算拿去做隨機搜索刷新了更好的結果。原因這是一個典型的前期探索不足。初始化點數(shù)太少GP 的先驗在早期直接主導決策加上核函數(shù)假設過于光滑GP 把某個局部凸區(qū)域誤判成了全局最優(yōu)的形狀采集函數(shù)以為“天下已定”實際上連遠處的高原都沒看過一眼。解決把初始化預算提到總預算的 30% 以上讓 GP 在建立后驗之前有足夠的全局視野。另一個手段是調(diào)大 ε。當 ε 從 0.01 提到 0.1 量級時EI 會拒絕一切“收益不明顯的點”強迫優(yōu)化器轉(zhuǎn)而去不確定性高的區(qū)域采樣這相當于給探索加了一個保護機制。5.3 現(xiàn)象核矩陣求逆報錯或者方差出現(xiàn)負值現(xiàn)象運行 gp_regression 時拋線性代數(shù)錯誤矩陣非正定或者某幾個點的 σ2 算出來是負數(shù)取根號后變成 NaN。原因觀測點里出現(xiàn)了重復參數(shù)。深度學習的參數(shù)空間經(jīng)常有離散化操作比如把 dropout 限制在幾個檔位不同輪次選出來的點映射到同一組離散值核矩陣就產(chǎn)生了完全相同的兩行導致奇異另一個常見原因是 noise 被設成嚴格 0矩陣對角線沒有緩沖數(shù)值上是不可逆的。解決核矩陣對角的按規(guī)律抖動是必須的。即使你認為目標函數(shù)無噪聲也至少加 1e-6 的 jitter觀測點去重可以順手做但根本解法是讓 GP 實現(xiàn)內(nèi)部永遠保留一個最小噪聲項。這是所有生產(chǎn)級高斯過程庫都在偷偷做的那層“防翻車墊”。5.4 現(xiàn)象高維參數(shù)空間里貝葉斯優(yōu)化比隨機搜索還差現(xiàn)象超參數(shù)維度超過 20 時網(wǎng)絡層數(shù)、各層寬度、正則系數(shù)、優(yōu)化器參數(shù)混在一起GP 的預測越來越亂優(yōu)化曲線中位數(shù)反而低于隨機搜索。原因高維空間的體積效應讓所有采樣點的兩兩距離都趨于一致核函數(shù)很難區(qū)分“相關”和“不相關”。GP 的后驗方差幾乎處處回到先驗水平EI 失去指導性整個貝葉斯優(yōu)化退化成了一次按照均勻分布采樣但還帶著模型計算負擔的隨機搜索。解決把參數(shù)空間做結構化分解。連續(xù)型超參數(shù)學習率、權重衰減、momentum交給 GP離散型或類別型超參數(shù)激活函數(shù)、歸一化方式、優(yōu)化器選擇改用樹形代理模型或者干脆在兩種空間之間交替采樣。另一個硬核思路是先用隨機搜索跑出幾十個點的分布確認方差確實有意義再啟動貝葉斯優(yōu)化如果隨機搜索的中位數(shù)始終高過貝葉斯優(yōu)化的跟蹤曲線就承認這個問題不適合 GP。5.5 現(xiàn)象目標函數(shù)自帶噪聲EI 被“虛擬尖峰”帶偏現(xiàn)象同一組超參數(shù)重復訓練三次驗證損失波動幅度達到超參數(shù)變化引起差異的一半以上。GP 在某個點附近觀察到一個偶然的低損失值于是反復在該點周邊采樣。原因深度學習的訓練本身是隨機過程。驗證集劃分、數(shù)據(jù)增強的隨機性、算子的非確定性都會讓目標函數(shù)帶上不可忽略的觀測噪聲。GP 若把 noise 當作自由變量也還好但如果噪聲被固定成接近 0它會把一次偶然的波動當作真實的函數(shù)尖峰。解決把噪聲約束為一個可學習的參數(shù)讓它參與到核矩陣構造中更直接的方案是每組超參數(shù)重復評估兩次取均值。重復評估會讓總預算膨脹但在評估噪聲很大的時候這比多跑幾組新點劃算得多。經(jīng)驗上先做 3 組重復實驗估算噪聲幅度再決定要不要常態(tài)化使用重復評估。6. 設計取舍當貝葉斯優(yōu)化不 work 時我做了什么貝葉斯優(yōu)化并不是“更聰明的隨機搜索”它有明確的適用邊界。當目標函數(shù)評估成本低到幾十毫秒時你用 GP 輪番擬合的開銷比多跑幾次隨機搜索還大當參數(shù)維度超過 20 時GP 在體積爆炸的高維空間里幾乎沒有外推能力當評估噪聲大于信號時EI 追著偶然尖峰跑的效率遠不如多次隨機采樣取均值。這些邊界不是缺陷而是設計取舍的必然結果GP 用平滑性先驗換來了樣本效率但平滑性在真實深度學習響應面上本來就是一個近似假設。一個被低估的取舍是“要不要相信采集函數(shù)的收斂信號”。EI 衰減到零只說明代理模型認為風險地圖已經(jīng)被畫完了不代表真實目標函數(shù)沒有更好的區(qū)域。我見過太多人把“EI0”當成“找到全局最優(yōu)”其實那只是一個光滑假設下的過擬合結論。現(xiàn)在我會把貝葉斯優(yōu)化結果當作候選集的一部分而不是最終答案優(yōu)化器給出一批高潛力參數(shù)再用交叉驗證和多次重復評估做最終裁決。另一個值得投入的方向是多保真度優(yōu)化。先用短訓練輪次、小批量采樣評估出粗糙響應面鎖定幾個有希望的區(qū)域再在這些區(qū)域內(nèi)用高保真度評估做精細搜索。這種兩階段做法能把總評估預算省下一半以上代價是低保真度的結果可能和高保真度存在系統(tǒng)性偏差需要額外的校準模型來對齊。我現(xiàn)在的固定流程是任何調(diào)參任務開始前先花 10% 的預算跑隨機搜索作為基線記錄其中位數(shù)和最優(yōu)值然后跑貝葉斯優(yōu)化并畫兩條曲線作對比。如果 20 輪之內(nèi)貝葉斯優(yōu)化的最優(yōu)值追不上隨機搜索的基線就直接停掉換結構化采樣方案。這套流程建立在我親眼見過的慘痛教訓上某次在一個高維架構搜索任務上我硬是讓貝葉斯優(yōu)化跑了三天三夜最終結果卻不如一句“隨機抽 50 組取平均”來得靠譜。從那以后每次調(diào)參我都強制走一遍隨機基線對比貝葉斯優(yōu)化的結果不再被我捧成圣旨。希望幫到你。本文還有配套的精品資源點擊獲取