前言
以下內容是個人學習之后的感悟,轉載請注明出處~
超參數調試
在深度學習中,超參數有很多,比如學習率α、使用momentum或Adam優化算法的參數(β1,β2,ε)、層數layers、不同層隱藏
單元數hidden units、學習率衰退、mini=batch的大小等。其中一些超參數比其他參數重要,其優先級可以分為以下幾級,如圖,紅色
框最優先,橙色次之,紫色再次之,最后沒有框住的一般直接取經驗值(當然你也可以自己取)。
那么如何來調試超參數呢?
以下圖的2維超參數為例(即只調兩個超參數,當然有時候需要調的超參數很多時,就需要很多維,不便畫出)首先可以在一定的范
圍內對這兩個超參數隨機取值(如圖中黑點),若發現其中幾個黑點的效果最好,則縮小范圍(即藍色方框)進行細化參數,尋找最適合
的超參數。此法從粗略搜索再到精密搜索,可以達到很好的效果。
上面提到的隨機取值,並非是在有效值范圍內的隨機均勻取值,而是選擇合適的標尺。比如對於隱藏單元數n和隱藏層數L,如下圖所
示,其合適的標尺恰好是在有效范圍內均勻取值,可以實現很好的調試效果。
然而,這對某些超參數是不適用的,比如學習率α,其范圍在0.0001到1之間,有經驗的我們懷疑α有很大可能在0.0001到0.1之間,但
是如果隨機均勻取值,那么在0.1到1之間將用去90%的資源,這看上去不對啊,資源沒有用在刀刃上。因此,我們需要選擇更加合適的標
尺——對數標尺,分別取0.0001、0.001、0.01、0.1、1,這樣可以充分利用資源,達到理想的效果。當然,如果你懷疑α是在0.9到0.999之
間,那么(1-α)就在0.1到0.001之間,其實做法是一樣的。
有時候,你訓練好超參數不久,你的數據在逐漸的改變,意味着之前訓練好的超參數不再適用於現今的數據,那么該如何做呢?我們需
要經常照看模型。一般有以下兩種方式,第一種是只有一個模型,如下圖中左邊所示,該模型的代價函數隨時間的變化而變化,我們需要不
斷調整其超參數,使曲線不上升;第二種就是建許多個模型,如下圖中右邊所示,每個模型的代價函數隨時間的變化而變化,我們只需要挑
當時表現比較好的模型用於預測數據即可。可以看出,在計算量允許的情況下,第二種方式是非常好的。
以上是全部內容,如果有什么地方不對,請在下面留言,謝謝~