【文献阅读】A2-Nets: Double Attention Networks
原文鏈接:https://arxiv.org/abs/1810.11579
學習捕獲長距離關系是圖像/視頻識別的基礎?,F有的CNN模型一般依賴于增加深度來對這種關系進行建模,效率非常低。作者提出了“雙注意力塊”,這是一種新的組件,它從輸入圖像/視頻的整個時空空間中聚集和傳播信息的全局特征,使后續的卷積層能夠有效地從整個空間訪問特征。該組件設計為兩步雙注意機制,第一步通過二級注意池將整個空間的特征集合成一個緊湊的集合,第二步通過另一個注意力自適應地選擇和分配特征到每個位置。
CNN天生就受到卷積運算的限制,卷積運算致力于捕獲局部特征和關系,并且在建模長距離相互依賴關系方面效率低下。雖然疊加多個卷積算子可以擴大接受域,但在實踐中也存在一些不利的問題。
作者提出的A2-Net的核心思想是首先將整個空間的關鍵特征收集到一個緊湊的集合中,然后自適應地將其分布到每個位置,這樣后續的卷積層即使沒有很大的接收域也可以感知整個空間的特征。
第一級的注意力集中操作有選擇地從整個空間中收集關鍵特征,而第二級的注意力集中操作采用另一種注意力機制,自適應地分配關鍵特征的子集,這些特征有助于補充高級任務的每個時空位置。
A2-Net與SENet、協方差池化、Non-local、Transformer有點類似,但是不同點在于它的第一個注意力操作隱式地計算池化特征的二階統計,并能捕獲SENet中使用的全局平均池化無法捕獲的復雜外觀和運動相關性;它的第二注意力操作從一個緊湊的袋子中自適應地分配特征,這比 Non-local、Transformer中將所有位置的特征與每個特定位置進行窮舉關聯更有效。
主要貢獻如下:
方法
設X∈Rc×h×wX\in \mathbb{R}^{c \times h \times w}X∈Rc×h×w為輸入,每個位置i=1,?,hwi=1, \cdots,hwi=1,?,hw的特征為viv_ivi?,定義
zi=Fdistr(Ggather(X),vi)z_i=F_{distr}(G_{gather}(X),v_i)zi?=Fdistr?(Ggather?(X),vi?)
為輸出:首先收集整個空間的特征,然后將其分配回每個輸入位置iii,同時考慮該位置的局部特征viv_ivi?。
這種先gatheringgatheringgathering再distributingdistributingdistributing的想法源于SENet,而SENet在收集過程中使用globalaveragepoolingglobal \space average \space poolingglobal?average?pooling而產生的單個全局特性被分發到所有位置,忽略了位置之間的不同需求。
而A2-Net中,更復雜的全局關系可以被一組緊湊的特征所捕獲,每個位置可以接收其自定義的全局信息,這些信息與現有的局部特征相輔相成,有助于學習更復雜的關系。
Feature Gathering
與只計算一階統計量的傳統平均池化和最大池化相比,雙線性池化能更好地捕捉和保持復雜關系。
雙線性池化就是將兩張輸入特征圖AAA和BBB里的特征向量對(ai,bi)(a_i,b_i)(ai?,bi?)做外積并相加:
Gbilinear(A,B)=ABT=∑?iaibiTG_{bilinear}(A,B)=AB^T=\sum_{\forall i}a_i b_i^TGbilinear?(A,B)=ABT=?i∑?ai?biT?
其中,A=[a1,?,ahw]∈Rm×hwA=[a_1,\cdots,a_{hw}] \in \mathbb{R}^{m \times hw}A=[a1?,?,ahw?]∈Rm×hw;B=[b1,?,bhw]∈Rn×hwB=[b_1,\cdots,b_{hw}] \in \mathbb{R}^{n \times hw}B=[b1?,?,bhw?]∈Rn×hw。在CNNs中,AAA和BBB可以是同層出來的特征圖A=BA=BA=B;也可以是兩個不同層出來的特征圖A=?(X;W?)A=\phi(X;W_{\phi})A=?(X;W??),B=θ(X;Wθ)B=\theta(X;W_{\theta})B=θ(X;Wθ?),W?W_{\phi}W??和WθW_{\theta}Wθ?是參數。
通過引入輸出變量G=[g1,?,gn]∈Rm×nG=[g_1,\cdots,g_n]\in \mathbb{R}^{m \times n}G=[g1?,?,gn?]∈Rm×n并且重寫第二個特征B=[bˉ1,?,bˉn]B=[\bar_1,\cdots,\bar_n]B=[bˉ1?,?,bˉn?],bˉi\bar_ibˉi?是一個hwhwhw維的行向量,輸出為
gi=AbˉiT=∑?jbˉijajg_i=A \bar_i^T=\sum_{\forall j}\bar_{ij}a_jgi?=AbˉiT?=?j∑?bˉij?aj?
上述公式不僅是計算二階統計量,輸出GGG實際上是一個視覺基元包,每個基元gig_igi?是通過收集局部特征用bˉi\bar_ibˉi?加權得到的;jjj為特征圖上的位置;iii為不同的AttentionMapsAttention \space MapsAttention?Maps。
進一步將softmaxsoftmaxsoftmax應用于BBB,∑jbˉij=1\sum_j \bar_{ij}=1∑j?bˉij?=1,可得到二階注意力池化過程為
gi=Asoftmax(bˉi)Tg_i=A \space softmax(\bar_i)^Tgi?=A?softmax(bˉi?)T
令A=?(X;W?)A=\phi(X;W_{\phi})A=?(X;W??),B=softmax(θ(X;Wθ))B=softmax(\theta(X;W_{\theta}))B=softmax(θ(X;Wθ?)),XXX為輸入的特征圖。
Feature Distribution
從整個空間中收集特征后的下一步是將它們分布到輸入的每個位置,這樣即使使用很小的卷積核,后續的卷積層也可以感知全局信息。
不像SENet那樣將相同的全局特性分布到所有的位置,而是在每個位置上根據特征viv_ivi?的需要分布一個自適應的視覺基元包來獲得更大的靈活性。
這是通過softattentionsoft \space attentionsoft?attention從Ggather(X)G_{gather}(X)Ggather?(X)中選擇一個特征向量子集來實現的:
zi=∑?jvijgj=Ggather(X)vi,where∑?jvij=1z_i=\sum_{\forall j}v_{ij}g_j=G_{gather}(X)v_i,\space where \space \sum_{\forall j}v_{ij}=1zi?=?j∑?vij?gj?=Ggather?(X)vi?,?where??j∑?vij?=1
V=softmax(ρ(X;Wρ))V=softmax(\rho(X;W_{\rho}))V=softmax(ρ(X;Wρ?)),其中WρW_{\rho}Wρ?為參數。
The Double Attention Block
將上面兩個注意步驟結合起來,形成雙注意塊里模塊:
Z=Fdistr(Ggather(X),V)=Ggather(X)softmax(ρ(X;Wρ))=[?(X;W?)softmax(θ(X;Wθ))T]softmax(ρ(X;Wρ))\begin{aligned} Z & =F_{distr}(G_{gather}(X), V) \\ & = G_{gather}(X)softmax(\rho(X;W_{\rho})) \\ & = [\phi(X;W_{\phi})softmax(\theta(X;W_{\theta}))^T]softmax(\rho(X;W_{\rho})) \end{aligned} Z?=Fdistr?(Ggather?(X),V)=Ggather?(X)softmax(ρ(X;Wρ?))=[?(X;W??)softmax(θ(X;Wθ?))T]softmax(ρ(X;Wρ?))?
總結
以上是生活随笔為你收集整理的【文献阅读】A2-Nets: Double Attention Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多渔:聊聊自媒体和流量变现
- 下一篇: 喜报 | 谱尼测试获得零跑科技第三方试验