Focal Loss for Desnse Object Detection
Tsung-Yi Lin Priya Goyal Ross Girshick Kaiming He Piotr Dollar´
Facebook AI Research (FAIR)
[paper link]
重點整理
- Focal Loss主要目的在於解決資料不平衡的情形,但資料是指什麼資料?誰跟誰不平衡?
- 本篇提出的架構RetinaNet的來由及架構淵源
- 單就Focal Loss的技巧就讓One-Stage表現與Two-Stage旗鼓相當,另外模型的架構也是提升準確率的一大原因
- 作者自己強調,效果好不是架構的功勞,是那個厲害的Loss
背景介紹
本篇任務為Object Detection,談到物件偵測,就要先聊聊常見的兩大架構。
One-Stage vs Two-Stage
首先介紹Object Detection任務中常見的兩種架構
- Two-Stage: (1)提出候選區域 (2)對候選區域分類。R-CNN、Fast R-CNN、Faster R-CNN都屬於此類。
- One-Stage: (1)直接預測特徵圖每個grid屬於什麼類別的機率以及(x, y, w, h)。YOLO系列、SSD(Single Shot Detector)屬於此類。
在當時,Two-Stage的雖然速度較慢但有較好的表現。另外,有人提出降低input的解析度,或是減少候選區域的數目,這些策略讓Two-Stage獲得更快的計算速度,漸漸取得優勢。
為此,本篇論文希望為One-Stage的架構爭一口氣,更快的速度且有更好的表現。
本文貢獻
Focal Loss
在當時One-Stage表現大多不如Two-Stage,原因是如果整個畫面大多為背景,model只要傾向判斷為背景,就能得到不錯的結果。相較之下,Two-Stage在第一步驟就已經濾除大部分背景了,因此有較好的表現。
為了解決資料不平衡(Class Imbalance)的問題 –> 提出Focal Loss
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
對比上圖的兩個公式,不難發現與CE Loss相比,FL Loss多了一項,其中代表label類別的信心分數, 是一個可調的參數,用於影響曲線的位置。
- 當 時,CE Loss等同於FL Loss,藍線所示
- 當 漸漸變大時,FL Loss的曲線越來越靠近綠色
- 以 的綠線為例,在(橫軸)越大時,整體loss值越小。代表了當預測越有自信時,此樣本越不影響模型訓練。
- 透過策略壓制容易預測的樣本,提升難判斷樣本的影響力,變向達到平衡數量的目的。
事實上,Focal Loss完整定義如下,包括了接下來提到的BCE Loss的概念
Balanced Cross Entropy
平衡樣本不平均的基本想法,在原始CE上加上一平衡係數,對應不同類別係數 也會變動,通常是類別數量的反比。
Focal Loss vs. Huber Loss
概略上而言,HL對於信心分數低的樣本加強Loss。相反的FL對於信心分數高的樣本降低Loss,即使 數量多也不影響整體表現。
RetinaNet
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
架構簡介:
- Feature Pyramid Network : 圖中間部分,對原始圖片做上下採樣的捲積,獲得不同尺度大小的特徵圖,概念來自於FPN、SSD論文。
- 對每一層特徵圖都做雙流的預測 : 圖右的上半部為分類任務用來預測BBOX的分類(K類別 * A種Anchor),圖右的下半部分為regression任務用來預測BBOX的與最鄰近gt的offset。
- 模型的輸出 : 三層特徵圖的預測結果合併。
下面列出實驗結果,論文中還有對不同參數的消融實驗。
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
順帶一提,資料不平衡時對model訓練時的初始化策略也有一套
模型驗證
作者對訓練完畢的模型,重新輸入資料並紀錄輸出的Loss,對Loss排序後的結果累加,得到下圖的曲線。可以驗證Focal Loss確實有關注少數樣本的能力
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
補充
Focal Loss參考程式碼
名詞
- Easy Example : 預測一個類別信心分數很高時,這個樣本就稱為Easy Example。反之是Hard Example。
- Hard Negative Mining : 將難以分類的樣本挑出來加強學習,可以加強模型的表現,也對樣本不平衡時有幫助。
- Inlier : Easy Example的別稱。
- Outlier : Hard Example的別稱。
- Anchors : 來自Faster R-CNN論文中的RPN(Rigion Proposal Network),預測BBOX時會事先定義幾種不同比例、大小的方框,幫助模型的預測。
延伸