原標題:ECCV 2020 Spotlight | 清華&港中文提出多標籤長尾識別前沿進展

Jiangmen

作者:香港中文大學在讀博士生 吳桐

ECCV 2020系列文章專題

第·19·期

本文將分享來自 香港中文大學在讀博士生吳桐等人在 ECCV Spotlight的工作。 文章關注的是長尾分佈下的多標籤分類問題,並提出了一種分佈平衡損失函數 (Distribution-Balanced Loss),在 COCO-MLT 和 VOC-MLT 這兩個人工構造的多標籤長尾數據集上進行實驗驗證,均取得了很好的效果。

更多ECCV精彩內容,後臺回覆“ECCV”即可查看!

論文地址:

https://arxiv.org/abs/2007.09654

代碼鏈接:

https://github.com/wutong16/DistributionBalancedLoss

視頻鏈接:

youtu.be/AoEJF-osMgM

一、背景

真實世界中的數據分佈往往是不平衡的,少數幾個頭部類別(比如人、車等)擁有大量可訓練樣本,而大多數類別的樣本數量十分有限,在統計直方圖上形成長長的“尾巴”。

然而,採集自真實場景的圖片常常具有豐富的語義信息,多個物體共存是一種普遍情形。因此長尾分佈下的多標籤分類任務是這篇文章主要關注的問題。

二、動機

從單標籤向多標籤的轉換,有幾個自然的思路:對前者有效的方法對後者來說是否仍適用?兩種設定在訓練時的主要區別有哪些,又有怎樣的影響呢?

1. 採樣難解耦

對於第一個問題,我們注意到重採樣(re-sampling)是一個常見而有效的策略,在幾個最新工作 [1,2,3,4] 中都作爲關鍵組件出現,其中 [3,4] 提出重採樣法對分類器學習有顯著促進作用。但這種方法並不能順滑地遷移到多標籤情景中,因爲標籤的共存性(co-occurrence)將導致不同類別在採樣時無法解耦。

舉個栗子,如果數據集中有限的幾張牙刷圖片樣本都同時包含刷牙的人在其中,那麼在對“牙刷”這一尾部類別進行重採樣時,對“人”這一頭部類別的採樣也會只多不少。同時,注意到“刷牙的人”此時就會比“單獨出現的人”具有顯著更高的採樣頻率,爲頭部類別額外引入類內不均衡的問題。

圖1 重採樣過程以及採樣前後分佈直方圖對比

2. 分類器出走

對於第二個問題,我們知道Cross-Entropy Loss(CE Loss)是單標籤分類中常見的損失函數,其中 softmax 的計算強調分類器需要輸出唯一最大預測值,同時正負類別的預測值在損失函數中存在相互影響;而多標籤分類則多使用 Binary Cross-Entropy Loss(BCE Loss),將任務拆解爲一系列相互獨立的二分類問題,並以 sigmoid 計算每一類別的輸出預測值。

現在我們來考慮分類器對一個負類輸出值的求導,兩種損失函數對應梯度的差別如上式所示。對於 CE Loss,當同一樣本中的正類輸出足夠高時,對負類輸出求導的梯度值也會隨之減小,而對 BCE Loss 來說,構造上的獨立性導致只有不斷降低負類輸出值本身才能夠降低自身梯度值,從而在訓練後期該輸出將穩定在一個相對更低的位置上。

這個過程的二者的可視化對比如下圖所示。(注意這裏是損失函數的梯度函數,梯度值的大小影響優化速度)

圖2 CE 和 BCE 對負類輸出的梯度函數可視化

然而,對於一個特定類別(尤其是尾部),數據集中絕大多數都是它的負樣本,當分類器被海量負樣本包圍,且被要求對每一個負樣本都輸出一個足夠低的預測值時,分類器向量在訓練過程中將被迫遠遠偏離大量自然樣本的分佈,而僅僅過擬合在它的個別正樣本上。

可以想像分類器預測值在特徵向量(feature vector)空間中的分佈具有一個尖銳的波峯,泛化性能很差。

三、方法

針對上述問題,我們分別提出了 Re-balanced weighting 和 Negative-tolerant regularization兩個策略,並最終整合爲一個損失函數的形式。

1. 理想現實有差距,加權彌補

現在來對採樣過程做一個簡單的定量分析:假設我們希望所有類別都以相同的概率被採樣到,那麼在不考慮標籤共存時,包含類別

的樣本

被採樣到的概率可記作

;但該樣本還可能含有其它正標籤,每一個正標籤都對它實際的採樣概率有所貢獻,後者可以計算出並記爲

我們通過計算上述二者的比值

並以其作爲加權係數加入訓練,來彌補期待與實際採樣概率之間的差距。特別的,我們還設計了一個平滑函數,將權重係數映射到一個合理範圍內。權重係數的計算過程如下所示。

2. 過度懲罰不可取,點到爲止

第二個問題我們在文中稱爲負樣本的過度抑制(over-suppression of negative labels),一個簡單粗暴的解決思路便是,不要對負樣本持續施加過重的懲罰,而是點到爲止。

我們只需要對分類器的負類輸出進行一個簡單的線性變換就能夠實現上述功能,不要忘記加上正則化係數約束梯度值的範圍。變換後函數請見後文的整體公式,它對負類輸出的梯度與 CE 和 BCE 一同對比如下圖所示。

圖3 三種損失函數對負類輸出的梯度函數對比

3. 權值正則兩相宜,統一框架

最後,上面兩個方法可以自然地融合爲一個損失函數,並進行端到端的訓練,下圖可視化了它的構造過程。

圖 4 分佈平衡損失函數構造過程

我們來回顧一下整體計算框架:(1) 首先應用重採樣法促進尾部類別分類器的學習,同時也對頭部類別引入了一定的類內採樣不均衡性;(2) 接着,利用重加權的方法對無法解耦的採樣在權重上予以平衡;(3)最後,正則化方法緩解了對負類別輸出的過度抑制。

如下圖所示,特徵向量(feature vector)空間各類別預測值的分佈得到了遞進式的平衡,這也是分佈平衡損失函數(Distribution-Balanced Loss)命名時的想法。

圖5 整體流程示意圖

四、實驗結果

我們基於 Pascal VOC 和 MS COCO 以抽取的方式人工構造了兩個長尾分佈的多標籤數據集用以訓練,稱爲 VOC-MLT 和 COCO-MLT,並以 mAP 爲主要評價指標在原始測試集上進行驗證。

我們根據每個類別含有的訓練樣本數量$n$將其劃分爲頭部(head, n>100),中部(medium,100≥n>20)和尾部(tail, n≤20)三個子集,並在整體和各子集上都進行了結果對比,結果如下表所示。

特別的,我們還測試了遞進實施每一步驟後,每一類別的指標增量(mAP increment),來分析每個技術對長尾分佈的不同位置處類別的影響,具體結果以及更多的 Ablation study 可以參考原文。

五、展望

這篇文章關注的是長尾分佈下的多標籤分類問題,並從已經較爲成熟的單標籤不平衡分類方法中得到啓發,從二者的差別入手,提出了一個簡單而有效的方法。深度學習發展到今天,學術界默認採用的單一域平衡數據集已無法反映 AI 算法的真正泛化能力。

我們邀請大家一起來攻關這個新興且更符合現實數據的領域,開放世界學習(Open World Learning),既包含類別分佈上的複雜性 [1],也包含數據域分佈上的複雜性 [5]。

最後,歡迎大家關注我們的工作,提出寶貴的建議!

//

作者介紹:

吳桐,香港中文大學多媒體實驗室(MMLab)一年級博士生在讀,師從林達華教授。她於2020年從清華大學電子系取得學士學位。研究興趣包括長尾識別、對抗樣本、組合學習等,曾在ECCV上發表兩篇文章。

參考資料

[1] Liu et al., Large-Scale Long-Tailed Recognition in an Open World, in CVPR 2019 (Oral), liuziwei7.github.io/pro

[2] Cui et al., Class-Balanced Loss Based on Effective Number of Samples, in CVPR 2019

[3] Kang et al., Decoupling Representation and Classifier for Long-Tailed Recognition, in ICLR 2020

[4] Zhou et al., BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition, in CVPR 2020 (Oral)

[5] Liu et al., Open Compound Domain Adaptation, in CVPR 2020 (Oral), liuziwei7.github.io/pro

相關文章