1. 程式人生 > 實用技巧 >NeurIPS 2020 | 資料類別不平衡/長尾分佈?不妨利用半監督或自監督學習

NeurIPS 2020 | 資料類別不平衡/長尾分佈?不妨利用半監督或自監督學習

作者:Yuzhe Yang

連結:https://zhuanlan.zhihu.com/p/259710601

本文轉載自知乎,作者已授權,未經許可請勿二次轉載

來給大家介紹一下我們的最新工作,目前已被NeurIPS 2020接收:Rethinking the Value of Labels for Improving Class-Imbalanced Learning(https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2006.07529)。這項工作主要研究一個經典而又非常實際且常見的問題:資料類別不平衡(也泛稱資料長尾分佈)下的分類問題。我們通過理論推導和大量實驗發現,半監督

自監督均能顯著提升不平衡資料下的學習表現。

目前程式碼(以及相應資料,30多個預訓練好的模型)已開源,Github連結如下:https://github.com/YyzHarry/imbalanced-semi-self

那麼開篇首先用一句話概括本文的主要貢獻:我們分別從理論和實驗上驗證了,對於類別不均衡的學習問題,利用

  1. 半監督學習 --- 也即利用更多的無標籤資料;或者,

  2. 自監督學習 --- 不利用任何其他資料,僅通過在現有的不平衡資料上先做一步不帶標籤資訊的自監督預訓練(self-supervised pre-training),

都可以大大提升模型的表現,並且對於不同的平衡/不平衡的訓練方法,從最基本的交叉熵損失,到進階的類平衡損失[1]

[2],重取樣[3],重加權[4][5],以及之前的state-of-the-art最優的decouple演算法[6]等,都能帶來一致的&較大的提升。相信我們從和現有方法正交的角度的分析,可以作為解決不平衡長尾問題的新的思路,其簡單和通用性也使得能夠很容易和不同方法相結合,進一步提升學習結果。

接下來我們進入正文,我會先拋開文章本身,大體梳理一下imbalance這個問題以及一部分研究現狀,在此基礎上儘量詳細的介紹我們的思路和方法,省去不必要的細節。

1. 研究背景

資料不平衡問題在現實世界中非常普遍。對於真實資料,不同類別的資料量一般不會是理想的uniform分佈,而往往會是不平衡的;如果按照不同類別資料出現的頻率從高到低排序,就會發現資料分佈出現一個“長尾巴”,也即我們所稱的長尾效應。大型資料集經常表現出這樣的長尾標籤分佈:

不同資料集的標籤呈長尾分佈。圖片來源:https://liuziwei7.github.io/projects/LongTail.html

當然,不僅僅是對於分類任務,其他任務比如object detection或instance segmentation,常用資料集也存在類別的不均衡。此外,除了視覺領域中的資料,對於涉及安全或健康的關鍵應用,例如自動駕駛和醫療/疾病診斷,資料本質上也是嚴重失衡的。

為什麼會存在不平衡的現象?其實很好理解,一個通用的解釋就是特定類別的資料是很難收集的。拿Species分類來說(參考大型資料集iNaturalist[7]),特定種類(如貓,狗等)非常常見,但是有的種類(如高山兀鷲,隨便舉的例子...)就非常稀有。再比如對自動駕駛,正常行駛的資料會佔大多數,而真正發生異常情況/存在車禍危險的資料卻極少。再比如對醫療診斷,患有特定疾病的人群數相比正常人群也是極度不平衡的。對於healthcare data來說另一個可能原因是和privacy issue有關,特定病人可能都很難採集資料。

那麼,不平衡或長尾資料會有什麼問題?簡單來說,如果直接把類別不平衡的樣本丟給模型用ERM學習,顯然模型會在major classes的樣本上的學習效果更好,而在minor classes上泛化效果差,因為其看到的major classes的樣本遠遠多於minor classes。

那麼,對於不平衡學習問題有哪些解決方法?我自己總結的目前主流方法大致分為以下幾種:

  1. 重取樣(re-sampling):更具體可分為對少樣本的過取樣[3],或是對多樣本的欠取樣[8]。但因過取樣容易overfit到minor class,無法學到更魯棒易泛化的特徵,往往在非常不平衡資料上表現會更差;而欠取樣則會造成major class嚴重的資訊損失,導致欠擬合發生。

  2. 資料合成(synthetic samples):即生成和少樣本相似的“新”資料。經典方法SMOTE[9],思路簡單來講是對任意選取的少類樣本,用K近鄰選取其相似樣本,通過對樣本線性插值得到新樣本。這裡會想到和mixup[10]很相似,於是也有imbalance的mixup版本出現[11]

  3. 重加權(re-weighting):對不同類別(甚至不同樣本)分配不同權重。注意這裡的權重可以是自適應的。此類方法的變種有很多,有最簡單的按照類別數目的倒數來做加權[12],按照“有效”樣本數加權[1],根據樣本數優化分類間距的loss加權[4],等等。

  4. 遷移學習(transfer learning):這類方法的基本思路是對多類樣本和少類樣本分別建模,將學到的多類樣本的資訊/表示/知識遷移給少類別使用。代表性文章有[13][14]

  5. 度量學習(metric learning):本質上是希望能夠學到更好的embedding,對少類附近的boundary/margin更好的建模。有興趣的同學可以看看[15][16]

  6. 元學習/域自適應(meta learning/domain adaptation):分別對頭部和尾部的資料進行不同處理,可以去自適應的學習如何重加權[17],或是formulate成域自適應問題[18]

  7. 解耦特徵和分類器(decoupling representation & classifier):最近的研究發現將特徵學習和分類器學習解耦,把不平衡學習分為兩個階段,在特徵學習階段正常取樣,在分類器學習階段平衡取樣,可以帶來更好的長尾學習結果[5][6]。這也是目前的最優長尾分類演算法。

至此大概總結了研究背景和常用方法;然而,即使有如資料重取樣或類平衡損失等專門設計的演算法,在極端的類別失衡下,深度模型效能的下降仍然廣泛存在。因此,理解類別不均衡的資料標籤分佈所帶來的影響是非常重要的。

2. 我們的研究動機和思路

不同於之前對於長尾分佈研究方法,我們從“the value of labels”,即這些本身就不平衡的資料標籤具有的“價值”這一思路去考慮。與理想情況下平衡的標籤不同,這些不平衡的資料標籤存在一個非常有趣的dilemma。一方面,這些標籤提供了非常珍貴的監督資訊。有監督的學習通常都比無監督的學習在給定任務上具有更高準確性,因此即使不平衡,這些標籤也擁有“正面價值”。但是另一方面,由於標籤非常不平衡,訓練模型的過程中可以非常自然的強加上label bias,從而使得最後的決策區域很大程度上被major class影響;這樣的結果又證明了不平衡標籤的“負面價值”。作為總結,在不平衡的訓練集中,這些標籤就像一把雙刃劍;想要得到更好的結果,一個非常重要的問題就是如何最大程度的利用不平衡標籤的“價值”?

於是,我們嘗試系統性的分解並且分別分析上述兩種不同的角度。我們的結論表明對於正面的和負面的角度,不平衡標籤的價值都可被充分利用,從而極大的提高最後分類器的準確性:

  • 正面價值的角度,我們發現當有更多的無標籤資料時,這些不平衡的標籤提供了稀缺的監督資訊。通過利用這些資訊,我們可以結合半監督學習去顯著的提高最後的分類結果,即使無標籤資料也存在長尾分佈。

  • 負面價值的角度,我們證明了不平衡標籤並非在所有情況下都是有用的。標籤的不平衡大概率會產生label bias。因此在訓練中,我們首先想到“拋棄”標籤的資訊,通過自監督的學習方式先去學到好的起始表示形式。我們的結果表面通過這樣的自監督預訓練方式得到的模型也能夠有效的提高分類的準確性。

3. 半監督框架下的不均衡學習

我們首先從半監督的不均衡學習說起,通過一個簡單的理論模型分析來建立直觀的解釋(省去了許多細節;可以直接跳到解釋部分),之後展示一些有意思的實驗結果。

理論分析:我們先從一個簡單的toy example入手。考慮一個不同均值,,但是相同方差的Guassian mixture模型,我們可以很容易驗證其貝葉斯最優分類器為:。因此為了更好的分類,我們希望學習到他們的平均均值,。假設我們已有一個在不平衡的訓練集上得到的基礎分類器以及一定量的無標籤的資料,我們可以通過這個基礎分類器給這些資料做pseudo-label。令代表pseudo-label為正和為負的資料的數量。為了估計,最簡單的方法我們可以通過pseudo-label給這些對應的沒有標籤的資料取平均得到。假設代表基礎分類器對於兩個類的準確度的gap。這樣的話我們推出以下定理:

那麼直觀理解,對於這樣一個toy example,這個定理告訴了我們以下兩點很有意思的結論:

  1. 原始資料集的不平衡性會影響我們最後estimator的準確性。越不平衡的資料集我們expect 基礎分類器有一個更大的。越大的影響我們的estimator到理想的均值之間的距離。

  2. 無標籤資料集的不平衡性影響我們能夠得到一個好的estimator的概率。對於還不錯的基礎分類器,可以看做是對於無標籤資料集的不平衡性的近似。我們可以看到,當,如果無標籤資料很不平衡,那麼資料少的一項會主導另外一項,從而影響最後的概率。

半監督的不平衡學習框架:我們的理論發現表明,利用pseudo-label偽標籤(以及訓練資料中的標籤資訊)可以有助於不平衡學習;而資料的不平衡程度會影響學習的結果。受此啟發,我們系統地探索了無標記資料的有效性。我們採用最簡單的自訓練(self-training)的半監督學習方法,即對無標記資料生成偽標籤(pseudo-labeling)進而一起訓練。準確來講,我們首先在原始的不平衡資料集上正常訓練獲得一箇中間步驟分類器,並將其應用於生成未標記資料的偽標籤;通過結合兩部分資料,我們最小化損失函式以學習最終模型

值得注意的是,除了self-training之外,其他的半監督演算法也可以通過僅修改損失函式輕鬆地併入我們的框架中;同時,由於我們未指定的學習策略,因此半監督框架也能很輕易的和現有類別不平衡的演算法相結合。

實驗:到了激動人心的實驗部分了 :)! 首先說一下實驗的setting --- 我們選擇了人工生成的長尾版本的CIFAR-10和SVHN資料集,因為他們均有天然對應、且資料分佈相似的無標記資料:CIFAR-10屬於Tiny-Images資料集,而SVHN本身就有一個extra dataset可用來模擬多餘的無標記資料。這部分更加細節的setting請詳見我們的文章;我們也開源了相應的資料供大家使用測試。對於無標記資料,我們也考慮到了其可能的不平衡/長尾分佈,並顯式的比較了不同分佈的無標記資料的影響(的典型分佈如下):

典型的原始資料分佈,以及可能的無標記資料分佈

而具體的實驗結果如下表所示。我們可以清楚看到,利用無標記資料,半監督學習能夠顯著提高最後的分類結果,並且在不同的 (1) 資料集,(2) base學習方法,(3) 標記資料的不平衡比率,(4) 無標記資料的不平衡比率下,都能帶來一致的提升。此外,我們在附錄裡還提供了 (5) 不同半監督學習方法的比較,以及不同data amount的ablation study。

最後展示一下定性的實驗結果。我們分別畫出了不使用/使用無標籤資料,在訓練集和測試集上的t-SNE視覺化圖。從圖中可以直觀看出,使用未標記資料有助於建模更清晰的類邊界,並促成更好的類間分離,尤其是對於尾類的樣本。這樣的結果也符合我們的直觀理解,對於尾類樣本,其所處區域的資料密度低,模型在學習過程中不能對這些low-density區域很好建模邊界,從而造成模糊性(ambiguity)導致較差的泛化;而無標記資料則能有效提高低密度區域樣本量,加上了更強的regularization使得模型重新更好地建模邊界。

4. 關於半監督不均衡學習的進一步思考

雖然通過半監督學習,模型在不平衡資料上的表現能夠得到顯著的提升,但是半監督學習本身也存在一些實際應用的問題,而這些問題在不平衡學習中可能會被進一步放大。接下來我們通過設計相應實驗來系統地闡述和分析這些情況,並motivate接下來對於不平衡標籤“負面價值”的思考和研究。

首先,無標籤資料與原始資料的相關性對於半監督學習的結果有很大的影響。舉個栗子,對於CIFAR-10(10類分類)來說,獲得的無標籤資料可能並不屬於原本10類中的任何一類(比如高山兀鷲...),這時多餘的資訊則可能對訓練和結果造成不小影響。為了驗證這一觀點,我們固定無標籤資料和原始訓練資料有相同的不平衡比率,但是通過改變無標籤資料和原始訓練資料的相關性去構造不同的無標籤資料集。從Figure 2中我們可以看出,無標籤資料的相關性需要達到將近60%以上才能過對不平衡學習有正面的幫助。

既然原始訓練資料是不平衡的,能夠採集到的無標籤資料也大概率是極度不平衡的。譬如醫療資料中,你構建了自動診斷某類疾病的資料集,其中正例(患病)很少,只佔總體1%,但因為此病得病率就在1%左右,即使大量蒐集無標籤資料,其中真正患病資料大概率還是很少。那麼,在同時考慮相關性的前提下,如Figure 3所示,我們首先讓無標籤資料集有足夠的相關性(60%),但改變無標籤資料的不平衡比率。這個實驗中,我們固定原始訓練資料的不平衡比率為50。可以看到對於無標籤資料,當無標籤資料過於不平衡(本例中不平衡比率高於50)時,利用無標籤資料反而可能讓結果變得更差。

上述問題在某些特定的實際不平衡學習任務中,可能是非常普遍的。比如醫療/疾病診斷的應用,對於可能獲得的無標記資料,其絕大多數大概率也都是從正常樣本上採集的,這首先造成了資料的不平衡;其次,即使是患病的樣本,也很可能由很多其他混雜因素(confounding factors)導致,而這會降低與本身研究病症的相關性。因此,在一些很難利用半監督學習的極端情況下,我們需要完全不同的但是也行之有效的方法。非常自然的,我們接下來從不平衡標籤負面價值的角度去入手,闡述另一思路 --- 自監督學習帶來的好處。

5. 自監督框架下的不均衡學習

同樣地,我們首先通過一個簡單的理論模型分析來直觀理解自監督對不平衡學習所帶來的影響(同樣也可以直接跳到解釋部分),之後展示有意思的實驗結果,以及總結思考。

理論分析:我們同樣考慮一個維Guassian mixture的toy example。這次我們考慮兩個類有相同的均值(都為0)但是不同的方差,。其中,我們假設負類是主要的類(mix 概率)。我們考慮線性的分類器,並且用標準的error probability,,作為分類器的衡量標準。在正常的訓練中,公式裡的feature代表的是raw data,。在這種情況下,我們可以首先證明上述的線性分類器一定會有至少的error probability(詳見文章)。接下來我們考慮當有self-supervision的情況。假設一個好的self-supervised task幫助我們學習到了新的representation,。我們考慮用作為線性分類器的輸入。在上述的分類器範圍內, 我們可以得到一個分類器,,滿足下面的定理:

同樣的,我們嘗試直觀的解釋這個定理的意義。我們發現在這樣簡單的情況下,如果通過一個好的self-supervised task學習到了有用的表達形式,我們能得到:

  1. 有很高的概率,我們能得到一個更好的分類器。這個分類器的error probability隨資料維度的增加而指數型減小。對於如今常見的高維資料(如影象)這種性質是我們希望得到的。

  2. 訓練資料的不平衡性會影響我們能夠得到這樣一個好的分類器的概率。上文中,代表訓練資料裡不同類的數量。從這兩項中我們可以發現,當資料越多且越平衡,我們就有更高的概率得到一個好的分類器。

自監督的不平衡學習框架:為利用自監督來克服固有的“label bias”,我們提出在長尾學習的第一階段先放棄標籤資訊,並進行自監督預訓練(self-supervised pre-training,SSP)。此過程旨在從不平衡資料集中學到更好的、與標籤無關的初始化特徵資訊。在此階段後,我們可以使用任何標準的訓練方法,去訓練得到最終的模型。由於預訓練與正常訓練階段所採用的學習方法無關,因此這種策略可與任何現有的不平衡學習演算法相容。一旦自監督產生良好的初始化,網路就可以從預訓練任務中受益,並最終學習到更通用的表示形式。

實驗:那麼又一次到了激動人心的實驗部分 ;) 這次由於不需要額外資料,我們除了在長尾的CIFAR-10/100上驗證演算法,也在大型資料集ImageNet的長尾版本,以及一個真實的大型長尾資料集iNaturalist[7]上進行測試,並和相應state-of-the-art對比。對於自監督演算法,我們採用了經典的Rotation prediction[19]和最新的對比學習方法MoCo[20]。在Appendix裡我們也提供了更多ablation study,比較了4種不同自監督方法的效果,以及不同的Imbalance Type。

具體實驗結果如以下兩表格所示。一言以蔽之,使用SSP能夠對不同的 (1) 資料集,(2) 不平衡比率,以及 (3) 不同的基礎訓練演算法,都帶來了一致的、肉眼可見的提升,並且在不同資料集上都超過了之前最優的長尾分類演算法。

最後同樣展示一下自監督下的定性實驗結果。與之前一樣,我們分別畫出了訓練和測試集的特徵t-SNE投影。從圖中不難發現,正常CE訓練的決策邊界會很大程度被頭類樣本改變,從而導致在(平衡的)測試集中尾類樣本的大量“洩漏”,無法很好泛化。相比之下,使用SSP可以保持清晰的分離效果,並減少尾類樣本的洩漏,尤其是在相鄰的頭類和尾類之間。這樣的結果同樣也能直觀理解:自監督學習通過額外的task來約束學習過程,對資料空間的結構學習的更完整、提取的資訊更全面,相比不平衡的標籤資訊帶來的語義資訊的不平衡,其能有效減輕網路對高層語義特徵的依賴,以及對尾部資料的過擬合,學到的特徵表示會更魯棒易泛化,從而在下游任務中表現更好。

6. 結語

最後總結一下本文,我們首次通過半監督和自監督這兩個不同的viewpoint去嘗試理解和利用不平衡的資料(標籤),並且驗證了這兩種框架均能提升類別不均衡的長尾學習問題。我個人還是挺喜歡這篇文章的,有很直觀的理論分析與解釋,以及用非常簡潔並且通用的框架去提升長尾分佈下的學習任務。拿一位給我們很高分數的reviewer的原話,“The results could be of interest to even broader area of different applications”,即不只是侷限於文中做的幾個academic datasets,而對於現實中許多常見的imbalance或long-tail的任務,都是能即插即用,或是對如何有效收集無標籤資料提供一些insight的。

當然,宣傳歸宣傳,我們的工作還是存在其侷限性。雖然我們考慮到了無標籤資料的不平衡性,但是對於半監督(或是自監督)的演算法本身,並沒有整合不平衡學習的策略,而是直接使用了vanilla的演算法。其次,如我們標題所帶詞語“improving”所示,我們能提升現有的最優演算法,但長尾問題本身仍未完全解決,甚至還有很大的提升空間。

參考

1.Yin Cui, Menglin Jia, Tsung-Yi Lin, Yang Song, and Serge Belongie. Class-balanced loss based on effective number of samples. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 9268–9277, 2019.

2.Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, and Piotr Dollár. Focal loss for dense object detection. In ICCV, pages 2980–2988, 2017.

3.Samira Pouyanfar, et al. Dynamic sampling in convolutional neural networks for imbalanced data classification.

4.Learning Imbalanced Datasets with Label-Distribution-Aware Margin Loss. NeurIPS, 2019.

5.BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition. CVPR, 2020.

6.Decoupling representation and classifier for long-tailed recognition. ICLR, 2020.

7.iNatrualist 2018 competition dataset.https://github.com/visipedia/inat_comp/tree/master/2018

8.He, H. and Garcia, E. A. Learning from imbalanced data. TKDE, 2008.

9.Chawla, N. V., et al. SMOTE: synthetic minority oversampling technique. JAIR, 2002.

10.mixup: Beyond Empirical Risk Minimization. ICLR 2018.

11.H. Chou et al. Remix: Rebalanced Mixup. 2020.

12.Deep Imbalanced Learning for Face Recognition and Attribute Prediction. TPAMI, 2019.

13.Large-scale long-tailed recognition in an open world. CVPR, 2019.

14.Feature transfer learning for face recognition with under-represented data. CVPR, 2019.

15.Range Loss for Deep Face Recognition with Long-Tail. CVPR, 2017.

16.Learning Deep Representation for Imbalanced Classification. CVPR, 2016.

17.Meta-Weight-Net: Learning an Explicit Mapping For Sample Weighting. NeurIPS, 2019.

18.Rethinking Class-Balanced Methods for Long-Tailed Recognition from a Domain Adaptation Perspective. CVPR, 2020.

19.Spyros Gidaris, Praveer Singh, and Nikos Komodakis. Unsupervised representation learning by predicting image rotations. arXiv preprint arXiv:1803.07728, 2018.

20.Kaiming He, Haoqi Fan, Yuxin Wu, Saining Xie, and Ross Girshick. Momentum contrast for unsupervised visual representation learning. arXiv preprint arXiv:1911.05722, 2019.

☆ END ☆

如果看到這裡,說明你喜歡這篇文章,請轉發、點贊。微信搜尋「uncle_pn」,歡迎新增小編微信「 mthler」,每日朋友圈更新一篇高質量博文。

掃描二維碼新增小編↓