Focal loss and weighted loss學習記錄


首先回顧一下交叉熵:

Softmax層的作用是把輸出變成概率分布,假設神經網絡的原始輸出為y1,y2,….,yn,那么經過Softmax回歸處理之后的輸出為:

交叉熵刻畫的是實際輸出(概率)與期望輸出(概率)的距離,也就是交叉熵的值越小,兩個概率分布就越接近。假設概率分布p為期望輸出(correct value),概率分布q(predicated value)為實際輸出,H(p,q)為交叉熵,則:

這個公式如何表征距離呢,舉個例子: 
假設N=3,期望輸出為p=(1,0,0),實際輸出q1=(0.5,0.2,0.3),q2=(0.8,0.1,0.1),

 

很顯然,q2與p更為接近,它的交叉熵也更小。

 

交叉熵還有另一種表達形式,還是使用上面的假設條件: 

 

 

根據之前的假設:

接下來看weighted loss:
weighted loss一般用作圖像分割領域,尤其是在分割的邊緣像素和非邊緣像素樣本數量不均勻,差別過大,導致的loss影響,學習較慢,精確率較低的問題。

weighted loss增加了一個參數來控制正樣本和負樣本的loss,公式如下:

舉個例子來說,比如一共100個像素,邊緣像素有2個,非邊緣有98個,那么邊緣損失的權重為0.98,非邊緣損失的權重為0.02,給數量少的正樣本足夠大的權重,卷積網絡就可訓練出最后滿意結果。

 

接下來再看Focal loss,根據何大神的論文:

交叉熵2分類公式1

因為是二分類,所以y的值是正1或負1,p的范圍為0到1。當真實label是1,也就是y=1時,假如某個樣本x預測為1這個類的概率p=0.6,那么損失就是-log(0.6),注意這個損失是大於等於0的。如果p=0.9,那么損失就是-log(0.9),所以p=0.6的損失要大於p=0.9的損失.

為了方便用pt 表示下列公式2:

接下來對交叉熵進行了改進,公式3:增加了一個系數αt,跟Pt的定義類似,當label=1的時候,αt=α;當label=-1的時候,αt=1-αα的范圍也是0到1

因此可以通過設定α的值(一般而言假如1這個類的樣本數比-1這個類的樣本數多很多,那么a會取0到0.5來增加-1這個類的樣本的權重)來控制正負樣本對總的loss的影響程度

顯然前面的公式3雖然可以控制正負樣本的權重,但是沒法控制容易分類和難分類樣本的權重,於是就有了focal loss,公式4:

這里的γ稱作focusing parameter,γ>=0。 稱為調制系數(modulating factor) 

這里介紹下focal loss的兩個重要性質:1、當一個樣本被分錯的時候,pt是很小的(請結合公式2,比如當y=1時,p要小於0.5才是錯分類,難分類樣本,此時pt就比較小,反之亦然),因此調制系數就趨於1,也就是說相比原來的loss是沒有什么大的改變的。當pt趨於1的時候(此時分類正確而且是易分類樣本),調制系數趨於0,也就是對於總的loss的貢獻很小。2、當γ=0的時候,focal loss就是傳統的交叉熵損失,當γ增加的時候,調制系數也會增加。 
focal loss的兩個性質算是核心,其實就是用一個合適的函數去度量難分類和易分類樣本對總的損失的貢獻。

作者在實驗中采用的是公式5的focal loss(結合了公式3和公式4,這樣既能調整正負樣本的權重,又能控制難易分類樣本的權重):

 

 轉載from https://blog.csdn.net/u014380165/article/details/77019084


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM