Hybrid-PSC:基於對比學習的混合網絡,解決長尾圖片分類 | CVPR 2021

 論文提出新穎的混合網絡用於解決長尾圖片分類問題,該網絡由用於圖像特徵學習的對比學習分支和用於分類器學習的交叉熵分支組成,在訓練過程逐步將訓練權重調整至分類器學習,達到更好的特徵得出更好的分類器的思想。另外,爲了節省內存消耗,論文提出原型有監督對比學習。從實驗結果來看,論文提出的方法效果還是很不錯的,值得一看

來源:曉飛的算法工程筆記 公衆號

論文: Contrastive Learning based Hybrid Networks for Long-Tailed Image Classification

Introduction


 在實際場景中,圖片類別通常都會呈現長尾分佈,不常見的類別通常由於數據不足而無法被充分學習,給分類器的學習帶來巨大的挑戰。當前大多研究都通過減輕尾部類別的數據短缺來應對數據不平衡的問題,防止模型被頭部類別控制,如數據重採樣和數據增強等。
 最近,有新的研究提出將長尾數據分類問題分解爲特徵學習和分類器學習兩個階段,認爲這兩個階段適用不同的數據採樣策略進行學習,比如隨機採樣更適合特徵學習,而類別平衡採樣更適合分類器學習。

 但有一點需要注意的是,上述兩類研究都沒有考慮到,在數據不平衡場景下,交叉熵損失是否仍爲特徵學習的理想損失函數。交叉熵損失學習到的特徵分佈可能會高度傾斜,如上圖所示,導致分類器存在偏向性,會影響長尾分類。
 爲此,論文研究了高效的對比學習策略,將其適配到不平衡數據中學習特徵表達,提高長尾圖片分類場景的性能。論文采用了新穎的混合網絡結構,由用於特徵表達學習的對比損失和用於分類器學習的交叉熵損失組成。兩個損失聯合訓練,在訓練過程中逐漸調整兩個損失的權重,從特徵學習逐步轉移爲分類器學習,遵循更好的特徵產生更好的分類器的思想。

 論文一開始採用從無監督對比(UC)中延伸出來的有監督對比(SC)損失用於特徵學習,該損失使用batch內的樣本進行相互對比,通過區分負樣本來優化正樣本間的一致性,如圖左所示。如果想要保證優化效果,需要確保對比的正樣本夠多以及負樣本覆蓋足夠多的類別,通常需要使用較大的batch,導致內存消耗過多。爲了解決這個問題,論文提出了原型有監督對比(PSC)學習策略,從batch內的樣本間對比改爲batch內的樣本與額外維護的原型進行對比,如圖右所示。在保持原本有監督對比的特性的情況下,原型有監督對比避免了過多的內存消耗,還能使數據採樣更靈活和高效。
 論文的主要貢獻如下:

  • 提出用於長尾數據分類的混合網絡結構,由用於特徵表達學習的對比損失和用於分類器學習的交叉熵損失組成。在訓練過程中逐漸調整兩個損失的權重,從特徵學習逐步轉移爲分類器學習,遵循更好的特徵產生更好的分類器的思想。
  • 研究高效的有監督對比學習策略用於更優的特徵學習,提高長尾分類性能。另外,論文提出原型有監督對比來解決標準有監督對比的內存問題。
  • 驗證在長尾分類場景中,有監督對比學習能更好地替代交叉熵損失進行特徵學習。得益於學習到更好的特徵,論文提出的混合網絡能夠極大地超越基於交叉熵的網絡。

Contrastive learning


Unsupervised contrastive

 無監督對比學習在無標籤的場景下,通過同源圖片與非同源圖片之間的特徵對比來進行特徵表達的學習。比如先隨機選取n張原圖片,經過數據增強後變成2n張圖片組成batch,將同源副本相互認爲正樣本、非同源副本認爲負樣本進行距離學習。

Supervised contrastive

 有監督對比學習主在有標籤的場景下,通過同類別圖片與非同類別圖片之間的特徵對比來進行特徵表達的學習。有監督對比學習也是需要進行數據增強生成同源副本的,所以正樣本包含同源副本和同類別副本。比如選取n張原圖片,經過數據增強後變成2n張圖片組成batch,將同類圖片相互認爲正樣本、非同類圖片認爲負樣本進行距離學習。這裏的n張圖片選取不能隨機選,爲達到有監督的目的,同類別圖片要大於1張。

Main Approach


A Hybrid Framework for Long-tailed Classification

 論文提出的用於長尾圖像分類的混合框架如上圖所示,包含兩個分支:

  • 用於圖像特徵學習的對比學習分支,構造同類內聚、異類分離的特徵空間。
  • 用於分類器學習的交叉熵分支,基於對比學習分支得到的顯著特徵學習類別偏向較少的分類器。

 爲了達到用更好的特徵幫助分類器進行學習,從而得到更通用的分類器的目的。論文參考了BBN的雙分支聯合訓練方法,在訓練階段逐步調整這兩個分支的權重。在訓練初期以特徵學習作爲主導,隨着訓練的進行,分類器學習逐級主導訓練。
 主幹網絡在分支間共享,共同幫助主幹網絡學習每個圖片的特徵\(r\in\mathcal{R}^{D_E}\)。兩個分支分別進行不同的操作:

  • 對比學習分支先通過MLP層\(f_e(\cdot)\)將圖片特徵\(r\)映射成向量表達\(z\in\mathcal{R}^{D_S}\),適配後續對比損失函數的計算。另外,這樣的特徵向量化轉換也有助於提升前一層的特徵質量。隨後,對特徵\(z\)進行\(\mathcal{l}_2\)歸一化,使其能夠用於距離計算。最後,使用輸出的歸一化特徵計算有監督對比損失\(\mathcal{L}_{SCL}\)
  • 分類器學習分支先通過單個線性層從圖像特徵\(r\)預測類別結果\(s\in\mathcal{R}^{D_C}\),隨後直接計算交叉熵損失\(\mathcal{L}_{CE}\)

 需要注意的是,爲了適應其損失函數的特性,兩個分支的數據採樣方式是不同的。特徵學習分支需要附帶樣本\(x_i\)的同類正樣本\(\{x^{+}_i\}=\{x_j|y_i=y_j,i\ne j\}\)和異類負樣本\(\{x^{-}_i\}=\{x_j|y_i=y_j,i\ne j\}\),組成單個batch輸入\(\mathcal{B}_{SC}=\{x_i, \{x^{+}_i\}, \{x^{-}_i\}\}\),而分類器學習分支則直接輸入圖片和標籤\(\mathcal{B}_{CE}=\{\{x_i, y_i\}\}\)即可。
 混合網絡的最終損失函數爲:

\(\alpha\)是權重因子,與週期數成反相關。

Supervised contrastive loss and its memory issue

 有監督對比損失(supervised contrastive loss, SC loss)是對無監督對比損失(unsupervised contrastive loss, UC loss)的擴展,區別在於單batch內的正負樣本構成。假設目標圖片的正負樣本的向量特徵爲\(\{z^{+}_i\}\)\(\{z^{-}_i\}\),對於大小爲N的minibatch,SC loss的計算爲:

 相對於UC loss,SC loss可採用任意數量的正樣本。由於對比損失是通過區分負樣本來優化正樣本間的一致性,所以負樣本數量十分重要的,而SC損失加入同類圖片作爲正樣本,爲保證負樣本數量而不得不成倍地增加batch大小,導致內存消耗成倍地增加,導致內存消耗的成倍地增加,限制了SC loss的使用場景。
 一個解決內存消耗的做法就是縮小負樣本數量,但這樣在類別數多的場景下會有問題。負樣本數小意味着只能採樣到少量負樣本類別,肯定會影響學到的特徵質量。

Prototypical supervised contrastive loss

 爲了同時兼顧內存消耗和特徵質量,論文提出了原型有監督對比損失(prototypical supervised contrastive loss, PSC loss),爲每個類別學習一個原型,強迫每個圖片的數據增強副本儘量靠近其所屬類別的原型以及遠離其他類別的原型。使用原型有兩個好處:1)允許更靈活的數據採樣方式,不再需要顯示地控制正負樣本,可使用隨機採樣或類別平衡採樣。2)數據採樣更高效,假設有\(\mathcal{C}\)類別,則每次採樣保證都有\(\mathcal{C}-1\)個負樣本,這對於類別多的數據集特別重要。
 PSC loss的計算如下:

\(p_{ij}\)是類別\(y_i\)的原型特徵,歸一化爲\(\mathcal{R}^{D_S}\)下的單位超球面,即滿足L2歸一化。這裏沒有提到原型是如何初始化和學習的,需要等源碼放出來再看看。
 PSC loss也可以延伸爲每個類別多個原型,主要爲了迎合單類別可能存在有多種數據分佈的情況。多原型有監督對比損失(multiple prototype supervised contrastive loss, MPSC loss)的計算爲:

\(M\)爲每個類別的原型數,\(p^i_j\)爲類別j的第\(i\)個原型,\(w_{i,k}(w_{i,k}\ge 0,{\sum}^M_{k=1})w_{i,k}=1\)\(z_i\)與第\(k\)個原型之間的關係值,用於更細粒度地控制每個樣本,這將會在未來的工作中進行進一步地驗證。

Experiment


Datasets

 論文主要在三個長尾圖片分類數據集進行實驗:

  • Long-tailed CIFAR-10和CIFAR-100:原版的CIFAR數據集是平衡的,通過減少每個類別的圖片數來生成長尾版本,注意驗證集不變。用一個不平衡比例\(\beta=N_{max}/N_{min}\)來表示生成的長尾數據集的不平衡程度。
  • iNaturalist 2018:iNaturalist 2018是一個大型的生物品種數據集,包含8142個品種、437513張訓練圖片以及24424張驗證圖片。

Implementation details

 對於長尾CIFAR數據集和iNaturalist數據集,論文使用了不同的實驗配置:

  • Implementation details for long-tailed CIFAR:混合網絡使用ResNet-32作爲主幹,兩個分支共享的數據增強方法有:\(32\times 32\)的隨機裁剪、水平翻轉以及概率爲0.2的隨機灰度。另外,PSC loss也跟隨SC loss使用額外的數據增強方法。在實驗中,論文簡單地使用有顏色擾動和無顏色擾動的圖片作爲數據增強副本對,batch size爲512,使用momentum=0.9、weight decay=\(1\times 10^{-4}\)的SGD優化器。網絡共訓練200個週期,學習率初始爲0.5並在第120週期和160週期下降10倍。權重因子\(\alpha=1-(T/T_{max})^2\)與週期數成拋物線衰減。對於SC loss,公式3的\(\tau\)固定爲0.1,而對於PSC loss,在CIFAR-10和CIFAR-100上分別設置爲1和0.1。
  • Implementation details for iNaturalist 2018:混合網絡使用ResNet-50作爲主幹網絡,數據增強跟長尾CIFAR一樣,只是隨機裁剪的圖片大小爲\(224\times 224\),batch size爲100。網絡共訓練100輪,使用momentum=0.9、weight decay=\(1\times 10^{-4}\)的SGD優化器,學習率初始爲0.05並在第60週期和第80週期下降10倍。考慮這個數據集的類別多,學習器訓練較難,權重因子\(\alpha=1-T/T_{max}\)設置爲線性下降,公式3的\(\tau\)固定爲0.1。對於SC loss,正樣本數固定爲2。

Result

 長尾CIFAR上的結果對比。

 iNaturalist 2018上的結果對比。

Conclusion


 論文提出新穎的混合網絡用於解決長尾圖片分類問題,該網絡由用於圖像特徵學習的對比學習分支和用於分類器學習的交叉熵分支組成,在訓練過程逐步將訓練權重從特徵學習調整至分類器學習,遵循更好的特徵可得出更好的分類器的思想。另外,爲了節省內存消耗,論文提出原型有監督對比學習。從實驗結果來看,論文提出的方法效果還是很不錯的,值得一看。

參考內容



如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章