解讀(GoogLeNet)Going deeper with convolutions


GoogLeNetGoing deeper with convolutions

Inception結構

目前最直接提升DNN效果的方法是increasing their size,這里的size包括depth和width兩方面。在有足夠的labeled training data 時這種方法是最簡單以及穩妥的方法來獲得一個高質量的模型。但是往往實際中大的網絡會有更多的參數,當training data數量很少時,很容易出現overfitting,並且大的網絡需要的計算資源也是更多。這是需要將fully connected改變成sparsely connected:

 

 

1x1大小卷積最主要的作用是dimension reduction,否則會限制網絡的大小,1x1卷積核的應用允許從depth和width上都增大網絡,而不會帶來大量計算的負擔。

在Inception中1x1考慮到local region,3x3和5x5則考慮到spatially spread out clusters。所以在lower的層中主要是local信息,所以1x1的output number要多一些,但在higher的層中往往捕捉的是features of higher abstraction,所以在higher layer中3x3和5x5的比例應該增大。

但在這種naïve Inception中有一個跟嚴重的問題是:經過結構以后的卷積output number增加太多,這樣就導致只經過幾個stage就會出現computation blow up問題。因為pooling只能改變mapping的大小,而不改變output num,所以當使用naïve Inception時需要concatenate三個卷積的輸出以及pooling的輸出,所以當上一層的channel較大時,輸出的output number會更大。並且5x5的卷積即使在output number適中時,當channel極大時,計算量也是巨大的。

上述問題引出了帶有dimension reduction的Inception結構:這種方法源於即使一個低維度的embedding也能包含一個相對大的image patch的很多信息。但embedding壓縮過於稠密,但需要這種結構的稀疏性,所以在耗費計算量的3x3和5x5卷積之前使用1x1 reduction減少卷積輸入的channel。在使用reduction后同時使用ReLU一方面降維減少輸入channel數量,另一方面增強非線性。

 

上述的結構主要有兩個優點:一是可以再每個stage增加units的數量,僅為即使output number多了,在下一個stage時也會通過dimension reduction去減少channel數,所以不會出現計算爆炸的情況。二是這種結構滿足了在不同的scale下處理視覺信號然后聚集在一起輸入到下一個階段以至於可以繼續從多scales下提取特征。

GoogLeNet22層)

 

所有的卷積包括Inception都使用ReLU,訓練圖像大小為224x224,RGB三通道,減均值。“#3x3 reduce”和“#5x5 reduce”表示1x1 reduction layer的數量。“pool proj”表示max-pooling后1x1 projection layer的數量。在網絡中,並沒有完全使用Inception,一開始的三層使用的是原始的卷積,這樣是出於技術的原因(memory efficiency during training),但不是必須。

網絡中的最后使用的是average pooling,而不是全連接,結果發現可以提高0.6%,但使用dropout是必要的,使用linear線性層是為了方便fine-tuning模型。

另外,發現在網絡中間層產生的特征很有判別性,所以在中間層添加輔助分類器(auxiliary classifiers)希望在較淺的層中獲得具有判別性的分類器,為反傳過程增強梯度並且增強正則化。在訓練過程中這些損失都會加權計入總損失(0.3),詳細的結構見論文。

Training Methodology

訓練采用隨機梯度下降,沖量momentum:0.9,固定學習率8 epochs減小4%。訓練策略一直在變化,參考文章Some improvements on deep convolutional neural network based image classification。

在測試中使用提升准確率的技巧

  1. 集成方法:訓練了7個相同結構的GoogLeNet模型,初始化方法,學習率調整策略相同,圖像采用(patch)以及隨機輸入的順序不相同。
  2. aggressive cropping方法:ILSVRC中使用的很多圖是矩形,非正方形。將圖像resize成4種scales,使得最短的邊分別為256,288,320和352,然后從左、中、右分別截取方形square圖像(如果是肖像圖像,則分為上、中、下),然后對於每個square圖像從4個角及中心截取224x224 square images,並把原square圖像resize成224x224,在對上面5種做鏡像變換。所以這樣一幅圖像可以得到4x3x6x2=144個crops。參考:Imagenet classification with deep convolutional neural networks
  3. multiple crops的softmax概率取平均效果最好。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM