【論文閱讀】Equalization Loss for Long-Tailed Object Recognition 長尾目標識別的均衡損失


長尾目標識別的均衡損失

作者介紹:https://www.zhihu.com/question/372070853/answer/1082980270

知乎解讀:https://zhuanlan.zhihu.com/p/127791648

他人翻譯:https://zhuanlan.zhihu.com/p/133471680 (自己翻譯完了才看到這篇..)

代碼鏈接:https: //github.com/tztztztztz/eql.detectron2

卷積神經網絡(CNN)的目標識別技術取得了巨大的成功。然而,最先進的目標檢測方法在大詞匯表和長尾數據集(如LVIS)上仍然表現不佳。在本研究中,我們從一個新的角度來分析這個問題:一個類別的每個正樣本都可以被看作是其他類別的負樣本,使得尾部類別得到更多令人沮喪的梯度。在此基礎上,我們提出了一種簡單而有效的損失,即均衡損失,通過忽略稀有類的梯度來解決長尾稀有類的問題在網絡參數更新過程中,均衡損失保護了稀有類別的學習不受影響。因此,該模型能夠更好地學習稀有類對象的鑒別特征。與Mask R-CNN基線相比,在具有挑戰性的LVIS基准測試中,我們的方法對罕見和常見類別的AP分別提高了4.1%和4.8%。在2019年LVIS挑戰賽中,我們利用了有效的均勢損失,最終獲得了第一名。

介紹

最近,由於深度學習和卷積神經網絡(CNNs)的出現,計算機視覺界見證了物體識別的巨大成功。目標識別是計算機視覺中的一項基本任務,在重新識別、人體姿態估計和目標跟蹤等相關任務中起着核心作用。

如今,大多數用於通用對象識別的數據集,如Pascal VOC[10]和COCO[28],主要收集常見的類別,每個類都有大量的注釋。然而,當涉及到更實際的場景時,不可避免地會出現類別頻率長尾分布的大型詞匯表數據集(例如LVIS[15])。類別的長尾分布問題對目標檢測模型的學習是一個很大的挑戰,特別是對於樣本很少的類別。注意,對於一個類別,其他類別包括背景的所有樣本都被視為負樣本。因此,在訓練過程中,少數類別容易被大多數類別(樣本數量大的類別)所壓倒,並傾向於被預測為否定的類別。因此,在這樣一個極不平衡的數據集上訓練的傳統的物體探測器會大大下降。

以往的研究大多將長尾類別分布問題的影響考慮為訓練過程中的批采樣不平衡,主要通過設計專門的采樣策略來處理該問題[2,16,32,38]。其他著作介紹了專門的損耗配方來解決樣品正-負失衡的問題[27,25]。但它們主要關注的是前景和背景樣本之間的不平衡,因此不同前景類別之間的嚴重不平衡仍然是一個具有挑戰性的問題。

在這項工作中,我們關注的問題之間的極端不平衡的前景類別,並提出了一個新的視角來分析它的影響。如圖1所示,綠色曲線和橙色曲線分別代表正樣本和負樣本貢獻的梯度的平均范數。我們可以看到,對於頻繁類別,正梯度的影響平均大於負梯度,而對於罕見類別,情況正好相反。進一步說,在分類任務中常用的損失函數,如softmax交叉熵和sigmoid交叉熵,對非基真類有抑制作用。當利用某類的樣本進行訓練時,其他類的預測參數會出現令人沮喪的梯度,導致預測的概率較低。由於稀有類的對象很少出現,因此在網絡參數更新過程中,這些類的預測器會被令人沮喪的梯度淹沒。

image-20200715114118964

我們首先回顧常見的目標檢測和實例分割。然后介紹了重采樣、代價敏感重加權和特征操作方法,這些方法被廣泛用於緩解長尾數據集中的類不平衡問題。

對象檢測和實例分割。目前主流的目標檢測框架有兩種:單級檢測器[29,36,27]和兩級檢測器[13,12,37,26,31]。當單級探測器達到更高的速度,大多數最先進的探測器遵循兩級制度更好的性能。流行的Mask R-CNN[17]在典型的兩級檢測器中擴展了一個Mask head,在許多實例分割基准測試中提供了很好的結果。面具評分R-CNN[21]引入了一個額外的面具評分頭,以調整面具的分數和質量。級聯掩模R-CNN[1]和HTC[3]通過級聯預測掩模進一步提高了性能。

重采樣方法。重采樣中常用的方法之一是過采樣[2,16,32],它從少數類中隨機抽取更多的訓練數據,以解決類分布不平衡的問題。[38],又稱類平衡采樣,是一種典型的過采樣技術,它首先對一個類別進行采樣,然后均勻地對包含被采樣類別的圖像進行采樣。雖然過采樣方法對代表性不足的類有顯著的改善,但它們也帶來了過高的潛在過擬合風險。與過采樣相反,[9]欠采樣的主要思想是從頻繁的類中去除一些可用的數據,使數據分布更加均衡。但是,由於頭類和尾類的不平衡比例非常大,在極端長尾數據集中,欠采樣是不可行的。最近[22]提出了一種解耦訓練方案,該方案首先學習表示和分類器,然后利用類平衡抽樣重新訓練分類器,得到一個平衡分類器。我們的方法可以幫助模型更好地學習尾類的表示,因此可以作為解耦訓練模式的補充。

權重的方法。重新加權方法的基本思想是為不同的訓練樣本分配權重。在不平衡數據集中,直觀的策略是基於類頻率的逆來確定樣本的權重[41,20],或者使用平滑的版本,類頻率[33]的平方根的逆。除了上述在班級層面調整權重的方法外,還有針對樣本層面調整權重的研究。通過增加硬樣本的權值,減少易樣本的權值,使神經網絡具有代價敏感性[27,25],可以看作是硬樣本挖掘技術[39]的在線版本。最近,meta權重網[40]學習了一個顯式的樣本重權重映射。與上面的作品不同,我們關注的是不同前景類別之間的不平衡問題。我們提出了一個新的觀點,即頻繁類別的大量負梯度嚴重抑制了訓練過程中稀有類別的學習。針對這一問題,我們提出了一個新的損失函數,並將其同時應用於樣本層和類層。

功能操作。還有一些工作直接對特征表示進行操作。射程損失[44]增加了類間距離,同時減少了類內的變化。[43]通過轉移具有足夠訓練樣本的常規類的特征方差來增大尾部類的特征空間。[30]采用了一個存儲模塊,將語義特征表示從頭類轉移到尾類。然而,設計這些模塊或方法並不是一項簡單的任務,而且會使模型更難訓練。相比之下,我們的方法更簡單,而且不直接訪問表示。

平衡損失

均衡損失的中心目標是緩解長尾類分布中每個類的數量分配不平衡問題。我們首先回顧傳統的損失函數進行分類,即softmax交叉熵和sigmoid交叉熵。

3.1 回顧交叉熵損失

Softmax Cross-Entropy從網絡輸出z推導出每個類別的多項分布p,然后計算估計分布p與groundtruth分布y之間的交叉熵,Softmax Cross-Entropy損失\(L_{SCE}\)可以表示為:

\[L_{S C E}=-\sum_{j=1}^{C} y_{j} \log \left(p_{j}\right) \]

C是類別的數量。這里,p由Softmax(z)計算。注意,C類包含了一個額外的背景類。在實踐中,y使用獨熱編碼,我們有j=1 yj =1。形式上,對於樣本的ground truth類別c,

\[y_{j}=\left\{\begin{array}{ll}1 & \text { if } j=c \\ 0 & \text { otherwise }\end{array}\right. \]

Sigmoid Cross-Entropy估計每個類別的概率獨立使用C個sigmoid loss functions。ground truth label y j只表示類別j的一個二進制分布,通常不包含額外的背景類別。相反,當proposal屬於背景時,將為所有類別設置y j = 0。所以sigmoid cross-entropy損失可以表示為:

\[L_{B C E}=-\sum_{j}^{C} \log \left(\hat{p}_{j}\right) \]

其中

\[\hat{p}_{j}=\left\{\begin{array}{ll}p_{j} & \text { if } y_{j}=1 \\ 1-p_{j} & \text { otherwise }\end{array}\right. \]

式中,pj用\(\sigma\left(z_{j}\right)\)計算。L_BCE和L_SCE在sigmoid cross-entropy中對網絡輸出z的導數有相同的公式:

\[\frac{\partial L_{c l s}}{\partial z_{j}}=\left\{\begin{array}{ll}p_{j}-1 & \text { if } y_{j}=1 \\ p_{j} & \text { otherwise }\end{array}\right. \]

在softmax cross-entropy和sigmoid cross-entropy中,我們注意到前景的樣本類別c,它可以作為其他類別j的負樣本。所以類別j將收到一個discouraging gradient p使模型更新,這將導致網絡預測低概率類別j。如果j是一種罕見的類別,令人沮喪的梯度比鼓勵梯度期間會發生更頻繁的迭代優化。累積的梯度將對這一類別產生不可忽視的影響。最后,即使是類別j的正樣本,從網絡得到的概率也相對較低。

3.2 均衡損失公式

當類別的數量分布相當不平衡時,例如在長尾數據集中,來自頻繁類別的discouraging gradients會對標注稀少的類別產生顯著影響。利用常用的交叉熵損失,可以很容易地抑制對稀有類別的學習。為了解決這一問題,我們提出了均衡損失算法,該算法忽略了頻繁類別樣本對稀有類別的梯度。這個損失函數是為了使網絡訓練對每個類都更加公平,我們稱之為均衡損失(equalization loss)。

形式上,我們在原sigmoid cross-entropy損失函數中引入權項w,均衡化損失可表示為:

\[L_{E Q L}=-\sum_{j=1}^{C} w_{j} \log \left(\hat{p}_{j}\right) \]

對於一個 region proposal r,我們設置w,規定如下:

\[w_{j}=1-E(r) T_{\lambda}\left(f_{j}\right)\left(1-y_{j}\right) \]

其中,E(r)在r為前景區域 proposal 時輸出1,在屬於背景時輸出0。f j是數據集中j類出現的頻率,它是通過類j的圖像數除以整個數據集的圖像數來計算的。其中,\(T_{\lambda}(x)\)為閾值函數,x <λ時輸出1,否則輸出0。利用λ來區分不同類別的尾部,並以尾部比率(TR)作為其取值的標准。形式上,我們用以下公式定義TR:

\[T R(\lambda)=\frac{\sum_{j}^{C} T_{\lambda}\left(f_{j}\right) N_{j}}{\sum_{j}^{C} N_{j}} \]

其中N j為類別j的圖像個數。

綜上所述,均衡損失函數有兩種特殊設計:

1)對於數量頻率低於閾值的稀有類別,我們忽略負樣本的discouraging gradients。

2)我們不忽略背景樣本的梯度。如果將少數類別的負樣本全部忽略,那么在訓練過程中就不會出現負樣本,學習的模型就會預測出大量的假陽性。

3.3 擴展到圖像分類

由於softmax損失函數在圖像分類中被廣泛采用,我們也設計了一種softmax均衡損失的形式遵循我們的主要思想。Softmax均衡損失(SEQL)可表示為:

\[L_{S E Q L}=-\sum_{j=1}^{C} y_{j} \log (\tilde{p_{j}}) \]

需要注意的是,圖像分類和目標檢測分類是不同的:每一幅圖像都屬於一個特定的類別,因此不存在背景類別。因此,權重參數\(\tilde{w}_{k}\)沒有方程7中的E(r)部分。因此,我們引入了隨機保持負樣本梯度的方法。在第6節中,我們研究了γ的影響。

LVIS上的實驗

我們對均衡損失進行了廣泛的實驗。在本節中,我們首先在4.2節和4.3節介紹LVIS數據集[15]的實現細節和主要結果。然后我們在第4.4節進行燒蝕研究來分析均衡損失的不同組成部分。在4.5節中,我們將均衡損失與其他方法進行比較。2019年LVIS挑戰的詳情將在第4.6節介紹。

LVIS數據集

LVIS是一個用於實例分割的大型詞匯表數據集,在當前版本v0.5中包含1230個類別。在LVIS中,根據包含這些類別的圖像數量,將類別分為三類:罕見(1-10幅)、常見(11-100幅)和常見(>100幅)。我們在57k的訓練圖像上訓練我們的模型,並在5k的val集上評估它。我們也報告了我們在20k的測試圖像上的結果。所有類別的評價指標均跨越IoU閾值從0.5到0.95。與COCO的評估過程不同,由於LVIS是一個稀疏注釋的數據集,所以對於圖像級別標簽中沒有列出的類別的檢測結果不會進行評估。

實現細節

我們采用標准mask R-CNN[17],並配備FPN[26]作為我們的基線模型。訓練圖像將被調整大小,使其較短的邊緣為800像素,而較長的邊緣不超過1333像素。除了水平翻轉外,沒有使用其他增強。第一階段,RPN以1:1的比例抽取256個錨點,第二階段以1:3的比例抽取每幅圖像的512個方案。我們使用16個gpu,total batch size為32個用於訓練。我們的模型采用隨機梯度下降(SGD)進行優化,25 epoch的動量為0.9,權重衰減為0.0001,初始學習率為0.04,16 epoch和22 epoch分別衰減為0.004和0.0004。雖然class-specific mask預測的性能較好,但由於大規模類別的存儲和計算代價較大,因此我們采用了class-agnostic regime。在[15]之后,預測得分的閾值由0.05降低到0.0,保持前300個邊界框作為預測結果。在LVIS上應用EQL時,我們做了一個小修改。因為每個圖像LVIS提供額外的image-level標注哪些類別的圖像(正類別集)和哪些類別(負類別集),如果EQL中的類別屬於該圖像的正類別集或負類別集,則它們不會被忽略,即公式7中的權重項對於那些類別將為1,即使它們是罕見的類別。

image-20200715163052067

均衡損耗的有效性

表1展示了均衡損失函數在不同backbones和框架上的有效性。除了mask R-CNN,我們還在Cascade Mask R-CNN[1]上應用了均衡損失。我們的方法在所有這些模型上取得了一致的改進。從表中可以看出,改進主要來自於稀有類和常見類,說明了我們的方法對長尾分布類的有效性。

消融實驗
image-20200715163104069

表2:不同λ的消融研究。\(λ_r\)約為1.76×10−4,囊括了所有稀有類別。其中,λ c約為1.76×10−3,包括了所有稀有和常見的種類。當λ為0時,均衡損失退化為sigmoid cross-entropy

與其他方法的比較

表5給出了與其他廣泛采用的解決類不平衡問題的方法的比較。從表中可以看出,重抽樣方法在犧牲AP f的情況下提高了AP r和AP c,而重加權方法在所有類別上帶來了一致的收益,但總體上的改善微不足道。均衡損耗顯著提高了AP r和AP c,但對AP f的影響很小,優於其他方法。

image-20200715163453409

表5:在LVIS v0.5 val set上與其他方法的比較。所有實驗都是基於ResNet-50 Mask R-CNN進行的。

圖像分類實驗

驗證了均衡損耗在transfer到其他任務時的泛化能力。我們還在兩個長尾圖像分類數據集CIFAR-100-LT和ImageNet-LT上評估了我們的方法。

數據集。[5]采用完全相同的設置,生成失衡因子為2001的CIFAR-100-LT。CIFAR-100-LT在train set中包含9502張圖像,其中500張為最常見的類別,2張為最罕見的類別。CIFAR-100- lt與原始CIFAR-100使用相同的10k圖像測試集。我們報告top1和top5 accuray。ImageNet-LT[30]是由ImageNet-2012[7]生成的。ImageNet-2012[7]包含1000個類別,每個類別的圖像數量從1280到5張不等。訓練圖像116k,測試圖像50k。與cifar - 100lt不同的是,我們還提供了許多射擊,中等射擊和少數射擊的精度來衡量尾部等級的改進。

實現細節。對於CIFAR-100-LT,我們使用動量0.9和重量衰減0.0001的Nesterov SGD進行訓練。我們使用的總小批大小為256,每個GPU有128個圖像。對ResNet-32模型進行12.8K迭代訓練,學習率為0.2,然后在6.4K和9.6K迭代時,學習率衰減為0.1。在前400次迭代中,學習率從0.1逐漸提高到0.2。對於數據增加,我們首先遵循與[24,18]相同的設置,然后使用autoAugment[4]和Cutout[8]。在測試中,我們簡單地使用原始的32×32圖像。對於ImageNet-LT,我們使用16個gpu的1024個小批處理。我們像[30]一樣使用ResNet-10作為主干。模型訓練12K次,學習率為0.4,學習速率為3.4K, 6.8K, 10.2K次。采用[14]逐步預熱策略,在前500次迭代中將學習率從0.1提高到0.4。我們使用隨機大小裁剪、顏色抖動和水平翻轉來增加數據。訓練輸入大小為224×224。在測試中,我們將圖像大小調整為256×256,然后在中心裁剪單個視圖224×224。CIFAR-100-LT和ImageNet-LT檢測結果。由於這些增強技術,我們在CIFAR-100-LT上建立了一個更強的基線。如表7所示,我們的EQL仍然將強基線提高了2%。這些改進來自於訓練樣本較少的課程。關於ImageNet-LT,我們也在表9中進行了消融研究。在softmanx損失基線的基礎上,廣泛的給定值給出了一致的改進。如表8和表10所示,我們的均衡損耗顯著超過了之前的先進方法,這表明我們的方法可以有效地推廣到不同的任務和數據集。

Conclusion

在本研究中,我們分析了長尾數據集中嚴重的inter-class competition問題。我們提出了一個新的均衡損失函數,以減輕過度 discouraging 梯度對尾部類別的影響。我們的方法簡單而有效,對具有挑戰性的長尾目標檢測和圖像分類數據集的不同框架和網絡架構帶來了顯著的改進。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM