機器學習中的超引數最佳化方法
簡介
機器學習模型嚴重依賴許多可調整的引數,這些引數被稱為超引數。找到這些超引數的最佳組合可以極大地提高模型的效能和預測準確性。在本文中,我們將深入探討機器學習中超引數最佳化的各種技術。它們將使人們能夠有效地解決使用機器學習演算法的複雜問題。為這些引數選擇適當的值會嚴重影響模型學習模式和泛化到未見資料的能力。
超引數
超引數定義機器學習演算法的行為和架構,而不是從訓練資料本身學習。
常用超引數
學習率:此引數影響在模型內部權重的每次更新過程中包含多少資訊。
正則化強度:它透過對複雜的模型表示施加懲罰來控制過擬合。
隱藏層或單元數:分別確定神經網路的網路深度和寬度。
核型別或大小:這些超引數透過定義輸入樣本之間的相似性測量函式在支援向量機 (SVM) 中發揮著不可或缺的作用。
樹深度或分裂標準:專門針對決策樹或隨機森林,它們控制樹結構的構建。
網格搜尋
網格搜尋涉及使用交叉驗證窮舉評估所有相關超引數預定義範圍內的每個可能組合。
考慮擬合一個具有兩個可調引數的 SVM 分類器——C(正則化強度)和 gamma(核係數)。網格搜尋窮舉地評估各個組合,例如 {C = 0.1,gamma = 0} 和 {C = 0.1,gamma = 0.01},允許我們根據交叉驗證的效能指標(例如準確率或 F1 分數)選擇最佳值。
示例——SVM 的網格搜尋
Gamma |
0.1 |
|---|---|
0.01 |
{C = 0.1, gamma = 0.01} |
0.1 |
{C = 0.1, gamma = 0.01} |
1 |
{C = 0.1, gamma = 1} |
隨機搜尋
隨機搜尋透過從定義的範圍內隨機抽取超引數組合來補充網格搜尋。透過設定迭代次數,使用者可以控制探索-利用權衡。
考慮一個具有學習率 (η) 和隱藏單元數等引數的神經網路模型,隨機搜尋透過隨機選擇組合比網格搜尋更有效地探索超引數空間,有可能在無需窮舉評估的情況下發現最佳設定。
示例 – 神經網路的隨機搜尋
隱藏單元數 |
學習率 (η) |
|---|---|
100 |
0.1 |
200 |
0.01 |
300 |
0.001 |
貝葉斯最佳化
貝葉斯最佳化使用機率建模來根據先前評估的引數集形成目標函式的先驗分佈。它利用這些模型迭代並智慧地建議新的配置,從而最大限度地提高效能指標的預期改進。
透過連續的建議-評估迴圈,以資源高效的方式微調決策樹的關鍵超引數(如樹深度或分裂標準),同時避免對所有可能組合進行暴力評估。
示例——決策樹的貝葉斯最佳化
分裂標準 |
樹深度 |
|---|---|
基尼係數 |
1 |
基尼係數 |
2 |
基尼係數 |
3 |
基尼係數 |
4 |
基尼係數 |
5 |
熵 |
1 |
熵 |
2 |
熵 |
3 |
熵 |
4 |
熵 |
5 |
進化演算法
進化演算法從自然進化原理(如選擇和變異)中汲取靈感,以有效地指導複雜空間中的探索——應用遺傳演算法等技術可以根據問題的複雜性或時間限制自動調整計算資源。
差分進化
差分進化是另一種流行的基於進化演算法的技術,它使用向量差而不是遺傳演算法中常見的離散突變。
它從種群初始化開始,然後是連續的世代,其中使用重組、變異和交叉來建立新的種群,以便探索並收斂到全域性最優。
基於梯度的最佳化
利用梯度資訊,我們可以使用基於梯度的最佳化演算法(如隨機梯度下降 (SGD)、Adam 最佳化器或其他變體)在訓練週期中有效地與超引數一起更新模型引數。
遺傳演算法
受自然進化原理的啟發,遺傳演算法模擬交叉和變異等生物過程來隱式地最佳化高度非線性函式,這些函式代表各種超引數之間的複雜關係。
粒子群最佳化
從群體智慧中汲取靈感,粒子群最佳化模擬鳥群或魚群尋找最佳解決方案的行為。每個候選解決方案都表示為粒子,這些粒子透過與其他粒子的相互作用來探索和利用搜索空間。
模擬退火
模擬退火利用冶金學的原理來平衡超引數調整過程中的探索和利用。它會隨著時間的推移逐漸降低“溫度”,允許偶爾接受較差的解決方案,以避免陷入區域性最優。
基於樹的 Parzen 估計器 (TPE)
TPE 使用核密度估計構建兩個模型:一個用於目標函式的最大值,另一個用於不成功試驗的機率分佈。然後,它根據它們對更好效能的預期改進對超引數進行取樣,同時迭代地收集新資訊。
整合技術
整合方法結合具有不同超引數集的多個模型,透過利用每個元件貢獻的不同視角來增強模型的魯棒性和泛化能力。諸如 bagging、boosting 或 stacking 等技術可以透過智慧地混合各種模型的預測來幫助實現卓越的效能。
自動超引數調整庫
Optuna、Hyperopt 或 AutoML 等一些高階軟體庫提供了強大的框架,配備了用於高效超引數最佳化目的的內建技術。這些庫通常提供使用者友好的 API 介面,並自動執行系統探索中涉及的許多重複性任務。
結論
超引數最佳化對於釋放機器學習的真正潛力至關重要。網格搜尋、隨機搜尋和貝葉斯最佳化等技術使我們能夠系統地探索巨大的引數空間並發現最佳設定,同時提高模型的準確性和效能。隨著從業者採用這些技術並將它們結合到他們的工作流程中,並藉助清晰的示例。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP