热门问题
时间线
聊天
视角

超參數優化

来自维基百科,自由的百科全书

Remove ads

機器學習中,超參數優化[1]整定(tuning)是為學習算法選擇一組最佳超參數的問題。超參數是用於控制學習過程的參數

超參數優化會找到能產生最優模型的超參數元組,在給定的獨立數據上將預定義的損失函數最小化。[2]目標函數獲取超參數元組,返回相關損失。[2]交叉驗證常用於估算這種泛化性能,從而為超參數選擇一組能使其最大化的值。[3]

方法

Thumb
在兩個超參數值之間進行網格搜索。對每個超參數考慮了10個不同的值,因此共評比了100種不同組合。藍色等值線表示結果較好的區域,紅色表示較差區域。

網格搜索

超參數優化的傳統方法是網格搜索(grid search)或參數掃描(parameter sweep),即對學習算法超參數空間中人工指定的子集暴力搜索。網格搜索算法必須以某些性能指標為指導,通常是在訓練集上交叉驗證[4]或在保持驗證集上評估。[5]

由於機器學習的參數空間可能包括參數的實值空間或無界值空間,因此在網格搜索前可能要手動設置邊界與離散化。

例如,配備RBF核的典型軟邊界SVM分類器至少有兩個超參數需要調整,以便在未見數據上獲得良好性能:正則化常數C、核超參數γ。它們都是連續的,因此網格搜索要為每個參數選擇一組有限的「合理」值,如

然後,網格搜索會以兩個集合的笛卡爾積的每對訓練SVM,並在不變的驗證集上評估性能(或在訓練集上進行內部交叉驗證,這時每對集合會訓練多個SVM)。最後,算法會輸出驗證中得分最高的超參數。

網格搜索會受到維數災難影響,但由於評估的超參數設置通常相互獨立,是過易並行的。[3]

Thumb
對兩個超參數的不同組合進行隨機搜索。此例評估了100種隨機選擇。綠色條顯示,與網格搜索相比,每個超參數的單個值被考慮得更多。
Remove ads

隨機搜索

隨機搜索以隨機選擇取代所有組合的暴力搜索。這可以簡單地應用於上述離散空間,也可推廣到連續空間和混合空間。對連續超參數,隨機搜索比網格搜索能探索更多的值,[3]這時優化問題具有較低的內蘊維度。[6]隨機搜索也是過易並行的,此外還允許指定採樣分布以納入先驗知識。隨機搜索雖簡單,但仍是較新的超參數優化方法性能的重要基準。

Thumb
貝葉斯優化等方法根據以往的觀察結果決定下一步探索何種組合,從而智能地探索超參數的潛在選擇空間。

貝葉斯優化

貝葉斯優化是一種針對噪聲黑盒函數的全局優化方法。 貝葉斯優化用於超參數優化時建立超參數值到在驗證集上目標函數值的函數的概率模型。貝葉斯優化是要據當前模型,迭代地評估較好的超參數配置、再更新,收集儘可能多的觀察結果,揭示有關該函數的信息,尤其是最佳值的位置。它試圖在探索(結果最不確定的超參數)和利用(預期接近最優的超參數)之間取得平衡。實踐中,貝葉斯優化同前兩種算法相比[7][8][9][10],由於能在實驗前就推理實驗質量,因此能以更少的評估次數獲得更好的結果。

基於梯度的優化

對特定的學習算法,可以計算超參數的梯度,再用梯度下降法優化超參數。 這類技術的首次使用主要在神經網絡。[11]此後,到其他模型也有推廣,如支持向量機[12]或邏輯回歸。[13]

獲得超參數梯度的另一種方法是用自動微分,微分迭代優化算法的步驟。[14][15][16][17]沿這種思路,最近的一項研究利用隱函數定理計算超梯度,提出了一種穩定的逆黑塞近似法,可推廣到數百萬個超參數,需要恆量的內存。[18]

另一種方法是[19]訓練超網絡以逼近最佳響應函數,這種方法也能處理離散超參數。自整定網絡[20]為超網絡選擇一種緊表示,提供了一種內存效率更高的版本。最近,Δ-STN[21]對超網絡進行輕微的重參數化,加速了訓練。Δ-STN還通過在權值中線性化網絡,從而消除權值大幅變化帶來的非線性影響,從而更好逼近最佳響應雅可比。

超網絡之外,梯度方法也可用於優化離散超參數,如對參數進行連續鬆弛。[22]這類方法已被廣泛用於神經結構搜索中的結構超參數優化。

Remove ads

演化優化

演化優化是一種對噪聲黑盒函數進行全局優化的方法。[8]超參數優化中,演化優化使用進化算法搜索給定算法的超參數空間,遵循受演化啟發的過程:

  1. 創建隨機解的初始種群(隨機生成超參數元組,通常超過100個)
  2. 取值,並計算其適值函數(如使用這些超參數的機器學習算法的10折交叉驗證準確率)
  3. 按相對適值排序超參數元組
  4. 用由交叉變異產生的新超參數元組取代之前表現較差的
  5. 重複2-4,直到達到令人滿意的算法性能,或無法再提高為止

演化優化已被用於統計機器學習算法、[8]自動機器學習、典型神經網絡、[23]深度神經網絡結構搜索中的超參數優化[24][25],以及深度神經網絡中的權重訓練。[26]

基於種群

種群訓練(Population-Based Training,PBT)同時學習超參數值和網絡權重。使用不同超參數的學習過程相互獨立進行。與演化算法類似,性能更差的模型會被迭代地替換為從性能較好的模型修改來的超參與權重的模型。替換模型熱啟動是PBT與其他演化算法的主要區別。因此,PBT允許超參數演化,無需手動調超參。此過程對模型結構、損失函數或訓練過程不做任何假設。 PBT及其變體是自適應方法:在模型訓練時更新超參。非自適應法的次優策略是在整個訓練過程中分配一組恆定的超參。[27]

基於提前停止

Thumb
8個任意超參配置進行連續減半。該方法從具有不同配置的8個模型開始,連續應用連續減半,直到只剩一個模型。

一類基於提前停止的超參優化算法專為大型超參數搜索空間設計,尤其是評估一組超參數的計算成本很高時。Irace實現了迭代競賽算法(iterated racing algorithm),將搜索重點放在最有前景的配置上,用統計測試剔除不佳的。[28][29] 另一種提前停止超參數優化算法是連續減半算法(SHA),[30]一開始是隨機搜索,但會定期修剪低性能模型,從而將計算資源集中到更有前景的模型上。異步連續減(ASHA)[31]無需同步評估與修剪,從而進一步提高了SHA的資源利用率。Hyperband[32]是一種更高級的基於提前停止的算法,可多次調用SHA或ASHA,具有不同程度的剪枝侵占性(aggressiveness),因此適用範圍更廣,所需輸入也更少。

其他

RBF[33]譜方法[34]也有開發。

超參數優化的問題

超參數優化結束後,通常會在訓練集上擬合一組超參數,然後根據在驗證集的泛化性能或得分來選擇。但這種方法可能使驗證集的超參數過擬合,因此驗證集(在交叉驗證中可以是多個)的泛化性能得分不能同時用於估算最終模型的泛化性能。為此,必須在獨立於優化超參的集合(且兩兩不交)上評估,否則性能值可能畸大。這可在第二個測試集上進行,也可由稱作嵌套交叉驗證的外部交叉驗證,對模型泛化性能進行無偏估計,同時考慮到超參數優化帶來的偏差。

另見

參考文獻

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads