Q1:CNN 中的全連接層為什么可以看作是使用卷積核遍歷整個輸入區域的卷積操作?
A1:以 AlexNet 為例,AlexNet 最后 3 層為全連接層,第一個全連接層的輸入層是由卷積層做拉伸而得。對於第一個全連接層中的任一個神經元 \(FC_i^{(1)}\),其都和輸入層中所有神經元相連,如果我們將輸入層神經元排列成 6×6×256,即對輸入層不進行拉伸,那么神經元 \(FC_i^{(1)}\) 就相當於對輸入層乘以一個 6×6×256 的 filter(即 filter 的大小和 feature map 是一樣的),經激活函數后得到的就是該神經元 \(FC_i^{(1)}\) 的輸出。如果有 4096 個 filter,那么第一個全連接層就會有 1×1×4096 個神經元。
之后情況類似,用 4096 個 1×1×4096 的 fiter 進行卷積即可得到第二層全連接層(1×1×4096),用 1000 個 1×1×4096 的 fiter 進行卷積即可得到第三層全連接層(1×1×1000)。所以全連接層也可以看成是卷積核遍歷整個輸入區域的卷積操作。

Q2:1×1 的卷積核(filter)怎么理解?
A2:首先需要搞清楚,1×1 的 filter 都干了些什么。
1)不改變 feature map 的大小。即當 stride 和 padding 分別為 1 和 0 時,使用 1×1 的 filter 對大小為 6×6 的 feature map 進行卷積,並不會改變 feature map 的大小。
2)會改變 channel 的數量,以此來達到升維和降維。下一層 channel 數量由該層 filter 的個數決定。
3)增加了非線性。下一層每一個 channel 的 feature map 中任意一點都是上一層同一位置所有 channel 的非線性組合(因為有非線性激活函數)。
4)channel 間信息的交互。
Q3:什么是感受野(Receptive field)?
A3:感受野是指卷積神經網絡每一層特征圖(feature map)上的神經元在原始圖像上映射的區域大小。
圖 2 中,原始圖像上的像素點只能看到本身,故可以認為其感受野為 1×1;conv1 中神經元能看到原始圖像的 3×3,故其感受野為 3×3;而 conv2 中神經元能看到原始圖像 5×5 的區域,故其感受野為 5×5。

Q4:對含有全連接層的 CNN,輸入圖像的大小必須固定?
A4:以圖 1 中展示的 AlexNet 為例,如果 CNN 的輸入層大小改變,那么 AlexNet 全連接層的輸入層(由卷積層拉伸而得的)神經元個數是會改變的,或者說拉伸前 feature map 的大小變了,后面的全連接操作也沒法做了(全連接層參數的個數都改變了)。
完全卷積網絡(Fully Convolutional Network,FCN)的輸入圖像可以為任意大小,當然輸出結果的大小和輸入圖像大小相關。FCN 的做法就是把全連接層換成了卷積層,參數個數沒變。如圖 3 把 AlexNet 最后三層全連接層變為卷積層,就得到一個 FCN。

Q5:什么是 Global Average Pooling(GAP)?

A5:Global Average pooling(GAP)和 (local)average pooling 其實就是一個東西,只是 pooling 時對 feature map 作用的區域有區別:global 意味着對 feature map 的整個區域,即對一個 feature map 的整個區域求均值最后得到一個值;而 local 則意味着 feature map 中的一小塊區域,如 2×2、3×3 等。


那么 GAP 有沒有什么好處呢?由於沒有了全連接層,輸入就不用固定大小了,因此可支持任意大小的輸入;此外,引入GAP更充分的利用了空間信息,且沒有了全連接層的各種參數,魯棒性強,也不容易產生過擬合;還有很重要的一點是,在最后的 mlpconv層(也就是最后一層卷積層)強制生成了和目標類別數量一致的特征圖,經過GAP以后再通過softmax層得到結果,這樣做就給每個特征圖賦予了很明確的意義,也就是categories confidence maps。參見博客 憑什么相信你,我的CNN模型?(篇一:CAM和Grad-CAM) -- 賓狗
Q6:什么是 depthwise separable convolution?Depthwise convolution 和 pointwise convolution 分別又是什么?
A6:Depthwise separable convolution 將一個標准的卷積操作(如 LeNet、AlexNet 等網絡中的卷積)分為兩個部分,分別是 depthwise convolution 和 pointwise convolution。Separable convolution 的參數數量少於標准卷積。



References
語義分割中的深度學習方法全解:從FCN、SegNet到各代DeepLab -- 量子學園
一文讀懂卷積神經網絡中的1x1卷積核 -- Amusi
深度神經網絡中的感受野(Receptive Field) -- 藍榮禕
FCN的學習及理解(Fully Convolutional Networks for Semantic Segmentation)-- 凹醬deep
關於 global average pooling -- 默一鳴
憑什么相信你,我的CNN模型?(篇一:CAM和Grad-CAM) -- 賓狗
卷積神經網絡中的Separable Convolution -- 尹國冰