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-20十一、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=2^h-1$節點,$k=2^h-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)$,機率越大的節點對最終結果的影響越大spa

  • 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)$3d

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

Training

  • Data augmentation

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

  • 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的R一、R2和R3節點使用Grad-CAM獲得的響應區域

CONCLUSION


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



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

work-life balance.

相關文章
相關標籤/搜索