(ML) SKNet : Selective Kernel Networks

YEN HUNG CHENG
8 min readFeb 28, 2023

--

SKNet (Selective Kernel Networks)

以下為 SKNet (Selective Kernel Networks) 的網路架構

source

總共分為 3 個步驟

  1. Split
  2. Fuse
  3. Select

Split

source

F~ 與 F^ 的步驟如下

  1. input tensor 經過 grouped/depthwise convolution
  2. 經過 Batch Normalization
  3. 經過 ReLU

其中為了提高效率,將 F^ 傳統的 5x5 卷積核替換為 Dilation 3x3 的卷積核 dilation 大小為 2

dilation = 2

Fuse

source

U = U~ + U^

經過 Split 產生兩組 feature map 透過 element-wise summation 進行融合

source

Sc

接下來使用 Global Average Pooling 將融合後的 feature map 壓縮成 c x 1 x 1

source

Z

最後使用一個簡單的 FC(Fully-connected layer) 達到降維以提高效率

source

最後的維度是 d x 1 x 1 (d < c)

δ:ReLU

B:Batch Normalization

d x 1 x 1 (d < c)

為了研究 d 對模型產生的影響,研究中使用了 r (reduction ratio) 來控制它的數值

source

L:表示 d 的最小值(L = 32 是實驗中的經典設置)

Select

source

Soft attention vector (ac, bc)

ac 與 bc 產生的步驟如下

  1. 對 Z 做一次 FC(Fully-connected layer) 產生 a
  2. 對 Z 再做一次 FC(Fully-connected layer) 產生 b
  3. 最後對 a 與 b 做 softmax 得到以下公式

將 softmax 運算符號運用於通道數字中

Vc

Vc 的產生步驟如下

  1. ac 與 U~c 做 element-wise product
  2. bc 與 U^ 做 element-wise product
  3. 最後再做一次 element-wise summation 可以得到 Vc
source

由於 ac 與 bc 一同做過 softmax,所以相加為 1

最終輸出 VC (feature map) 是由各個 kernel 上的 attention weight 所得到的

Network Architecture

source

M:分之數量,也就是使用了幾組的 Kernel size

G:grouped convolution 的數量

r:reduction ratio

SKNet 架構與 ResNeXt-50 採用了相似的架構,使用了 SK Block 後,只比 ResNeXt-50 增加了約 10% 的參數量,算成本增加了約 5 %

Experiments

Comparisons to the state-of-the-arts

source

SENets / SKNets 都是基於在相應的 ResNeXt backbones (骨幹) 上

從實驗中可以發現,不管是在 224x224 和 320x320 的評估中,SKNet 都能夠獲得最佳的性能提升,參數量比 SENet 和 ResNeXt + CBAM 都要更低,且 SKNet-50 性能優於 ResNeXt-101

Comparisons on ImageNet validation set when the computational cost of model with more depth/width/cardinality is increased to match that of SKNet

source

當具有更多深度/寬度/基數的模型的計算成本增加以匹配 SKNet 時,SKNet-50 還是是比 ResNeXt-50 獲得 1.44% 的絕對改進,這代表 SK Block 是有效的

Performance with Respect to the number of parameters

source

從圖表中可以發現,SKNet 可以更有效率的運用參數

Lightweight models on ImageNet validation set

source

對於輕量化的模型 ShuffleNetV2 來說,SK Block 能夠提升性能,且也優於 SE Block,這代表在低端的設備上具有巨大的潛力

Ablation Studies

The dilation D and group number G

source

從實驗中可以發現,在 SKNet-50 中,使用不同大小的 kernel 是有益的,但是用過大的 kernel 只會增加參數量,性能也不會有所提升

Different combinations of multiple kernels

source

K3, K5, K7 代表 不同尺寸的 kernel size,從實驗中可以發現當路徑 M 增加時,error 通常會下降,最後可以發現 M=2 到 M=3 的性能效益很低(20.79 -> 20.76),所以為了權衡性能與效益,首選 M = 2

Attention results for two randomly sampled images with three differently sized targets (1.0x, 1.5x and 2.0x)

source

從實驗中可以發現在大多數的通道中,當目標放大時,大核(5x5)的注意力全中會增加,這代表 RF (Receptive Field) 大小也在自適應變大

Average mean attention difference (mean attention value of kernel 5×5 minus that of kernel 3×3) on SK units of SKNet-50

source

在早期的 layer 裏面,物體變大時,更大的 nernel 的 attention 會增加,但是在後期的 layer 中,這個規律將不復存在,也就是說在後期的 layer 中,可能能夠將 SK Block 換成其他的 Block 來提升整體網路的性能

Conclusion

從最初的 split 分成兩個支流的 RF (Receptive Field) 大小是不同的,如果圖片中的物體較大,在 SKNet 中就會走 RF (Receptive Field) 較大的支流,物體較小的話,就會趨向於較小的 RF (Receptive Field) 支流,若單單只靠這兩個支流就能實現的話,之前的 GoogLeNet 就能實現了,SKNet 的架構能夠動態調整 RF (Receptive Field) 的大小,GoogLeNet 是不能實現的,其中的差異就是在 select 的地方,在 U^ 與 a 進行的是乘法運算,若 a 向量中有元素趨近於 0 的話,對應 channel 的 feature map 它給出的訊息量就會比較少,反之若趨近於 1 的話,給出的訊息就會較多,最後整合的 feature map V 中,可以發現其中包含了所有通道的訊息,而兩個通道之間的比例,是可以根據圖片中的訊息動態來選擇的

--

--