Integral Object Mining via Online Attention Accumulation
Integral Object Mining via Online Attention Accumulation
- 摘要
- 1. Introduction
- 2. Related Work
- 3. Methodology
- 3.1. Attention Generation
- 3.2. Online Attention Accumulation
- 3.3. Towards Integral Attention Learning
 
論文地址
 在很多paper里都看到了OAA的身影,感覺是很厲害的一篇,值得仔細推敲一下。
摘要
弱監督方法中一般用生成attention map的方式為分割任務打下基礎,但是attention map一般只關注最有辨識度的區域。我們發現在訓練的不同階段,實際上網絡會關注目標的其他區域,也就是說attention map是一直變化著的,如果我們把訓練不同階段的attention map疊加在一起,會不會得到更好的結果呢?由此本文提出了online attention accumulation (OAA)策略。
 
1. Introduction
WSSS任務常見的那些套話我們就不多說了,感興趣可以看我前面發的文章,這里談談作者對于分類網絡在訓練的不同階段discriminative regions不斷轉換的原因分析:
- 一個強大的分類網絡通常會對特定類別尋找一個通用的識別圖案,這樣以便很好地識別來自該類別的所有圖像。因此,那些難以分類的訓練樣本會驅動網絡在尋找常見圖案方面作出改變,導致attention regions在網絡收斂前不斷變化。
- 在訓練時,attention model生成的attention maps受先前輸入的圖像的影響,不同內容的圖像和訓練圖像的輸入順序都會導致中間attention maps中discriminative regions的變化。
雖然OAA可以疊加不同訓練階段的discriminative regions,使得mask更加完整,但是和CAM相比,那些之前本來很discriminative的區域的attention就沒有那么strong了,因此本文設計了 hybrid loss function (the combination of an enhanced loss and a constraint loss)通過把 cumulative attention
 maps來作為軟標簽的方式努力訓練一個完整的attention model。
 總的來說,本文的contributions:1.OAA策略;2.hybrid loss function;3.實驗
2. Related Work
3. Methodology
3.1. Attention Generation
我們使用CAM生成attention maps,即用最后一層卷積層輸出的class-specific feature maps生成attention maps。基本結構見Fig. 2。
 
 我們使用VGG-16作為backbone,預測的目標類別ccc的概率可以由下式計算:
 pc=σ(GAP(Fc))p^c=\sigma(GAP(F^c)) pc=σ(GAP(Fc))
 FFF是class-aware convolutional layer的輸出,σ(?)\sigma(\cdot)σ(?)是sigmoid函數,整個網絡的loss使用交叉熵損失。給定一張圖像III,為了得到attention maps,首先把feature map FFF送入ReLU層,然后做歸一化,保證attention map的值在[0,1]范圍內:
 Ac=ReLU(Fc)max(Fc)A^c=\frac{ReLU(F^c)}{max(F^c)} Ac=max(Fc)ReLU(Fc)?
 接著就可以把不同階段生成的attention maps送入OAA過程中了。
3.2. Online Attention Accumulation
當訓練圖像被送入不同的epochs中時,OAA從分類模型結合生成的不同的attention maps。如Fig. 2所示,對于給定訓練圖像III的每個目標類別ccc,我們建立一個cumulative attention map McM^cMc來保存發現的discriminative regions。OAA首先用第一個epoch的類別c的attention map A1A_1A1?初始化cumulative attention map M1M_1M1?。然后,當圖像第二次被送入網絡后,OAA結合M1M_1M1?和新生成的attention map A2A_2A2?更新cumulative attention map,過程如下所示:
 M2=AF(M1,A2)M_2=AF(M_1,A_2) M2?=AF(M1?,A2?)
 AF(?)AF(\cdot)AF(?)表示attention fusion strategy。同樣,在第t個epoch就是這樣的:
 Mt=AF(Mt?1,At)M_t=AF(M_{t-1},A_t) Mt?=AF(Mt?1?,At?)
 OAA不斷重復這樣的過程。接下來詳細講講AF(?)AF(\cdot)AF(?),也就是attention fusion strategy的實現。其實這個操作也很簡單,就是element-wise maximum operation,即選擇At,Mt?1A_t,M_{t-1}At?,Mt?1?中每個像素最大的attention values,用公式表示就是:
 Mt=AF(Mt?1,At)=max(Mt?1,At)M_t=AF(M_{t-1},A_t)=max(M_{t-1},A_t) Mt?=AF(Mt?1?,At?)=max(Mt?1?,At?)
 從Fig. 5中可以看出,OAA得到了更完整的區域。
 
 我們也嘗試過用averaging fusion strategy代替maximum fusion strategy,但是mIoU下降了1.6%。
但是這里還有一個問題,就是一開始分類模型可能比較弱,這樣生成的attention map可能包含噪音,因此作者用目標類別的預測probability來決定是否要選用當前的attention map。也就是說,如果target category的score明顯高于non-target categories的score,我們就計算它的attention map,否則就丟棄掉以避免噪音。
3.3. Towards Integral Attention Learning
OAA的缺點在于有些目標區域的attention values很低,不足以被分類模型加強,對于這種情況,我們提出一個新的loss函數,把cumulative attention maps作為監督信息,去訓練一個attention module以進一步改善OAA,我們稱之為OAA+OAA^+OAA+。
具體來講,我們將cumulative attention maps作為soft labels。每個attention value被視作當前點屬于目標類別的概率,我們用Fig. 2中去掉GAP層的分類網絡和分類損失作為integral attention model。給定class-aware convolutional layer產生的score map F^\hat FF^,位置jjj屬于類別ccc的概率被表示為qjc=σ(F^jc)q_j^c=\sigma(\hat F_j^c)qjc?=σ(F^jc?),σ\sigmaσ是sigmoid函數。因此,類別c的多標簽交叉熵損失可由如下表示:
 ?1∣N∣∑j∈N(pjclog(qjc)+(1?pjc)log(1?qjc))-\frac{1}{|N|}\sum_{j\in N}(p_j^clog(q_j^c)+(1-p_j^c)log(1-q_j^c)) ?∣N∣1?j∈N∑?(pjc?log(qjc?)+(1?pjc?)log(1?qjc?))
 其中,pjcp_j^cpjc?表示歸一化后的cumulative attention maps的值。這樣我們就得到了被加強的cumulative attention maps。然而用上述的交叉熵損失往往只能讓attention maps覆蓋到部分的目標區域。這是因為損失函數更愿意讓有低class-specific attention values(pjc<1?pjcp_j^c<1-p_j^cpjc?<1?pjc?)成為類別c的背景。
因此,我們提出了一個hybrid loss。給定了cumulative attention map,我們先把它分成soft enhance regions N+cN_+^cN+c?和soft constraint regions N?cN_-^cN?c?,N?cN_-^cN?c?包括了pjc=0p_j^c=0pjc?=0的像素,N+cN_+^cN+c?包括其他的像素。對于N+cN_+^cN+c?,我們移除上面交叉熵損失函數的最后一項來進一步提升attention regions,但不抑制low attention values的區域。這樣損失函數就變成:
 L+c=?1N+c∑j∈N+cpjclog(qjc)\mathcal L_+^c=-\frac{1}{N_+^c}\sum_{j\in N_+^c}p_j^clog(q_j^c) L+c?=?N+c?1?j∈N+c?∑?pjc?log(qjc?)
 由于我們只有image-level的標注,cumulative attention map中的attention regions經常含有非目標像素,因此在上式中,我們用pjcp_j^cpjc?作為標簽而不是用1作為標簽。對于N?cN_-^cN?c?中pjc=0p_j^c=0pjc?=0的地方,loss函數如下所示:
 L?c=?1N?c∑j∈N?clog(1?qjc)\mathcal L_-^c=-\frac{1}{N_-^c}\sum_{j\in N_-^c}log(1-q_j^c) L?c?=?N?c?1?j∈N?c?∑?log(1?qjc?)
 總體loss就是上面兩個相加:
 L=∑c∈C(L+c+L?c)\mathcal L=\sum_{c\in C}(\mathcal L_+^c+\mathcal L_-^c) L=c∈C∑?(L+c?+L?c?)
 Fig. 5展示了效果。
總結
以上是生活随笔為你收集整理的Integral Object Mining via Online Attention Accumulation的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: WP10回滚WP8.1详细教程,变砖也可
- 下一篇: Microsoft Teams的保留策略
