VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
這篇文章發表在ICLR2015 (International Conference on Learning Representations),這個會議從2013年開始舉辦,上升快大牛多,關于Deep Learning的。這篇文章解決ConvNet 結構設計中“深度”這個重要問題。提出用3*3的卷積增加網絡的深度,當weighted layers增加到16-19層時,accuracy得到明顯提升。網絡具有很強的泛化能力。兩個最好性能的ConvNet models已經公開。
Architecture
在訓練階段,ConvNet的輸入是固定大小的224*224RGB圖像。唯一的預處理是減均值。網絡由3*3的卷積層棧組成,有些地方也利用了1*1的卷積過濾器。卷積層的stride固定為1,對3*3的卷積層pad為1,以保持空間分辨率不變。通過5個Max-pooling通過2*2的窗口,stride為2進行空間池化。卷積層棧后面跟的是3個Fully_connected層。前2個是4096 way,第3個是1000 way。最后一層是softmax。所以隱藏層都用ReLU進行非線性化。在所有的網路中,除一個用了LRN外,其他都沒有用,因為,這樣一個規范化在ILSVRC 數據庫上不能增強性能,但是導致了內存和計算時間的消耗。
Configurations
文章提出了5個網絡(A-E),配置完全一樣,除了深度,層數從11層到16層。conv 層的channel開始是64,在每一個max-pooling后增加一倍,直到達到512.
ILSVRC-2012的第一個卷積層是11*11,stride 4;ILSVRC(ImageNet Large Scale Visual Recognition Challenge ) - 2013 , 2014 7*7,stride 4.本文在整個網絡中使用的是較小感受野的3*3窗口,很容易能看出來2個3*3的卷積層棧相當于一個5*5的卷積,而3個則相當于一個7*7的卷積。那么為什么采用3*3的卷積,而不是7*7的?有兩個原因:一是,用了3個非線性修正層,而不是一個,使得決策函數具有更強的判別能力;二是,減少了參數的數量,假設一個3層的3*3卷積層棧,輸入輸出都是C個channel,則需要的參數是3(3*3*C*C)=27*C*C,而一個7*7的卷積層,則需要參數7*7*C*C=49*C*C。
1*1卷積層是一種在不影響conv感受野的前提下增加決策函數非線性能力的一種方式。
Szegedy et al,2014的GoogLeNet在ILSVRC-2014中top-performing entry和本文的方法相似:基于非常深的ConvNet(22 weight layers)和小的卷積層(除了3*3的,也用了1*1和5*5的)。但是,他們的結構比本文的方法復雜,為了減少計算量,第一層的feature map的空間分辨率下降的過于粗暴。本文的方法outperform這個方法。
Classfication Framework
3.1 Training
訓練過程采用Krizhevsky et al.(2012)的方法。訓練采用帶momentum的 mini-batch gradient descend優化多項式邏輯回歸目標函數。batch size 256,momentum 0.9。訓練的規則化處理:權重衰減(L2懲罰因子設置為5*10\^(-4)),前兩個全連接層dropout radio設置為0.5。學習率設置為0.01,當validation accuracy停止提高時,下降為原來的0.1,一共下降3次,在370k(74 epochs)迭代后停止。作者猜測盡管網絡有大量參數和很深的網絡結構,但是網絡仍然能在較少的epoch后收斂,應當有兩個方面原因:(1)由較深的網絡結構和較小的conv過濾器filter強加的隱含的規則化,(2)某些層的預初始化。
網絡權重的初始化很重要,因為由于deep net的不穩定性,bad初始化阻礙學習。為了繞過這個問題,作者現在淺層的網絡(A)上采用隨機初始化參數的方法進行訓練,然后,當訓練較深網絡結構時,前4個卷積層和最后3個全連接層采用net A的參數。作者沒有降低預初始化層的學習率,而是允許在學習過程中改變。對于隨機初始化,我們從0均值,方差為0.01的正態分布中采樣。biase初始化為0。值得注意的是,作者提交后,發現采用Gloror&Bengio(2010)的隨機初始化方法能夠避免進行預訓練。為獲取固定大小224*224的Convnet輸入圖像,從rescaled的訓練圖像中隨機crop。為了進一步增大訓練集,crops進行隨機水平翻轉和隨機RGB color shift(Krizhevsky et al,2012)。
用S代表isotropically-rescaled(各向同性的訓練圖像)的最小邊。若crop size 固定到224*224,原則上S可以取任意不小于224的值。作者采用2種方法設置訓練Scale S:第一種是針對單尺度訓練,固定S。(注意到,在采樣sampled crops內的圖像內容仍然能夠表示多尺度的圖像統計。)在本文的實驗中,設定兩個固定值S=256,S=384。對于給的的ConvNet,首先用S=256進行預訓練,然后,對S=384進行訓練,采用S=256預訓練好的參數,采用較小的學習率0.001。第二種方法是設置多尺度訓練,讓訓練圖像的S在[Smin,Smax]范圍內隨機rescale,本文采用Smin=256,Smax=512。盡管圖像中的對象可以是不同大小的,因此在訓練過程中考慮這些是有益的。這也可以看成是一種通過尺度抖動進行訓練集增廣的方式,這也可以在很多范圍的尺度上訓練模型。為了提高速度,現在固定S=384上預訓練,然后在多尺度模型上進行微調。
3.2 Testing
測試圖像的預定義最小圖像邊被isotropically rescaled 到Q,Q不必等于訓練尺度S。實驗發現,Q采用多個不同值能夠提高性能。然后采用近似Sermanet et al,2014的的方法在rescaled 的測試圖像稠密采樣上應用network。也就是第一個FC層改為7*7的卷積層,后兩個FC層改為1*1conv層。結果全卷積網絡被應用到完整(uncropped)圖像上。結果是類分數圖譜,通道數等于類數,空間分辨率的大小依賴輸入圖像大小。最后,為了獲得固定大小的類分數向量,類分數圖譜被空間平均化。為了增大測試集,也進行了圖像水平翻轉,原始圖像和翻轉圖像的softmax類的值進行平均以獲得圖像的最終分數。
采用了多GPU。在four NVIDIA Titan Black GPUs的系統中,訓練一個單獨網絡需要2-3周。
實驗
采用ILSVRC-2012dataset,1000個類,被分成3個集合:traing(1.3M),validation(50k),testing(100k)。測試性能通過top-1和top-5誤差進行評估。大多數實驗采用validation set 作為test set集合,某些實驗也在test set上進行,并提交給官方ILSVRC server作為“VGG”團隊的成果。
4.1 單尺度評估
首先發現,采用LRN的A網絡不能提高沒采用任何規范化層網絡的性能,因此,在B-E中都沒有采用規范化。
其次,隨著ConvNet深度增加,分類誤差降低。盡管深度相同,采用1*1conv的結構比全部采用3*3conv的效果差。這表明盡管增加的non-linearity確實有幫助(C比B好),但是通過Conv捕獲空間信息也很重要(D比C好)。當深度達到19層時,誤差率達到飽和,或許更深的網絡對較大的數據集更有效。同時,也比較了采用5個5*5conv的淺層網絡,把每一對3*3網絡替換成一個5*5網絡,誤差率比B高了7%,這證實了采用小過濾器的深層網絡比采用大過濾器的淺層網絡更有效。
最后,訓練時的尺度抖動也導致了較好的性能。證實了通過尺度抖動增廣訓練集對于捕獲多尺度圖像統計特征確實是有用的。
4.2 Multi-Scale evaluation
考慮到訓練集和測試集尺度差別大時將會導致性能下降,采用固定S訓練的模型,測試Q={S+32,S,S-32},若訓練采用的是尺度抖動的S在[Smin,Smax],則Q={Smin,0.5(Smin+Smax),Smax}.實驗表明測試時尺度抖動導致了較好的性能。
4.3 Multi-Crop evaluation
實驗表明multi-crops比dense evaluation略好,兩種方法的結合效果比單獨使用任意一種都好,作者認為這是由于卷積邊界的不同處理方式導致的互補。
4.4 Convnet Fusion
通過Soft-max輸出進行平均,將幾個模型融合起來,由于模型的互補提高了模型性能。
4.5 Comparison with the steate of art
模型融合是提高性能的辦法。
總結
以上是生活随笔為你收集整理的VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Deep Residual Learni
- 下一篇: OverFeat: Integrated