Focal Loss 與 GHM
Focal Loss
Focal Loss 的提出主要是為了解決難易樣本數量不平衡(注意:這有別於正負樣本數量不均衡問題)問題。下面以目標檢測應用場景來說明。
-
一些 one-stage 的目標檢測器通常會產生很多數量的 anchor box,但是只有極少數是正樣本,導致正負樣本數量不均衡。這里假設我們計算分類損失函數為交叉熵公式。
-
由於在目標檢測中,大量的候選目標都是易分樣本,這些樣本的損失很低,但是由於數量極不平衡,易分樣本數量相對來說太多,最終主導了總的損失,但是模型也應該關注那些難分樣本(難分樣本又分為普通難分樣本和特別難分樣本,后面即將講到的GHM就是為了解決特別難分樣本的問題)。

基於以上兩個場景中的問題,Focal Loss 給出了很好的解決方法:

GHM
Focal Loss存在一些問題:
- 如果讓模型過多關注
難分樣本
會引發一些問題,比如樣本中的離群點(outliers),已經收斂的模型可能會因為這些離群點還是被判別錯誤,總而言之,我們不應該過多關注易分樣本,但也不應該過多關注難分樣本; - \(\alpha\) 與 \(\gamma\) 的取值全從實驗得出,且兩者要聯合一起實驗,因為它們的取值會相互影響。
幾個概念:
-
梯度模長g:\(g\) 正比於檢測的難易程度,\(g\) 越大則檢測難度越大,\(g\) 從交叉熵損失求梯度得來
\[g=|p-p^*|= \begin{cases} 1-p, & \text{if p* = 1} \\ p, & \text{if p* = 0} \end{cases} \]\(p\) 是模型預測的概率,\(p^*\) 是 Ground-Truth 的標簽(取值為1或者0);
\(g\) 正比於檢測的難易程度,\(g\) 越大則檢測難度越大;
-
梯度模長與樣本數量的關系:梯度模長接近於 0 時樣本數量最多(這些可歸類為易分樣本),隨着梯度模長的增長,樣本數量迅速減少,但是當梯度模長接近於 1 時樣本數量也挺多(這些可歸類為難分樣本)。如果過多關注難分樣本,由於其梯度模長比一般樣本大很多,可能會降低模型的准確度。因此,要同時抑制易分樣本和難分樣本!

-
抑制方法之梯度密度 \(G(D)\): 因為易分樣本和特別難分樣本數量都要比一般樣本多一些,而我們要做的就是衰減
單位區間數量多
的那類樣本,也就是物理學上的密度概念。\[GD(g) = \frac{1}{l_{\epsilon}}\sum_{k=1}^{N}\delta_{\epsilon}(g_k, g) \]\(\delta_{\epsilon}(g_k, g)\) 表示樣本 \(1 \sim N(樣本數量)\) 中,梯度模長分布在 \((g-\frac{\epsilon}{2}, g+\frac{\epsilon}{2} )\) 范圍內的樣本個數,\(l_{\epsilon}(g)\) 代表了 \((g-\frac{\epsilon}{2}, g+\frac{\epsilon}{2} )\) 區間的長度;
-
最后對每個樣本,用交叉熵 \(CE\) \(\times\) 該樣本梯度密度的倒數即可。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
分類問題的GHM損失:
回歸問題的GHM損失:
其中,\(ASL_1(d_i)\) 為修正的 smooth L1 Loss。
抑制效果:

參考資料: