Introduction
這篇論文針對目標檢測訓練過程中的不平衡問題,提出了一種平衡化學習方法。關於目標檢測中的不平衡問題,這篇博客有更詳細的介紹。
這篇論文討論的不平衡問題包括三種:
- 樣本級別的不平衡:對於二階段的目標檢測算法,樣本是通過隨機採樣得到的,這會導致大多數樣本都是容易樣本(容易學習),缺乏難樣本。
- 特徵級別的不平衡:由於低層的特徵層主要包含內容描述信息,高層特徵層主要包含語義信息,不同特徵層的特徵信息不平衡。
- 目標級別的不平衡:目標檢測是多任務學習任務,有識別和定位兩個目標,對應兩種目標函數,這兩種目標函數的損失值是不平衡的。
論文針對上述的3中不平衡問題,分別提出了3中解決方法:IoU-balanced sampling, balanced feature pyramid 和 balanced L1 loss。三種方法結合在一起,組成了Libra R-CNN。
IoU-balanced sampling
IoU平衡採樣提出來的思路是這樣的。首先,論文統計了一下隨機採樣和Hard Negative採樣得到的樣本與gt的IoU,並製作了相應的統計直方圖,如下
作者發現,超過60%的難負樣本的IoU大於0.05,而隨機採樣的樣本中只有30%的樣本的IoU大於0.05。這種極端的樣本不平衡使得大量的難樣本替換成了容易樣本。
爲了使得采樣樣本的IoU分佈接近難負樣本採樣樣本的IoU分佈,作者提出了IoU平衡採樣。假設我們需要從M個候選樣本中選擇N個負樣本,那麼每個樣本隨機被選擇的概率是。爲了提高難負樣本被選擇的概率,作者根據IoU平均地劃分採樣區間成K個bin。將N個所需的負樣本平均分配到到每個bin中。我們再從這些bin中統一選擇樣本。這就是IoU平衡採樣。現在,每個樣本的採樣概率是
前一項表示bin被選擇的概率,後一項表示再bin中被選擇的概率,表示第k個bin的候選樣本數量。因爲難負樣本被平均分配到每個bin,難負樣本在bin中被選擇的概率變大,而設置好K值,難負樣本被選擇的概率變大了。通過IoU平衡採樣得到的樣本的IoU分佈如上圖所示,可以看到和難負樣本採樣的IoU分佈近似了。論文中K默認設置爲3。
Balanced Feature Pyramid
作者的平衡特徵金字塔的每一層的特徵信息來自不同級別的特徵層,不同級別的特徵層的貢獻度都一樣,平衡特徵金字塔的構造方式如下圖所示
如上圖所示,作者先把所有的特徵層聚合起來,低級別的層下采樣,高級別的層上採樣,大小變成C4的大小,然後所有層的特徵進行平均,得到Integrate,再由Integrate反向操作生成不同級別的特徵層。也可以對Integrate進行refine,加些卷積層,或者加入高斯non-local模塊。
通過這種方法生成的Balanced Feature Pyramid的每個特徵層都包含相等的低級和高級特徵信息,達到特徵平衡。
Balanced L1 Loss
目標檢測使用的smooth L1 loss有些缺點,首先它還是很容易受到outlier的影響,作者發現,相比於outliers,inliers平均每樣本只貢獻30%的梯度。作者把smooth L1 loss大於等於1的樣本稱爲outlier,其他是inlier。作者希望在迴歸損失中把inliers和outliers分開,截斷outliers的大梯度爲1,同時增大inliner的梯度,使得inliers和outliers的貢獻的梯度平衡。樣本的梯度貢獻如下圖a所示
regression error指樣本的smooth L1損失,縱座標表示Balanced L1 Loss的梯度和損失。
Balanced L1 Loss的公式如下
其中表示每個樣本的平衡L1損失。爲了達到作者想要的梯度效果,作者設置了單個樣本的損失梯度:
其中控制着梯度的上限,論文默認設置爲1.5。控制着inliers的梯度,越小,inliers梯度越大,如上圖a所示。論文默認設置。
由上如的梯度公式可以推導出單個樣本的平衡L1損失:
參數的約束是