深度学习之常见tricks
生活随笔
收集整理的這篇文章主要介紹了
深度学习之常见tricks
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文主要給出了在實現網絡或者調節代碼過程使用的以及平時看一些文章記錄下來的一些小技巧,主要針對卷積網絡和圖像處理。就個人感受,有些技巧還是非常有效的,而且通常可以通過看開源庫的一些文檔或者源代碼來發掘這些內容,最后能夠稱為自己所用。
1.構造validation set
一般數據集可能不會給出驗證集,所以自己會從給的訓練集中按照一定比例(9:1)分離出驗證集。
2.增加訓練數據
為了更好的訓練網絡,有時候需要增加原始數據集,一般有以下方法[1]:
- 沿著x軸將圖片左右翻轉
- 隨機的剪切、縮放、旋轉
- 用pca來改變RGB的強度值,產生分別對應的特征值和特征向量,然后用均值為0方差為0.1的隨機數與特征值和特征向量相乘得到新的數據[2]
- 圖片輸入是2的冪次方,例如32、64、96、224等。
- 卷積核大小是3*3或者5*5。
- 輸入圖片上下左右需要用0補充,即padding,且假如卷積核大小是5那么padding就是2(圖片左右上下都補充2),卷積核大小是3padding大小就是1。
- drop out能夠避免過擬[1],一般在加在全連接層后面[3],但是會導致收斂速度變慢。
- 正則化也能避免過擬合,L2正則l2正則懲罰了峰值權重,l1正則會導致稀疏權重,趨近于0,l1會趨向選擇有用的輸入。又或者可以給給權重矢量的模加上上邊界(3 or 4),更新時對delta w進行歸一化。
- 節點數增加,learning rate要降低
- 層數增加,后面的層數learning rate要降低
- 不同學習率與loss的曲線圖,橫坐標是epoch,縱坐標是loss或者正確率
- 不同的batchsize與loss的曲線圖,坐標同上
總結
以上是生活随笔為你收集整理的深度学习之常见tricks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Caffe学习系列(18): 绘制网络模
- 下一篇: 机器视觉资料汇总(2)