雖然CNN中

自底向上

區域性卷積操作

可以匹配自然影象的一些統計特性,但是它同時也限制了模型

捕獲長距離的上下文資訊的能力

。而這種長距離資訊在很多視覺任務中都很有用,如在分割任務中,我們需要分類每一個畫素,但同一類目標的畫素之間存在很強的長距離上下文資訊(道路,建築物等),如果能加強或者高亮這種長距離關係,效能將會有很大提升。

由於卷積操作只能處理一個區域性鄰域,

在區域性的感受野範圍內,將空間和特徵維度上的資訊進行聚合。

要想實現長距離依賴,需要將多個卷積操作進行堆疊,透過資料連續傳播訊號。這樣會使得計算無效且很難被最佳化。

經典的CNN框架,如VGG/Incepetion/ResNet等,都在一定程度上解決上下文問題,其理論感受野大於了原圖,

但由於實際感受野遠小於理論感受野,上下文資訊還沒有被完全挖掘。

常見的CNN結構都是獲取通道間的關係都是區域性的,這種區域性關係就造成了很難捕獲空間上的上下文關係。

可見,如何設計能更有效捕獲上下文資訊的結構將更有益於視覺任務效能。

SENet

Jie Hu, Li Shen, Gang Sun。

SENet:Squeeze-and-Excitation Networks. // CVPR.2018

SENet結構贏得最後一屆

ImageNet的第一名

。SENet從特徵維度上進行設計,透過利用全域性池化層學習通道的權值,高亮重要的通道,減弱不重要的通道。由於

U=Ftr(X)

是一個區域性卷積操作,使得

U

的通道之間關係本質上是區域性的。而SENet使用全域性池化獲取了全域性資訊來引導通道選擇,使得之後的轉換可以更有效地利用有用的資訊通道。

主要包括兩個操作:(1)

Squeeze:

對於某個block裡面的輸出特徵map

U

,利用全域性池化操作,

捕獲每個通道的全域性上下文資訊

;(2)

Excitation:

為了能捕獲更完整的通道間的關係,需要對全域性池化後的結果進行變換,

獲取通道間的相關性。

這種變換函式需要滿足:a。它必須可以學習不同通道之間的關係;b。它的結構不能類似於one-hot形式,因為要學習不同的多個通道的權值。這裡使用了一個由兩個全連線層(也可以是1*1卷積)組成的bottleneck結構,最後再利用sigmod函式,將通道權值歸一化到0-1之間,利用每一個通道定位權值去scale每一個通道。這兩個操作起到了

通道的特徵選擇作用,高亮重要的通道,抑制不重要的通道。

這個可以看作通道間的attention

GENet

Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Andrea Vedaldi。

GENet:Gather-Excite: Exploiting Feature Context in Convolutional Neural Networks// NIPS.2018

CVPRNIPS 2018--探究特徵上下文的力量

整體思想和SENet一樣,主要區別在於:

(1)透過分析不同的pool操作,包括區域性、全域性池化、深度分離卷積,

實驗結果證明全域性的要好

,SENet使用全域性pool;

(2)提出了兩種方案,一個是

引數不學習的即池化操作

,一個是

引數學習的即全域性深度分離卷積操作

SENet與GENet到底最佳化的是什麼問題?

都是從通道間的關係出發,利用pool等操作來引導學習通道間的相關性,高亮重要的通道。由於這兩個結構均在網路的開始便加入了網路,因此在之前就可以捕獲全域性資訊,不像經典CNN網路在最後捕獲。這樣的好處在於可以有效利用之前層的全域性資訊,並且可以將這些資訊傳遞到之後的層,更有效地挖掘了上下文資訊。

Non-Local Net

Xiaolong Wang, Ross Girshick, Abhinav Gupta, Kaiming He。

Non-local Neural Networks.// CVPR.2018

CVPRNIPS 2018--探究特徵上下文的力量

類似於self-attention的思想,捕獲長距離的上下文資訊,卷積和迴圈操作在構建一個block時,均在一個區域性範圍內處理,而忽略了長範圍的特徵依賴,該網路提出了Non-local操作,

利用輸入的所有位置的特徵響應的加權和作為某個位置的特徵響應。

這樣的好處在於(a)可以直接透過計算兩個位置的相似性來捕獲長距離的依賴,而不需要關注兩個位置的距離;(b)non-local操作可以操作任意大小的輸入,可以直接結合到其他操作中。

Non-local操作:

CVPRNIPS 2018--探究特徵上下文的力量

就是利用其它的所有輸入來表示某個位置的畫素,體現了non-local,而一般的標準卷積只是計算區域性範圍的畫素,同樣與全連線層也有不同,全連線利用的是學習到的卷積進行變換,且要求輸入大小固定,而non-local操作利用的是兩個位置之間的關係,且輸入大小任意。

f函式和g函式的實現:

CVPRNIPS 2018--探究特徵上下文的力量

對於g(x)直接使用線性變換,即利用1*1卷積可以實現,而f函式計算的是兩個位置的相似性,包括高斯函式、對映高斯函式、dot、cat。對映高斯函式使用的比較多:

CVPRNIPS 2018--探究特徵上下文的力量

這樣y即變成了一個softmax函式:

CVPRNIPS 2018--探究特徵上下文的力量

為了將non-local模組可以有效地插入到預訓練的模型中,non-local Block設計為殘差形式:

CVPRNIPS 2018--探究特徵上下文的力量

Non-Local Net最佳化的是什麼問題?

如果在某些層能夠引入全域性資訊,就能解決local操作無法看清的地方,使得該層學習更有效,為之後的操作帶來了更多有用的資訊,這樣在中間捕獲全域性資訊的操作,在一定程度上解決了上下文資訊不足的問題。