Generalized Focal Loss:Focal loss魔改以及預測框概率分布,保漲點 | NeurIPS 2020
為了高效地學習準確的預測框及其分布,論文對Focal loss進行拓展,提出了能夠優化連續值目標的Generalized Focal loss,包含Quality Focal loss和Distribution Focal loss兩種具體形式。QFL用於學習更好的分類分數和定位品質的聯合表示,DFL通過對預測框位置進行general分布建模來提供更多的資訊以及準確的預測。從實驗結果來看,GFL能夠所有one-stage檢測演算法的性能
來源:曉飛的演算法工程筆記 公眾號
論文: Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection

Introduction
目前,dense detector(one-stage)是目標檢測中的主流方向,論文主要討論其中的兩個做法:
- 預測框的表示方法(representation):可認為是網路對預測框位置的輸出,常規方法將其建模為簡單的Dirac delta分布,即直接輸出位置結果。而有的方法將其建模為高斯分布,輸出均值和方差,分別表示位置結果和位置結果的不確定性,提供額外的資訊。

- 定位品質估計:最近一些研究增加了額外的定位品質預測,比如IoU-Net加入了IoU分數的預測和FCOS加入了centerness分數的預測,最後將定位品質以及分類分數合併為最終分數。
經過分析,論文發現上述的兩個做法存在以下問題:

- 定位品質估計和分類分數實際不兼容:首先,定位品質估計和分類分數通常是獨立訓練的,但在推理時卻合併使用。其次,定位品質估計只使用正樣本點進行訓練,導致負樣本點可能估計了高定位品質,這種訓練和測試的差異會降低檢測的性能。
- 預測框表示方法不夠靈活:大多演算法將其建模為Dirac delta分布,這種做法沒有考慮數據集中的歧義和不確定部分,只知道結果,不知道這個結果靠不靠譜。雖然有的方法將其建模為高斯分布,但高斯分布太簡單粗暴了,不能反映預測框的真實分布。
為了解決上面的兩個問題,論文分別提出了解決的策略:

- 對於定位品質估計,論文將其直接與分類分數進行合併,保留類別向量,每個類別的分數的含義變為與GT的IoU。另外,使用這種方式能夠同時對正負樣本進行訓練,不會再有訓練和測試的差異。

- 對於預測框的表示方法,使用general的分布進行建模,不再強加任何的約束,不僅能夠獲得可靠和準確的預測結果,還能感知其潛在的真實分布情況。如上圖所示,對於存在歧義或不確定的邊界,其分布會表現為較平滑的曲線,否則,其分布會表示為尖銳的曲線。
實際上,使用上述提到的兩種策略會面臨優化的問題。在常規的one-stage檢測演算法中,分類分支都使用Focal loss進行優化,而Focal loss主要針對離散的分類標籤。在論文將定位品質與分類分數結合後,其輸出變為類別相關的連續的IoU分數,不能直接使用Focal loss。所以論文對Focal loss進行拓展,提出了GFL(Generalized Focal Los),能夠處理連續值目標的全局優化問題。GFL包含QFL(Quality Focal Los)和DFL( Distribution Focal Los)兩種具體形式,QFL用於優化難樣本同時預測對應類別的連續值分數,而DFL則通過對預測框位置進行general分布的建模來提供更多的資訊以及準確的位置預測。
總體而言,GFL有以下優點:
- 消除額外的品質估計分支在訓練和測試時的差異,提出簡單且高效的聯合預測策略。
- 很好地對預測框的真實分布進行靈活建模,提供更多的資訊以及準確的位置預測。
- 在引入額外開銷的情況下,能夠提升所有one-stage檢測演算法的性能。
Method

Focal Loss (FL)
FL主要用於解決one-stage目標檢測演算法中的正負樣本不平衡問題:

包含標準的交叉熵部分-log(p_t)以及縮放因子部分(1-p_t)^{\gamma},縮放因子會自動將容易樣本降權,讓訓練集中於難樣本。
Quality Focal Loss (QFL)
由於FL僅支援離散標籤,為了將其思想應用到分類與定位品質結合的連續標籤,對其進行了擴展。首先將交叉熵部分-log(p_t)擴展為完整形式-((1-y)log(1-\sigma) + y\ log(\sigma)),其次將縮放因子(1-p_t)^{\gamma}泛化為預測值\sigma與連續標籤y的絕對差值|y-\sigma|^{\beta},將其組合得到QFL:

\sigma=y為QFL的全局最小解。

縮放因子的超參數\beta用於控制降權的速率,表現如上圖所示,假定目標連續標籤y=0.5,距離標籤越遠產生的權重越大,反之則趨向於0,跟FL類似。
Distribution Focal Loss (DFL)

論文跟其它one-stage檢測演算法一樣,將當前位置到目標邊界的距離作為回歸目標。常規的方法將回歸目標y建模為Dirac delta分布,Dirac delta分布滿足\int^{+\infty}_{-\infty}\delta(x-y)dx=1,可通過積分的形式求得標籤y:

如前面說到的,這種方法沒有體現預測框的真實分布,不能提供更多的資訊,所以論文打算將其表示為general的分布P(x)。給定標籤y的取值範圍[y_0, y_n],可像Dirac delta分布那樣從建模的genreal分布得到預測值\hat{y}:

為了與神經網路兼容,將連續區域[y_0, y_n]的積分變為離散區域\{y_0, y_1, \cdots, y_i, y_{i+1}, \cdots, y_{n-1}, y_n \}的積分,離散區域的間隔\Delta=1,預測值\hat{y}可表示為:

P(x)可通過softmax操作\mathcal{S}(\cdot)獲得,標記為\mathcal{S}_i,預測值\hat{y}可使用常規的方法進行後續的end-to-end學習,比如Smooth L1、IoU loss和GIoU Loss。

但實際上,同一個積分結果y可由多種不同分布所得,會降低網路學習的效率。考慮到更多的分布應該集中於回歸目標y的附近,論文提出DFL來強制網路提高最接近y的y_i和y_{i+1}的概率,由於回歸預測不涉及正負樣本不平衡的問題,所以DFL僅需要交叉熵部分:

DFL的全局最優解為\mathcal{S}_i=\frac{y_{i+1}-y}{y_{i+1}-y_i},\mathcal{S}_{i+1}=\frac{y - y_i}{y_{i+1}-y_i},使得\hat{y}無限接近於標籤y。
Generalized Focal Loss (GFL)
QFL和DFL可統一地表示為GFL,假定值y_l和y_r的預測概率分別為p_{y_l}和p_{y_r},最終的預測結果為\hat{y}=y_l p_{y_l}+y_r p_{y_r},GT標籤為y,滿足y_l \le y \le y_r,將|y-\hat{y}|^{\beta}作為縮放因子,GFL的公式為:

GFL的全局最優在p^{*}_{y_l}=\frac{y_r-y}{y_r-y_l},p^{*}_{y_r}=\frac{y-y_l}{y_r-y_l}。

FL、QFL和DFL均可認為是GFL的特殊情況。使用GFL後,與原來的方法相比有以下不同:
- 分類分支的輸出直接用於NMS,不用再進行兩分支輸出合併的操作
- 回歸分支對預測框的每個位置的預測,從原來的輸出單個值變為輸出n+1個值
在使用GFL後,網路損失\mathcal{L}變為:

\mathcal{L}_{\mathcal{B}}為GIoU損失
Experiment

性能對比。

對比實驗。

基於ATSS與SOTA演算法進行對比。
Conclusion
為了高效地學習準確的預測框及其分布,論文對Focal loss進行拓展,提出了能夠優化連續值目標的Generalized Focal loss,包含Quality Focal loss和Distribution Focal loss兩種具體形式。QFL用於學習更好的分類分數和定位品質的聯合表示,DFL通過對預測框位置進行general分布建模來提供更多的資訊以及準確的預測。從實驗結果來看,GFL能夠所有one-stage檢測演算法的性能。
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】


