論文鏈接: https://arxiv.org/pdf/1708.02002.pdf
目標(biāo)識(shí)別有兩大經(jīng)典結(jié)構(gòu): 第一類(lèi)是以Faster RCNN為代表的兩級(jí)識(shí)別方法,這種結(jié)構(gòu)的第一級(jí)專(zhuān)注于proposal的提取佛致,第二級(jí)則對(duì)提取出的proposal進(jìn)行分類(lèi)和精確坐標(biāo)回歸派撕。兩級(jí)結(jié)構(gòu)準(zhǔn)確度較高衷笋,但因?yàn)榈诙?jí)需要單獨(dú)對(duì)每個(gè)proposal進(jìn)行分類(lèi)/回歸巾腕,速度就打了折扣同蜻;目標(biāo)識(shí)別的第二類(lèi)結(jié)構(gòu)是以YOLO和SSD為代表的單級(jí)結(jié)構(gòu)疲扎,它們摒棄了提取proposal的過(guò)程昵时,只用一級(jí)就完成了識(shí)別/回歸,雖然速度較快但準(zhǔn)確率遠(yuǎn)遠(yuǎn)比不上兩級(jí)結(jié)構(gòu)椒丧。那有沒(méi)有辦法在單級(jí)結(jié)構(gòu)中也能實(shí)現(xiàn)較高的準(zhǔn)確度呢壹甥?Focal Loss就是要解決這個(gè)問(wèn)題。
一壶熏、為什么單級(jí)結(jié)構(gòu)的識(shí)別準(zhǔn)確度低
作者認(rèn)為單級(jí)結(jié)構(gòu)準(zhǔn)確度低是由類(lèi)別失衡(class imbalance)引起的句柠。在深入理解這個(gè)概念前我們先來(lái)強(qiáng)化下“類(lèi)別”這個(gè)概念:計(jì)算Loss的bbox可以分為positive和negative兩類(lèi)。當(dāng)bbox(由anchor加上偏移量得到)與ground truth間的IOU大于上門(mén)限時(shí)(一般是0.5)棒假,會(huì)認(rèn)為該bbox屬于positive example溯职,如果IOU小于下門(mén)限就認(rèn)為該bbox屬于negative example。在一張輸入image中帽哑,目標(biāo)占的比例一般都遠(yuǎn)小于背景占的比例谜酒,所以?xún)深?lèi)example中以negative為主,這引發(fā)了兩個(gè)問(wèn)題:
1祝拯、negative example過(guò)多造成它的loss太大甚带,以至于把positive的loss都淹沒(méi)掉了,不利于目標(biāo)的收斂佳头;
2鹰贵、大多negative example不在前景和背景的過(guò)渡區(qū)域上,分類(lèi)很明確(這種易分類(lèi)的negative稱(chēng)為easy negative)康嘉,訓(xùn)練時(shí)對(duì)應(yīng)的背景類(lèi)score會(huì)很大碉输,換個(gè)角度看就是單個(gè)example的loss很小,反向計(jì)算時(shí)梯度小亭珍。梯度小造成easy negative example對(duì)參數(shù)的收斂作用很有限敷钾,我們更需要loss大的對(duì)參數(shù)收斂影響也更大的example枝哄,即hard positive/negative example。
這里要注意的是前一點(diǎn)我們說(shuō)了negative的loss很大阻荒,是因?yàn)閚egative的絕對(duì)數(shù)量多挠锥,所以總loss大;后一點(diǎn)說(shuō)easy negative的loss小侨赡,是針對(duì)單個(gè)example而言蓖租。
Faster RCNN的兩級(jí)結(jié)構(gòu)可以很好的規(guī)避上述兩個(gè)問(wèn)題。具體來(lái)說(shuō)它有兩大法寶:1羊壹、會(huì)根據(jù)前景score的高低過(guò)濾出最有可能是前景的example (1K~2K個(gè))蓖宦,因?yàn)橐罁?jù)的是前景概率的高低,就能把大量背景概率高的easy negative給過(guò)濾掉油猫,這就解決了前面的第2個(gè)問(wèn)題稠茂;2、會(huì)根據(jù)IOU的大小來(lái)調(diào)整positive和negative example的比例情妖,比如設(shè)置成1:3睬关,這樣防止了negative過(guò)多的情況(同時(shí)防止了easy negative和hard negative),就解決了前面的第1個(gè)問(wèn)題鲫售。所以Faster RCNN的準(zhǔn)確率高共螺。
OHEM是近年興起的另一種篩選example的方法,它通過(guò)對(duì)loss排序情竹,選出loss最大的example來(lái)進(jìn)行訓(xùn)練藐不,這樣就能保證訓(xùn)練的區(qū)域都是hard example。這個(gè)方法有個(gè)缺陷秦效,它把所有的easy example都去除掉了雏蛮,造成easy positive example無(wú)法進(jìn)一步提升訓(xùn)練的精度。
圖1是hard positvie阱州、hard negative挑秉、easy positive、easy negative四種example的示意圖苔货,可以直觀的感受到easy negativa占了大多數(shù)犀概。
二、Focal Loss的解決方法
Focal Loss通過(guò)調(diào)整loss的計(jì)算公式使單級(jí)結(jié)構(gòu)達(dá)到和Faster RCNN一樣的準(zhǔn)確度夜惭,公式1是Focal Loss的計(jì)算方法姻灶。pt是不同類(lèi)別的分類(lèi)概率,r是個(gè)大于0的值诈茧,at是個(gè)[0产喉,1]間的小數(shù),r和at都是固定值,不參與訓(xùn)練曾沈。從表達(dá)式可以看出:
1这嚣、無(wú)論是前景類(lèi)還是背景類(lèi),pt越大塞俱,權(quán)重(1-pt)r就越小姐帚。也就是說(shuō)easy example可以通過(guò)權(quán)重進(jìn)行抑制;
2敛腌、at用于調(diào)節(jié)positive和negative的比例卧土,前景類(lèi)別使用at時(shí),對(duì)應(yīng)的背景類(lèi)別使用1-at像樊;
3、r和at的最優(yōu)值是相互影響的旅敷,所以在評(píng)估準(zhǔn)確度時(shí)需要把兩者組合起來(lái)調(diào)節(jié)。作者在論文中給出r=2、at=0.25時(shí)获印,ResNet-101+FPN作為backbone的結(jié)構(gòu)有最優(yōu)的性能肝陪。
此外作者還給了幾個(gè)實(shí)驗(yàn)結(jié)果:
1、在計(jì)算pt時(shí)用sigmoid方法比softmax準(zhǔn)確度更高晴音;
2柔纵、Focal Loss的公式并不是固定的,也可以有其它形式锤躁,性能差異不大搁料,所以說(shuō)Focal Loss的表達(dá)式并不crucial。
3系羞、在訓(xùn)練初始階段因?yàn)閜ositivie和negative的分類(lèi)概率基本一致郭计,會(huì)造成公式1起不到抑制easy example的作用,為了打破這種情況椒振,作者對(duì)最后一級(jí)用于分類(lèi)的卷積的bias(具體位置見(jiàn)圖2)作了下小修改昭伸,把它初始化成一個(gè)特殊的值b=-log((1-π)/π)。π在論文中取0.01澎迎,這樣做能在訓(xùn)練初始階段提高positive的分類(lèi)概率庐杨。
三、RetinaNet的結(jié)構(gòu)
作者提出了一種使用Focal Loss的全新結(jié)構(gòu)RetinaNet夹供,使用ResNet+FPN作為backbone灵份,再利用單級(jí)的目標(biāo)識(shí)別法+Focal Loss。這個(gè)結(jié)構(gòu)在COCO數(shù)據(jù)集上達(dá)到了39.1的mAP罩引。圖2是它的基本結(jié)構(gòu):
這個(gè)結(jié)構(gòu)要注意幾點(diǎn):
1各吨、訓(xùn)練時(shí)FPN每一級(jí)的所有example都被用于計(jì)算Focal Loss,loss值加到一起用來(lái)訓(xùn)練;
2揭蜒、測(cè)試時(shí)FPN每一級(jí)只選取score最大的1000個(gè)example來(lái)做nms横浑;
3、整個(gè)結(jié)構(gòu)不同層的head部分(圖2的c和d部分)共享參數(shù)屉更,但分類(lèi)和回歸分支間的參數(shù)不共享徙融;
4、分類(lèi)分支的最后一級(jí)卷積的bias初始化成前面提到的-log((1-π)/π);