1. 程式人生 > >深度學習(十)訓練時的調參技巧

深度學習(十)訓練時的調參技巧

檢查 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

深度學習(十)訓練時的調參技巧