RetinaNet翻譯+解析

參考:https://blog.csdn.net/wwwhp/article/details/83317738
paper:Focal Loss for Dense Object Detection
linkRetinaNet

Abstract

迄今爲止,精度最高的目標檢測器是基於R-CNN推廣的兩階段方法,其中分類器應用於稀疏的一組候選對象位置。相比之下,對可能的目標位置進行常規、密集採樣的單級探測器有可能更快、更簡單,但迄今仍落後於兩級探測器的精度。在本文中,我們將探討爲什麼會出現這種情況。我們發現,在密集探測器訓練過程中所遇到的極端的前後級不平衡是其主要原因。我們建議通過重新構造標準的交叉熵損失來解決這個類的不平衡,這樣它就可以降低分配給分類良好的示例的損失 Focal Loss 。
檢測中兩階段的方法比單階段的效果好的原因是 前後類樣本不均衡,在rcnn系列中,由於經過類似rpn的選擇器,前景和背景相對均衡,而類似yolo,ssd就會產生大量無效背景。作者希望構造新的交叉熵損失來解決此問題

Introduction

類不平衡問題是通過兩階段級聯和採樣啓發式算法來解決的。建議階段(例如,選擇性搜索[35],EdgeBoxes [39],深度掩碼[24,25],RPN[28])快速地將候選對象位置的數量縮減到一個很小的數目(例如,1-2k),過濾掉大部分背景樣本。在第二個分類階段,執行採樣啓發式,例如固定的前背景比(1:3)或在線硬示例挖掘(OHEM)[31],以保持前景和背景之間的可管理的平衡。
在本文中,我們提出了一個新的損失函數,它比以往處理階級不平衡的方法更有效

Related Work

我們的RetinaNet的設計與之前的高密度探測器有很多相似之處,特別是RPN[28]引入的“錨”概念,以及SSD[22]和FPN[20]中使用的特徵金字塔。我們強調,我們的簡單檢測器之所以能取得最好的結果,不是基於網絡設計上的創新,而是由於我們的新損失。
設計魯棒的損失函數(例如Huber loss[13]),通過降低具有較大誤差的例子(硬例子)的損失的權重來減少異常值的貢獻,已經引起了很大的興趣。相比之下,我們的重點損失不是處理異常值,而是通過降低inliers的權重(簡單的例子)來解決階級不平衡,這樣即使inliers的數量很大,它們對總損失的貢獻也很小。換句話說,Focal Loss的作用與魯棒損失相反:它將訓練集中在一組稀疏的硬示例上

Focal Loss

在這裏插入圖片描述
本文從交叉熵損失(CE)出發引入 Focal Loss
至於交叉熵不會的,去吧,pkq
https://blog.csdn.net/a984297068/article/details/81197893
https://blog.csdn.net/weixin_37567451/article/details/80895309
在這裏插入圖片描述
然後設
在這裏插入圖片描述
則 CE(p, y) = CE(pt) = − log(pt).
可以看出,大量容易分類的淹沒少量不易分類的。

Balanced Cross Entropy
一個常見的方法解決類失衡是引入權重因子α∈f [0, 1],在實踐中α可以設置通過逆類頻率或視爲超參數設置交叉驗證。
在這裏插入圖片描述
實驗結果表明,在稠密探測器訓練過程中所遇到的較大的類不平衡抵消了交叉熵損失。容易分類的底片構成了大部分的損失,並主導梯度。而
α平衡的重要性在積極/消極的例子,不區分容易/難的例子。相反,我們建議重塑損失函數,減少簡單例子的權重,從而將訓練重點放在困難的負面因素上。
這裏可以這麼理解,因爲用的交叉熵損失,α可以增大或減少正樣本的權重,所以α可以用來處理樣本不均衡,但是對於容易難的樣本,α可能就不太起作用了。

Focal Loss Definition
在這裏插入圖片描述

當一個例子被錯誤分類並且pt很小時,調製因子接近於1,並且損失不受影響。就是,當pt=0,1-pt=1,損失= -logpt,和之前的一樣,當pt=1時,因子趨於0,分類良好的例子的損失是向下加權的,就是會變小,是易分類的權重降低。直觀地說,調製因子減少了來自簡單示例的損失貢獻,並擴展了示例接受低損失的範圍。
例如,γ= 2,一個例子分類pt = 0.9將有100×低損失相比與CE和pt≈0.968會1000×低損失。這反過來增加糾正錯誤分類的例子的重要性
意思很簡單,注意的是這裏是pt, 和log裏的pt是一致的

Focal Loss
在這裏插入圖片描述
最後的網絡模型就不多介紹了,正如文中提出的,loss最重要。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章