CNN中幾個新的卷積方式
在影象識別中,卷積神經網路(CNN)無疑是現在最先進的方法。CNN的基礎操作是對影象中的區域性區域做卷積提取特徵,在每一層的卷積中使用相同的卷積核(共享引數)以減少引數數量,再結合池化(pooling)操作可以實現位移不變性的識別。
然而傳統的卷積操作有兩個缺點:一是使用區域性操作,不能直接得到比較大的範圍甚至影象全域性的特徵,且卷積核是固定的形狀如3x3大小,對物體的形狀、姿態變化缺少適應性。二是當特徵的通道數量大了以後,卷積核的引數也變得龐大,會增加許多運算開銷。針對這些問題,目前出現了許多新的思路來設計卷積操作,例如空洞卷積、可形變卷積、非區域性卷積、可分離卷積、組卷積等。本文對這些新的卷積方式及相關論文做一個介紹。
一,空洞卷積
空洞卷積即Atrous convolution或者dilated convolution[1], 它將卷積核中相鄰元素應用於影象中相隔一定距離的畫素以增加感受野,如下圖所示。

其中(a)是常規的大小為3x3的卷積。(b)是跨度為2、大小為3x3的空洞卷積,即卷積運算對應的輸入影象中的畫素間隔為2。(c)是相同卷積核大小下跨度為4的空洞卷積。可見常規的卷積是空洞卷積的一種特殊情況(跨度為1)。使用空洞卷積相當於從一幅降低了解析度的輸入影象中提取特徵,在保持引數不變的情況下增加了感受野的範圍。
二,可形變卷積
可形變卷積[2,3]針對常規卷積不能有效處理物體的幾何變化的問題,提出對卷積的每個元素提供一個在影象中的偏移量,根據偏移量來決定卷積運算的輸入畫素。下圖中比較了幾種不同的卷積方式:(a)是常規的卷積,(c)相當於空洞卷積,(b)和是具有不規則的位移的可形變卷積,(c)和(d)可看做(b)的特殊情況。

可形變卷積最初由Dai Jifeng 在[2]中提出,為了得到各個卷積元素所對應的位移向量,作者提出在輸入特徵圖上通過額外的卷積層來預測卷積核中各個元素的空間位移,下圖所示。

這個通過預測位移來實現可形變卷積的想法也可以用來實現可形變的池化(deformable pooling), 如下圖所示。

三,非區域性卷積
非區域性卷積(non-local convolution)由CMU和Facebook提出[4]。最初是用來處理視訊影象分類任務中捕捉遠距離畫素之間的依賴關係的。傳統的網路一般通過多次重複卷積操作來增加感受野,以捕捉遠距離畫素之間的依賴關係,但具有計算效率低、優化困難等問題。非區域性卷積將一個位置處的響應表示為輸入特徵圖中各個位置的特徵的加權平均。如下圖所示,其中 處的響應是該幀影象及相鄰幾幀影象所有畫素處特徵的加權平均。

非區域性卷積的數學表示式為:
其中 是一個輸入特徵圖,
是輸出特徵圖,與
具有相同的大小。 是計算任意兩個位置 和 處特徵的相似度的函式。可以定義為高斯函式
也可定義為嵌入式 高斯函式(Embedded Gaussian)、點積等其他形式。[4]中提出了一個基於非區域性卷積的模組,稱為non-local block,將其與Resnet50、Resnet101等結合,在視訊影象的分類任務中比原網路取得了更好的結果。
四, 可分離卷積
可分離卷積將一個卷積操作分成幾個更小的卷積操作,以提高運輸速度。例如可將3x3的卷積分解成依次進行3x1的卷積和1x3的卷積。另一個較實用的卷積分離方法是將卷積核在空間上和通道上進行分離,又稱為depthwise separable convolution[5]。即先在各個通道上分別進行空間卷積,然後沿著通道方向進行1x1的卷積,產生新的通道數量。Tensorflow中可通過tf.nn.separable_conv2d 實現,Pytorch中可通過將torch.nn.Conv2d的 groups設為與in_channels相同的值來實現。
五,組卷積
組卷積是把輸入特徵圖在通道方向分成若干組,對每一組的特徵分別做卷積後再拼接起來,以減少引數數量,提高運算速度。該方法在AlexNet中就被用來將特徵圖分解成兩部分以分別部署到兩個GPU上來處理記憶體消耗的問題。depthwise separable convolution可視作一種特殊的組卷積,使每一個分組只包含一個通道。
組卷積可視作一種稀疏卷積連線的方式,即每一個輸出通道只與輸入通道中的某一個組相連,可能會丟失全域性通道的資訊。為了克服這個問題,微軟推出了一種交錯式組卷積(interleaved group convolutions)[6],使輸出通道能與所有輸入通道相連。

交錯式組卷積如上圖所示。假設輸入由LM個通道,這裡L = 2, M = 3。先將輸入通道分成L個組,每個組包含M個通道,使用組卷積後將通道重新排序,分成M個組,每個組包含L個通道,再次進行組卷積。得到的輸出即可捕捉到每個輸入通道中的資訊。
參考文獻
[1] Yu, Fisher, and Vladlen Koltun. "Multi-scale context aggregation by dilated convolutions." arXiv preprint arXiv:1511.07122 (2015).
[2] Dai, Jifeng, Haozhi Qi, Yuwen Xiong, Yi Li, Guodong Zhang, Han Hu, and Yichen Wei. "Deformable Convolutional Networks." In Proceedings of the IEEE International Conference on Computer Vision , pp. 764-773. 2017.
[3] Zhu, Xizhou, Han Hu, Stephen Lin, and Jifeng Dai. "Deformable ConvNets v2: More Deformable, Better Results." arXiv preprint arXiv:1811.11168 (2018).
[4] Wang, Xiaolong, Ross Girshick, Abhinav Gupta, and Kaiming He. "Non-local neural networks." In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition , pp. 7794-7803. 2018.
[5] Chollet, François. "Xception: Deep learning with depthwise separable convolutions." In Proceedings of the IEEE conference on computer vision and pattern recognition , pp. 1251-1258. 2017.
[6] Zhang, Ting, Guo-Jun Qi, Bin Xiao, and Jingdong Wang. "Interleaved group convolutions." In Proceedings of the IEEE International Conference on Computer Vision , pp. 4373-4382. 2017.