【論文解讀】基于關(guān)系感知的全局注意力
標(biāo)題:《Relation-Aware Global Attention for Person Re-identification》
作者:Zhizheng Zhang et al.(中科大&微軟亞洲研究院)
文章:openaccess.thecvf.com/c
源碼:github.com/microsoft/Re
文章收錄于CVPR 2020,bib引用如下:
@article{zhang2020relation,
title={Relation-Aware Global Attention for Person Re-identification},
author={Zhang, Zhizheng and Lan, Cuiling and Zeng, Wenjun and Jin, Xin and Chen, Zhibo},
journal={CVPR},
year={2020}
}
二、論文解讀
這是一篇將注意力機制應(yīng)用于行人重識別(person re-identification)任務(wù)上的文章。自從注意力機制在NLP領(lǐng)域過渡到CV領(lǐng)域以來,不少文章已經(jīng)提出了很多基于注意力的改進,如Non-Local[1],SE[2],cSE[3],sSE[3],CBAM[4],Dual attention[5],Criss-Cross Attention[6],F(xiàn)ast Attention[7]等等,筆者認為,其無外乎就是從整體-局部、空間-通道、計算量-有效性這幾個維度進行改進。比如,Non-local旨在通過匯總來自所有位置的信息來增強目標(biāo)位置的特征。這個計算量是龐大的,因為它計算了每個點對之間的關(guān)系:

Non-Local雖然可以在特征圖的空間上捕捉長距離的依賴(上下文信息),但是當(dāng)我們輸入的特征圖尺度過大時,這顯存大多數(shù)情況下會爆炸。那么如何在合理的保持全局的感受野的同時,去減少顯存和運算量呢?于是很多人就往這上面改進,比如CC-Net[6],采用的是當(dāng)前位置與同一行和同一列像素的之間的相關(guān)性來得到水平和垂直方向之間的遠距離像素的上下文信息,并同時疊加兩個相同的模塊來間接的獲得全局的感受野,減少了計算量。

本文的主要貢獻點在于提出一個高效的“關(guān)系感知全局注意力”(Relation-aware Global attention, RGA)模塊,該模塊可以有效的捕獲全局的結(jié)構(gòu)信息,以便更好的進行注意力學(xué)習(xí)。具體來說,就是對每一個特征位置,為了更加緊湊地捕獲全局的結(jié)構(gòu)信息和局部的外觀信息,使用RGA模塊來將各種關(guān)系堆疊起來,即將所有的特征位置的成對相關(guān)性/親和力(correlations/affinities)與特征本身一起,使用一個淺層神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)出注意力。通過應(yīng)用RGA模塊,可以顯著的增強特征表示能力,從而學(xué)習(xí)到更具有判別力的特征。
這里簡單的介紹下行人重識別的任務(wù)是做什么的:
行人重識別,簡單來說就是要在不同的時間、地點或者相機上匹配到一個特定的人,屬于圖像檢索的內(nèi)容。其難點和核心便在于如何從雜亂的背景、姿態(tài)的多樣性以及存在遮擋等各種復(fù)雜多變的情況下,有效地從人像圖像中鑒別并提取出視覺特征(即區(qū)分出不同的人)。

注意力機制的本質(zhì)就是以某種方式來探索事物的內(nèi)在聯(lián)系,通過不同的操作來對原始的輸入進行一個要素的重分配,達到突出重要特征,抑制非重要特征的目的。作者認為,大多數(shù)的注意力只是通過在感受野有限的范圍內(nèi)利用卷積進行學(xué)習(xí),這使得在一個全局的范圍內(nèi)很難利用到豐富的結(jié)構(gòu)化信息。一種解決方案是在卷積層中使用空洞卷積,另一種解決方案是通過堆疊深度來達到一個全局信息的獲取,但無疑這兩種操作都會大大增加網(wǎng)絡(luò)的規(guī)模。此外,如[8]所述,CNN的有效感受野僅占整個理論感受野的一小部分。除此之外,Non-local [1] 也被提出來通過成對的關(guān)系/親和力來計算連接的去那種,使得神經(jīng)網(wǎng)絡(luò)能夠通過從所有位置到目標(biāo)位置之間的特征進行加權(quán)求和,從而捕獲到全局的信息。然而,Non-local卻忽略了許多豐富的全局信息探索。因為它僅僅是簡單地將學(xué)習(xí)到的關(guān)系/親和力當(dāng)做權(quán)重來聚合特征。這種使用關(guān)系的確定性方式(即加權(quán)求和的方式)具備較弱的挖掘能力,并且也缺乏足夠的適應(yīng)性。因此,作者認為可以通過引入一種建模函數(shù),從關(guān)系中挖掘出有效的信息,同時利用此類有價值的全局范圍內(nèi)的結(jié)構(gòu)信息來引導(dǎo)注意力的學(xué)習(xí)。

重點關(guān)注下圖(c),即本文所提出來的RGA模塊。RGA模塊是通過同時考慮全局的關(guān)系信息來學(xué)習(xí)注意力。對于每一個特征向量i(這里取i=1為例),作者通過將當(dāng)前特征向量(i=1)與其余特征向量直接進行兩兩的堆疊,得到?
?,其代表著全局范圍內(nèi)的關(guān)系信息。注意到,這里?
?。不同于圖(a)的那種方式缺乏全局的感知和圖(b)的那種方式?jīng)]有充分不同特征向量之間的關(guān)系,所提出的RGA注意力模塊,是通過一個具有全局范圍關(guān)系的學(xué)習(xí)函數(shù)來確定的,其中包含作為輸入的結(jié)構(gòu)信息??梢钥闯觯岬降年P(guān)系表示中的結(jié)構(gòu)信息包括了親和信息和位置信息,有助于語義學(xué)習(xí)和注意力推斷。
方法部分梳理
給定一個特征集合?
?,其中?
?表示特征/特征向量/特征節(jié)點,?
?為特征維度,?
?為特征的數(shù)量。注意力便是要根據(jù)各個特征之間關(guān)系(也稱為親和性或者相似性)的重要程度,來為每個特征生成一個注意力系數(shù)(也稱為親和系數(shù))。如上所示,圖(a)是直接對每個特征向量都獨立的進行一個注意力學(xué)習(xí),缺乏全局的視野。一些彌補的方式便是通過利用空洞卷積或者堆疊卷積塊來捕獲全局的信息,但這樣計算量明顯是太大了。圖(b)這種方式是通過將多個特征節(jié)點連接起來,然后通過全連接的方式去學(xué)習(xí)注意力。但是,當(dāng)節(jié)點數(shù)量過多時,會導(dǎo)致計算效率低下,而且難以優(yōu)化。圖(c)則是本文所提出來的關(guān)系感知全局注意力模塊,它有以下的兩個優(yōu)點:
更好地探索全局的結(jié)構(gòu)化信息以及知識挖掘(knowledge mining);
使用一個共享(節(jié)省參數(shù)量)的變換函數(shù)來為每一個獨立的特征位置去學(xué)習(xí)注意力;
這里相當(dāng)于就是利用局部的卷積運算操作來間接的等效替代全局的運算。主要的思想是分別挖掘出當(dāng)前特征節(jié)點與所有的特征節(jié)點之間的一個對與對之間的關(guān)系,并通過將這些關(guān)系對堆疊起來,來表示當(dāng)前特征節(jié)點的一個全局結(jié)構(gòu)化信息。具體來說,用?
?來表示第?
?個特征和第?
?個特征之間的親和性(affinity),對于特征節(jié)點?
?,其親和/關(guān)系向量為?
?。隨后,利用當(dāng)前特征本身與這些關(guān)系對,并通過一個可學(xué)習(xí)的變換函數(shù)(learned transformation function)來推斷出注意力?
?,這里?
?包含了全局的信息。從數(shù)學(xué)角度,作者這里通過一個圖?
?定義了特征的集合以及特征與特征之間的關(guān)系,其中便包含這?
?個特征的一個節(jié)點結(jié)合?
?以及一個邊緣集合?
?。于是,我們便可以將所有節(jié)點的關(guān)系對表示為一個親和矩陣?
?,這里令?
?。對于每一個?
?,令?
?定義為第R個節(jié)點的第?
?行,?
?定義為第R個節(jié)點的第?
?列。
對于第?
?個特征節(jié)點?
?,它相應(yīng)的關(guān)系向量?
?提供了一個緊湊的表示來捕獲全局結(jié)構(gòu)信息,比如包含了所有特征節(jié)點的位置信息和關(guān)系信息。每一個關(guān)系對定義了所有的節(jié)點與當(dāng)前節(jié)點的一個相似性,而當(dāng)它們在關(guān)系向量中的位置表示特征節(jié)點的位置(即索引)時,關(guān)系向量反映了所有節(jié)點相對于當(dāng)前節(jié)點的一種聚類狀態(tài)和模式,而這將有利于整體確定?
?的相對重要性(注意力)。

基于空間的關(guān)系感知全局注意力 ( Spatial Relation-Aware Global Attention )
給定一個中間的特征張量?
?,這里?
?為CNN的某一層輸出特征圖,作者這里設(shè)計了一個RGA-S來學(xué)習(xí)一個尺度大小為?
?的空間關(guān)系圖。這里按通道的劃分方式將每個空間位置處?
?維特征向量作為特征節(jié)點。所有空間位置形成?
?個節(jié)點的圖
?。如圖(a)所示,對空間位置進行光柵掃描,并將其標(biāo)識號指定為1,···,N。然后,計算出每個節(jié)點對之間的關(guān)系,這里利用點積的方式求出:

這里?
?和?
?為兩個嵌入函數(shù)(其實就是通過一個1x1的卷積+BN+ReLU來實現(xiàn))。同理,我們也可以通過同樣的方式來計算出?
?。于是,我們便可以利用關(guān)系對?
?來描述?
?和?
?之間的雙向關(guān)系。最后,以此類推,我們便可以計算出所有節(jié)點之間的關(guān)系對,從而得到一個親和矩陣?
?。然后,我們將這個關(guān)系對與原來的輸入特征節(jié)點聯(lián)結(jié)起來,通過一個全局平均池化求出相應(yīng)的權(quán)重值,最后再通過Sigmoid激活函數(shù)來生成相應(yīng)的權(quán)重圖。
基于通道的關(guān)系感知全局注意力 ( Channel Relation-Aware Global Attention )
跟上面差不多,只不過計算方式不一樣。
總結(jié)
本文提倡的觀點是,要直觀地判斷一個特征節(jié)點是否重要,就應(yīng)該知道全局范圍的特性,這樣便可以通過得到進行決策所需要的關(guān)系信息,來更好地探索每個特征節(jié)點各自的全局關(guān)系,從而更好地學(xué)習(xí)注意力。整篇文章給人的感覺可讀性非常差,作者在里面對一些名稱的定義并沒有進行一個統(tǒng)一,讀起來云里霧里,涉嫌過度包裝的成分,缺乏嚴謹性。感覺邏輯性并沒有特別強,文章的核心很難get到,很疑惑審稿人真的有認真的去研究過這篇文章是不是真的能work?不過仔細想想也能體諒,畢竟現(xiàn)在注意力這塊想發(fā)表到頂會上的難度越來越大,各個維度都被人魔改成不成樣,很難找到一個標(biāo)新立異的點切進去,所以只能靠花樣的包裝來刺激審稿人的神經(jīng)。整體來說,創(chuàng)新性不是非常強,說白了還是在講故事,還是沒有從本質(zhì)上創(chuàng)新,有點在玩改造積木的感覺。注意力方式跟其他注意力之間沒啥大的區(qū)別,結(jié)合不同特征圖的信息,然后合并起來,通過一個全連接或者普通的1x1或者3x3操作,最后再通過一個GAP和Sigmoid/Softmax輸出。至于為什么能有效的降低計算量,只不過這里將一些計算量大(Fully connection)的操作換成小的操作(Conv 1×1)。(全連接>3×3卷積>1×1卷積)
套路還是那個套路,只不過看誰的故事講的好。
Reference:
[1] Non-local Neural Networks. (CVPR2018)
[2] Squeeze-and-Excitation Networks. (CVPR2018)
[3] Concurrent Spatial and Channel Squeeze & Excitation in Fully Convolutional Networks. (MICCAI 2018)
[4] CBAM: Convolutional Block Attention Module. (ECCV 2018)
[5] Dual AttentionNetwork for Scene Segmentation. (CVPR 2019)
[6] CCNet: Criss-Cross Attention for Semantic Segmentation. (ICCV 2019)
[7] Real-time Semantic Segmentation with Fast Attention. (arxiv)
[8] Understanding the effective receptive field in deep convolutional neural networks. (NeurIPS 2016)

往期精彩回顧
本站知識星球“黃博的機器學(xué)習(xí)圈子”(92416895)
本站qq群704220115。
加入微信群請掃碼:
