相關attention - 5 - GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond - 1 - 論文學習
Attention Convolutional Binary Neural Tree for Fine-Grained Visual Categorization
Abstract
由於變形、遮擋、光照等引起的類內方差高,而類間方差低,導致細粒度視覺分類(FGVC)是一項重要但具有挑戰性的任務。針對弱監督FGVC的這些問題,提出了一種注意力卷積二叉神經樹結構。具體來說,我們結合了沿着樹結構邊緣的卷積運算,並使用每個節點中的routing函數來確定樹內的根到葉子的計算路徑。最終的決策是根據葉節點的預測的總和來計算的。深度卷積運算學習去捕捉對象的表征,樹狀結構特征化從粗到細的層次特征學習過程。此外,我們使用注意力轉換器模塊來強制網絡捕捉具有區分度的特征。在CUB-200-2011,Stanford Cars和 Aircraft數據集上的幾個實驗表明,我們的方法比其他最先進的方法表現還好。代碼可見https://isrc.iscas.ac.cn/gitlab/research/acnet
1. Introduction
細粒度視覺分類(FGVC)旨在區分子級對象類別,如不同種類的鳥類[42,52]和花卉[1]。由於變形、遮擋和光照引起的類內視覺差異大,類間視覺差異小,使得FGVC是一項極具挑戰性的任務。
近年來,卷積神經網絡(CNN)由於其驚人的分類性能,在FGVC任務中占據主導地位。有些方法[29,26]側重於提取有區分度的微妙部分,以獲得准確的結果。然而,單個CNN模型難以描述從屬類之間的差異(見圖1)。在[34]中,針對FGVC提出了object-part注意力模型,利用對象和part的注意力去利用細微和局部的差異來區分子類別。驗證了在FGVC中使用多個聚焦於不同目標區域的深度模型的有效性。
受[41]的啟發,我們設計了一種用於弱監督FGVC的注意力卷積二叉神經樹結構(ACNet)。它結合了沿着樹結構邊緣的卷積運算,並使用每個節點的routing函數來確定樹內的根到葉子的計算路徑作為深度神經網絡。這種設計的架構使我們的方法繼承了深度卷積模型的表征學習能力,以及從粗到細的層次特征學習過程。這樣,樹形結構中的不同分支針對不同的局部目標區域進行分類。最終的決策計算為所有葉節點預測的總和。同時,我們使用注意力轉換器加強樹狀網絡來捕獲判別特征,以獲得准確的結果。采用負對數似然損失,通過反向傳播的隨機梯度下降對整個網絡進行端到端的訓練。
值得注意的是,與[41]學習過程中自適應增加樹結構相反,我們的方法使用預先確定深度和軟決策方案的完全二叉樹結構去在每個root-to-leaf路徑上學習有區分度的特性,這避免了修剪誤差,減少了訓練時間。此外,注意力轉換器模塊的使用進一步幫助我們的網絡實現更好的性能。在CUB-200-2011[42]、Stanford Cars[25]和Aircraft[32]數據集上進行了多次實驗,結果表明,與最先進的方法相比,該方法具有良好的性能。我們還進行了消融研究,以全面了解該方法中不同組成部分的影響。
本文的主要貢獻總結如下。(1)針對FGVC提出了一種新的注意力卷積二叉神經樹結構。(2)引入注意力轉換器,便於在樹狀網絡中進行從粗到細的層次特征學習。(3)在三個具有挑戰性的數據集(如CUB-200-2011、Stanford Cars和Aircraft)上進行的大量實驗證明了我們方法的有效性。
2. Related Works
Deep supervised methods. 一些算法[51,31,18,50]使用對象注釋甚至是密集的part/關鍵點注釋來指導FGVC的深度CNN模型訓練。Zhang等人[51]提出學習兩個檢測器,即整體對象檢測器和part檢測器,基於pose-normalized表征來預測細粒度類別。Liu等人[31]提出了一種全卷積注意力網絡,該網絡會窺探局部判別區域,以適應不同的細粒度域。[18]中的方法構建了part-stacked的CNN體系結構,通過建模目標parts的細微差異來明確解釋了細粒度識別過程。在[50]中,所提出的網絡由檢測子網和分類子網組成。檢測子網絡用於生成小的語義part候選進行檢測;而分類子網絡可以從檢測子網絡檢測到的parts中提取特征。然而,這些方法依賴於勞動密集型的part注釋,這限制了它們在真實場景中的應用。
Deep weakly supervised method. 然而,最近的方法[52,12,38,46]只需要圖像級的注釋。Zheng等人[52]引入了一種多注意力CNN模型,其part生成和特征學習過程相互增強以得到准確的結果。Fu等[12]開發了一個循環注意力模塊,在多個尺度上以相互增強的方式遞歸學習區分區域注意力和基於區域的特征表征。最近,Sun等人[38]利用每個輸入圖像的多個注意區域特征來調節不同輸入圖像之間的多個目標parts。在[46]中,通過一種新的非對稱多流體系結構,學習了一組卷積濾波器來捕獲特定類的判別patches。然而,上述方法只是將注意力機制整合到一個單一的網絡中,影響了它們的性能。
Decision tree. 決策樹是一種有效的分類算法。它根據特征的特點選擇合適的方向。可解釋性的內在能力使深入了解深度學習的內在機制成為有希望的方向。Xiao[48]提出了全功能神經圖的原理,設計了分類任務的神經決策樹模型。frost和Hinton[11]開發了一個深度神經決策樹模型,以理解學習網絡中特定測試用例的決策機制。Tanno等人[41]提出了自適應神經樹,將表征學習融合到決策樹的邊緣、routing函數和葉節點中。在本文中,我們將決策樹與神經網絡相結合,實現了子分支選擇和表征學習。
Attention mechanism. 注意機制在深度學習模仿人類視覺機制中發揮了重要作用。在[49]中,注意力被用來確保學生模型和教師模型一樣集中在有區別的區域。在[21]中,我們提出了級聯注意力機制來引導CNN的不同層,並將它們連接起來獲得具有區分度的表征,作為最終的線性分類器的輸入。Hu等人從通道的角度應用注意力機制,並根據每個通道的貢獻來分配不同的權重。[47]中的CBAM模塊結合了有着特征map注意力的空間區域注意力。與上述方法不同的是,我們將注意機制應用於樹結構的每個分支上,以得到有區分度的區域進行分類。
3. Attention Convolutional Binary Neural Tree
我們的ACNet模型旨在將X中的每個目標樣本分類到子類別中,即為X中的每個樣本賦予類別標簽Y,該模型包含着4個模塊,有backbone網絡、分支routing、注意力轉換器和標簽預測模塊,如圖2所示:
將ACNet定義為一個對,其中
表示樹的拓撲,
表示沿着
邊的操作集。我們使用完全二叉樹
是結點集,n表示結點的總數,
是結點之間的邊集,k是邊的總數。因為我們使用的是完全二叉樹
,所以n = 2h - 1,k=2h-2,其中h表示
的高度。
中的每個結點是通過一個決定樣本發送路徑的routing模塊形成的,而注意力轉換器被用作沿邊的操作。
同時,我們在完全二叉樹上使用非對稱結構,即在左邊使用兩個注意力轉換器,右邊使用一個注意力轉換器。這樣,網絡就能夠捕獲不同尺度的特征,用以得到准確的結果。ACNet模型的詳細結構將在下面進行描述。
3.1. Architecture
Backbone network module. 由於細粒度分類中的判別區域被精准定位[46],我們需要通過限制卷積濾波器和池化核的大小和步幅來使用提取特征的一個相對較小的接受域。利用截斷后的網絡作為backbone網絡模塊提取特征,在ILSVRC CLS-LOC數據集[35]上進行預處理。與[38]類似,我們使用的輸入圖像大小為448×448,而不是默認的224×224。值得注意的是,ACNet也可以在其他預先訓練過的網絡上運行,如ResNet[15]和Inception V2[19]。在實際工作中,我們使用VGG-16[37](保留從conv1_1到conv4_3的層數)和ResNet-50[15](保留從res_1到res_4的層數)作為backbone網絡。
Branch routing module. 如上所述,我們使用分支路由模塊(routing module)來確定樣本將被發送到哪個子節點(即左子節點或右子節點)。具體來說,如圖2(b)所示,在第k層的第i個routing module 使用內核大小為1x1的一個卷積層,后面再跟着一個global context block[4]。global context block是簡化后的NL block[44]和Squeeze-Excitation (SE) block [16]的改良版,其在context modeling和fusion步驟中與簡化后的NL block共享相同的設置,與SE block共享transform步驟。這樣,上下文信息就被合並來更好地描述目標。在這之后,使用一個global average pooling[27]、element-wise square-root和L2 normalization[28],以及一個帶有sigmoid激活函數的全連接層去生成一個值在[0,1]范圍內的標量值,用以表示樣本被發送到左或右分支的概率。用
表示第j個樣本
被送到由分支routing module
產生的右子分支的輸出概率,其中
,
(因為二叉樹的第k層最多有2k-1個結點)。因此,樣本
被送到左分支的概率為
。如果概率
大於0.5,我們傾向於右路徑而不是左路徑;否則,左分支將主導最后的決策。
Attention transformer. 注意力轉換器模塊用於強制網絡捕捉判別特征,見圖3。根據深度網絡[30]的經驗接受域遠小於理論接受域的事實,具有區分度的表征應該是由我們所提出的樹狀結構的新層次上的更大的接受域形成的。為此,我們將 Atrous Spatial Pyramid Pooling (ASPP) 模塊[5]集成到注意力轉換器中。具體來說,ASPP模塊提供了不同的特征圖,每個特征圖都有不同的尺度/接受域和注意模塊。然后,通過4個dilated rates不同的平行dilated卷積,即1,6,12,18,生成多尺度特征圖。在並行擴張卷積層之后,通過一個帶有1×1內核和stride=1的卷積層來融合串聯的特征映射。在ASPP模塊之后,我們插入一個注意力模塊,該模塊使用 batch normalization(BN)層[19]、全局平均池化(GAP)層、全連接(FC)層和ReLU激活函數、FC層和sigmoid函數生成一個大小為RC×1×1的通道注意映射。這樣,網絡就被引導去關注有意義的特征以獲得准確的結果。
Label prediction. 對於ACNet模型上的每個葉結點,我們使用標簽預測模塊(i=1,...,2h-1)去預測目標xj的從屬類別,可見圖2。讓
表示在第k層,目標xj從根節點傳到第i個節點的累積概率。比如,如果從根節點到結點
在樹上的路徑為
,即目標xj總是被送到左孩子分支,即
。如圖2所示,標簽預測模塊由一個batch normalization層、一個核大小為1x1的卷積層、一個maxpooling層、一個sqrt和L2 normalization層和一個全連接層組成。然后,第j個目標xj的最終預測結果
被計算為 所有葉節點預測值與傳遞的分支routing modules生成的累積概率相乘的和,即
(即最后一層的2h-1個葉結點的結果)。強調
,即xj屬於所有從屬類的置信度和為1(即預測類的概率總和為1)
其中是葉結點層第i個結點的累積概率(即從根節點到該葉子結點的概率)。下面使用一個簡短的描述證明
Proof. 是第k層中第i個分支routing module
的累積概率。因此
相應左右孩子的累積概率分別表示為
和
。首先,我們說明累積概率
和
的和等於其父節點
的累積概率。即:
同時,由於ACNet中的完全二叉樹,我們有
。然后可以進一步得到
。該過程是迭代執行的,有
。除此之外,因為類別預測
由softmax層生成(可見圖2),所以有
。因此:
如圖2所示,當圖像中出現遮擋時,ACNet仍能夠定位有區分度的目標parts和鳥的上下文信息。盡管FGVC中總是存在較高的類內視覺方差,ACNet使用一個從粗到細的層次特征學習過程來利用有區分度的特征進行分類。這樣,樹結構中的不同分支關注不同的細粒度對象區域,以獲得准確的結果。
3.2. Training
Data augmentation. 在訓練階段,我們使用裁剪和翻轉操作來增強數據,以建立一個穩健的模型來適應對象的變化。也就是說,我們首先重新縮放原始圖像,使其較短的邊為512像素。之后,我們隨機裁剪大小為448×448的patches,然后隨機翻轉,生成訓練樣本。
Loss function. 我們的ACNet的損失函數由兩部分組成,即葉節點預測的損失,以及最終預測的損失——由所有葉節點預測的總和計算得出。也就是說:
其中h是樹的高度,
是最終預測
的負對數似然損失,ground truth標簽為y*,
為第i個葉結點預測結果的負對數似然損失,ground truth標簽為y*。
Optimization. ACNet方法中的backbone網絡是在ImageNet數據集上進行預訓練的。此外,使用“xavier”方法[14]隨機初始化附加卷積層的參數。整個訓練過程由兩個階段組成。
- 第一階段,截斷后的VGG-16網絡中的參數是固定的,其他參數用60個epoch進行訓練。在訓練中,batch大小設置為24,初始學習率為1.0。學習率在第10、20、30、40個epochs逐漸除以4。
- 在第二階段,我們對整個網絡進行200個epochs的微調。我們在訓練中使用批大小16,初始學習率為0.001。學習率在第30、40、50個時期逐漸除以10。
我們使用SGD算法訓練網絡,其momentum為0.9,第一階段權重衰減為0.000005,第二階段權重衰減為0.0005。
4. Experiments
在CUB-200-2011[42]、Stanford Cars[25]和Aircraft[32] 3個FGVC數據集上進行了實驗,驗證了該方法的有效性。我們的方法在Caffe庫[22]中實現。所有模型均在有着英特爾3.26 GHz處理器、32GB內存、和一個Nvidia V100 GPU的工作站上進行訓練。
4.1. Evaluation on the CUB-200-2011 Dataset
Caltech-UCSD鳥類數據集(CUB-200-2011)[42]包含11,788張標注圖像,包括5,994張用於訓練的圖像和5,794張用於測試的圖像。細粒度分類結果如表1所示。如表1所示,在CUB-200-2011數據集上,同時使用對象級標注和part級標注的最佳監督方法PN-CNN[2]的效果是85.4%的top-1准確度。在沒有part級標注的情況下,MAMC[38]利用兩個注意力分支學習不同區域的有區分度的特征,獲得了86.5%的top-1准確率。KERL w/ HR[6]設計了單一的深度門控圖神經網絡學習有區分度的特征,取得了更好的性能,得到87.0%的top-1准確度。與目前最先進的弱監督方法[6,10,38,46,7,53]相比,我們的方法在不同backbone下的top-1准確率分別達到87.8%和88.1%。這要歸功於設計的注意力轉換器模塊和從粗到細的層次特征學習過程。
4.2. Evaluation on the Stanford Cars Dataset
Stanford Cars數據集[25]包含來自196個類的16,185張圖像,由8,144張圖像組成用於訓練,8,041張圖像用於測試。從屬類別由汽車的制造商、型號和年份決定。如表2所示,之前使用part級標注的方法(即FCAN[31]和PA-CNN[24])的top-1准確率均小於93.0%。最近的弱監督方法WS-DAN[17]采用了復雜的Inception V3 backbone[39],並設計了注意力引導的數據增強策略來利用有區分度的對象parts,實現了93.0%的top-1准確度。在不使用任何特殊的數據增強策略的情況下,我們的方法獲得了最好的top-1精度,即VGG-16骨干為94.3%,ResNet-50骨干為94.6%。
4.3. Evaluation on the Aircraft Dataset
Aircraft數據集[32]是由10,000張標注圖像組成的100個不同的飛機變體的細粒度數據集,該數據集分為兩個子集,即訓練集有6667張圖像和測試集有3333張圖像。具體來說,分類標簽由飛機的型號、Variant、Family和制造商決定。評價結果見表3。我們的ACNet方法優於大多數比較方法,特別是在相同的VGG-16 backbone下。此外,我們的模型表現與最先進的方法DCL[7]相當,VGG-16 backbone的top-1精度為91.2% vs 91.5%,而renet-50 backbone的top-1精度為93.0% vs 92.4%。在我們的樹形結構中,沿着根到葉的不同路徑進行操作的重點是利用不同目標區域的有區分度特征,這有助於彼此在FGVC中獲得最佳的性能。
4.4. Ablation Study
我們研究了ACNet的一些重要參數和不同組成成分對CUB-200-2011數據集[42]的影響。值得注意的是,我們在實驗中使用了VGG-16 backbone。采用Grad-CAM方法[36]生成熱圖,對分支routing和葉節點的響應進行可視化。
Effectiveness of the tree architecture . 為了驗證樹型架構設計的有效性,我們構建了ACNet方法的兩個變體,即VGG和w/Tree。具體來說,我們只使用VGG-16 backbone網絡進行分類,構建VGG方法,並進一步整合樹型架構,形成w/Tree方法。評估結果報告在圖6中。我們發現使用樹型結構可以顯著提高精度,即top-1精度提高3.025%,這證明了在我們的ACNet方法中所設計的樹型結構
的有效性。
Height of the tree . 為了探究樹的高度
的影響,我們在表4中構造了四個不同高度的樹變體。值得注意的是,當樹的高度設為1時,樹
退化為單個節點,即只使用backbone網絡VGG-16進行分類。如表4所示,我們發現我們的ACNet在樹高為3時表現最好,top-1准確率為87.8%。當h≤2時,ACNet模型的參數數量有限,不足以表示從屬類別的顯著變化。然而,如果我們設置h = 4,過多的參數和有限的訓練數據會導致我們的ACNet模型過擬合,導致top-1准確率下降2.3%。為了驗證我們的假設,我們在圖5中可視化ACNet中高度為4的所有葉節點的響應。我們發現一些葉節點幾乎集中在相同的區域(請參閱第3和第4列)。
Effectiveness of leaf nodes. 為了分析單個葉子節點的有效性,我們分別計算高度為3的單個葉子預測的准確性。四個單獨葉節點在CUB-200-2011上的准確率分別為85.8%、86.2%、86.7%和87.0%。結果表明,所有葉節點的信息都是完整的,融合后的結果更准確(87.8%)。如圖4所示,我們觀察到不同的葉子節點集中在圖像的不同區域。例如,第一列對應的葉節點更關注背景區域,第二列對應的葉節點更關注頭部區域,其他兩個葉節點對翅膀和尾巴的斑塊更感興趣。不同的葉節點可以幫助彼此構建更有效的模型,以獲得更准確的結果。
Asymmetrical architecture of the tree . 為了探索
中的結構設計,我們構造了兩種變體,一種是對稱的結構,另一種是不對稱的結構,將樹T的高度設為3。評價結果見表5。可以看出,本文提出的方法在對稱結構下的top-1精度達到86.2%。如果采用非對稱結構,top-1的准確率提高了1.6%至87.8%。我們推測,不對稱的結構能夠融合不同的特征和不同的接受域,從而獲得更好的性能。
Effectiveness of the attention transformer module. 我們構建了ACNet模型的一個變體“w/ Tree-Attn”,以驗證注意轉換器模塊的有效性,可見圖6。具體來說,我們在“w/ Tree”方法中添加了transformer模塊中的注意塊來構造“w/ Tree-attn”方法。如圖6所示,“w/Tree-attn”方法的表現始終優於“w/ Tree”方法,在不同通道數量下都能產生更高的top-1准確度,平均提高0.4%的top-1准確度,說明注意力機制對FGVC是有效的。
為了進一步研究ASPP模塊在我們所提出的模型中的作用,我們還采用了ACNet模型的變體“w/ Tree-ASPP”方法,其中唯一的區別在於注意轉換模塊中使用的是一個卷積層還是ASPP模塊。如圖6所示,使用ASPP模塊的注意轉換器比只使用一個卷積層的注意轉換器精度更高。結果表明,ASPP模塊通過不同dilated率的並行dilated卷積層提高了整體性能。其中,“w/ Tree-ASPP”方法平均提高了0.5%的top-1精度。我們可以得出結論,ASPP模塊中的多尺度嵌入和不同的dilated卷積有助於幫助所提出的樹狀網絡獲得魯棒性能。
Components in the branch routing module. 我們在圖6中分析了分支routing模塊中的global context block[4]的有效性。我們的ACNet方法在不同信道數量的分支routing模塊中產生最好的結果;而去掉全局上下文塊后,top-1的准確率平均下降了0.275%。同時,我們也在表6中研究了分支路由模塊中pooling策略的有效性。我們觀察到,在CUDE-200-2011數據集上,使用全局最大池化(GMP)而不是全局平均池化(GAP)導致top-1精度下降0.6%。我們推測,GAP操作鼓勵過濾器關注高平均響應區域,而不是唯一的最大響應區域,這能夠整合更多的上下文信息,以獲得更好的性能。
Coarse-to-fine hierarchical feature learning process. 分支routing模塊側重於不同級別的不同語義區域(例如,不同的對象部分)或上下文信息(例如,背景),例如圖2中的、
和
。如圖7所示的Bobolink示例,
模塊在level-1關注整個鳥類區域;
和
模塊在level-2集中於鳥的翅膀和頭部區域。如圖5第一行所示,四個葉子節點在level-3上關注幾個細粒度對象parts,例如頭部區域的不同part。通過這種方式,我們的ACNet使用從粗到細的層次特征學習過程來利用有區分度的特征以獲得更准確的結果。這一現象表明,我們在樹形
架構下的分層特征提取過程,逐漸使我們的模型專注於更有區分度的對象細節區域。
5. Conclusion
本文提出了一種用於弱監督FGVC的注意力卷積二叉神經樹(ACNet)。具體來說就是在樹狀網絡中,利用沿邊卷積運算中插入的注意力轉換器,不同的根到葉路徑關注不同的判別區域。最終的決策是通過對葉節點的預測進行max-voting產生的。在幾個有挑戰性的數據集上的實驗表明了ACNet的有效性。我們詳細介紹了如何使用從粗到細的層次特征學習過程來設計樹形結構。