GHM論文筆記(CVPR2019)

做者要解決的問題

仍然是one-stage中的一個經典問題,正負、難易樣本不均衡。由於anchor的緣由,pos : neg>= 1 : 70。負樣本大多比較簡單,因此也致使了難易樣本的問題。網絡

Focal loss(CVPR2017)

Focal loss的解決方案

傳統的交叉熵損失函數:函數

\[L_{CE} = -[p^*(log(p) + (1-p^*)log(1-p)] \]

\(p^*=\{0, 1\}\)爲真實標籤,\(p \in (0, 1)\)爲網絡的預測機率。能夠看到,傳統的交叉熵損失函數平等的看待正負樣本。
Focal lossspa

\[L = -[\alpha p^\gamma p^*log(p) + (1-\alpha)(1-p)^\gamma (1-p^*)log(1-p)] \]

能夠看到Focal loss引入了兩個超參數\(\alpha, \gamma\)\(\alpha\)用來平衡正負樣本,\(\gamma\)用來平衡難易樣本。簡單分析一下,加號的左側是正樣本的損失,右側是負樣本的損失。經過乘上不一樣的係數\((\alpha, 1-\alpha)\),來平衡正負樣本。對於簡單樣本,其loss較小,機率值更接近真實標籤,這樣機率的\(\gamma\)次方越小,相反地,難樣本的就會變大,使難樣本的損失上升,使網絡關注難樣本。設計

Focal loss的不足

雖然Focal loss這篇論文也在必定程度上解決了正負樣本不均衡的問題,可是Focal loss引入了兩個超參數,調參費勁,且只能應用到box分類上,沒法解決迴歸的問題。3d

設計思路

梯度與樣本的關係

做者觀察到難易樣本的分佈與梯度有着以下的關係,能夠看到,梯度較小時(簡單樣本),樣本數量很是多,梯度適中時,樣本較少。另外值得注意的一點是,梯度在1左右的樣本數量仍是很多的。做者將這些樣本視爲異常值,解決特別難的樣本會致使其餘的樣本準確率降低。blog

針對以上發現,做者採用梯度分佈(梯度附近的樣本數)來處理難易樣本不平衡的問題。簡單思路就是梯度小的樣本數比較大,那就給他們乘上一個小系數,梯度大的樣本少乘以一個大的係數。不過這個係數不是靠本身調的,而是根據樣本的梯度分佈來肯定的。 ### 梯度分佈計算方法:將0-1的梯度切bin,計算每一個bin內落入的樣本數量。 ![](https://img2018.cnblogs.com/blog/1809294/201912/1809294-20191202201555022-1383132851.png) 其中$\epsilon$是每一個bin的寬度,$M$是$\epsilon$的倒數,表示將0-1切分紅多少個bin,$R_{ind(g)}$表示每一個bin內落入的樣本數,計算方法以下:

\[R_{ind(g)} = \sum_{k=1}^{N} \delta(g_k,g) \quad \delta(g_k,g) = \begin{cases} 1 \quad if \quad g-\frac{\epsilon}{2} <= g_k <= g+\frac{\epsilon}{2}\\ 0 \quad otherwise \end{cases} \]

\[\beta_i = \frac{N}{GD(g_i)} \]

\(g\)是某點的梯度模,能夠理解爲以這一點建立一個bin,\(g_k\)是樣本的梯度模,N是樣本總數。
從上面式子能夠看到,梯度分佈越大,係數越小。class

梯度模計算方法

具體的在二分類中,損失函數爲上面提到的交叉熵函數方法

\[L_{CE} = -[p^*(log(p) + (1-p^*)log(1-p)] \\ p=sigmoid(x) \]

對x的梯度im

\[\begin{aligned}\frac{\partial L_{CE}}{\partial x} &= \frac{\partial L_{CE}}{\partial p} \times \frac{\partial p}{\partial x}\\&= (-\frac{p^*}{p} + \frac{1-p^*}{1-p}) \times p(1-p)\\&= p-p^*\end{aligned} \]

定義梯度模\(g = |p-p^*|\)d3

改進

GHM-C損失函數

由此,做者提出分類的損失函數GHM-C

\[L_{GHM-C} = \frac{1}{N}\sum\beta_i L_{CE}(p_i, p_{i}^{*}) \]

仍是以這個圖爲例,在梯度較小時,樣本數較大,梯度分佈$GD(g)$較大,則係數較小,損失較小,這樣就有效的減小了大量簡單樣本的做用。反之亦然。一樣能夠分析出特別難的樣本也被抑制了。這一點也是做者但願看到的。 下面這張圖的橫座標表明原先的梯度分佈,縱座標表明處理後的梯度分佈。對比未經任何處理的CE曲線,在0附近的梯度,GHM-C處理後梯度被減少了,0.5左右的樣本梯度被放大了,尤爲值得一提的是,對於前面提到的異常樣本,梯度一樣被抑制了。對比Focal loss曲線,明顯能夠看出GHM-C更加優秀。
#### GHM-R損失函數 按理說像以前同樣求下梯度分佈就行了,不過這裏有一個問題。 對於邊框迴歸的傳統損失函數smooth_L1
求梯度模 $d= t_i - t_i^*$
能夠看到,當$d>\delta$時,梯度模橫爲1,沒法衡量樣本的難易程度。因此做者這裏改了一下
d比較小的時候,相似於$L_2$,d較大時候相似$L_2$,和$SL_1$相似。最終的損失函數以下:
注意一點:迴歸的損失函數是隻計算正樣本的。 ## 最終結果 COCO數據集上的比較
只有GHM-C的比較
只有GHM-R的比較
相關文章
相關標籤/搜索