本文解讀的是 CVPR 2020 Oral 論文《 Overcoming Classifier Imbalance for Long-tail Object Detection with Bbalanc ed Group Softmax》,論文作者來自中科院、新加坡國立大學。該論文解讀首發於“AI算法修煉營”。

者 | SFXiang

編輯 | 叢  末

論文地址:http://openaccess.thecvf.com/content_CVPR_2020/papers/Li_Overcoming_Classifier_Imbalance_for_Long-Tail_Object_Detection_With_Balanced_Group_CVPR_2020_paper.pdf

代碼地址:https://github.com/FishYuLi/BalancedGroupSoftmax

視頻講解地址:https://www.youtube.com/watch?v=ikdVuadfUo8

論文的主要思想是提出了長尾分佈目標檢測器性能下降主要原因是與類別數量正相關,於是通過分組平均分配類別數的思想,提出了Balanced Group Softmax,這是一個簡單的思想,效果很不錯,大家可以多嘗試。

1

前言

使用基於深度學習的模型來解決長尾 large vocabulary目標檢測是一項具有挑戰性而艱鉅的任務,然而,這項工作尚未得到充分研究。

在本文的工作中,首先對針對長尾分佈問題所提出SOTA模型的性能進行了系統分析,找出其不足之處。發現當數據集極度偏斜時,現有的檢測方法無法對few-shot類別進行建模,這可能導致分類器在參數大小上的不平衡。由於檢測和分類之間的內在差異,將長尾分類模型直接應用於檢測框架無法解決此問題。因此,在這項工作中,提出了一個新穎的balanced group softmax (BAGS)模塊,用於通過逐組訓練來平衡檢測框架內的分類器。它隱式地調整了頭和尾類的訓練過程,並確保它們都得到了充分的訓練,而無需對來自尾類的instance進行任何額外採樣。

在最近的長尾large vocabulary目標識別任務數據集 LVIS上的大量實驗表明,本文提出的BAGS大大提高了具有各種主幹和框架的檢測器在目標檢測和實例分割上的性能。它擊敗了從長尾圖像分類中轉移過來的所有最新方法,並建立了新的方法。

2

簡介

LVIS 是由facebook AI研究院的研究人員們發佈的一個大規模的詞彙實例分割數據集(Large Vocabulary Instance Segmentation ),包含了164k圖像,並針對超過1000類物體進行了約200萬個高質量的實例分割標註。數據集中包含自然圖像中的物體分佈天然具有長尾屬性。

受《Decou-pling representation and classifier for long-tailed recognition》的啓發,首先將檢測框架中的representation 和分類模塊解耦,發現不同類別相對應的proposal 分類器的weight norm嚴重失衡,因爲low-shot類別被激活的機會很少。通過分析,這是長尾檢測器性能差的直接原因,而長尾檢測器性能本質上是由數據不平衡引起的。

如圖1所示,分別根據訓練集中實例的數量對在COCO和LVIS上訓練的模型的類別分類器權重範數進行排序。對於COCO,除了背景類(類別ID = 0)以外,相對平衡的數據分佈導致所有類別的weight norm相對平衡。而對於LVIS,很明顯類別weigh norm是不平衡的,並且與訓練實例的數量呈正相關。這種不平衡將使low-shot 類別(尾類)的分類分數比many-shot 類別(頭部類)的分類分數小得多。在標準softmax函數之後,這種不平衡會被進一步放大,因此分類器錯誤地抑制了預測爲low-shot 類別的proposal 。

圖1. COCO和LVIS訓練集中類別的訓練實例(#ins)的排序數量,以及在COCO和LVIS上訓練的Faster R-CNN模型的相應分類器權重範數“ w”。x軸表示COCO和LVIS的分類索引。將80類COCO與1230類LVIS對齊,以獲得更好的可視化效果。類別0表示背景。

1、長尾分佈問題一般解決方法

在實際的視覺相關任務中,數據都存在如上圖所示的長尾分佈,少量類別佔據了絕大多少樣本,如圖中Head部分,大量的類別僅有少量的樣本,如圖中Tail部分。解決長尾問題的方案一般分爲4種:

  1. Re-sampling:主要是在訓練集上實現樣本平衡,如對tail中的類別樣本進行過採樣,或者對head類別樣本進行欠採樣。基於重採樣的解決方案適用於檢測框架,但可能會導致訓練時間增加以及對tail類別的過度擬合風險。

  2. Re-weighting:主要在訓練loss中,給不同的類別的loss設置不同的權重,對tail類別loss設置更大的權重。但是這種方法對超參數選擇非常敏感,並且由於難以處理特殊背景類(非常多的類別)而不適用於檢測框架。

  3. Learning strategy:有專門爲解決少樣本問題涉及的學習方法可以借鑑,如:meta-learning、metric learning、transfer learing。另外,還可以調整訓練策略,將訓練過程分爲兩步:第一步不區分head樣本和tail樣本,對模型正常訓練;第二步,設置小的學習率,對第一步的模型使用各種樣本平衡的策略進行finetune。

  4. 綜合使用以上策略。

2、 本文的解決方法

在本文中,爲了解決分類器的不平衡問題,將一個簡單而有效的balanced group softmax(BAGS)模塊引入到檢測框架的分類head中。本文建議將訓練實例數量相似的目標對象類別放在同一組中,並分別計算分組的softmax交叉熵損失。分別處理具有不同實例編號的類別可以有效地減輕head類對tail類的控制。但是,由於每次小組訓練都缺乏不同的負樣本,結果模型會有太多的誤報。因此,BAGS還在每個組中添加了一個其他類別,並將背景類別作爲一個單獨的組引入,這可以通過減輕head類對tail類的壓制來保持分類器的類別平衡,同時防止分類背景和其他類別的false positives。

實驗發現BAGS的效果非常好。在長尾目標識別任務數據集LVIS上,使用各種框架包括Faster R-CNN、CascadeR-CNN、Mask R-CNN和HTC與ResNet-50-FPN和ResNeXt-101-x64x4d-FPN,其tail類性能提升了9%-19%,整體mAP提升了約3%-6%。

3

長尾數據集性能下降原因探索

當訓練集遵循長尾分佈時,當前表現良好的檢測模型通常無法識別尾巴類別。本文通過對代表性示例(COCO和LVIS)進行對比實驗,嘗試研究從均衡數據集到長尾數據集這種性能下降的背後機制。

通過所設計的對比實驗發現(具體的實驗細節可以參考論文原文),tail類的預測得分會先天性地低於head類,tail類的proposals 在softmax計算中與head類的proposals 競爭後,被選中的可能性會降低。這就解釋了爲什麼目前的檢測模型經常在tail類上失效。由於head類的訓練實例遠多於tail類的訓練實例(例如,在某些極端情況下,10000:1),tail類的分類器權重更容易(頻繁)被head類的權重所壓制,導致訓練後的weight norm不平衡。

因此,可以看出爲什麼重採樣方法能夠在長尾目標分類和分割任務中的使得tail類受益。它只是在訓練過程中增加了tail類proposals 的採樣頻率,從而可以平等地激活或抑制不同類別的權重,從而在一定程度上平衡tail類和head類。同樣,損失重新加權方法也可以通過類似的方式生效。儘管重採樣策略可以減輕數據不平衡的影響,但實際上會帶來新的風險,例如過度擬合tail類和額外的計算開銷。同時,損失重新加權對每個類別的損失加權設計很敏感,通常在不同的框架,backbone和數據集之間會有所不同,因此很難在實際應用中進行部署。而且,基於重新加權的方法不能很好地處理檢測問題中的背景類。因此,本文提出了一種簡單而有效的解決方案,無需繁重的超參數工程即可平衡分類器 weight norm。

4

本文方法:Balanced Group Softmax

圖2.Balanced Group softmax模塊的框架。(a)訓練:將包含類似訓練實例的類別分組在一起。類別 others被添加到每個組。G0表示背景組。Softmax交叉熵損失函數(CE)損失分別應用於每個組。(b)測試:使用新的預測z,將softmax應用於每個組,並按其原始類別ID的概率排序,並用前景概率重新縮放,從而爲後續的後期處理環節生成新的概率向量。

1、Group softmax

如前所述,weight norm與訓練樣本數之間的正相關關係損害了檢測器的性能。爲了解決這個問題,本文將類別劃分爲幾個不相交的組,並分別執行softmax操作,以使只有具有相似訓練實例數量的類在每個組中彼此競爭。這樣,可以在訓練期間將包含大量不同實例的類彼此隔離。head類將基本上不抑制tail類的分類器權重。

根據訓練實例數量將所有類別分爲N組:

其中N(j)是訓練集中類別J的標籤中邊界框的數量,而sl和sh是確定每組的最小和最大實例數的超參數。文中,分爲四組N = 4,sl1 = 0,sl2 = 10,sl3 = 102,sl4 = 103,sh4 = +∞。

此外,手動將G0設置爲僅包含背景的類別,因爲它擁有最多的訓練實例(通常比目標類別多10-100倍)。對G0採用sigmoid cross entropy損失,因爲它僅包含一個預測,而對於其他組採用softmax cross entropy,選擇softmax的原因是softmax函數具有將每個類彼此抑制的能力,並且很少會產生大量的誤報。

2、Calibration via category “others”

但是,發現上述group softmax設計存在以下問題:在測試過程中,對於一個proposal,由於其類別未知將使用所有組進行預測,因此,每個組至少有一個類別將獲得較高的預測分數,並且很難決定我們應該採用哪種分組預測,從而導致大量誤報。爲了解決這個問題,在每個組中添加了一個類別,以校準組之間的預測並抑制誤報。此類別包含當前組中未包含的類別,可以是其他組中的背景類別或前景類別。

3、Balancing training samples in groups

在以上處理中,新添加的類別others將通過抑制衆多實例,再次成爲占主導地位的outlier 。爲了平衡每組的訓練樣本數,僅對一定數量的others proposals進行訓練,由採樣率β控制。

在包含標籤真值的類別組中,將根據mini-batch of K proposals來按比例採樣others實例。如果一組中沒有激活正常類別,則所有others實例都不會激活,該組則被忽略。這樣,每個組都可以保持平衡,且誤報率低。添加others類別會使baseline提高2.7%。

4、Inference

在推理過程中,首先使用訓練好的模型生成z,然後在每個組中應用softmax。 除G0外,其他所有節點均被忽略,所有類別的概率均按原始類別ID排序。G0中的p0可被視爲前景proposals的概率。最後,使用 重新縮放正常類別的所有概率。這個新的概率向量將被送到後續的後處理步驟(如NMS),以產生最終的檢測結果。應該注意的是,從概念上來說 不是真正的概率向量,因爲它的總和不等於1,但它起着原始概率向量的作用,該向量通過選擇最終boxes框來指導模型。

5

驗與結果

數據集:LVIS,根據訓練實例數量將LVIS驗證集中的類別劃分爲4個等級,以更清楚地評估頭和尾類的模型性能。

評價指標:mAP,APr(APfor rare classes), APc(AP for common classes),  APf(AP for frequent classes)

1、Main results on LVIS

將長尾分類的多種最新方法轉移至Faster R-CNN框架,包括對tail類進行微調,重複因子採樣(RFS),類別損失重新加權,Focal Loss,NCM 和τ歸一化。

採用以ResNet-50-FPN爲主幹網絡的FasterR-CNN作爲baseline(表中的模型(1)),可達到20.98%的mAP但0%的AP1。baseline模型由於其他類別的支配而錯過了大多數tail類別。針對tail訓練樣本對模型(1)微調後得到的模型(3)僅將AP2顯着增加,而將AP4減少2.5%,並且AP1保持爲0。這表明當訓練次數增加時,原始softmax分類器不能很好地適應於實例數量太小的情況。

爲了進一步驗證方法的通用性,將FasterR-CNN主幹更改爲ResNeXt-101-64x4d,結果展示於表2。在這個更強大的主幹上,本文的方法仍然獲得了3.2%的改進。然後,將本文的方法應用於最新的Cascade R-CNN框架,並在3個階段將所有3個softmax分類器更改爲BAGS模塊。總體mAP顯着提高了5.6%。

2、Results for instance segmentation

3、消融實驗

分組數量N的選取

採樣率β的選取

更多實驗細節,可以參考原文。

參考資料:

https://zhuanlan.zhihu.com/p/127791648

ACL 2020原定於2020年7月5日至10日在美國華盛頓西雅圖舉行,因新冠肺炎疫情改爲線上會議。爲促進學術交流,方便國內師生提早了解自然語言處理(NLP)前沿研究,AI 科技評論將推出「ACL 實驗室系列論文解讀」內容,同時歡迎更多實驗室參與分享,敬請期待!

點擊"閱讀原文",直達“ACL 交流小組”瞭解更多會議信息。

相關文章