上一節已經看到,在超參數範圍內,隨機取值可以提升搜索效率,但隨機取值並不是在有效範圍內的隨機均勻取值,而是選擇合適的標尺用於探究超參數。
假設要選取隱藏單元的數量,對於給定層,假設選擇的取值範圍是從50到100中某點,這種情況下,對於50-100的數軸,可以隨機在其上取點,這是一個搜索特定超參數的很直觀的方式。
或者如果要選取神經網絡的層數,稱之爲字母L,也許會選擇層數爲2到4中的某個值,接着順着2,3,4隨機均勻取樣才比較合理,還可以應用網格搜索。這是集合隨機均勻取值的例子。
但這對於某些超參數是不適用的,假設在搜索超參數學習速率,假設其值最小是0.0001,或者最大值是1,如果畫一條從0.0001到1的數軸,沿其隨機均勻取值,那麼90%的數值將會落在0.1到1之間,結果就是在0.1到1之間應用了90%的資源,而在0.0001到0.1之間只有10%的搜索資源,這看上去不太對,反而用對數標尺搜索超參數的方式會更合理,因此這裏不使用線性軸,分別依次取0.0001,0.001,0.01,1,在對數軸上均勻隨機取點,這樣在0.0001到0.001之間就會有更多的搜索資源可,還有在0.001到0.01之間等等。分別取對數可以得到0.0001-1之間的對數範圍是-4-0,然後可以設置的值,基於隨機取樣的超參數值。所以總結一下,在對數座標上取值,取最小值的對數得到a值,取最大值的對數得到b值,所以現在在對數軸上的到區間取值,在a和b之間隨機均勻的選取r值,將超參數設置爲,這就是在對數軸上取值的過程。
最後,另一個棘手的例子是給取值,用於計算指數的加權平均值,假設是從0.9到0.999之間的某個值。請記住這一點,當計算指數的加權平均值時,取0.9就像在10個值中計算平均值,有點類似於計算10天的溫度平均值,而取0.999就是在1000個值中取平均。如果想在0.9到0.999區間搜索,就不能用線性軸取值,所以考慮這個問題最好的方法就是探究,此值在0.1到0.001區間內,所以我們會給取值,採用對數軸,0.1的對數取值爲-1,0.001的對數取值爲-1。這裏設定了,所以,然後這就變成了超參數隨機取值。