imagenet上使用深度卷積網絡
背景介紹
目前的數據集太小,而複雜的圖像分類和識別任務需要更多的數據訓練。
對於大量的數據又需要容量大的網絡,cnn網絡可以通過調節寬度和深度來調節網絡的容量。cnn相比於標準的前饋網絡有較少的鏈接和參數(歸功於卷積操作共享權重),易於訓練。
與此同時,高性能gpu以及經過優化的2d卷積可以幫助訓練。
本文主要貢獻:
1、訓練了深度卷積網絡並取得了很好的分類效果
2、實現了高性能的gpu 2D卷積
3、通過一些特性提高了網絡性能並減少了網絡運行的時間
4、通過一些方法減少過擬合
5、網絡包含5層卷積和3層全連接,並且網絡的深度影響準確率
具體的結構:
1、Relu
相比於tanh和sigmod,ReLU減少訓練時間,如下圖,
2、多gpu的訓練
通過並行gpu進行訓練,使得能夠使用更大的網絡。僅僅在第三層gpu之間存在通信,
3、局部響應歸一化
公式如下
其中,i爲第i個特性圖,x,y也就是特徵圖上的座標,其中ax,y是在relu之後的輸出,k,α,β,k爲超參數,可以通過驗證集調整。
具體的原理如上圖,通過第i個feature map周圍的n個feature map對ax,y處的值進行橫向的抑制(別的博客稱爲側抑制,但是我覺得橫向抑制更加形象一點)
4、重疊池化
池化模板設爲3,步長爲2,文中稱通過重疊池化減少錯誤率,還能稍微防止過擬合。。。
減少過擬合:
1、數據增強,主要用了兩種,第一種爲從256x256塊中提取224x224大小的塊,並進行水平鏡像。在測試的過程中,從圖片提取5個224x224塊,並進行水平鏡像,一種十塊,對測試結果取平均。
第二種爲改變訓練數據RGB通道的強度
2、dropout
訓練時0.5概率將輸出神經元置0,減少了神經元之間的相互適應。測試是,所有神經元輸出x0.5
訓練的細節:
採用隨機梯度下降法,mini-batch = 128
權重更新方式如下:
以0均值,方差爲0.01的高斯分佈初始化W,全連接層設置爲1。
2017年5月22日23:39:01
問題:
卷積如何優化?
PCA?