深度學習(十)訓練時的調參技巧
阿新 • • 發佈:2018-08-20
檢查 learning 結果 需要 html gradient 過擬合 iba left
訓練過程中需要適時的調整參數,以獲得比較好的模型,下面介紹幾種調參方式:
- 參數初始化
- 初始化參數對結果的影響至關重要,要引起重視
- Xavier
權重初始化太大容易發散,初始化太小容易彌散而不收斂,Xavier是讓權重均值為0,方差為2/in+out,可以初始化的不大不小
-
- 在深度網絡中,隨機初始化權重,使用SGD的話一般處理的都不好,這是因為初始化的權重太小了。
- 優化器的選擇
- 用Adam或者AdamGrad代替SGD,可以設置較小的初始值實現自動調參數
- learningRate調整
- 從一個正常大小的學習率(LR)開始,朝著終點不斷縮小
- 如果大的LR容易使Loss爆掉,可以嘗試先使用一個小LR保證不爆, 等loss降下來了, 再慢慢升LR, 之後當然還會慢慢再降LR
- mini batch
- 一般選擇128,過大的minibatch容易出現過擬合,後面會介紹一下對於大batch size的訓練問題
- 梯度檢查
- 自己手動寫的backward容易出現bug,可以做gradient check檢查是否有錯誤
- fine tune
- 所謂fine tune就是用別人訓練好的模型,加上我們自己的數據來訓練新的模型。fine tune相當於使用別人的模型的前幾層,來提取淺層特征,然後在最後再落入我們自己的分類中。
具體例子可以參考:http://www.cnblogs.com/xuanyuyt/p/6062204.html
深度學習(十)訓練時的調參技巧