當前位置:編程學習大全網 - 源碼下載 - AutoML自動超參調優

AutoML自動超參調優

現在AutoML非常的火,各大雲平臺都在推出自己的AutoML服務,包括Google Cloud,Amazon SageMaker,MS Azure等等。AutoML要解決的問題主要是釋放機器學習過程中的人力投入,包括:

本文主要關註的是 模型超參優化 的自動化。

AutoML自動調參又可以稱作黑箱超參優化(Blackbox hyperparameter optimization)。比較常見的做法是將調參系統和訓練系統分離開,模型、數據和訓練過程由用戶來控制,調參系統給訓練系統建議壹組或多組參數,訓練系統反饋結果,然後調參系統根據反饋結果產生下壹組建議的參數。這個過程壹直叠代直至滿足了終止條件。

調參算法的輸入是用戶指定的參數及其範圍,比如設定學習率範圍為[0.0001, 0.01]。比較常見的算法為網格搜索,隨機搜索和貝葉斯優化等。

遍歷所有可能的參數組合。網格搜索很容易理解和實現,例如我們的超參數A有2種選擇,超參數B有3種選擇,超參數C有5種選擇,那麽我們所有的超參數組合就有2 * 3 * 5也就是30種,我們需要遍歷這30種組合並且找到其中最優的方案,對於連續值我們還需要等間距采樣。實際上這30種組合不壹定取得全局最優解,而且計算量很大很容易組合爆炸,並不是壹種高效的參數調優方法。

限定搜索次數,隨機選擇參數進行實驗。業界公認的Random search效果會比Grid search好,Random search其實就是隨機搜索,例如前面的場景A有2種選擇、B有3種、C有5種、連續值隨機采樣,那麽每次分別在A、B、C中隨機取值組合成新的超參數組合來訓練。雖然有隨機因素,但隨機搜索可能出現效果特別差、也可能出現效果特別好,在嘗試次數和Grid search相同的情況下壹般最值會更大

業界的很多參數調優系統都是基於貝葉斯優化的,如Google Vizier [1], SigOpt[2].

該算法要求已經存在幾個樣本點(壹開始可以采用隨機搜索來確定幾個初始點),並且通過高斯過程回歸(假設超參數間符合聯合高斯分布)計算前面n個點的後驗概率分布,得到每壹個超參數在每壹個取值點的期望均值和方差,其中均值代表這個點最終的期望效果,均值越大表示模型最終指標越大,方差表示這個點的效果不確定性,方差越大表示這個點不確定是否可能取得最大值非常值得去探索。

在調參的過程中,有的參數在訓練的過程中,觀察曲線的趨勢,會發現它是不太有希望在訓練結束達成目標的,這個時候,將這些任務終止掉,釋放資源,繼續別的參數的嘗試。這樣可以快速試錯,快速調整。[1]

我調研了Github上開源的超參調優系統,按照受關註程度排序如下:

現在的調參系統基本上都是基於貝葉斯優化的思想,將調參任務作為壹個黑箱優化的問題。在後面的博客中,我會詳細介紹貝葉斯超參調優的思想。

[1] Google Vizier A Service for Black-Box Optimization

[2] SigOpt: /

  • 上一篇:約會幾次可以牽手接吻,壹般情況下,和女生約會幾次就可以牽手了?
  • 下一篇:如何做引流怎麽分析
  • copyright 2024編程學習大全網