現在我們來考慮分類器對一個負類輸出值的求導,兩種損失函式對應梯度的差別如上式所示。對於 CE Loss,當同一樣本中的正類輸出足夠高時,對負類輸出求導的梯度值也會隨之減小,而對 BCE Loss 來說,構造上的獨立性導致只有不斷降低負類輸出值本身才能夠降低自身梯度值,從而在訓練後期該輸出將穩定在一個相對更低的位置上。 這個過程的二者的視覺化對比如下圖所示。(注意這裡是損失函式的梯度函式,梯度值的大小影響最佳化速度)然而,對於一個特定類別(尤其是尾部),資料集中絕大多數都是它的負樣本,當分類器被海量負樣本包圍,且被要求對每一個負樣本都輸出一個足夠低的預測值時,分類器向量在訓練過程中將被迫遠遠偏離大量自然樣本的分佈,而僅僅過擬合在它的個別正樣本上。 可以想像分類器預測值在特徵向量(feature vector)空間中的分佈具有一個尖銳的波峰,泛化效能很差。
過度懲罰不可取,點到為止 第二個問題我們在文中稱為負樣本的過度抑制(over-suppression of negative labels),一個簡單粗暴的解決思路便是,不要對負樣本持續施加過重的懲罰,而是點到為止。 我們只需要對分類器的負類輸出進行一個簡單的線性變換就能夠實現上述功能,不要忘記加上正則化係數約束梯度值的範圍。變換後函式請見後文的整體公式,它對負類輸出的梯度與 CE 和 BCE 一同對比如下圖所示。
特別的,我們還測試了遞進實施每一步驟後,每一類別的指標增量(mAP increment),來分析每個技術對長尾分佈的不同位置處類別的影響,具體結果以及更多的 Ablation study 可以參考原文。
展望
這篇文章關注的是長尾分佈下的多標籤分類問題,並從已經較為成熟的單標籤不平衡分類方法中得到啟發,從二者的差別入手,提出了一個簡單而有效的方法。深度學習發展到今天,學術界預設採用的單一域平衡資料集已無法反映 AI 演算法的真正泛化能力。 我們邀請大家一起來攻關這個新興且更符合現實資料的領域,開放世界學習(Open World Learning),既包含類別分佈上的複雜性 [1],也包含資料域分佈上的複雜性 [5]。 最後,歡迎大家關注我們的工作,提出寶貴的建議!
參考文獻
[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/p