cross-entropy for one-stage detecor

cross-entropy for one-stage detecor


將講述三種cross-entropy,分別爲standard cross-entropy、 balanced cross-entropy、focal loss。


standard cross-entropy


standard cross-entropy認爲各個訓練樣本的權重是一樣的,若用p_t表示樣本屬於true class的概率,則:

standard_CE = -log(p_t)


下圖中,藍色曲線就表示standard_CE.可以看出,對於well-classified樣本(預測正確率大於0.6),他們的loss仍然不小,對於yolo/ssd這類one-stage detector,負樣本遠遠多於正樣本,而負樣本里面絕大多數又是easy example(即容易分類正確的樣本)。因此,相比hard example(較難分類正確的樣本),easy example的loss在整個代價函數中具有主導作用,從而使得one-stage detector難以對hard example分類正確。


CSDN圖標

balanced cross-entropy


由於one-stage detecor訓練時正負樣本數目相差較大,常見的做法就是給正負樣本加上權重,給數量較少的正樣本的loss更大的權重,減小負樣本loss的權重。

balanced_CE = -α_t*log(p_t)
其中,α_t爲樣本loss的權重

focal loss


提出這種方法的作者【FAIR. ICCV2017 Oral Kaiming He & RBG】發現,one-stage detector的精度差的原因並不在於正負樣本數量相差較大,而在於:
正負樣本比例極度不平衡,以及損失函數(loss function)主要被easy negative example(容易分類正確的負樣本)主導。
利用focal loss訓練出的one-stage detector不僅能保持快速的優點,精確度也可以達到與two-stage detector一樣的水平。


focal loss依照各個樣本分類的分類難度來給定權重,如果某樣本的分類正確率較大(easy example),則賦予較小的權重,相反,若某樣本的分類難度較大(hard example),則賦予較大的權重。(類似adaboost:增大分類錯誤樣本的採樣概率,減小分類正確樣本的採樣概率)

FL=−(1−p_t)^γ * log(p_t)


由上式可以看出,預測正確率p_t越大,對應的loss越小。當γ=0時,即爲standard cross-entropy。


實驗發現γ=2時效果最好。當γ一定時,具有同樣預測準確率p_t的 easy example,其 focal loss要比standard cross-entropy小100多倍,對於同樣預測準確率p_t的hard example,其focal loss比standard cross-entropy最多小4倍,因此,hard example的權重就大大提高。

發佈了43 篇原創文章 · 獲贊 96 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章