再谈类别不平衡问题:调节权重与魔改Loss的综合分析
?PaperWeekly 原創(chuàng) ·?作者|蘇劍林
單位|追一科技
研究方向|NLP、神經(jīng)網(wǎng)絡(luò)
類(lèi)別不平衡問(wèn)題,也稱(chēng)為長(zhǎng)尾分布問(wèn)題,在之前的文章里已經(jīng)有好幾次相關(guān)討論了,比如從 loss 的硬截?cái)唷④浕?focal loss [1] 、將“softmax+交叉熵”推廣到多標(biāo)簽分類(lèi)問(wèn)題、通過(guò)互信息思想來(lái)緩解類(lèi)別不平衡問(wèn)題。
對(duì)于緩解類(lèi)別不平衡,比較基本的方法就是調(diào)節(jié)樣本權(quán)重,看起來(lái)“高端”一點(diǎn)的方法則是各種魔改 loss了(比如 Focal Loss、Dice Loss、Logits Adjustment 等),本文希望比較系統(tǒng)地理解它們之間的聯(lián)系。
▲長(zhǎng)尾分布:少數(shù)類(lèi)別的樣本數(shù)目非常多,多數(shù)類(lèi)別的樣本數(shù)目非常少。
從光滑準(zhǔn)確率到交叉熵
這里的分析主要以 sigmoid 的 2 分類(lèi)為主,但多數(shù)結(jié)論可以平行推廣到 softmax 的多分類(lèi)。設(shè) x 為輸入, 為目標(biāo), 為模型。理想情況下,當(dāng)然是要評(píng)測(cè)什么指標(biāo),我們就去優(yōu)化那個(gè)指標(biāo)。對(duì)于分類(lèi)問(wèn)題來(lái)說(shuō),最樸素的指標(biāo)當(dāng)然就是準(zhǔn)確率,但準(zhǔn)確率并沒(méi)有辦法提供有效的梯度,所以不能直接來(lái)訓(xùn)練。
為此,我們一個(gè)光滑化的指標(biāo)。從之前的文章函數(shù)光滑化雜談:不可導(dǎo)函數(shù)的可導(dǎo)逼近 [2] ,準(zhǔn)確率的光滑化近似是:
其中 是訓(xùn)練數(shù)據(jù)集合。所以按道理,我們應(yīng)該以 為最小化的目標(biāo)。但事實(shí)上,直接優(yōu)化這個(gè)目標(biāo)的效果并不好,更好的是去優(yōu)化交叉熵:
這就有點(diǎn)耐人尋味了,明明 更接近我們的評(píng)測(cè)指標(biāo),為什么用交叉熵反而對(duì)評(píng)測(cè)指標(biāo)更有利呢?
這需要用梯度來(lái)解釋。對(duì)于 ,它通常是經(jīng)過(guò)了 sigmoid 激活的,也就是 ,其中 ,它的導(dǎo)數(shù) ,而 就是我們通常稱(chēng)的“logits”。
假設(shè) y 是 1,那么對(duì)應(yīng)的 就是 ,它的梯度是:
剛才說(shuō)了,y 是 1,所以訓(xùn)練目標(biāo)是 ,因此我們期望當(dāng) 接近于0時(shí)(誤差較大),會(huì)帶來(lái)一個(gè)較大的梯度,當(dāng) 接近于 1 時(shí)(誤差較小),會(huì)帶來(lái)一個(gè)較小的梯度。
但上述 顯然不是如此,它的調(diào)節(jié)項(xiàng) 在 0.5 處取到最大值,至于 0 和 1 都是最小值,這就意味著如果誤差太大了,梯度反而也小,這就帶來(lái)優(yōu)化效率的低下,最終導(dǎo)致整體效果不好。相反,對(duì)于交叉熵來(lái)說(shuō),有:
剛好把梯度里邊帶來(lái)負(fù)面作用的 因子去掉了,因此優(yōu)化效率更高,最終效果也好些。上述分析針對(duì)的是 y=1,如果 y=0,那么結(jié)論也是一樣的。
從光滑F(xiàn)1到加權(quán)交叉熵
從這個(gè)過(guò)程中,我們可以感覺(jué)到,對(duì) loss 的各種魔改,本質(zhì)上來(lái)說(shuō)都只是在調(diào)整梯度,得到更合理的梯度,我們就能實(shí)現(xiàn)更有效的優(yōu)化,得到更好的模型。此外,我們?cè)偎伎忌鲜鲛D(zhuǎn)換過(guò)程,本來(lái)近似目標(biāo)的梯度是 ,結(jié)果 效果更好。
如果我們不去仔細(xì)分析背后的原因,直接把 當(dāng)作一個(gè)“公理”來(lái)使用,那能否成立呢?會(huì)不會(huì)帶來(lái)一些有意思的結(jié)果呢?
舉個(gè)例子,當(dāng)負(fù)樣本遠(yuǎn)遠(yuǎn)多于正樣本時(shí),我們的評(píng)測(cè)指標(biāo)通常都不再是準(zhǔn)確率了(不然直接全部輸出 0 準(zhǔn)確率就很高了),我們通常關(guān)心正類(lèi)的 F1,而 F1 的直接優(yōu)化也是不容易的,所以我們也需要一個(gè)光滑版,文章函數(shù)光滑化雜談:不可導(dǎo)函數(shù)的可導(dǎo)逼近 [3] 同樣也給出了結(jié)果:
所以我們的最小化目標(biāo)原本是 。根據(jù)上述“公理”,我們先直接對(duì) 求梯度:
其中 是整體的一個(gè)縮放因子,我們主要關(guān)心的還是每個(gè)樣本的梯度,所以結(jié)果是:
根據(jù) “公理”(負(fù)樣本則是 ),我們得到最后的梯度為:
這等價(jià)于優(yōu)化目標(biāo):
的梯度(其中 不求梯度),所以這其實(shí)就是用 調(diào)節(jié)正樣本的交叉熵,用 調(diào)節(jié)負(fù)樣本的交叉熵。
一開(kāi)始 F1 值會(huì)比較小,所以模型集中精力在優(yōu)化正樣本,后期 F1 比較大后,模型反而集中精力在優(yōu)化負(fù)樣本了,這其實(shí)正體現(xiàn)了 F1 指標(biāo)的特殊性:對(duì)于 F1 來(lái)說(shuō),既要盡可能挖掘出正樣本,但是負(fù)樣本也不能錯(cuò)得太多,所以不大適合設(shè)置固定不變的調(diào)節(jié)因子,而是需要?jiǎng)討B(tài)的調(diào)節(jié)。
從擴(kuò)大邊界到Logits調(diào)整
其實(shí)無(wú)論評(píng)測(cè)指標(biāo)是什么,我們肯定都是希望每一個(gè)樣本都盡可能預(yù)測(cè)對(duì)。問(wèn)題在于,樣本數(shù)目比較少的類(lèi)別,因?yàn)閷W(xué)習(xí)得不夠充分,所以泛化性能不會(huì)太好。
讓我們從幾何角度來(lái)思考這個(gè)問(wèn)題。理想情況下,在編碼空間里邊,每一類(lèi)樣本都占據(jù)著自己的一個(gè)“地盤(pán)”,不同類(lèi)的“地盤(pán)”是互不相交的。
樣本數(shù)目較少的類(lèi)別泛化性能不大好,主要就體現(xiàn)為其類(lèi)別所占據(jù)的“地盤(pán)”比較小,而且往往還會(huì)受到類(lèi)別數(shù)目較多的樣本的“打壓”,因此“生存”幾乎都成了問(wèn)題,更不用說(shuō)照顧到訓(xùn)練集沒(méi)有出現(xiàn)過(guò)的新樣本了。
怎么解決這個(gè)問(wèn)題呢?其實(shí)也很形象,如果樣本數(shù)目少的類(lèi)別,里邊的樣本個(gè)個(gè)都是“大佬”,一個(gè)打十個(gè)的那種,那么就算樣本少,也能在“地盤(pán)之爭(zhēng)”中不落下風(fēng)。讓我們考慮一個(gè) n 分類(lèi)問(wèn)題,某個(gè)樣本的編碼向量為 ,類(lèi)別向量為 ,那么該樣本與類(lèi)別向量的相似度,一般用內(nèi)積 來(lái)度量。
假設(shè)每個(gè)樣本能占據(jù)半徑為 的“地盤(pán)”,這樣就是說(shuō),滿足 的任意z都算是該樣本的編碼向量,這也就意味著,滿足這個(gè)條件的任意 z,它跟 的相似度都應(yīng)該大于它跟其他類(lèi)別的相似度。
現(xiàn)在我們考慮:
由于 ,所以顯然有:
所以,為了達(dá)到“ z 跟 的相似度都應(yīng)該大于它跟其他類(lèi)別的相似度”這個(gè)目的,只需要“ z 跟 的最小相似度都應(yīng)該大于它跟其他類(lèi)別的最大相似度”,因此我們的優(yōu)化目標(biāo)變?yōu)?#xff1a;
可以看到,這其實(shí)就相當(dāng)于 am-softmax、circle loss 等帶有 margin 的 softmax 變種,具體形式其實(shí)不重要,只需要為類(lèi)別小的類(lèi)設(shè)置更大的 margin 就好(樣本少的類(lèi)別每個(gè)樣本都更“能打”)。那怎么設(shè)計(jì)每個(gè)類(lèi)的 margin 呢?
之前的文章通過(guò)互信息思想來(lái)緩解類(lèi)別不平衡問(wèn)題就提供了一個(gè)方案:,這里的 p(y) 是先驗(yàn)分布,那么就有:
這樣我們就聯(lián)系到了 logit adjustment loss 了,或者說(shuō)給 logit adjustment loss 提供了一種幾何直觀理解。本質(zhì)上來(lái)說(shuō),logit adjustment 也是在調(diào)節(jié)權(quán)重,只不過(guò)一般的調(diào)節(jié)權(quán)重是在損失函數(shù)的 之后調(diào)整,而 logit adjustment 則是在 之前調(diào)整。
感覺(jué)上可以小結(jié)一下了
本文就類(lèi)別不平衡現(xiàn)象及其對(duì)策做了一些思考,主要是希望通過(guò)一些相對(duì)直觀的引導(dǎo),來(lái)揭示一些魔改 loss 的思路,從中我們也可以發(fā)現(xiàn),其實(shí)這些方案本質(zhì)上都算是在調(diào)節(jié)樣本權(quán)重或者類(lèi)權(quán)重。本文的分析思路相對(duì)來(lái)說(shuō)比較散漫,基本上是筆者的頭腦風(fēng)暴內(nèi)容,如果錯(cuò)漏之處,請(qǐng)讀者見(jiàn)諒并指出。
參考文獻(xiàn)
[1] https://kexue.fm/archives/4733
[2] https://kexue.fm/archives/6620
[3] https://kexue.fm/archives/6620
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類(lèi)優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來(lái)。
?????來(lái)稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來(lái)稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
????
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專(zhuān)欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結(jié)
以上是生活随笔為你收集整理的再谈类别不平衡问题:调节权重与魔改Loss的综合分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 英特尔 Core Ultra 9 285
- 下一篇: 农村开什么店比较合适没技术 可以考虑这