如何評價Kaiming的Focal Loss for Dense Object Detection?

時間 2021-05-09 21:34:43

1樓:中國移不動

又刷到這個問題,看到有人有這樣的疑問:

如果樣本本身錯分或者雜訊很大,引入focal loss效果會不會變差?

是的,對於上圖的離群點,focal loss可以說是有致命的缺點。

推薦一下我寫的這個解析

中國移不動:5分鐘理解Focal Loss與GHM——解決樣本不平衡利器

2樓:ChenJoya

我們做了一些實驗,即使沒有focal loss,沒有任何取樣或者難樣本挖掘的方法,RetinaNet也可以達到相似的精度,只需要加一層objectness即可~

Residual Objectness for Imbalance Reduction

這可能說明,目標檢測中的 foreground-background imbalance 可能可以通過learning-based 的方法解決。具體在實際中,sampling/reweighing 是啟發式的,帶來的調參代價可能過大,可能難以達到最佳。

基於此啟發,我們提出純粹用 learning-based 的方法來緩解不平衡。

小水文總體做的不透徹,也掛的有點急,還請大家輕噴(>﹏<) ,只希望可以為大家帶來一些啟發~^_^

3樓:檸檬陳

easy sample 抑制全當自己做筆記...不然問到時候磕磕絆絆的說不清...

==0,FL == CE

對於 >0.5的即將被判定為正樣本的樣本,loss計算是:

越大,樣本越easy, 越接近0:

>>> 0.2**4

0.0016000000000000003>>> 0.1**4

0.00010000000000000002所以 越大loss會變的越小,壓制了easy的positive sample

再看負樣本 < 0.5: 越小,樣本越easy,同樣的算:

>>> 0.2**4

0.0016000000000000003>>> 0.1**4

0.00010000000000000002越easy的neg 樣本 loss越小。

所以,FL就是有這樣的擬制作用。

4樓:Michael Jackson

在實際專案中,樣本標註可能有部分錯誤或缺失,如果用focal loss,這些錯誤標註樣本是否會成為hard case,對訓練結果造成影響?

5樓:陳狄

Hard Mining 只選自己喜歡(還難追)的男神,Focal Loss 把所有備胎全部拉出來評分,最後還乘個難度係數。

6樓:

關注這個問題很久了,樓上大神說的已經很好了。近兩天做一些實驗,說說、我的體會吧。

1. Focal Loss 會讓整個Loss的曲線十分平滑,下降很穩定。在以往正負樣本極不平衡的情況下,一定是避免不了難例挖掘的,這些難例的不穩定會使Loss抖動比較劇烈。

而Focal Loss相當於是 Smooth Weighted Cross Entropy Loss,這個機制讓Loss的下降更穩定。 同時出現的另乙個現象是,對於類別的概率中不會出現以往極大的概率值,比如接近1的情況,相對概率的數值分布比較集中。

7樓:Wildcity

從我的理解上感覺是因為detection的最終目標(準確率)和實際訓練的log(p)不完全一致所以導致的存在優化空間,對於能準確識別的點沒必要進一步提高準確率降低loss,所以引出了這個改進loss的思路,和lambda rank的思想有點類似?

(我隨便說的)

8樓:陳均炫

在自己的專案下測了一下focal loss, 完全沒怎麼調參下的結果如圖,2個點的AP提公升還是挺明顯的。

但是,很不幸的是,業務最關注的效果並不是整體的AP,而是集中在紅框內的這一段,而在這一段裡focal loss的表現並沒有baseline好。有大神知道這應該怎麼解釋嗎?

9樓:Miracle

作者提出focal loss的出發點是希望one-stage detector可以達到two-stage detector的準確率,同時不影響原有的速度。既然有了出發點,那麼就要找one-stage detector的準確率不如two-stage detector的原因,作者認為原因是:樣本的類別不均衡導致的

那麼類別不均衡會帶來什麼後果呢?引用原文講的兩個後果:(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.

什麼意思呢?負樣本數量太大,佔總的loss的大部分,而且多是容易分類的樣本,因此使得模型的優化方向並不是我們所希望的那樣

因此針對類別不均衡問題,作者提出一種新的損失函式:focal loss。

focal loss的含義可以看如下Figure1,橫座標是pt,縱座標是loss。CE(pt)表示標準的交叉熵公式,FL(pt)表示focal loss中用到的改進的交叉熵,可以看出和原來的交叉熵對比多了乙個調製係數(modulating factor)。為什麼要加上這個調製係數呢?

目的是通過減少易分類樣本的權重,從而使得模型在訓練時更專注於難分類的樣本。首先pt的範圍是0到1,所以不管γ是多少,這個調製係數都是大於等於0的。易分類的樣本再多,你的權重很小,那麼對於total loss的共享也就不會太大。

那麼怎麼控制樣本權重呢?舉個例子,假設乙個二分類,樣本x1屬於類別1的pt=0.9,樣本x2屬於類別1的pt=0.

6,顯然前者更可能是類別1,假設γ=1,那麼對於pt=0.9,調製係數則為0.1;對於pt=0.

6,調製係數則為0.4,這個調製係數就是這個樣本對loss的貢獻程度,也就是權重,所以難分的樣本(pt=0.6)的權重更大。

Figure1中γ=0的藍色曲線就是標準的交叉熵損失。

這裡介紹下focal loss的兩個重要性質:1、當乙個樣本被分錯的時候,pt是很小的(請結合公式2,比如當y=1時,p要小於0.5才是錯分類,此時pt就比較小,反之亦然),因此調製係數就趨於1,也就是說相比原來的loss是沒有什麼大的改變的。

當pt趨於1的時候(此時分類正確而且是易分類樣本),調製係數趨於0,也就是對於總的loss的貢獻很小。2、當γ=0的時候,focal loss就是傳統的交叉熵損失,當γ增加的時候,調製係數也會增加。

focal loss的兩個性質算是核心,其實就是用乙個合適的函式去度量難分類和易分類樣本對總的損失的貢獻。

實驗結果真的非常給力:

Table1是關於RetinaNet和Focal Loss的一些實驗結果。(a)是在交叉熵的基礎上加上引數a,a=0.5就表示傳統的交叉熵,可以看出當a=0.

75的時候效果最好,AP值提公升了0.9。(b)是對比不同的引數γ和a的實驗結果,可以看出隨著γ的增加,AP提公升比較明顯。

(d)通過和OHEM的對比可以看出最好的Focal Loss比最好的OHEM提高了3.2AP。這裡OHEM1:

3表示在通過OHEM得到的minibatch上強制positive和negative樣本的比例為1:3,通過對比可以看出這種強制的操作並沒有提公升AP。(e)加入了運算時間的對比,可以和前面的Figure2結合起來看,速度方面也有優勢

注意這裡RetinaNet-101-800的AP是37.8,當把訓練時間擴大1.5倍同時採用scale jitter,AP可以提高到39.

1,這就是全文和table2中的最高的39.1AP的由來。

10樓:Alan Huang

樓上大神們都說得很有道理。 其實對於one-stage 和 two-stage detector 孰優孰劣之爭, 很多時候兩種方法的起點並不一樣... 這篇文章確實是說明sample reweighting 對效能提公升很大,但是並不代表two-stage的方法不如one-stage。

如果樣本和model之間做好Registration(Alignment), 那麼識別分類的工作就會容易很多。 two-stage 的方法更容易做Alignment; one-stage方法只能指望receptive field去處理Alignment。 我還是傾向於 two-stage 的方法會更好, 如果訓練得好的話。

所以還是比較期待faster rcnn用這個方法去訓練RPN的結果。

11樓:

實際上,focal loss可以看成soft的OHEM。

OHEM是只取3:1的負樣本去計算loss,之外的負樣本權重置零,而focal loss取了所有負樣本,根據難度給了不同的權重。

focal loss相比OHEM的提公升點在於,3:1的比例比較粗暴,那些有些難度的負樣本可能游離於3:1之外。

之前實驗中曾經調整過OHEM這個比例,發現是有好處的,現在可以試試focal loss了。

12樓:何泳澔

能讓人想起Adaboost,都為所有樣本設定了乙個權重,簡單樣本的權重越來越低,困難樣本的權重越來越大,讓模型關注hard樣本.

13樓:

本來想把這個loss用在別的topic上試一試,但看到竟然引入了兩個hyper-parameter,後面密密麻麻的調參結果和曲線,我退縮了。

這得是有多少卡啊,服。。

待我先試試 的情況,好用再繼續調別的。

14樓:wangyang

1. 解決了SSD、YOLO等一步檢的效果測落後於R-CNN系列的兩步檢測的問題。

2. 提出一步檢測效能差的原因在於訓練中負樣本太多了(比如1000:1)。而負樣本中容易的那部分妨礙了訓練。

3. 解決的方法是在損失函式裡衰減了容易樣本。

如何評價如何評價19 20賽季切爾西的總體表現?

軒轅吱吱 總的來說,19 20賽季切爾西的表現是令人滿意的。如果打分的話,70分吧。賽季初主教練出走,核心出走,轉會禁令,大面積球員傷缺就決定了我車的開局就是困難模式。一整個賽季裡,我們用著履歷裡只有一年英冠球隊職教經歷的菜鳥主教練蘭帕德,提拔了一大批之青年球員,包括芒特 亞伯拉罕 里斯詹姆斯 祖瑪...

請問如何評價 如何評價

YIMING REN 要想清楚,如何評價如何評價,到底是一種怎麼樣的存在。羅曼 羅蘭說過一句富有哲理的話,只有把抱怨環境的心情,化為上進的力量,才是成功的保證。這句話語雖然很短,但令我浮想聯翩。吉姆 羅恩說過一句富有哲理的話,要麼你主宰生活,要麼你被生活主宰。這不禁令我深思。帶著這些問題,我們來審視...

如何評價 Type is Beautiful 的 孔雀計畫 ?

郝海龍 在第二篇 中西之別 重考 中,ric 提到 作為母語者,我們對此的認識往往很模糊,這其實是 只緣身在此山中 的狀態。為了看清中文字型排版的特性,不妨拿一塊 他山之石 西文排版過來試做一番比較,也許這樣可以幫助我們透過現象來看一些中文排版的本質。這其實是一種能夠帶給我們新思路的研究方法。在中文...