1. 程式人生 > >神經網路CNN訓練心得--調參經驗

神經網路CNN訓練心得--調參經驗

1.樣本要隨機化,防止大資料淹沒小資料

2.樣本要做歸一化。關於歸一化的好處請參考:為何需要歸一化處理
3.啟用函式要視樣本輸入選擇(多層神經網路一般使用relu)
4.mini batch很重要,幾百是比較合適的(很大資料量的情況下)
5.學習速率(learning rate)很重要,比如一開始可以lr設定為0.01,然後執行到loss不怎麼降的時候,學習速率除以10,接著訓練
6.權重初始化,可用高斯分佈乘上一個很小的數,這個可以看:權值初始化
7.Adam收斂速度的確要快一些,可結果往往沒有sgd + momentum的解好(如果模型比較複雜的話,sgd是比較難訓練的,這時候adam的威力就體現出來了8.
Dropout的放置位置以及大小非常重要

9.early stop,發現val_loss沒更新,就儘早停止
另:心得體會
深度學習真是一門實驗科學,很多地方解釋不了為什麼好,為什麼不好。
網路層數、卷積核大小、滑動步長,學習速率這些引數的設定大多是通過已有的架構來做一些微調
參考:知乎討論 https://www.zhihu.com/question/41631631