論文閱讀 CVPR 2020 — Improving Convolutional Networks with Self-Calibrated Convolutions
該論文提出 Self-calibrated convolutions,巧妙地在單一層 Convolutional layer 之內異質地利用 Filters,使它在空間上有更強的適應性。該方法易於嵌入在其他架構,並可在不增加運算成本的情況下,提昇神經網路的表現能力。
論文連結:
《 Improving Convolutional Networks with Self-Calibrated Convolutions 》
作者:
Introduction
通常在大型影像分類資料集 ( ImageNet ) 訓練出的模型,會具備強大的特徵轉化能力,因此常被拿來當作下游任務的 Backbone,提供有效的特徵重現。
過去已有許多研究是藉由調整神經網路架構來取得更豐富的特徵,而該論文的出發點不同,作者們提出「 Self-calibrated convolution 」,可強化既有的 Convolutional transformation,幫助模型學習出更具鑑別度的特徵。
作法上與 Group convolution 有點相似,但在劃分 Filters 的時候並不均等,且進行的是「 異質 ( Heterogeneous ) 」的操作。
Self-calibrated convolutions 會先利用 Down-sampling 的作法將 Inputs 轉換成低維度的 Embeddings ,並用來對整個 Convolutional transformation 做一種引導,藉此增加空間上每個位置的視野域。
這種強化版的 Convolution 有以下 2 個優勢:
- 使空間上每個位置可具備適應性地對 Long-range region 進行編碼,並生成資訊量豐富的 Context
- Self-calibrated convolution 具備通用性,可輕易地被應用於標準的 Convolutional layers,且不會增加參數量、複雜度,也不需要改變 Hyper-parameters
針對第 1 點,該論文有利用 Grad-CAM 進行可視化分析:
可看出 Self-calibrated convolution 可更精準的定位物件。
Method
一個傳統的 2D convolutional layer 通常會有一組 Filter sets:
而其處理的輸入可表示為:
對應的輸出則為:
這邊為了表示上更方便,省略 Filter 在空間上的 Kernel size 和 Bias term。
基於前述定義,第 i 個 Channel 所輸出的特徵圖可被表述為:
傳統作法中,特徵轉換的視野域會被「 預先定義的 Kernel size 」及「 堆疊 Convolutional layers 」兩個因素所控制,但仍不足以具備夠大的視野域來補捉 High-level 的語意特徵,導致輸出的特徵圖就不那麽具備鑑別度。
Self-Calibrated Convolutions
為避免前述問題發生,該論文提出「 Self-calibrated convolution 」:
這部份以輸入輸出 Channel 數相等的情況進行說明。
假設有一組 Filter sets K ,其 Shape 是:
第一步是將這組 K 均勻地分割成 4 份,並各自負責不同功能,這邊表述為:
而每一份的 Shape 則變為:
對 Input X 的處理則是分割成 2 份:
針對圖中較上方的第一條路徑來看,使用了 3 組 Filter 來完成 Self-calibration operation:
並輸出 Y_1。
而較下方的第二條路徑則是簡單的 Convolution operation:
兩條路徑的輸出最終會被串接在一起,形成最終的輸出 Y 。
Self-Calibration
為了在每個空間位置上都能有效地聚合 Contextual information,該論文提出針對 2 種不同 Scale 的特徵進行卷機,分別是原尺寸的 Scale 以及 Downsampling 成較小尺寸的 Scale 。
由於小尺寸的特徵圖可擁有較大的視野域,因此其轉換結果可被用來引導原尺寸的特徵轉換過程。
在計算上會將輸入 X_1 透過 Filter size 為 r 、Stride 也設定為 r 的Average pooling 來做 Downsampling:
接著進行特徵轉換的計算:
將尺寸還原後,進行的就是 Calibration operation:
其中的 F_3 是:
X’_1 是用一種類似 Residual 的形式在做 Calibration 。
而最終的輸出則為:
為了彰顯 Self-Calibration 的優勢,該論文有針對 ResNet-50 最後一個 Block 的 3 × 3 convolutional layer 進行可視化,並與 Self-Calibration 做比較:
Self-Calibration 還有另一個優勢,它只會考量空間上每個位置的鄰近區域,可避免蒐集 Global context 過程會受到不相關區域干擾之情況。
為說明此優勢,有和 SE-ResNet-50 做可視化的比較:( 可留意最右邊的 2 個 Columns )
Experiments
該論文的實驗是採用 ImageNet 、COCO 資料集,Baseline 的模型架構則是採用常見的 ResNet 、ResNeXt 、SE-ResNet,改使用 Self-calibrated convolutions 之後的架構稱為 SCNet 、SCNeXt 、SE-SCNet。
在 ImageNet 的比較結果如下:
基本上有改用 Self-calibrated convolutions 就會提昇準確度。
Self-Calibrated Convolution v.s. Vanilla Convolution
為了更進一步驗證 Self-calibrated convolutions 的有效性,該論文參考了 DSN 在 ResNet-50 和 SCNet-50 的 res3 Stage 之後加入 Side supervisions ( Auxiliary losses ):
SCNet-50 很明顯地優於 ResNet-50 ,這現象間接表示 Self-calibrated convolutions 可以生成更豐富、更具鑑別度的特徵重現 。
另外該論文還對特徵圖進行可視化:
Design Choices
這邊是為了釐清「 Down-sampling 要作到什麽程度? 」、「 AVG 和 MAX Pooling 要用哪個? 」,對整體來說才是最好的:
Comparisons with Attention-Based Approaches
這部份則是和其他 Attention-based 方法做比較:
相比於其他方法來說,Self-calibrated convolutions 可在不增加參數量的狀況下,提昇模型的準確度,並可與一些額外嵌入的方法 ( Ex : Gather-Excite (GE) framework ) 進行整合。
Object Detection & Instance Segmentation
在物件偵測與實例分割的任務上,Baseline 分別是 Faster R-CNN 和 Mask R-CNN,相關實驗成果如下:
基本上也和前面的實驗有類似的現象,都有比 Baseline 好的表現。也表示 Self-calibrated convolutions 對模型的定位功能是有幫助的。
Keypoint Detection
對人體關節點的偵測也有類似的結果:
Conclusions
該論文提出新穎的 Self-calibrated convolutions,可在單一 Convolutional layer 之內異質地利用 Filters ,可對特徵做出具備適應性的 Calibration operation。
大量實驗證明 Self-calibrated convolutions 的有效性,可視化成果也進一步驗證該方法的 Attention 有做得更精準,且可輕易地嵌入其他神經網路架構上,提昇模型的表現能力。