神經網絡學習庫指南(keras,tensorflow)

一、超參數分類

  • 1.1、學習率 η
  • 1.2、正則化參數 λ
  • 1.3、神經網絡的層數 L
  • 1.4、每一個隱層中神經元的個數 j
  • 1.5、學習的回合數Epoch
  • 1.6、小批量數據 minibatch 的大小
  • 1.7、輸出神經元的編碼方式
  • 1.8、代價函數的選擇
  • 1.9、權重初始化的方法
  • 1.10、神經元激活函數的種類
  • 1.11、參加訓練模型數據的規模

二、經驗參數

  • 2.1、 learning rate: 1 0.1 0.01 0.001, 一般從1開始嘗試。很少見learning rate大於10的。學習率一般要隨着訓練進行衰減。衰減係數一般是0.5。 衰減時機,可以是驗證集準確率不再上升時,或固定訓練多少個週期以後。不過更建議使用自適應梯度的辦法,例如adam,adadelta,rmsprop等,這些一般使用相關論文提供的默認值即可,可以避免再費勁調節學習率。對RNN來說,有個經驗,如果RNN要處理的序列比較長,或者RNN層數比較多,那麼learning rate一般小一些比較好,否則有可能出現結果不收斂,甚至Nan等問題。
  • 2.2、網絡層數: 先從1層開始。
  • 2.3、每層結點數: 16 32 128,超過1000的情況比較少見。超過1W的從來沒有見過。
  • 2.4、batch size: 128上下開始。batch size值增加,的確能提高訓練速度。但是有可能收斂結果變差。如果顯存大小允許,可以考慮從一個比較大的值開始嘗試。因爲batch size太大,一般不會對結果有太大的影響,而batch size太小的話,結果有可能很差。clip c(梯度裁剪): 限制最大梯度,其實是value = sqrt(w1^2+w2^2….),如果value超過了閾值,就算一個衰減繫系數,讓value的值等於閾值: 5,10,15
  • 2.5、dropout: 0.5
  • 2.6、L2正則:1.0,超過10的很少見。
  • 2.7、詞向量embedding大小:128,256
  • 2.8、正負樣本比例: 這個是非常忽視,但是在很多分類問題上,又非常重要的參數。很多人往往習慣使用訓練數據中默認的正負類別比例,當訓練數據非常不平衡的時候,模型很有可能會偏向數目較大的類別,從而影響最終訓練結果。除了嘗試訓練數據默認的正負類別比例之外,建議對數目較小的樣本做過採樣,例如進行復制。提高他們的比例,看看效果如何,這個對多分類問題同樣適用。
  • 2.9、在使用mini-batch方法進行訓練的時候,儘量讓一個batch內,各類別的比例平衡,這個在圖像識別等多分類任務上非常重要。

三、參數總結

  • 3.1、超參數正則化參數 λ,神經網絡的層數 L,每一個隱層中神經元的個數 j, 輸出神經元的編碼方式主要影響的時神經網絡的分類正確率
  • 3.2、權重初始化的方法 主要影響代價函數曲線下降速度,同時有時也會影響正確率
  • 3.3、學習率 η,代價函數的選擇,神經元激活函數的種類主要影響學習速度,這點主要體現在訓練數據代價函數曲線的下降速度上
  • 3.4、學習的回合數Epoch,小批量數據 minibatch 的大小,參加訓練模型數據的規模主要影響模型分類正確率和訓練用總體時間。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章