ACNet: 特別的想法,騰訊提出結合注意力卷積的二叉神經樹進行細粒度分類 | CVPR 2020


論文提出了結合注意力卷積的二叉神經樹進行弱監督的細粒度分類,在樹結構的邊上結合了注意力卷積操作,在每個節點使用路由函數來定義從根節點到葉子節點的計算路徑,結合所有葉子節點的預測值進行最終的預測,論文的創意和效果來看都十分不錯

來源:曉飛的算法工程筆記 公眾號

論文: Attention Convolutional Binary Neural Tree for Fine-Grained Visual Categorization

Introduction


  細粒度分類(Fine-Grained Visual Categorization, FGVC)是圖片分類的一個分支,由於類別間的相似性非常大,一般人比較難區分,所以是個很有研究意義的領域。受神經樹研究的啟發,論文設計了結合注意力卷積的二叉神經樹結構(attention convolutional binary neural tree architecture, ACNet)用於弱監督的細粒度分類,論文的主要貢獻如下:

  • 提出結合注意力卷積的二叉神經樹結構ACNet用於細粒度分類,在樹結構的邊上結合了注意力卷積操作,在每個節點使用路由函數從而定義從根節點到葉子節點的計算路徑,類似於神經網絡。這樣的結構讓算法有類似於神經網絡的表達能力,以及能夠從粗到細的層級進行特征學習,不同的分支專注於不同的局部區域,最后結合所有葉子節點的預測值進行最終的預測
  • 添加attention transformer模塊來加強網絡獲取關鍵特征進行准確分類
  • 在三個數據集CUB-200-2011、Stanford Cars和Aircraft上達到了SOTA

Attention Convolutional Binary Neural Tree


  ACNet包含4個模塊,分別是主干網絡(backbone network)、分支路由(branch routing)、attention transformer和標簽預測(label prediction),如圖2所示。將ACNet定義為$(\mathbb{T},\mathbb{O})$,$\mathbb{T}$為樹狀拓撲結構,$\mathbb{O}$為樹邊的操作集。論文使用滿二叉樹$\mathbb{T}={\mathcal{V},\mathcal{E}}$,$\mathcal{V}={v_1,...,v_n }$為節點,$\mathcal{E}={e_1,...,e_k }$為邊,對於樹深$h$,共$n=2h-1$節點,$k=2h-2$邊。每個節點為路由模塊,決定下一個計算節點,邊采用attention transformer進行操作。另外,滿二叉樹$\mathbb{T}$采用了非對稱結構,例如左邊使用兩個transformer模塊,右邊使用一個transformer模塊,這樣有利於提取不同尺寸的特征

Architecture

  • Backbone network module

  由於細粒度類別的關鍵特征都是高度局部的,需要使用相對較小的感受域來提取特征,因此主干網絡使用截斷的VGG-16網絡,輸入改為$448\times 448$

  • Branch routing module

  分支路由用來決定子節點的選擇,結構如圖2b所示,$k$-th層的$i$-th路由模塊$\mathcal{R}_i^k(\cdot)$由$1\times 1$卷積和global context block組成

  global context block的大概結構如上圖a所示,來自GCNet的論文中。在context modeling和fusion步驟使用了simplified NL block,在transform步驟使用了SE block,這個模塊能夠很好地結合上下文信息來提取特征,最后使用global average pooling、element-wise square-root、L2正則化以及sigmoid激活的全連接層輸出標量$[0,1]$
  假設分支路由模塊$R_i^k(x_j)$輸出樣本$x_j\in X$到右邊節點的概率為$\phi_i^k(x_j)\in [0,1]$,則輸出到左邊節點的概率為$1 - \phi_i^k(x_j)$,概率越大的節點對最終結果的影響越大

  • Attention transformer

  Attention transformer模塊用於加強網絡獲取關鍵特征的能力,在$3\times 3$卷積后面插入結構如圖2c所示的attention模塊,該模塊的旁路輸出一個大小為$\mathbb{R}^{C\times 1\times 1}$的channel attention map對輸入特征進行加權

  • Label prediction

  對於ACNet的每個葉子節點,用標簽預測模塊$\mathcal{P}i$來預測目標$x_j$的類別,$r_i^k(x_j)$為目標$x_j$從根節點到k層第i個節點的累計概率,預測模塊由$1\times 1$卷積層、max pooling層、L2歸一化層、全連接層和softmax層組成,通過求和所有的葉子節點的預測結果和路徑累計概率的乘積得到最終的預測$\mathcal{C}(x_j)={\sum}{i=1}{2{h-1}}\mathcal{P}_i(x_j)r_i^h(x_j)$

  最終的預測結果$\mathcal{C}(x_j)$的各項和為1,論文對其進行了證明,有興趣的可以去看看,主要基於葉子節點的累計概率和為1,各葉子節點的預測結果和也為1

Training

  • Data augmentation

  在訓練階段,使用裁剪和翻轉操作進行數據增強,首先將圖片縮放至短邊512像素,然后隨機裁剪到$448\times 448$,隨機進行翻轉

  • Loss function

  ACNet的損失函數由兩部分組成,分別為葉子節點預測產生的損失以及最終結果產生的損失。$h$為樹高,$y*$為GT,$L(\mathcal{P}_i(x_j),y)$為最終預測結果的負對數似然損失,$L(\mathcal{P}(x_j),y^)$為第$i$個葉子預測結果的負對數似然損失

  • Optimization

  主干網絡使用在ILSVRC上預訓練的模型,使用"xavier"進行所有卷積層的隨機初始化,整個訓練過程包含兩階段,第一階段固定主干網絡訓練60周期,第二階段則使用小學習率對整個網絡進行200周期的fine-tune

Experiments


  訓練共需要512G內存,8張V100,下面的實驗主要跟弱監督的細粒度算法進行對比,即不需要額外的標注的細粒度算法

CUB-200-2011 Dataset

Stanford Cars Dataset

Aircraft Dataset

Ablation Study

  • Effectiveness of the tree architecture

  如圖5所示,使用樹狀結構能夠顯著提升准確率,使用Grad-CAM產生heatmap來對葉子節點對應的響應區域進行可視化,發現不同的葉子節點關注的特征區域各不一樣

  • Height of the tree

  • Asymmetrical architecture of the tree

  論文對比左右路徑的attention transformer數的對稱性對識別的影響

  • Effectiveness of the attention transformer module

  如圖5所示,attention transformer模塊能夠有效地提升模型的准確率

  • Components in the branch routing module

  論文發現不同的分支路由模塊關注的特征區域也不一樣,圖6的可視化結果分別為圖2的R1、R2和R3節點使用Grad-CAM得到的響應區域

CONCLUSION


  論文提出了結合注意力卷積的二叉神經樹進行弱監督的細粒度分類,在樹結構的邊上結合了注意力卷積操作,在每個節點使用路由函數來定義從根節點到葉子節點的計算路徑,結合所有葉子節點的預測值進行最終的預測,論文的創意和效果來看都十分不錯



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】

work-life balance.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM