機器學習中，超引數最佳化 Matthias Feurer and Frank Hutter Hyperparameter optimization In AutoML Methods Systems Challenges pages 338 或整定（tuning）是為學習演算法選擇一組最佳超引數的問題。超引數是用於控制學習過程的引數。 超引數最佳化會找到能產生最優模型的超引數元組，在給定的獨立資料上將預定義的損失函式最小化。目標函式獲取超引數元組，返回相關損失。交叉驗證常用於估算這種泛化效能，從而為超引數選擇一組能使其最大化的值。 方法 網格搜尋 超引數最佳化的傳統方法是網格搜尋（grid search）或引數掃描（parameter sweep），即對學習演算法超引數空間中人工指定的子集暴力搜尋。網格搜尋演算法必須以某些效能指標為指導，通常是在訓練集上交叉驗證 ChinWei Hsu ChihChung Chang and ChihJen Lin 2010 A practical guide to support vector classification Technical Report National Taiwan University 或在保持驗證集上評估。 由於機器學習的引數空間可能包括引數的實值空間或無界值空間，因此在網格搜尋前可能要手動設定邊界與離散化。 例如，配備 RBF 核的典型軟邊界 SVM 分類器至少有兩個超引數需要調整，以便在未見資料上獲得良好效能：正則化常數 C、核超引數 γ。它們都是連續的，因此網格搜尋要為每個引數選擇一組有限的 合理 值，如 C in 10 100 1000 gamma in 01 02 05 10 然後，網格搜尋會以兩個集合的笛卡爾積的每對 C gamma 訓練 SVM，並在不變的驗證集上評估效能（或在訓練集上進行內部交叉驗證，這時每對集合會訓練多個 SVM）。最後，演算法會輸出驗證中得分最高的超引數。 網格搜尋會受到維數災難影響，但由於評估的超引數設定通常相互獨立，是過易並行的。 隨機搜尋 隨機搜尋以隨機選擇取代所有組合的暴力搜尋。這可以簡單地應用於上述離散空間，也可推廣到連續空間和混合空間。對連續超引數，隨機搜尋比網格搜尋能探索更多的值，這時最佳化問題具有較低的內蘊維度。隨機搜尋也是過易並行的，此外還允許指定取樣分佈以納入先驗知識。隨機搜尋雖簡單，但仍是較新的超引數最佳化方法效能的重要基準。 貝葉斯最佳化 貝葉斯最佳化是一種針對噪聲黑盒函式的全域性最佳化方法。 貝葉斯最佳化用於超引數最佳化時建立超引數值到在驗證集上目標函式值的函式的機率模型。貝葉斯最佳化是要據當前模型，迭代地評估較好的超引數配置、再更新，收集儘可能多的觀察結果，揭示有關該函式的資訊，尤其是最佳值的位置。它試圖在探索（結果最不確定的超引數）和利用（預期接近最優的超引數）之間取得平衡。實踐中，貝葉斯最佳化同前兩種演算法相比，由於能在實驗前就推理實驗質量，因此能以更少的評估次數獲得更好的結果。 基於梯度的最佳化 對特定的學習演算法，可以計算超引數的梯度，再用梯度下降法最佳化超引數。 這類技術的首次使用主要在神經網路。此後，到其他模型也有推廣，如支援向量機或邏輯迴歸。 獲得超引數梯度的另一種方法是用自動微分，微分迭代最佳化演算法的步驟。Shaban A Cheng C A Hatch N Boots B 2019 April Truncated backpropagation for bilevel optimization In The 22nd International Conference on Artificial Intelligence and Statistics pp 17231732 PMLR 沿這種思路，最近的一項研究利用隱函式定理計算超梯度，提出了一種穩定的逆黑塞近似法，可推廣到數百萬個超引數，需要恆量的記憶體。Lorraine J Vicol P Duvenaud D 2018 Optimizing Millions of Hyperparameters by Implicit Differentiation arXiv preprint arXiv191102590 另一種方法是 Lorraine J Duvenaud D 2018 Stochastic hyperparameter optimization through hypernetworks arXiv preprint arXiv180209419 訓練超網路以逼近最佳響應函式，這種方法也能處理離散超引數。自整定網路 MacKay M Vicol P Lorraine J Duvenaud D Grosse R 2019 Selftuning networks Bilevel optimization of hyperparameters using structured bestresponse functions arXiv preprint arXiv190303088 為超網路選擇一種緊表示，提供了一種記憶體效率更高的版本。最近，ΔSTNBae J Grosse R B 2020 Deltastn Efficient bilevel optimization for neural networks using structured response jacobians Advances in Neural Information Processing Systems 33 2172521737 對超網路進行輕微的重引數化，加速了訓練。ΔSTN 還透過在權值中線性化網路，從而消除權值大幅變化帶來的非線性影響，從而更好逼近最佳響應雅可比。 超網路之外，梯度方法也可用於最佳化離散超引數，如對引數進行連續鬆弛。Liu H Simonyan K Yang Y 2018 Darts Differentiable architecture search arXiv preprint arXiv180609055 這類方法已被廣泛用於神經結構搜尋中的結構超引數最佳化。 演化最佳化 演化最佳化是一種對噪聲黑盒函式進行全域性最佳化的方法。超引數最佳化中，演化最佳化使用進化演算法搜尋給定演算法的超引數空間，遵循受演化啟發的過程： 建立隨機解的初始種群（隨機生成超引數元組，通常超過 100 個） 取值，並計算其適值函式（如使用這些超引數的機器學習演算法的 10 折交叉驗證準確率） 按相對適值排序超引數元組 用由交叉與變異產生的新超引數元組取代之前表現較差的 重複 24，直到達到令人滿意的演算法效能，或無法再提高為止 演化最佳化已被用於統計機器學習演算法、自動機器學習、典型神經網路、深度神經網路結構搜尋中的超引數最佳化，以及深度神經網路中的權重訓練。 基於種群 種群訓練（PopulationBased Training，PBT）同時學習超引數值和網路權重。使用不同超引數的學習過程相互獨立進行。與演化演算法類似，效能更差的模型會被迭代地替換為從效能較好的模型修改來的超參與權重的模型。替換模型熱啟動是 PBT 與其他演化演算法的主要區別。因此，PBT 允許超引數演化，無需手動調超參。此過程對模型結構、損失函式或訓練過程不做任何假設。 PBT 及其變體是自適應方法：在模型訓練時更新超參。非自適應法的次優策略是在整個訓練過程中分配一組恆定的超參。 基於提前停止 一類基於提前停止的超參最佳化演算法專為大型超引數搜尋空間設計，尤其是評估一組超引數的計算成本很高時。Irace 實現了迭代競賽演算法（iterated racing algorithm），將搜尋重點放在最有前景的配置上，用統計測試剔除不佳的。 另一種提前停止超引數最佳化演算法是連續減半演算法（SHA），一開始是隨機搜尋，但會定期修剪低效能模型，從而將計算資源集中到更有前景的模型上。非同步連續減（ASHA）無需同步評估與修剪，從而進一步提高了 SHA 的資源利用率。Hyperband 是一種更高階的基於提前停止的演算法，可多次呼叫 SHA 或 ASHA，具有不同程度的剪枝侵佔性（aggressiveness），因此適用範圍更廣，所需輸入也更少。 其他 RBF 與譜方法也有開發。 超引數最佳化的問題 超引數最佳化結束後，通常會在訓練集上擬合一組超引數，然後根據在驗證集的泛化效能或得分來選擇。但這種方法可能使驗證集的超引數過擬合，因此驗證集（在交叉驗證中可以是多個）的泛化效能得分不能同時用於估算最終模型的泛化效能。為此，必須在獨立於最佳化超參的集合（且兩兩不交）上評估，否則效能值可能畸大。這可在第二個測試集上進行，也可由稱作巢狀交叉驗證的外部交叉驗證，對模型泛化效能進行無偏估計，同時考慮到超引數最佳化帶來的偏差。 另見 自動機器學習 神經結構搜尋 模型選擇 自整定 XGBoost 參考文獻 Category 機器學習 Category 數學最佳化 Category 模型選擇