對于很多算法工程師來說,超參數調優是件非常頭疼的事,這項工作比較玄學。除了根據經驗設定所謂的“合理值”之外,一般很難找到合理的方法去尋找超參數的最優值。而與此同時,超參數對于模型效果的影響又至關重要。那么有沒有一些可行的辦法進行超參數調優呢?
超參數調優的方法
為了進行超參數調優,我們一般會采用網格搜索、隨機搜索以及貝葉斯等算法。在具體介紹算法之前,需要明確超參數搜索算法一般包括哪幾個要素。一是目標函數,即算法需要最大化/最小化的目標;二是搜索范圍,一般通過上限和下限來確定;三是算法的其它參數,如搜索步長等。
1. 網格搜索
網格搜索可能是最簡單、應用最廣泛的超參數搜索算法,它通過查找搜索范圍內的所有的點來確定最優值。如果采用較大的搜索范圍以及較小的步長,網格搜索有很大的概率找到全局最優值。然而,這種搜索方法十分消耗計算資源和時間,特別是需要調優的超參數比較多的時候。因此,在實際應用中,網格搜索法一般會先使用較廣的搜索范圍和較大的步長,來尋找全局最優值可能的位置;然后會逐漸縮小搜索范圍和步長,來尋找更精確的最優值。這種操作方案可以降低所需的時間和計算量,但由于目標函數一般是非凸的,所以很可能會錯過全局最優值。
2. 隨機搜索
隨機搜索的思想與網格搜索比較相似,只是不再測試上界和下界之間的所有值,而是在搜索范圍中隨機選取樣本點。它的理論依據是,如果樣本點集足夠大,那么通過隨機采樣也能大概率地找到全局最優值或其近似值。隨機搜索一般會比網格搜索要快一些,但是和網格搜索的快速版一樣,它的結果也是沒法保證的。
3. 貝葉斯優化算法
貝葉斯優化算法在尋找最優最值參數時,采用了與網格搜索、隨機搜索完全不同的方法。網格搜索和隨機搜索在測試一個新點時,會忽略前一個點的信息;而貝葉斯優化算法則充分利用了之前的信息。貝葉斯優化算法通過對目標函數形狀進行學習,找到使目標函數向全局最優值提升的參數。具體來說,它學習目標函數形狀的方法是,首先根據先驗分布,假設一個搜索函數;然后,每一次使用新的采樣點來測試目標函數時,利用這個信息來更新目標函數的先驗分布;最后,算法測試由后驗分布給出的全局最值最可能出現的位置的點。對于貝葉斯優化算法,有一個需要注意的地方,一旦找到一個局部最優值,它會在該區域不斷采樣,所以很容易陷入局部最優值。為了彌補這個缺陷,貝葉斯優化算法會在探索和利用之間找到一個平衡點,“探索”就是在還未取樣的區域獲取采樣點;而“利用”則是根據后驗分布在最可能出現全局最值的區域進行采樣。
-
機器學習
+關注
關注
66文章
8481瀏覽量
133855
發布評論請先 登錄
相關推薦
評論