天天看點

[論文閱讀] Going Deeper with Convolutions

  • 一般來說更深的網絡具有更好效果,更深的網絡也面臨兩個問題。
    • 更深的網絡擁有更多的參數,更容易過拟合。
    • 更深的網絡對計算的要求也更高。
  • 針對上述問題的一個解決方法就是使用稀疏連接配接(convolutional layer),而不是dense connection。
  • 此外,同一類的物體在不同圖檔中的大小差距也比較大,如下圖所示,從左到右圖像需要的kernel size依次遞減。
    [論文閱讀] Going Deeper with Convolutions
  • 為了解決這個問題,作者創新性的提出了不僅僅more deeper而且可以讓網絡更wider。也就是最原始的Inception Module,如下圖所示。
    [論文閱讀] Going Deeper with Convolutions
  • 但是上面結構有一個緻命的問題就是channel的個數會爆炸式增長,這就限制了我們網絡結構不能太深,因為我們在設計網絡的時候總要在channel的個數和網絡的深度之間平衡。,為了解決該問題,作者使用了 1 ∗ 1 1*1 1∗1的卷積來做dimension reduction。⚠️ 1 ∗ 1 1*1 1∗1的卷積也跟的有ReLU,這樣可以提高整個模型的非線性。
    [論文閱讀] Going Deeper with Convolutions
  • 這裡其實還有一個問題就是為什麼不統一在filter concatenation後跟一個1x1的卷積,而是在module内的每個branch跟了一個1x1的卷積,個人感覺是因為這樣更适合multi-scale的初衷。通過這樣可以使得每個scale可以提取到适合自己的特征。
  • 作者還在開始的兩個convolutional layer跟了LRN Block(Local Response Normalization)。他是Alex net中使用的歸一化方法,定義如下

    b x , y i = a x , y i / ( k + ∑ j = m a x ( 0 , i − n / 2 ) m i n ( N − 1 , i + n / 2 ) ( a x , y j ) 2 ) β b^i_{x,y} = a^i_{x,y} / (k + \sum_{j=max(0, i-n/2)}^{min(N-1, i+n/2)}(a^j_{x, y})^2)^\beta bx,yi​=ax,yi​/(k+j=max(0,i−n/2)∑min(N−1,i+n/2)​(ax,yj​)2)β其中N表示channel的個數,n表示adjacent的個數。x,y表示坐标。總的來說就是對每個位置的特征,計算他在相同位置先後多個特征下的歸一化後的值。也是計算的特征之間的歸一化。每個位置之間是獨立的。

  • ensemble,作者使用了multi-crop,multi-modelensemble的方式來進一步改善測試集上的效果
    • multi-model, 作者用相同的網絡結構,參數初始化方式訓練來7個模型,他們之間的不同僅僅在于随機打亂來輸入的順序,以及sampleing的方法不同。
    • multi-crop,作者最多crop出來144個圖像。首先将最短邊放縮到256, 288,320和352。然後再提取square從left,center 或者是right(或者對稱的top, center或者是right)。再然後将square的四個角,中間crop出224x224或者是将square resize到224x224。是以每幅圖像crop得到圖像的個數是436*2=144。
    • 最後ensemble的方式也是對得到的softmax probabilities計算平均值。
    • 效果如下表所示,我們可以看到通過test階段的multi-scale,效果還是有顯著提升的。
      [論文閱讀] Going Deeper with Convolutions

繼續閱讀