論文閱讀 CVPR 2019 — Graph-Based Global Reasoning Networks
該論文提出 Global Reasoning unit,將影像特徵投影成 Graph 的節點特徵,並以 Graph convolution 推論不同區域之間的關聯性,使模型在全域視野中學習具備鑑別度的特徵,可輕易地與現有 CNN 架構整合,強化其性能。
論文連結:
《 Graph-Based Global Reasoning Networks 》
作者:
Introduction
對於許多電腦視覺相關任務來說,影像的任意區域之間的關聯性其實是非常重要的,以下圖為例:
對人類來說,可以輕易地透過著色區塊判讀「 這個人在打電動 」的涵義。但對於 CNNs 來說,若不堆疊多層的 Convolution layer ,就很難捕捉到這種資訊。
為了解決這問題,該論文提出「 Global Reasoning unit ( GloRe ) 」,是個可以直接捕捉 Global 關聯性的單元。
作法大致上是將相關的局部資訊投影到 Interaction space ,以不同區域的特徵建構一個彼此相連的 Graph,再透過 Graph convolution 分析其關聯性後,投影回原來的座標空間:
如此一來,就能更早在 CNN 架構上取得關聯性資訊,並有助於相關的 Down-stream task 做出更好的結果。
Related Work
Global Context Modeling
過去也有些研究嘗試克服 Convolution 僅能處理局部資訊的限制,像是 PSP-Net 、DenseASPP 就結合 Multi-scale 的特徵來擴增單一層 Convolution layer 的視野域。Deformable CNNs 則透過而外學習偏移量 ( Offset ) 的手法來達到類似的目的。
SE-Net 使用 Global average pooling 概略描述影像在每個 Stage 的狀態。Nonlocal Networks 、Self-attention 、A²-Net 嘗試在每個位置上傳遞 Long-range 的資訊。
雖然該論文的作法也包含 Global 資訊,但不同之處在於 GloRe 有更進一步利用 Graph 來處理不同區域之間的關聯性推論:
Graph-based Global Reasoning
接下來會以公式描述該論文提出的 GloRe,其中有幾個 Notation 是共通的:
- G:Graph ,由 ( V, ε , A ) 構成
- V:Nodes ,指的是 Graph 上的每個節點
- ε:Edges ,指的是節點之間的連結
- A:Adjacent matrix ,用來紀錄每個節點與其他哪些節點相連
Overview
這個 GloRe 單元在運作時,可以分為以下 3 個步驟:
- 將 Coordinate space ( Ω ) 的特徵 ( X ) 投影至 Interaction space ( H ),形成對應的特徵 ( V )
- 在 Interaction space ( H ) 建構全連接的 Graph ( A_g ),並以 Graph convolution 推論節點之間的關聯性
- 將這些依照關聯性強化過得特徵投影回 Coordinate space ( Ω )
透過這 3 步驟得出的結果,可幫助神經網路學出對特定任務更有幫助的特徵重現,示意圖如下:
而接下來就每一步驟進行說明:
Step 1 : From Coordinate Space to Interaction Space
若將輸入特徵以 X 表示,那在這個步驟就是希望讓模型學出一個將 X 投影到 Interaction space 的 Projection function f(·) :
由於初衷是希望對各區域推論它們之間的關聯性,所以在 Projection function 是用一個線性變換 ( a.k.a weighted global pooling )來構成:
其中會進行學習的 Weight 是:
這部分和過往的類似研究有些不同,過去的方法會利用物件偵測模型來對 B 進行過濾,如果像素位置落在物件範圍框之外,b 會直接設定為 0,反之則設定為 1 。
而該論文的作者們不希望額外花時間、標註成本訓練物件偵測模型,所以這部分直接改以 Convolution 生成 b 。
在實作上為了減少輸入資訊的維度,f(X) 設計成:
B 的部分則是:
φ(·) 和 θ(·) 都是可學習的 Convolution layer ,使該方法可做到 End-to-end 的訓練 。
Step 2 : Reasoning with Graph Convolution
經過前一步驟的投影後,會得到一組可描述原輸入的 Graph ,那其實捕捉這組 Graph 的節點互動關係就等同於捕捉不同區域之間的關聯性。
作者們不希望像過去作法耗費大量運算資源去做 Pair-wise 的運算,所以這部分是以全連接的 Graph 處理,再透過 Graph convolution 學習對應的 Edge weights:
在訓練的過程中,每個節點會透過鄰接矩陣的 Edge Weights 學習對 Global 做到有益於該任務的特徵抽取,算是個資訊擴散 ( Diffusion ) 的過程,最後再交由一個線性變換來做 State update:
而實作上則是透過 2 組 1D Convolution 來做到這件事情:
這 2 組 1D Convolution 會分別作用在 Channel 和 Node 的維度上,主要是用來聚合資訊。
Step 3 : From Interaction Space to Coordinate Space
為了讓這個作法能和現有的 CNN 架構相容,就需要把這些關聯性資訊再投影回原來的 Coordinate Space ,作法和第 1 步驟非常相似:
這個 g(·) 相似於第 1 步驟的 f(·) ,也是個 Projection function:
作者們在實做過程中發現,這部份的 D 其實可以直接重用第 1 步驟的 B 就好:
可以減少運算量,又不會影響最終的準確度。
在投影回 Coordinate Space 之後還有再接一層 Convolution layer ,讓特徵的維度可與輸入對齊,並構成一種 Residual path 。
Deploying the Global Reasoning Unit
由於這個 GloRe 單元有著 Residual 的特性,所以可輕易地被整合在現有的 CNN 架構上,在不同 Stage 推論全域的關聯性。
在後續實驗中,該論文會在現有的模型架構上嵌入單個或多的 GloRe 單元,並形成不同的實例,這邊統一稱為:Graph-Based Global Reasoning Networks 。
Experiments
該論文的實驗包含影像分類、語意分割和行為辨識等任務,對應的資料集依序是 ImageNet 、Cityscapes 、Kinetics 。
Results on ImageNet
影像分類的部份,模型架構採用 ResNet-50 ,並先嘗試在不同 Stage 嵌入單個或多個相關模組:
上圖的 X 軸是計算量,Y 軸是準確度,相關的代號說明如下:
- R:Residual Networks
- NL:Nonlocal Block
- Ours:該論文提出的 GloRe 單元
- SE:Squeeze-and-Excitation
在不同方法的標示後面會由 ( n , m ) 紀錄在 Res3 和 Res4 嵌入的數量。以 R50+Ours(1,3) 為例,就是在 Res3 的地方嵌入 1 個額外的 GloRe 單元,然後在 Res4 嵌入 3 個 GloRe 單元。
以灰色色塊來看,該論文提出的 GloRe 單元就在差不多的運算量下,表現得比 Nonlocal Block 好。另外是 (0,1) 的表現比 (1,0) 好,作者們推論是 Res4 的特徵比較具備語意資訊。
接著作者們就開始在 Res4 的地方嵌入更多 GloRe 單元,也就是上圖綠色色塊的部份,並發現這樣做確實會改善準確度,並能將 ResNet-50 的準確度提昇到超越 ResNet-200 ,而計算量只有 30% ,參數量 50% ,成效相當驚人。
這現象也表示, GloRe 單元可以捕捉到的特徵,並不是單純疊加 Convolution layer 就能得到的。
該論文也嘗試疊加 GloRe 單元的 Graph convolution layer 層數:
但並沒有獲得顯著的改善,最終就選用 1 層的設定 。
接著是在不同架構上嘗試嵌入 GloRe 單元的成效:
整體來看,和前面在 ResNet-50 架構上實驗的結果類似,但在較深架構的 Res3 使用 GloRe 單元的成效有比 ResNet-50 好,作者們推論是因為較深的模型在 Res3 就可取得比淺層模型更具備資訊量的特徵。
Results on Cityscapes
而語意分割的部份,首先嘗試的模型架構是 FCN ,但其中的 Backbone 也是 ResNet-50 ,並且有在 ImageNet 上 Pre-train 過。
實做上有結合 Multi-grid 的技巧,並再嵌入 GloRe 單元進行比較:
上表是在 Validation set 的改善情況,而在 Testing set 的比較結果如下:
這邊也很驚人的是,有加上 GloRe 單元的作法,在架構僅有 50 層的時候,就已經比過去某些採用 101 層的作法,有更準的結果。
該論文還將分割結果進行可視化的比較:
可以特別留意上圖的黃色框部份, GloRe 單元可以強化 CNN 的泛化能力,使模型能捕捉更多細節,避免混淆的情況發生。
Results on Kinetics
針對行為辨識的任務,該論文是想驗證 GloRe 單元除了處理 2D 影像外,是否也能泛用至 3D 的資料上。
模型的 Backbone 仍採用 ResNet ,並嵌入 GloRe 單元進行比較:
確認有效後,有與其他幾種不同方法做比較:
這邊作者們是想說明,用單純的架構加入 GloRe 單元,就能比當時的 SOTA 得到更好的結果。
Visualizing the GloRe Unit
這部份是針對 GloRe 單元的 Projection weight 來做可視化:
上圖的紅色是正數,綠色是負數,而顏色的亮度越高就代表值越大。
這部份的結果也如同作者們的預期,不同的 Projection weight 會去關注不同類型的特徵。
Conclusion
該論文提出一個可以有效做到全域關聯性推論的方法,稱為 「 Global Reasoning unit ( GloRe ) 」。
這方法會將一般 Coordinate space 的特徵投影至 Interaction space,並直接以全域的視野來推論特徵之間的關聯性。
GloRe 有著輕量、易於優化及整合的特性,可以在現有的 CNN 架構上嵌入此單元,並有效地學習互補的特徵,強化模型的效能。