日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[机器学习]超参数优化算法-SuccessiveHalving与Hyperband

發布時間:2023/12/15 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [机器学习]超参数优化算法-SuccessiveHalving与Hyperband 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 傳統優化算法

機器學習中模型性能的好壞往往與超參數(如batch size,filter size等)有密切的關系。最開始為了找到一個好的超參數,通常都是靠人工試錯的方式找到"最優"超參數。但是這種方式效率太慢,所以相繼提出了網格搜索(Grid Search, GS)隨機搜索(Random Search,RS)。

但是GS和RS這兩種方法總歸是盲目地搜索,所以貝葉斯優化(Bayesian Optimization,BO) 算法閃亮登場。BO算法能很好地吸取之前的超參數的經驗,更快更高效地最下一次超參數的組合進行選擇。但是BO算法也有它的缺點,如下:

  • 對于那些具有未知平滑度有噪聲高維、非凸函數,BO算法往往很難對其進行擬合和優化,而且通常BO算法都有很強的假設條件,而這些條件一般又很難滿足。
  • 為了解決上面的缺點,有的BO算法結合了啟發式算法(heuristics),但是這些方法很難做到并行化

?

二 SuccessiveHalving算法

SuccessiveHalving算法:假設有nn組超參數組合,然后對這nn組超參數均勻地分配預算并進行驗證評估,根據驗證結果淘汰一半表現差的超參數組,然后重復迭代上述過程直到找到最終的一個最優超參數組合。

?

?

三 Hyperband算法

1.Hyperband是什么

在介紹Hyperband之前我們需要理解怎樣的超參數優化算法才算是好的算法,如果說只是為了找到最優的超參數組合而不考慮其他的因素,那么我們那可以用窮舉法,把所有超參數組合都嘗試一遍,這樣肯定能找到最優的。但是我們都知道這樣肯定不行,因為我們還需要考慮時間,計算資源等因素。而這些因素我們可以稱為Budget,用𝐵表示。

假設一開始候選的超參數組合數量是𝑛,那么分配到每個超參數組的預算就是𝐵/𝑛。所以Hyperband做的事情就是在𝑛與𝐵/𝑛做權衡(tradeoff)。

上面這句話什么意思呢?也就是說如果我們希望候選的超參數越多越好,因為這樣能夠包含最優超參數的可能性也就越大,但是此時分配到每個超參數組的預算也就越少,那么找到最優超參數的可能性就降低了。反之亦然。所以Hyperband要做的事情就是預設盡可能多的超參數組合數量,并且每組超參數所分配的預算也盡可能的多,從而確保盡可能地找到最優超參數。

2.Hyperband算法

Hyperband算法對 Jamieson & Talwlkar(2015)提出的SuccessiveHalving算法做了擴展。所以首先介紹一下SuccessiveHalving算法是什么。

其實仔細分析SuccessiveHalving算法的名字你就能大致猜出它的方法了:假設有𝑛組超參數組合,然后對這𝑛組超參數均勻地分配預算并進行驗證評估,根據驗證結果淘汰一半表現差的超參數組,然后重復迭代上述過程直到找到最終的一個最優超參數組合。

基于這個算法思路,如下是Hyperband算法步驟:

  • r: 單個超參數組合實際所能分配的預算;
  • R: 單個超參數組合所能分配的最大預算;
  • 𝑠𝑚𝑎𝑥: 用來控制總預算的大小。上面算法中𝑠𝑚𝑎𝑥=?𝑙𝑜𝑔𝜂(𝑅)?,當然也可以定義為𝑠𝑚𝑎𝑥=?𝑙𝑜𝑔𝜂(𝑛𝑚𝑎𝑥)?
  • B: 總共的預算,𝐵=(𝑠𝑚𝑎𝑥+1)𝑅
  • 𝜂: 用于控制每次迭代后淘汰參數設置的比例
  • get_hyperparameter_configuration(n):采樣得到n組不同的超參數設置
  • run_then_return_val_loss(t,ri):根據指定的參數設置和預算計算valid loss。𝐿表示在預算為𝑟𝑖的情況下各個超參數設置的驗證誤差
  • top_k(𝑇,𝐿,?𝑛𝑖/𝜂?):第三個參數表示需要選擇top k(𝑘=𝑛𝑖/𝜂)參數設置。

注意上述算法中對超參數設置采樣使用的是均勻隨機采樣,所以有算法在此基礎上結合貝葉斯進行采樣,提出了BOHB:Practical Hyperparameter Optimization for Deep Learning

3.Hyperband算法例子

文中給出了一個基于MNIST數據集的示例,并將迭代次數定義為預算(Budget),即一個epoch代表一個預算。超參數搜索空間包括學習率,batch size,kernel數量等。

令𝑅=81,𝜂=3,所以𝑠𝑚𝑎𝑥=4,𝐵=5𝑅=5×81

下圖給出了需要訓練的超參數組和數量和每組超參數資源分配情況。

由算法可以知道有兩個loop,其中inner loop表示SuccessiveHalving算法。再結合下圖左邊的表格,每次的inner loop,用于評估的超參數組合數量越來越少,與此同時單個超參數組合能分配的預算也逐漸增加,所以這個過程能更快地找到合適的超參數。

右邊的圖給出了不同𝑠對搜索結果的影響,可以看到𝑠=0或者𝑠=4并不是最好的,所以并不是說𝑠越大越好。

?

PS:

https://www.cnblogs.com/marsggbo/p/10161605.html

Hyperband: Bandit-Based Configuration Evaluation for Hyperparameter Optimization

總結

以上是生活随笔為你收集整理的[机器学习]超参数优化算法-SuccessiveHalving与Hyperband的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。