Focal Loss 理解


本質上講,Focal Loss 就是一個解決分類問題中類別不平衡、分類難度差異的一個 loss,總之這個工作一片好評就是了。

看到這個 loss,開始感覺很神奇,感覺大有用途。因為在 NLP 中,也存在大量的類別不平衡的任務。最經典的就是序列標注任務中類別是嚴重不平衡的,比如在命名實體識別中,顯然一句話里邊實體是比非實體要少得多,這就是一個類別嚴重不平衡的情況。

硬截斷

整篇文章都是從二分類問題出發,同樣的思想可以用於多分類問題。二分類問題的標准 loss 是交叉熵。

 

其中 y∈{0,1} 是真實標簽,ŷ 是預測值。當然,對於二分類我們幾乎都是用 sigmoid 函數激活 ŷ =σ(x),所以相當於:

我們有 1−σ(x)=σ(−x)

 

曾經針對“集中精力關注難分樣本”這個想法提出了一個“硬截斷”的 loss,形式為:

其中:

這樣的做法就是:正樣本的預測值大於 0.5 的,或者負樣本的預測值小於 0.5 的,我都不更新了,把注意力集中在預測不准的那些樣本,當然這個閾值可以調整。這樣做能部分地達到目的,但是所需要的迭代次數會大大增加。

原因是這樣的:以正樣本為例,我只告訴模型正樣本的預測值大於 0.5 就不更新了,卻沒有告訴它要“保持”大於 0.5,所以下一階段,它的預測值就很有可能變回小於 0.5 了。當然,如果是這樣的話,下一回合它又被更新了,這樣反復迭代,理論上也能達到目的,但是迭代次數會大大增加。

所以,要想改進的話,重點就是“不只是要告訴模型正樣本的預測值大於0.5就不更新了,而是要告訴模型當其大於0.5后就只需要保持就好了”。好比老師看到一個學生及格了就不管了,這顯然是不行的。如果學生已經及格,那么應該要想辦法要他保持目前這個狀態甚至變得更好,而不是不管。

 

軟化 loss

硬截斷會出現不足,關鍵地方在於因子 λ(y,ŷ) 是不可導的,或者說我們認為它導數為 0,因此這一項不會對梯度有任何幫助,從而我們不能從它這里得到合理的反饋(也就是模型不知道“保持”意味着什么)。

解決這個問題的一個方法就是“軟化”這個 loss,“軟化”就是把一些本來不可導的函數用一些可導函數來近似,數學角度應該叫“光滑化”。這樣處理之后本來不可導的東西就可導了,類似的算例還有梯度下降和EM算法:系出同源,一脈相承中的 kmeans 部分。我們首先改寫一下 L∗

這里的 θ 就是單位階躍函數:

 

這樣的 L∗ 跟原來的是完全等價的,由於 σ(0)=0.5,因此它也等價於:

 

這時候思路就很明顯了,要想“軟化”這個 loss,就得“軟化” θ(x),而軟化它就再容易不過,它就是 sigmoid 函數(不懂可以去看sigmoid圖像)。我們有:

所以很顯然,我們將 θ(x) 替換為 σ(Kx) 即可:

現在跟 Focal Loss 做個比較。

 

Focal Loss

 Kaiming 大神的 Focal Loss 形式是:

 

如果落實到 ŷ =σ(x) 這個預測,那么就有:

 

特別地,如果 K 和 γ 都取 1,那么 L∗∗=Lfl

事實上 K 和 γ 的作用都是一樣的,都是調節權重曲線的陡度,只是調節的方式不一樣。注意L∗∗或 Lfl 實際上都已經包含了對不均衡樣本的解決方法,或者說,類別不均衡本質上就是分類難度差異的體現。

比如負樣本遠比正樣本多的話,模型肯定會傾向於數目多的負類(可以想象全部樣本都判為負類),這時候,負類的 ŷ γ 或 σ(Kx) 都很小,而正類的 (1−ŷ )γ 或 σ(−Kx) 就很大,這時候模型就會開始集中精力關注正樣本。

還有種理解方法,如果有8個類別,1個正類別,7個負類別,7個負類別加起來的loss大於了1個正類別的loss,而這個函數就是相當於調節的作用,將負樣本的loss放低,正樣本的loss放大。

 當然,Kaiming 大神還發現對 Lfl 做個權重調整,結果會有微小提升。

通過一系列調參,得到 α=0.25, γ=2(在他的模型上)的效果最好。注意在他的任務中,正樣本是屬於少數樣本,也就是說,本來正樣本難以“匹敵”負樣本,但經過 (1−ŷ )γ 和 ŷγ 的“操控”后,也許形勢還逆轉了,還要對正樣本降權。

不過我認為這樣調整只是經驗結果,理論上很難有一個指導方案來決定 α 的值,如果沒有大算力調參,倒不如直接讓 α=0.5(均等)。

 

多分類

Focal Loss 在多分類中的形式也很容易得到,其實就是:

ŷt 是目標的預測值,一般就是經過 softmax 后的結果。那我自己構思的 L∗∗ 怎么推廣到多分類?也很簡單:

這里 xt 也是目標的預測值,但它是 softmax 前的結果。

 

參考:https://zhuanlan.zhihu.com/p/32423092


免責聲明!

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



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