Class-Balanced Loss Based on Effective Number of Samples - 1 - 論文學習


https://arxiv.org/pdf/1901.05555.pdf

skewed 傾斜的,歪斜的 heuristic 啟發式的 interpolated插值 focal 焦點的 complementary 互補的 coverage 覆蓋 tamable 可馴服的 intrinsic 內在的,本質的

Abstract

隨着大規模、真實世界數據集的迅速增加,長尾數據分布問題的解決變得至關重要(即少數類占了大部分數據,而大多數類的代表性不足)。現有的解決方案通常采用類重新平衡策略,例如根據每個類的觀察數量重新采樣和重新加權。在這項工作中,我們認為,隨着樣本數量的增加,新添加的數據點的額外好處將減少。我們引入了一個新的理論框架來測量數據重疊,方法是將每個樣本與一個小的鄰近區域聯系起來,而不是單個點。有效的樣本被定義為樣品的體積,可以通過一個簡單的公式計算(1−βn) /(1−β),其中n是樣本的數量和β∈(0,1)是一個hyperparameter。我們設計了一個權重調整方案,利用每個類的有效樣本數來重新平衡損失,從而產生一個類平衡損失。對人工誘導的長尾CIFAR數據集和包括ImageNet和iNaturalist在內的大規模數據集進行了綜合實驗。我們的結果顯示,當使用提議的類平衡損失訓練時,網絡能夠在長尾數據集上獲得顯著的性能增益。

 

1. Introduction

深度卷積神經網絡(CNNs)最近在視覺識別方面的成功[25,36,37,16]在很大程度上歸功於大規模的、現實世界的帶注釋數據集[7,27,48,40]的可用性。與常用的視覺識別的數據集(例如,CIFAR[24,39],ImageNet ILSVRC 2012[7, 33]和CUB-200 Birds[42]),表現出大致均勻分布的類標簽,現實世界的數據集[21]都有着傾斜的分布,有着一條長尾:意思是幾個主導類占據大多數例子,而大多數其他的類只有着相對較少的例子。對這些數據進行訓練的CNNs在弱表示類中表現較差[19,15,41,4]。 

最近的一些研究旨在緩解長尾訓練數據的挑戰[3,31,17,41,43,12,47,44]。一般來說,有兩種策略:重新抽樣和成本敏感的重新加權。在重新抽樣中,通過對次要類進行過度抽樣(添加重復數據)或對主要類進行欠抽樣(刪除數據),或兩者同時進行,可以直接調整示例的數量。在成本敏感的權重調整中,我們通過將相對較高的成本分配給來自較小類的示例來影響損失函數。在使用CNNs進行深度特征表示學習的情況下,重新采樣可能會引入大量的重復樣本,從而降低了訓練速度;模型在過度采樣時容易出現過擬合,或者在欠采樣時可能丟棄對特征學習很重要的有價值的樣例。由於在CNN訓練中使用重采樣的這些缺點,本文的工作重點是重新加權的方法,即如何設計一個更好的類平衡損失。

典型地,一個類平衡損失分配樣本權值與類頻率成反比。這種簡單的啟發式方法已被廣泛采用[17,43]。然而,最近針對大規模、真實世界、長尾數據集的訓練工作[30,28]表明,在使用這種策略時,性能很差。相反,他們使用一種“平滑”版本的權值,這種權值根據經驗設置為與類頻率的平方根成反比。這些觀察提出了一個有趣的問題:我們如何設計一個適用於不同數據集數組的更好的類平衡損失?

我們打算從樣本容量的角度來回答這個問題。如圖1所示:

我們考慮訓練一個模型來區分來自長尾數據集的主類和次類。由於數據的高度不平衡,直接訓練模型或通過反樣本數來重新加權損失都不能得到令人滿意的結果。直觀地說,數據越多越好。然而,由於數據之間存在信息重疊,隨着樣本數量的增加,模型從數據中提取的邊際效益也隨之減少。基於此,我們提出了一種新的理論框架來描述數據重疊,並在模型和損失不可知的情況下計算樣本的有效數量。在損失函數中加入一個與有效樣本數成反比的類平衡權重項。大量的實驗結果表明,這個類平衡項顯著地提高了長尾數據集上訓練CNNs的常用損失函數的性能。

我們的主要貢獻如下:(1)我們提供了一個理論框架來研究樣本的有效數量,並展示了如何設計一個類平衡項來處理長尾訓練數據。(2)我們證明,在現有的常用損失函數(包括softmax cross-entropy, sigmoid cross-entropy和focal loss)中加入所提出的類平衡項可以顯著地改善性能。此外,我們證明了我們的類平衡損失可以作為視覺識別的一個通用損失,在ILSVRC 2012上表現優於常用的softmax cross-entropy。我們相信,我們對樣本有效數量和類平衡損失的量化研究可以為長尾類分布領域的研究人員提供有用的指導。

 

2. Related Work

以往對長尾不平衡數據的研究主要分為兩種情況:重新采樣[35,12,4,50](包括過采樣和欠采樣)和成本敏感學習[38,49,17,22,34]。

Re-Sampling。過度采樣增加了小類的重復采樣,這可能導致模型過度擬合。為了解決這個問題,可以從相鄰的樣本[5]中插入新的樣本,或者對較小的類進行合成[14,50]。然而,由於新樣本中存在噪聲,模型仍然容易出錯。有人認為,即使欠抽樣會帶來刪除重要樣本的風險,欠抽樣仍比過度抽樣更可取。

Cost-Sensitive Learning。成本敏感學習可以追溯到統計學中的一個經典方法,稱為重要性抽樣[20],在這個方法中,為了匹配給定的數據分布,為樣本分配權重。Elkan等人研究了在二分類的情況下,如何分配權重來調整決策邊界以匹配給定的目標。對於不平衡的數據集,通常采用逆類頻率[17,43]加權或逆類頻率的平方根的平滑版本[30,28]。作為基於理論框架的平滑加權的推廣,我們關注(a)如何量化樣本的有效數量和(b)使用它來重新加權損失。另一項重要的工作是研究樣本在損失方面的難度,並將更高的權重分配給hard示例[11,29,8,26]。小類的樣本比大類的樣本損失更大,因為小類學習的特征通常更差。然而,樣本難度與樣本數量之間並沒有直接的聯系。給hard示例分配更高的權重的一個副作用是會關注有害的樣本(例如,有噪聲的數據或錯誤標記的數據)[23,32]。在我們的工作中,我們沒有對樣本的難度和數據分布做任何假設。在實驗中利用類平衡項對focal loss[26]進行了改進,證明了該方法與基於樣本難度的重加權方法是互補的。
值得一提的是,之前的工作也探索了處理數據不平衡的其他方法,包括將大類學到的知識轉移到小類[3,31,43,6,44],並通過度量學習設計更好的訓練目標[17,47,45]。

Covering and Effective Sample Size。我們的理論框架是受到隨機覆蓋問題[18]的啟發,其中的目標是覆蓋一個由一系列的i.i.d.隨機小集合組成的大的集合。我們通過作出合理的假設來簡化第3節中的問題。注意,本文提出的有效樣本量與統計中有效樣本量的概念不同。有效樣本容量用於計算樣本相關時的方差。

 

3. Effective Number of Samples

我們將數據抽樣過程表示為隨機覆蓋的簡化版本。關鍵的思想是將每個樣本與一個小的鄰近區域聯系起來,而不是單個點。給出了計算有效樣本數的理論框架和公式。

3.1. Data Sampling as Random Covering

給定一個類,表示該類特征空間中所有可能數據的集合為S。我們假設S的體積為N,且N≥1。表示每個數據是單位體積為1且可能與其他數據重疊的S的子集。將數據抽樣過程考慮為一個隨機覆蓋問題,其中每個數據(子集)從S中隨機抽樣以覆蓋整個S集。抽樣的數據越多,S的覆蓋越好。采樣數據的期望總容量隨着數據數量的增加而增加,並以N為界。因此,我們定義:

Definition 1(Effective Number有效數字N)。有效樣本數N是樣本的期望體積。
樣本期望體積的計算是一個非常困難的問題,它取決於樣本的形狀和特征空間[18]的維數。為了使問題易於處理,我們通過不考慮部分重疊的情況來簡化問題。也就是說,我們假設一個新采樣的數據只能以兩種方式與之前采樣的數據交互:要么完全在之前采樣的數據集合內部,概率為p,要么完全在外部,概率為1−p,如圖2所示。隨着采樣數據點數量的增加,概率p也會增大。

 

(即對於一個類的數據有一批有效樣本N(有效樣本即數據完全不同的,如經過數據增強得到的k張數據只能算一個有效樣本),這時候取一個樣本,如果與已經采樣的數據(灰色)部分有重疊的概率為p,完全不重疊的概率為1-p)

在深入研究數學公式之前,我們將討論有效樣本數量的定義與實際可視數據之間的關系。我們的想法是通過使用更多的類數據點來獲取邊際收益遞減。由於真實世界數據之間的內在相似性,隨着樣本數量的增加,新添加的樣本極有可能是現有樣本的近似副本。此外,CNNs通過大量數據增強進行訓練,對輸入數據進行簡單的轉換,如隨機剪切、重新縮放和水平翻轉。在這種情況下,所有的增強樣本也被認為與原始示例相同(即增強樣本判斷為與之前采樣的數據重疊的樣本,所以完全不同的樣本才能算一個有效樣本)。據推測,數據增強越強,N(即有效樣本數)就越小。樣本的小鄰域是一種通過數據增強來捕獲所有近重復項和實例的方法。對於一個類,N可以看作是唯一原型(即完全不一樣的樣本)的數量

 

3.2. Mathematical Formulation

表示樣本的有效數量(期望體積)為En,其中n∈Z>0為樣本數量。

Proposition 1(Effective Number有效數字N)。即定義En =(1−βn) /(1−β), β= (N−1) / N。
證明:

我們用歸納法來證明這個命題。

很明顯E1 = 1,因為沒有重疊。所以E1 =(1−β1)/(1−β)= 1。

現在,讓我們考慮一個一般的情況,我們已經抽樣n - 1個例子,並即將抽樣第n個例子。現在,先前采樣的數據的期望體積為En−1,而新采樣的數據點與先前采樣的數據點重疊的概率為p = En−1/N。因此,第n個樣本采樣后的期望體積為:

假設En−1 = (1 − βn−1)/(1 − β)保持,那么:

 

 

 

上述命題證明樣本的有效數量是n的一個指數函數。超參數β∈(0,1)控制En隨着n增長的速度(即抽樣的n數量增長,對應能有的有效樣本N的數量也跟着增長,β是一個設置的參數,一般設置為[0.9, 1)


有效數字En的另一種解釋是:

 

 

這意味着第j個樣本貢獻值βj−1到有效數字中。類中所有可能數據的總體積N可以計算為:

 

 

這是符合我們一開始定義的β命題(即β= (N−1) / N)。

 

推論 Implication1(漸近性質)。如果β= 0 (即N = 1),則En = 1。如果β→1 (即N→∞),則En→n。
證明:

如果β= 0,那么En = (1−0n) /(1−0) = 1

如果β→1,設f(β)= 1−βn 和 g(β)= 1−β。取極限得 limβ→1 f(β) = limβ→1 g(β)= 0, 求導g'(β)=−1̸ = 0,

那么取極限 limβ→1 f′(β)/ g′(β) = limβ→1 (−nβn−1) / (−1) = n 存在, 那么使用L’Hoˆpital法則得:

 

 

En的漸近性質表明,當N較大時,樣本的有效數量與樣本的數量n相同。在這種情況下,我們認為唯一原型的數量N較大,因此沒有數據重疊,每個樣本都是唯一的。(因此當我們有這足夠多的訓練數據n時,我們就能夠認為其的樣本有效數量值N=n)

在另一個極端,如果N = 1,這意味着我們相信存在一個單一的原型,所以這個類中的所有數據都可以通過這個原型通過數據增強、轉換等來表示。

 

4. Class-Balanced Loss

上面確定好了樣本有效數量N后,接下來就要看怎么將其使用在損失函數中

通過引入一個與樣本有效數量成反比的權重因子,設計了類平衡損失來解決從不平衡數據中進行訓練的問題。類平衡損失項可應用於大范圍的深度網絡和損失函數。
對於帶有標簽labels y∈{1,2,…C}的輸入樣本x, 其中C是類的總數,假設模型的估計類概率(即模型的輸出結果)為 p = [p1, p2,…, pC], 其中pi∈[0,1]∀i, 我們表示損失函數為 L(p, y)。

假設類i的樣本數量為ni,在方程2的基礎上, 對於該類i的有效樣本數為 Eni =(1−βini) /(1−βi), 其中βi = (Ni−1) /Ni
如果沒有每個類的數據的進一步信息,就很難從經驗上為所有類找到一組好的超參數Ni。因此,在實踐中,我們假設Ni只是基於數據集的,且對於一個數據集中的所有類來說 Ni= N,βi =β= (N−1) / N

 

為了平衡損失,我們引入一個權重因子αi,即與類i的有效樣本數量成反比: αi∝1 /Eni。為了在應用αi時使總損失大約在同一規模,我們將歸一化αi,使:

 

 

 為了簡單起見,我們使用符號1 /Eni來表示我們的論文的歸一化權重因子


正式地說,對於來自包含ni個樣本第i類中采樣得到的樣本,我們建議增加一個加權
因子(1−β)/(1−βni)到損失函數中,其中超參數β∈(0,1),其實這個加權因子就是上面的符號1 /Eni

所以類平衡孫書 (CB)損失可以寫成:

 

其中ny表示在真實類y中的樣本數量。我們在圖3可見在不同β的的ny函數中的類平衡損失項:

注意,β= 0對應無重新加權 和 β→1對應使用逆類頻率進行重新加權。

提出的有效樣本數的新概念使我們能夠使用一個超參數β順利調整完全無重新加權和使用逆類頻率進行重新加權之間的類平衡項。


提出的類平衡項(1−β)/(1−βny)與模型和損失無關的, 在某種意義上,與損失函數L和預測得到的類概率p是相對獨立的

為了證明該類平衡損失項是通用的,我們將展示如何應用該類平衡損失項到三個常用的損失函數:softmax cross-entropy loss, sigmoid cross-entropy loss和focal loss中。

 

4.1. Class-Balanced Softmax Cross-Entropy Loss

假設所有類的模型預測輸出(即logits)是z=[z1,z2,…,zC], 其中C為類的總數。softmax函數認為每個類相互排斥,並在所有類上計算概率分布為 ,其中∀i∈{1,2,...,C}。

給定一個類別label為y的樣本,該樣本的softmax cross-entropy(CE)損失為:

 

 假設類y有ny個訓練樣本,則類平衡(CB)softmax cross-entropy損失為:

 

 

 

4.2. Class-Balanced Sigmoid Cross-Entropy Loss

與softmax不同的是,sigmoid函數計算的類概率假設每個類是獨立的,而不是互斥的。在使用sigmoid函數時,我們將多類視覺識別看作是多個二進制分類任務,其中網絡的每個輸出節點執行一個vs所有的分類來預測目標類相對於其他類的概率。

與softmax相比,sigmoid對於真實世界的數據集可能有兩個優點:(1)sigmoid不假定類之間的互斥性,這與真實世界的數據很好地一致,其中一些類可能彼此非常相似,特別是在大量細粒度類的情況下。(2)由於每個類都被認為是獨立的,並且有自己的預測器,所以sigmoid將單標簽分類與多標簽預測相結合。這是一個很好的屬性,因為真實世界的數據通常有多個語義標簽。
為簡單起見,我們使用與softmax cross-entropy相同的符號,將zit定義為:

 

sigmoid cross-entropy (CE)損失被寫成:

 

那么類平衡(CB)sigmoid cross-entropy 損失為

 

 

 

4.3. Class-Balanced Focal Loss

最近提出的focal looss(FL)[26]在sigmoid cross-entropy損失的基礎上增加了一個調制因子,以減少分類良好的樣本的相對損失,並將重點放在困難樣本上。令pit = sigmoid(zit) = 1/(1 + exp(−zit)),focal loss可表示為:

 

類平衡(CB)的focal loss為:

 

最初的focal loss是α-balanced變體。類平衡的focal loss是一樣是α-balanced損失,其中αt =(1−β)/(1−βny)。因此,類平衡項可以被視為一個在有效的樣本數量的概念基礎,明確地在focal loss中設置αt的方式。

 

其實上面三個損失的CB版本就是在原來的式子中增加了一個特定的權重weight

 

實現可見Class-Balanced Loss Based on Effective Number of Samples - 2 - 代碼學習


免責聲明!

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



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