三篇論文解決「語(yǔ)義分割的優(yōu)化和評(píng)估」難題!魯汶/清華/牛津等聯(lián)合提出全新方法
優(yōu)化語(yǔ)義分割模型常用的損失有Soft Jaccard損失,Soft Dice損失和Soft Tversky損失,但它們都和軟標(biāo)簽不兼容,所以無(wú)法支持一些重要的訓(xùn)練技術(shù)(例如標(biāo)簽平滑,知識(shí)蒸餾,半監(jiān)督學(xué)習(xí),多標(biāo)注員等)。
另一方面,語(yǔ)義分割常用的評(píng)價(jià)指標(biāo)有mAcc和mIoU,但是因?yàn)樗鼈兌紩?huì)偏向數(shù)據(jù)集中尺寸較大的物體,所以會(huì)嚴(yán)重的影響它們對(duì)模型安全性能的評(píng)估。
為了解決這些問(wèn)題,魯汶大學(xué)和清華的研究人員首先提出了JDT損失。JDT損失是原有損失函數(shù)的變體,包括了Jaccard Metric損失,Dice Semimetric損失和Compatible Tversky損失。JDT損失在硬標(biāo)簽下與原有的損失函數(shù)等價(jià),但能完全兼容軟標(biāo)簽。
研究人員將JDT損失應(yīng)用于軟標(biāo)簽的四個(gè)重要場(chǎng)景:標(biāo)簽平滑、知識(shí)蒸餾、半監(jiān)督學(xué)習(xí)和多標(biāo)注員,展示了它們提高模型準(zhǔn)確性和校準(zhǔn)性的能力。
圖片
論文鏈接:https://arxiv.org/pdf/2302.05666.pdf
圖片
論文鏈接:https://arxiv.org/pdf/2303.16296.pdf
除此之外,研究人員還提出了細(xì)粒度的評(píng)價(jià)指標(biāo)。這些細(xì)粒度的評(píng)價(jià)指標(biāo)對(duì)大尺寸物體的偏見較小,能提供更豐富的統(tǒng)計(jì)信息,并能為模型和數(shù)據(jù)集審計(jì)提供有價(jià)值的見解。
并且,研究人員進(jìn)行了一項(xiàng)廣泛的基準(zhǔn)研究,強(qiáng)調(diào)了不應(yīng)基于單個(gè)指標(biāo)進(jìn)行評(píng)估的必要性,并發(fā)現(xiàn)了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和JDT損失對(duì)優(yōu)化細(xì)粒度指標(biāo)的重要作用。
圖片
論文鏈接:https://arxiv.org/pdf/2310.19252.pdf
代碼鏈接:https://github.com/zifuwanggg/JDTLosses
現(xiàn)有的損失函數(shù)
由于Jaccard Index和Dice Score是定義在集合上的,所以并不可導(dǎo)。為了使它們可導(dǎo),目前常見的做法有兩種:一種是利用集合和相應(yīng)向量的Lp模之間的關(guān)系,例如Soft Jaccard損失(SJL),Soft Dice損失(SDL)和Soft Tversky損失(STL)。
它們把集合的大小寫成相應(yīng)向量的L1模,把兩個(gè)集合的交集寫成兩個(gè)相應(yīng)向量的內(nèi)積。另一種則是利用Jaccard Index的submodular性質(zhì),在集合函數(shù)上做Lovasz拓展,例如Lovasz-Softmax損失(LSL)。
圖片
這些損失函數(shù)都假定神經(jīng)網(wǎng)絡(luò)的輸出x是一個(gè)連續(xù)的向量,而標(biāo)簽y則是一個(gè)離散的二值向量。如果標(biāo)簽為軟標(biāo)簽,即y不再是一個(gè)離散的二值向量,而是一個(gè)連續(xù)向量時(shí),這些損失函數(shù)就不再兼容。
以SJL為例,考慮一個(gè)簡(jiǎn)單的單像素情況:
圖片
可以發(fā)現(xiàn),對(duì)于任意的y > 0,SJL都將在x = 1時(shí)最小化,而在x = 0時(shí)最大化。因?yàn)橐粋€(gè)損失函數(shù)應(yīng)該在x = y時(shí)最小化,所以這顯然是不合理的。
與軟標(biāo)簽兼容的損失函數(shù)
為了使原有的損失函數(shù)與軟標(biāo)簽兼容,需要在計(jì)算兩個(gè)集合的交集和并集時(shí),引入兩個(gè)集合的對(duì)稱差:
圖片
注意兩個(gè)集合的對(duì)稱差可以寫成兩個(gè)相應(yīng)向量的差的L1模:
圖片
把以上綜合起來(lái),我們提出了JDT損失。它們分別是SJL的變體Jaccard Metric損失(JML),SDL的變體Dice Semimetric 損失(DML)以及STL的變體Compatible Tversky損失(CTL)。
圖片
JDT損失的性質(zhì)
我們證明了JDT損失有著以下的一些性質(zhì)。
性質(zhì)1:JML是一個(gè)metric,DML是一個(gè)semimetric。
性質(zhì)2:當(dāng)y為硬標(biāo)簽時(shí),JML與SJL等價(jià),DML與SDL等價(jià),CTL與STL等價(jià)。
性質(zhì)3:當(dāng)y為軟標(biāo)簽時(shí),JML,DML,CTL都與軟標(biāo)簽兼容,即x = y ó f(x,y) = 0。
由于性質(zhì)1,它們也因此被稱為Jaccard Metric損失和Dice Semimetric損失。性質(zhì)2說(shuō)明在僅用硬標(biāo)簽進(jìn)行訓(xùn)練的一般場(chǎng)景下,JDT損失可以直接用來(lái)替代現(xiàn)有的損失函數(shù),而不會(huì)引起任何的改變。
如何使用JDT損失
我們進(jìn)行了大量的實(shí)驗(yàn),總結(jié)出了使用JDT損失的一些注意事項(xiàng)。
注意1:根據(jù)評(píng)價(jià)指標(biāo)選擇相應(yīng)的損失函數(shù)。如果評(píng)價(jià)指標(biāo)是Jaccard Index,那么應(yīng)該選擇JML;如果評(píng)價(jià)指標(biāo)是Dice Score,那么應(yīng)該選擇DML;如果想給予假陽(yáng)性和假陰性不同的權(quán)重,那么應(yīng)該選擇CTL。其次,在優(yōu)化細(xì)粒度的評(píng)價(jià)指標(biāo)時(shí),JDT損失也應(yīng)做相應(yīng)的更改。
注意2:結(jié)合JDT損失和像素級(jí)的損失函數(shù)(例如Cross Entropy損失,F(xiàn)ocal損失)。本文發(fā)現(xiàn)0.25CE + 0.75JDT一般是一個(gè)不錯(cuò)的選擇。
注意3:最好采用一個(gè)較短的epoch來(lái)訓(xùn)練。加上JDT損失后,一般只需要Cross Entropy損失訓(xùn)練時(shí)一半的epoch。
注意4:在多個(gè)GPU上進(jìn)行分布式訓(xùn)練時(shí),如果GPU之間沒有額外的通信,JDT損失會(huì)錯(cuò)誤的優(yōu)化細(xì)粒度的評(píng)價(jià)指標(biāo),從而導(dǎo)致其在傳統(tǒng)的mIoU上效果變差。
注意5:在極端的類別不平衡的數(shù)據(jù)集上進(jìn)行訓(xùn)練時(shí),需注意JDL損失是在每個(gè)類別上分別求損失再取平均,這可能會(huì)使訓(xùn)練變得不穩(wěn)定。
實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)證明,與Cross Entropy損失的基準(zhǔn)相比,在用硬標(biāo)簽訓(xùn)練時(shí),加上JDT損失可以有效提高模型的準(zhǔn)確性。引入軟標(biāo)簽后,可以進(jìn)一步提高模型的準(zhǔn)確性和校準(zhǔn)性。
圖片
只需在訓(xùn)練時(shí)加入JDT損失項(xiàng),本文取得了語(yǔ)義分割上的知識(shí)蒸餾,半監(jiān)督學(xué)習(xí)和多標(biāo)注員的SOTA。
圖片
圖片
圖片
現(xiàn)有的評(píng)價(jià)指標(biāo)
語(yǔ)義分割是一個(gè)像素級(jí)別的分類任務(wù),因此可以計(jì)算每個(gè)像素的準(zhǔn)確率:overall pixel-wise accuracy(Acc)。但因?yàn)锳cc會(huì)偏向于多數(shù)類,所以PASCAL VOC 2007采用了分別計(jì)算每個(gè)類別的像素準(zhǔn)確率再取平均的評(píng)價(jià)指標(biāo):mean pixel-wise accuracy(mAcc)。
但由于mAcc不會(huì)考慮假陽(yáng)性,從PASCAL VOC 2008之后,就一直采用平均交并比(per-dataset mIoU, mIoUD)來(lái)作為評(píng)價(jià)指標(biāo)。PASCAL VOC是最早的引入了語(yǔ)義分割任務(wù)的數(shù)據(jù)集,它使用的評(píng)價(jià)指標(biāo)也因此被之后的各個(gè)數(shù)據(jù)集所廣泛采用。
具體來(lái)說(shuō),IoU可以寫成:
圖片
為了計(jì)算mIoUD,我們首先需要對(duì)每一個(gè)類別c統(tǒng)計(jì)其在整個(gè)數(shù)據(jù)集上所有I張照片的true positive(真陽(yáng)性,TP),false positive(假陽(yáng)性,F(xiàn)P)和false negative(假陰性,F(xiàn)N):
圖片
有了每個(gè)類別的數(shù)值之后,我們按類別取平均,從而消除對(duì)多數(shù)類的偏好:
圖片
因?yàn)閙IoUD把整個(gè)數(shù)據(jù)集上所有像素的TP,F(xiàn)P和FN合計(jì)在一起,它會(huì)不可避免的偏向于那些大尺寸的物體。
在一些對(duì)安全要求較高的應(yīng)用場(chǎng)景中,例如自動(dòng)駕駛和醫(yī)療圖像,經(jīng)常會(huì)存在一些尺寸小但是不可忽略的物體。
如下圖所示,不同照片上的汽車的大小有著明顯的不同。因此,mIoUD對(duì)大尺寸物體的偏好會(huì)嚴(yán)重的影響其對(duì)模型安全性能的評(píng)估。
細(xì)粒度的評(píng)價(jià)指標(biāo)
為了解決mIoUD的問(wèn)題,我們提出細(xì)粒度的評(píng)價(jià)指標(biāo)。這些指標(biāo)在每張照片上分別計(jì)算IoU,從而能有效的降低對(duì)大尺寸物體的偏好。
mIoUI
對(duì)每一個(gè)類別c,我們?cè)诿恳粡堈掌琲上分別計(jì)算一個(gè)IoU:
圖片
接著,對(duì)每一張照片i,我們把這張照片上出現(xiàn)過(guò)的所有類別進(jìn)行平均:
圖片
最后,我們把所有照片的數(shù)值再進(jìn)行平均:
圖片
mIoUC
類似的,在計(jì)算出每個(gè)類別c在每一張照片i上的IoU之后,我們可以把每一個(gè)類別c出現(xiàn)過(guò)的所有照片進(jìn)行平均:
最后,把所有類別的數(shù)值再進(jìn)行平均:
由于不是所有的類別都會(huì)出現(xiàn)在所有的照片上,所以對(duì)于一些類別和照片的組合,會(huì)出現(xiàn)NULL值,如下圖所示。計(jì)算mIoUI時(shí)先對(duì)類別取平均再對(duì)照片取平均,而計(jì)算mIoUC時(shí)先對(duì)照片取平均再對(duì)類別取平均。
這樣的結(jié)果是mIoUI可能會(huì)偏向那些出現(xiàn)得很頻繁的類別(例如下圖的C1),而這一般是不好的。但另一方面,在計(jì)算mIoUI時(shí),因?yàn)槊繌堈掌加幸粋€(gè)IoU數(shù)值,這能幫助我們對(duì)模型和數(shù)據(jù)集進(jìn)行一些審計(jì)和分析。
圖片
最差情況的評(píng)價(jià)指標(biāo)
對(duì)于一些很注重安全的應(yīng)用場(chǎng)景,我們很多時(shí)候更關(guān)心的是最差情況的分割質(zhì)量,而細(xì)粒度指標(biāo)的一個(gè)好處就是能計(jì)算相應(yīng)的最差情況指標(biāo)。我們以mIoUC為例,類似的方法也可以計(jì)算mIoUI相應(yīng)的最差情況指標(biāo)。
對(duì)于每一個(gè)類別c,我們首先把其出現(xiàn)過(guò)的所有照片(假設(shè)有Ic個(gè)這樣的照片)的IoU數(shù)值進(jìn)行升序排序。接著,我們?cè)O(shè)q為一個(gè)很小的數(shù)字,例如1或者5。然后,我們僅用排序好的前Ic * q%張照片來(lái)計(jì)算最后的數(shù)值:
圖片
有了每個(gè)類c的數(shù)值之后,我們可以像之前那樣按類別取平均,從而得到mIoUC的最差情況指標(biāo)。
實(shí)驗(yàn)結(jié)果
我們?cè)?2個(gè)數(shù)據(jù)集上訓(xùn)練了15個(gè)模型,發(fā)現(xiàn)了如下的一些現(xiàn)象。
現(xiàn)象1:沒有一個(gè)模型在所有的評(píng)價(jià)指標(biāo)上都能取得最好的效果。每個(gè)評(píng)價(jià)指標(biāo)都有著不同的側(cè)重點(diǎn),因此我們需要同時(shí)考慮多個(gè)評(píng)價(jià)指標(biāo)來(lái)進(jìn)行綜合的評(píng)估。
現(xiàn)象2:一些數(shù)據(jù)集上存在部分照片使得幾乎所有的模型都取得一個(gè)很低的IoU數(shù)值。這一方面是因?yàn)檫@些照片本身就很有挑戰(zhàn)性,例如一些很小的物體和強(qiáng)烈的明暗對(duì)比,另一方面也是因?yàn)檫@些照片的標(biāo)簽存在問(wèn)題。因此,細(xì)粒度的評(píng)價(jià)指標(biāo)能幫助我們進(jìn)行模型審計(jì)(發(fā)現(xiàn)模型會(huì)犯錯(cuò)的場(chǎng)景)和數(shù)據(jù)集審計(jì)(發(fā)現(xiàn)錯(cuò)誤的標(biāo)簽)。
現(xiàn)象3:神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對(duì)優(yōu)化細(xì)粒度的評(píng)價(jià)指標(biāo)有著至關(guān)重要的作用。一方面,由ASPP(被DeepLabV3和DeepLabV3+采用)等結(jié)構(gòu)所帶來(lái)的感受野的提升能幫助模型識(shí)別出大尺寸的物體,從而能有效提高mIoUD的數(shù)值;另一方面,encoder和decoder之間的長(zhǎng)連接(被UNet和DeepLabV3+采用)能使模型識(shí)別出小尺寸的物體,從而提高細(xì)粒度評(píng)價(jià)指標(biāo)的數(shù)值。
現(xiàn)象4:最差情況指標(biāo)的數(shù)值遠(yuǎn)遠(yuǎn)低于相應(yīng)的平均指標(biāo)的數(shù)值。下表展示了DeepLabV3-ResNet101在多個(gè)數(shù)據(jù)集上的mIoUC和相應(yīng)的最差情況指標(biāo)的數(shù)值。一個(gè)值得以后考慮的問(wèn)題是,我們應(yīng)該如何設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化方法來(lái)提高模型在最差情況指標(biāo)下的表現(xiàn)?
圖片
現(xiàn)象5:損失函數(shù)對(duì)優(yōu)化細(xì)粒度的評(píng)價(jià)指標(biāo)有著至關(guān)重要的作用。與Cross Entropy損失的基準(zhǔn)相比,如下表的(0,0,0)所示,當(dāng)評(píng)價(jià)指標(biāo)變得細(xì)粒度,使用相應(yīng)的損失函數(shù)能極大的提升模型在細(xì)粒度評(píng)價(jià)指標(biāo)上的性能。例如,在ADE20K上,JML和Cross Entropy損失的mIoUC的差別會(huì)大于7%。
圖片
未來(lái)工作
我們只考慮了JDT損失作為語(yǔ)義分割上的損失函數(shù),但它們也可以應(yīng)用在其他的任務(wù)上,例如傳統(tǒng)的分類任務(wù)。
其次,JDT損失只被用在標(biāo)簽空間中,但我們認(rèn)為它們能被用于最小化任意兩個(gè)向量在特征空間上的距離,例如用來(lái)替代Lp模和cosine距離。
參考資料:
https://arxiv.org/pdf/2302.05666.pdf
https://arxiv.org/pdf/2303.16296.pdf
https://arxiv.org/pdf/2310.19252.pdf