1. 程式人生 > >MACNN-Learning Multi-Attention Convolutional Neural Network for Fine-Grained Image Recognition

MACNN-Learning Multi-Attention Convolutional Neural Network for Fine-Grained Image Recognition

《Learning Multi-Attention Convolutional Neural Network for Fine-Grained Image Recognition》是微軟亞洲研究院17年出的一篇細粒度影象識別論文,它的姊妹篇是《Look Closer to See Better: Recurrent Attention Convolutional Neural Network for Fine-grained Image Recognition》。

之所以是姊妹篇,只因作者是同一班人馬,原理還是很不同的,hhh。

一、概述

細粒度識別現在主要依賴於1.具有區分度的區域性定位(discriminative part localization)和2.基於區域性的精細特徵學習(part-based fine-grained feature learning)。目前主流方法是將兩者獨立開來,忽略了他們兩者之間的聯絡。這篇文章就提出了一個多注意力卷積神經網路(MA-CNN),讓part generation 和 feature learning能互相強化。同時模型拋棄手工標記attention part 的方法,採用弱監督學習方法。(手工標註attention part 難定標註位置,且耗費人力)

本文亮點:1.利用feature map 不同通道(channels)關注的視覺資訊不同,峰值響應區域也不同這一特點,聚類響應區域相近的通道,得到 attention part。

             2.由於1中part 定位方式特殊,本文提出了一個channel grouping loss,目的讓part內距離更近(intra-class similarity),不同part距離儘量遠(inter-class separability)。

二、模型

MA-CNN框架如上圖所示。模型分為三部分,base networkchannel grouping layers part classification sub-networks

.

輸入一張圖片(a)給網路,通過base network 產生feature map(b);將(b)中的各通道展開,以12個通道為例,得到(c),可見每個通道都有一個峰值響應區域(白色部分),同時有些通道的峰值響應區域相近(同一種顏色外框表示);文中通過堆疊的全連線層達到聚類效果,把相近的區域歸為一類,如圖(e),圖中劃為4類。同類的channel相加,取sigmoid(歸一化到0-1)產probabilities,等效於產生4個空間注意區域,即4個mask(區域性定位!),這四個mask分別和feature map 進行點乘,得到4個區域性精細化的特徵,分別進行分類。MA-CNN就是交替的學習,使對每個part的softmax分類損失,及對每個part的channel grouping loss(Lcng)收斂。

三、方法

3.1 channel grouping layers 的預訓練

channel grouping layers 是論文最重要的結構(用於 discriminative part localization),也是復現論文的難點之處。

以N個part 為例,就有N組channel grouping layer。每組channel grouping layer的結構由帶有tanh的兩個fc層構成。

為了防止訓練陷入區域性最優解,需要對 channel grouping layers進行預訓練。具體地,由於每個feature channel 都會對特定型別的視覺模式產生響應,所以每個feature channel 都有一個峰值響應點(peak responses coordinate),這樣每個feature channel 都可以用一個位置向量(position vector)表示,其元素是所有訓練影象在該通道上的峰值響應座標(each feature channel can be represented as a position vector whose elements are the coordinates from the peak responses over all training image instances)

我們把這些位置向量當作特徵,進行聚類,將不同的channels分成N個groups,即N個parts。用長度為c(通道數)的指示向量表示每個channel 是否屬於該group,如果是,該channel 位置為1,否則為0。

N個指示向量為互斥的關係

為了保證上述過程在訓練中得到優化,我們用fc近似這個聚類過程,產生N個part,就用N組FC layers.每個fc接收base network 的feature map,然後產生一個權重向量di 

為了獲得準確的權重向量,我們需要預訓練fc引數,使(3)的輸出接近預於(2)。基於學習到的權重向量,我們可以得到每個part 的 attention map。W*X 代表base network 提取的feature map .dj與對應feature channel 相乘,相加後用sigmoid 歸一化得到一個probabilities map.

 

延伸一點,區域性精細化特徵(fine features),由probabilities map 與base network 提取的feature map進行點乘,累加,如Eqn.(5)

3.2  MA-CNN損失函式

MA-CNN的損失由兩部分組成,一部分是part classification loss,即普通的分類網路中的交叉熵;另一部分是channel grouping loss。一張圖片X的loss表示如下,N表示N個part。

其中,lcng是由Dis和Div兩塊組成。Dis是使同一part內的座標更聚集,Div是使不同part儘量疏遠。

3.3  交替優化

論文中採用相互強化的方式,交替訓練分類網路和channel group layers。首先,固定卷積層,通過Lcng優化channel grouping layers 。然後固定channel grouping layers,通過Lcls,訓練卷積層和softmax。交替迭代直至兩類loss都不再改變。

四、實驗結論:

part數量在一定範圍內增加會提高準確率,但達到一定量後會處於飽和狀態,準確率不再提升。