1. 程式人生 > >為什麼使用卷積層替代CNN末尾的全連線層

為什麼使用卷積層替代CNN末尾的全連線層

CNN網路的經典結構是: 輸入層—>(卷積層+—>池化層?)+—>全連線層+
(其中+表示至少匹配1次,?表示匹配0次或1次)

全卷積神經網路Fully Convolutional Network (FCN)

全卷積神經網路即把CNN網路最後的全連線層替換為卷積層。為什麼這麼做?換句話說這樣會帶來什麼好處呢?

  1. 首先,說一下卷積層和全連線層的區別:卷積層為區域性連線;而全連線層則使用影象的全域性資訊。可以想象一下,最大的區域性是不是就等於全域性了?這首先說明全連線層使用卷積層來替代的可行性。

  2. 然後,究竟使用卷積層代替全連線層會帶來什麼好處呢?答案:可以讓卷積網路在一張更大的輸入圖片上滑動,得到每個區域的輸出(這樣就突破了輸入尺寸的限制)

    。論文裡Fully Convolutional Networks for Semantic Segmentation介紹的很清楚,解讀如下:
    這裡寫圖片描述
    需要說明的是這一特性不僅可用於語義分割,在物體分類、目標檢測中都可以使用。

參考:
How does the conversion of last layers of CNN from fully connected to fully convolutional allow it to process images of different size?
CS231n課程筆記翻譯:卷積神經網路筆記
論文筆記–Fully Convolutional Networks for Semantic Segmentation