1. 程式人生 > >超引數調優方法:網格搜尋、隨機搜尋、貝葉斯優化演算法

超引數調優方法:網格搜尋、隨機搜尋、貝葉斯優化演算法

網格搜尋:

網格搜尋可能是最簡單、應用最廣泛的超引數搜尋演算法,它通過查詢搜尋範圍內的所有的點來確定最優值。但是,這種搜尋方案十分消耗計算資源和時間,特別是需要調優的超引數比較多的時候。

在實際應用中,網格搜尋法一般會先使用較廣的搜尋範圍和較大的步長,來尋找全域性最優值可能的位置;然後會逐漸縮小搜尋範圍和步長,來尋找更精確的最優值。這種操作方案可以降低所需的時間和計算量,但由於目標函式一般是非凸的,所以很可能會錯過全域性最優值。

舉例:

隨機搜尋:

隨機搜尋的思想與網格搜尋比較相似,只是不再測試上界和下界之間的所有值,而是在搜尋範圍中隨機選取樣本點。它的理論依據是,如果樣本點集足夠大,那麼通過隨機取樣也能大概率地找到全域性最優值,或其近似值

隨機搜尋的結果也是沒法保證的。

貝葉斯優化演算法:

網格搜尋和隨機搜尋在測試一個新點時,會忽略前一個點的資訊,而貝葉斯優化演算法則充分利用了之前的資訊貝葉斯優化演算法通過對目標函式形狀進行學習,找到使目標函式向全域性最優值提升的引數。

貝葉斯優化演算法學習目標函式形狀的方法是,首先根據先驗分佈,假設一個蒐集函式;然後,每一次使用新的取樣點來測試目標函式時,利用這個資訊來更新目標函式的先驗分佈;最後,演算法測試由後驗分佈給出的全域性最值最可能出現的位置的點。

對於貝葉斯優化演算法,有一個需要注意的地方,一旦找到了一個區域性最優值,它會在該區域不斷取樣,所以很容易陷入區域性最優值。為了彌補這個缺陷,貝葉斯優化演算法會在探索和利用之間找到一個平衡點,“探索”就是在還未取樣的區域獲取取樣點;而“利用”則是根據後驗分佈在最可能出現全域性最值的區域進行取樣。