論文信息
Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollár. Focal Loss for Dense Object Detection. ICCV 2017.
https://arxiv.org/abs/1708.02002
歷史的發展
我們重點關注神經網絡重新崛起之后的內容, 先前的內容以后也許會簡單提一下.
兩大門派
兩大門派主要是one stage與two stage, 二者在accuracy與speed各有側重, 但最終還是trade-off.
one stage | two stage | |
---|---|---|
algorithms | YOLO, YOLT | R-CNN, SPPnet |
accuracy | Low(30% mAP) | High(60%+ mAP) |
speed | Fast(100+ FPS) | Slow(5 FPS) |
two stage
其主要特點是先使用某種算法(selective search, RPN, etc.)產生一系列proposal, 將這些proposal喂到某個預訓練神經網絡(VGG-16, ResNet, etc.)中, 之后對輸出進行分類.
特別的, RPN會預分類(background vs foreground)
one stage
大多數模型會采用一系列類似於滑窗分類器或是"anchor"直接進行分類而無proposal過程.
RetinaNet
本文中的模型是基於one stage, 目的也顯而易見便是為了提升accuracy.
主要貢獻
提出觀點: 導致one stage精確度不足的重要原因有class imbalance.
class imbalance
所謂class imbalance便是由於two stage模型大多會對bg與fg預分類, 因此bg數量不會遠大於fg數量, 而one stage模型為了提升速度舍棄了proposal過程, 因此大多數模型也談不上預分類問題,這樣雖然速度提升並且使用交叉熵, 但往往還是由於easy sample(e.g. bg)遠大於hard sample(e.g. fg), 往往相差2 order, 以至於easy sample的loss統治整體loss.
此前的一些解決方案
OHEM直接舍棄部分easy example, 毫無疑問會導致數據殘缺, 進而影響結果
本文的解決方案
提出了一個新的loss func:
其中
特別的,\(CE\)是交叉熵. 在作者的實驗中發現\(\gamma = 2, \alpha = 0.25\)時取得最好結果.
通過仿真圖我們可以發現, 對於相對有把握的類別(easy sample, e.g. bg), loss設置較小, 而對於較沒有把握的類別(hard sample, e.g. fg), loss較大, 這樣就防止出現把握較大的類別因為數量優勢統治loss.
我們從四種情況分析loss函數:
-
正確分類 & 目標項容易分類 -\(y = 1, p \approx 1\)
此時\(p_t = p \approx 1\), 而\(\gamma > 1\), 因此\(FL(p_t) << CE(p_t)\)
-
正確分類 & 目標項不易分類 -\(y = 1, p \approx 0\)
此時\(p_t = p \approx 0\), 而\(\gamma > 1\), 因此\(FL(p_t) \approx CE(p_t)\)
-
錯誤分類 & 目標項容易分類 -\(y = -1, p \approx 1\)
此時\(p_t = 1 - p \approx 0\), 而\(\gamma > 1\), 因此\(FL(p_t) \approx CE(p_t)\)
-
錯誤分類 & 目標項不易分類 -\(y = -1, p \approx 0\)
此時\(p_t = 1 - p \approx 1\), 而\(\gamma > 1\), 因此\(FL(p_t) << CE(p_t)\)
以一言蔽之, 易分類未出錯的影響大量減小.
特別的, 易分類出錯影響基本不減小也很合理.
額外的 - 網絡構建
該網絡很容易看出左半部分就是FPN, 而對於右半部分就是他們獨創的, 很容易看出(論文中也提到了)他們分了上下兩個parameter not shared卷積網絡, 一個是用來classifying另一個是用來anchor box regressing(4 dims).
Initialization
Bias initialization for classification subnet:
\(\pi\)是指所有初始化時所有anchor都有\(\pi\)的把握被當作fg, 實踐證明\(\pi = 0.01\)較為合適.
實驗結果
這里要補充的時OHEM 1 : 3指舍棄low probability后fg : bg.
這張圖的結果來看, RetinaNet也可以稱得上名副其實的state-of-the-art.
Appendix
A
首先定義了:
其中\(x\)表示數量.
嘗試了一個Focal Loss的變體, 得出的結論用原文總結就是:
More generally, we expect any loss function with similar properties as FL or FL* to be equally effective.
B
得出結論, 當\(x_t > 0\)時, FL導數比CE更接近於零.
總結
利用位置信息檢測思想挺有意思的, 但有不合理性, 如果是用來輔助檢測會很有幫助.