這篇有關(guān)Focal Loss的paper是何愷明大神提出的又一經(jīng)典paper,除了提出Focal Loss還提出了RetinaNet虐沥,這里就先不對(duì)RetinaNet做介紹泽艘,單純講講Focal Loss
目錄
- 背景
- 簡(jiǎn)單介紹
- 核心思想
- 論文
背景
- 我們知道目標(biāo)檢測(cè)的算法主要可以分為兩大類:
two-stage
和one-stage
匹涮。前者的代表算法是R-CNN系列槐壳,可以達(dá)到很高的準(zhǔn)確率,但是速度較慢雳攘。后者是指像YOLO這樣直接回歸的檢測(cè)算法吨灭,這類算法速度很快刑巧,但是準(zhǔn)確率不如前者啊楚。作者提出Focal Loss的出發(fā)點(diǎn)也是希望one-stage的算法可以達(dá)到two-stage算法的準(zhǔn)確率特幔,同時(shí)不影響原有的速度。
簡(jiǎn)單介紹
- 作者剖析了現(xiàn)在one-stage算法準(zhǔn)確率低的原因薄风,作者認(rèn)為是樣本不均衡導(dǎo)致的遭赂。我們知道在目標(biāo)檢測(cè)中横辆,一張圖像可能生成千上萬的候選框,但是其中只有很少一部分是包含目標(biāo)的困肩,這就帶來了類別不均衡(eg:1:1000)锌畸。正因?yàn)榇藢?dǎo)致了:
(1) training is inefficient as most locations are easy negatives that contribute no useful learning signal;
(2) en masse, the easy negatives can overwhelm training and lead to degenerate models.
- 翻譯過來就是在目標(biāo)檢測(cè)中有很多容易分類的負(fù)樣本貢獻(xiàn)了大部分的loss潭枣,所以模型優(yōu)化得就沒有那么理想。
- 因此針對(duì)類別不均衡問題命咐,作者提出一種新的損失函數(shù):
Focal Loss
醋奠,這個(gè)損失函數(shù)是在標(biāo)準(zhǔn)交叉熵?fù)p失基礎(chǔ)上修改得到的翰铡。這個(gè)函數(shù)可以通過減少易分類樣本的權(quán)重,使得模型在訓(xùn)練時(shí)更專注于優(yōu)化難分類的樣本例证。為了證明Focal Loss的有效织咧,作者設(shè)計(jì)了一個(gè)新的檢測(cè)網(wǎng)絡(luò):RetinaNet漠秋,并且在訓(xùn)練時(shí)采用Focal Loss訓(xùn)練庆锦。實(shí)驗(yàn)證明RetinaNet不僅可以達(dá)到one-stage detector的速度搂抒,也能有two-stage detector的準(zhǔn)確率。
核心思想
交叉熵
既然Focal Loss是從標(biāo)準(zhǔn)交叉熵而來芳杏,那我們就從標(biāo)準(zhǔn)交叉熵說起:
(1)
以二分類為例,其中
,
郭膛,P即是該類別的置信度氛悬,為了方便棍现,用
替代
己肮,公式如下:
(2)
為了方便谎僻,我們用
表示樣本屬于正樣本的概率艘绍,所以(1)式可以寫成:
(3)
簡(jiǎn)單改進(jìn)的交叉熵
- 既然正負(fù)樣本的數(shù)量不平衡诱鞠,那么一種常見的做法就是給正負(fù)樣本加上權(quán)重航夺,對(duì)出現(xiàn)次數(shù)少的正樣本賦予更高的權(quán)重,對(duì)出現(xiàn)次數(shù)多的負(fù)樣本賦予低的權(quán)重缭保。因此可以通過設(shè)定
的值來控制正負(fù)樣本對(duì)總的loss的權(quán)重帝雇。公式如下:
(4)
-
但是這種形式并沒有解決問題尸闸,因?yàn)檎?fù)樣本中還分難易吮廉,而在目標(biāo)檢測(cè)中大量的候選目標(biāo)都是易分樣本宙址,示意圖如下:
- 由于數(shù)量極不平衡,易分樣本的數(shù)量相對(duì)來講太多抡砂,最終主導(dǎo)了總的損失大咱。而作者認(rèn)為注益,易分樣本對(duì)模型的提升效果非常小碴巾,模型應(yīng)該主要關(guān)注那些難分樣本丑搔。類似于上面改進(jìn)的思想厦瓢,那我們降低易分樣本的權(quán)重即可啤月,所以Focal Loss就提出了煮仇。
Focal Loss
- Focal Loss的形式如下:
(5)
- 其中谎仲,
稱為調(diào)制系數(shù)浙垫,那為什么加了這個(gè)調(diào)制系數(shù)就可以平衡難易樣本呢强重,我們通過兩個(gè)例子來感受:
- 對(duì)于正樣本來說佃声,預(yù)測(cè)出的
為0.9這樣比較大的為易分樣本,那么調(diào)制系數(shù)
接近于0,整個(gè)式子的值就比較小,對(duì)總體的loss基本無貢獻(xiàn)(影響)陕见;若預(yù)測(cè)出的
為0.1這樣比較小的為難分樣本仔涩,那么調(diào)制系數(shù)
接近于1柑肴,損失和原來交叉熵幾乎一樣袍暴,負(fù)樣本同理。這樣減少了易分樣本的影響淋样,讓模型更加關(guān)注難分樣本儡司。
- 我們通過一個(gè)具體的數(shù)字來感受一下:假如
取2酵镜,這時(shí)預(yù)測(cè)出的
為0.9垢粮,那么損失將比原來衰減
斩跌,也就是這個(gè)易分樣本的損失衰減了一百倍。
- 當(dāng)然我們可以發(fā)現(xiàn),當(dāng)
的時(shí)候上沐,focal loss就是傳統(tǒng)的交叉熵?fù)p失,當(dāng)γ增加的時(shí)候蕴侧,調(diào)制系數(shù)也會(huì)增加。 γ增大能增強(qiáng)調(diào)制因子的影響择葡,實(shí)驗(yàn)發(fā)現(xiàn)γ取2最好她我。調(diào)制因子減少了易分樣本的損失貢獻(xiàn),拓寬了樣例接收到低損失的范圍疏哗。
- 到了這里我們就解決了難易樣本不均衡的問題,再結(jié)合式(4)解決正負(fù)樣本問題的思路,F(xiàn)ocal Loss就可以解決正負(fù)樣本不均衡以及難易樣本不均衡兩個(gè)問題污尉,最后形式如下:
- 作者實(shí)驗(yàn)后發(fā)現(xiàn)锐朴,
取2衣迷,
取0.25效果最好。