深度調參技巧

調參:
一般在小數據集上合適的參數,在大數據集上效果也不會太差。
learning rate: 1 0.1 0.01 0.001, 一般從1開始嘗試。學習率一般要隨着訓練進行衰減。衰減係數一般是0.5。
對RNN來說,有個經驗,如果RNN要處理的序列比較長,或者RNN層數比較多,那麼learning rate一般小一些比較好,否則有可能出現結果不收斂,甚至Nan等問題。
每層結點數: 16 32 128,超過1000的情況比較少見。
batch size: 128上下開始。如果顯存大小允許,可以考慮從一個比較大的值開始嘗試。因爲batch size太大,一般不會對結果有太大的影響,而batch size太小的話,結果有可能很差。
dropout: 0.5
L2正則:1.0,超過10的很少見。
https://zhuanlan.zhihu.com/p/24720954

神經網絡經典五大超參數:
學習率(Leraning Rate)、權值初始化(Weight Initialization)、網絡層數(Layers)、單層神經元數(Units)、正則懲罰項(Regularizer|Normalization)
http://www.cnblogs.com/neopenx/p/4768388.html

神經網路中的超參數主要包括1. 學習率 η,2. 正則化參數 λ,3. 神經網絡的層數 L,4. 每一個隱層中神經元的個數 j,5. 學習的回合數Epoch,6. 小批量數據 minibatch 的大小,7. 輸出神經元的編碼方式,8. 代價函數的選擇,9. 權重初始化的方法,10. 神經元激活函數的種類,11.參加訓練模型數據的規模 這十一類超參數。
https://blog.csdn.net/dugudaibo/article/details/77366245

希望算法或者網絡收斂更快,有些是對數據預處理,尤其是Batch Normalization,有些是採用不同的激活函數,尤其是Relu激活函數取得了巨大的成功,還有一種加速收斂方法是更換損失函數。
https://blog.csdn.net/zb1165048017/article/details/71154581

批標準化(Batch Normalization )簡稱BN算法,是爲了克服神經網絡層數加深導致難以訓練而誕生的一個算法。
當訓練集的樣本數據和目標樣本集分佈不一致的時候,訓練得到的模型無法很好的泛化。
而在神經網絡中,每一層的輸入在經過層內操作之後必然會導致與原來對應的輸入信號分佈不同,並且前層神經網絡的增加會被後面的神經網絡不斷的累積放大。
這個問題的一個解決思路就是根據訓練樣本與目標樣本的比例對訓練樣本進行一個矯正,而BN算法(批標準化)則可以用來規範化某些層或者所有層的輸入,從而固定每層輸入信號的均值與方差。

批標準化一般用在非線性映射(激活函數)之前,對y= Wx + b進行規範化,使結果(輸出信號的各個維度)的均值都爲0,方差爲1,讓每一層的輸入有一個穩定的分佈會有利於網絡的訓練。
https://blog.csdn.net/FontThrone/article/details/76652772

如果train loss下降慢,並且test loss沒有上升,可以加大模型擬合能力,即加深網絡和增大神經元個數。

如果train loss難以下降,並且test loss開始反彈,則應控制模型的容量,即模型的擬合能力,保持層數和神經元個數不過大,同時使用各種減輕過擬合的方法,比如dropout、batch normalization等。
http://www.infoq.com/cn/articles/cnn-and-imagenet-champion-model-analysis


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章