<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          語(yǔ)義分割中的 loss function 最全面匯總

          共 3659字,需瀏覽 8分鐘

           ·

          2022-05-27 10:13

          點(diǎn)擊上方視學(xué)算法”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          作者丨程序員阿德@知乎(已授權(quán))
          來(lái)源丨h(huán)ttps://zhuanlan.zhihu.com/p/101773544
          編輯丨極市平臺(tái)

          導(dǎo)讀

          ?

          本文總結(jié)了語(yǔ)義分割中的5個(gè)損失函數(shù),詳細(xì)介紹每個(gè)損失函數(shù)的使用場(chǎng)景以及特點(diǎn)。

          目錄:

          1. cross entropy loss
          2. weighted loss
          3. focal loss
          4. dice soft loss
          5. soft iou loss
          6. 總結(jié)

          1、cross entropy loss

          用于圖像語(yǔ)義分割任務(wù)的最常用損失函數(shù)是像素級(jí)別的交叉熵?fù)p失,這種損失會(huì)逐個(gè)檢查每個(gè)像素,將對(duì)每個(gè)像素類(lèi)別的預(yù)測(cè)結(jié)果(概率分布向量)與我們的獨(dú)熱編碼標(biāo)簽向量進(jìn)行比較。

          假設(shè)我們需要對(duì)每個(gè)像素的預(yù)測(cè)類(lèi)別有5個(gè),則預(yù)測(cè)的概率分布向量長(zhǎng)度為5:

          每個(gè)像素對(duì)應(yīng)的損失函數(shù)為:

          整個(gè)圖像的損失就是對(duì)每個(gè)像素的損失求平均值。

          特別注意的是,binary entropy loss 是針對(duì)類(lèi)別只有兩個(gè)的情況,簡(jiǎn)稱(chēng) bce loss,損失函數(shù)公式為:

          2、weighted loss

          由于交叉熵?fù)p失會(huì)分別評(píng)估每個(gè)像素的類(lèi)別預(yù)測(cè),然后對(duì)所有像素的損失進(jìn)行平均,因此我們實(shí)質(zhì)上是在對(duì)圖像中的每個(gè)像素進(jìn)行平等地學(xué)習(xí)。如果多個(gè)類(lèi)在圖像中的分布不均衡,那么這可能導(dǎo)致訓(xùn)練過(guò)程由像素?cái)?shù)量多的類(lèi)所主導(dǎo),即模型會(huì)主要學(xué)習(xí)數(shù)量多的類(lèi)別樣本的特征,并且學(xué)習(xí)出來(lái)的模型會(huì)更偏向?qū)⑾袼仡A(yù)測(cè)為該類(lèi)別。

          FCN論文和U-Net論文中針對(duì)這個(gè)問(wèn)題,對(duì)輸出概率分布向量中的每個(gè)值進(jìn)行加權(quán),即希望模型更加關(guān)注數(shù)量較少的樣本,以緩解圖像中存在的類(lèi)別不均衡問(wèn)題。

          比如對(duì)于二分類(lèi),正負(fù)樣本比例為1: 99,此時(shí)模型將所有樣本都預(yù)測(cè)為負(fù)樣本,那么準(zhǔn)確率仍有99%這么高,但其實(shí)該模型沒(méi)有任何使用價(jià)值。

          為了平衡這個(gè)差距,就對(duì)正樣本和負(fù)樣本的損失賦予不同的權(quán)重,帶權(quán)重的二分類(lèi)損失函數(shù)公式如下:

          要減少假陰性樣本的數(shù)量,可以增大 pos_weight;要減少假陽(yáng)性樣本的數(shù)量,可以減小 pos_weight。

          3、focal loss

          上面針對(duì)不同類(lèi)別的像素?cái)?shù)量不均衡提出了改進(jìn)方法,但有時(shí)還需要將像素分為難學(xué)習(xí)和容易學(xué)習(xí)這兩種樣本。

          容易學(xué)習(xí)的樣本模型可以很輕松地將其預(yù)測(cè)正確,模型只要將大量容易學(xué)習(xí)的樣本分類(lèi)正確,loss就可以減小很多,從而導(dǎo)致模型不怎么顧及難學(xué)習(xí)的樣本,所以我們要想辦法讓模型更加關(guān)注難學(xué)習(xí)的樣本。

          對(duì)于較難學(xué)習(xí)的樣本,將 bce loss 修改為:

          其中的 通常設(shè)置為2。

          舉個(gè)例子,預(yù)測(cè)一個(gè)正樣本,如果預(yù)測(cè)結(jié)果為0.95,這是一個(gè)容易學(xué)習(xí)的樣本,有 ,損失直接減少為原來(lái)的1/400。

          而如果預(yù)測(cè)結(jié)果為0.4,這是一個(gè)難學(xué)習(xí)的樣本,有 ,損失減小為原來(lái)的1/4,雖然也在減小,但是相對(duì)來(lái)說(shuō),減小的程度小得多。

          所以通過(guò)這種修改,就可以使模型更加專(zhuān)注于學(xué)習(xí)難學(xué)習(xí)的樣本。

          而將這個(gè)修改和對(duì)正負(fù)樣本不均衡的修改合并在一起,就是大名鼎鼎的 focal loss:

          4、dice soft loss

          語(yǔ)義分割任務(wù)中常用的還有一個(gè)基于 Dice 系數(shù)的損失函數(shù),該系數(shù)實(shí)質(zhì)上是兩個(gè)樣本之間重疊的度量。此度量范圍為 0~1,其中 Dice 系數(shù)為1表示完全重疊。Dice 系數(shù)最初是用于二進(jìn)制數(shù)據(jù)的,可以計(jì)算為:

          代表集合A和B之間的公共元素,并且 代表集合A中的元素?cái)?shù)量(對(duì)于集合B同理)。

          對(duì)于在預(yù)測(cè)的分割掩碼上評(píng)估 Dice 系數(shù),我們可以將 近似為預(yù)測(cè)掩碼和標(biāo)簽掩碼之間的逐元素乘法,然后對(duì)結(jié)果矩陣求和。

          計(jì)算 Dice 系數(shù)的分子中有一個(gè)2,那是因?yàn)榉帜钢袑?duì)兩個(gè)集合的元素個(gè)數(shù)求和,兩個(gè)集合的共同元素被加了兩次。為了設(shè)計(jì)一個(gè)可以最小化的損失函數(shù),可以簡(jiǎn)單地使用 。這種損失函數(shù)被稱(chēng)為 soft Dice loss,這是因?yàn)槲覀冎苯邮褂妙A(yù)測(cè)出的概率,而不是使用閾值將其轉(zhuǎn)換成一個(gè)二進(jìn)制掩碼。

          Dice loss是針對(duì)前景比例太小的問(wèn)題提出的,dice系數(shù)源于二分類(lèi),本質(zhì)上是衡量?jī)蓚€(gè)樣本的重疊部分。

          對(duì)于神經(jīng)網(wǎng)絡(luò)的輸出,分子與我們的預(yù)測(cè)和標(biāo)簽之間的共同激活有關(guān),而分母分別與每個(gè)掩碼中的激活數(shù)量有關(guān),這具有根據(jù)標(biāo)簽掩碼的尺寸對(duì)損失進(jìn)行歸一化的效果。

          對(duì)于每個(gè)類(lèi)別的mask,都計(jì)算一個(gè) Dice 損失:

          將每個(gè)類(lèi)的 Dice 損失求和取平均,得到最后的 Dice soft loss。

          下面是代碼實(shí)現(xiàn):

          def?soft_dice_loss(y_true,?y_pred,?epsilon=1e-6):?
          ????'''?
          ????Soft?dice?loss?calculation?for?arbitrary?batch?size,?number?of?classes,?and?number?of?spatial?dimensions.
          ????Assumes?the?`channels_last`?format.
          ??
          ????#?Arguments
          ????????y_true:?b?x?X?x?Y(?x?Z...)?x?c?One?hot?encoding?of?ground?truth
          ????????y_pred:?b?x?X?x?Y(?x?Z...)?x?c?Network?output,?must?sum?to?1?over?c?channel?(such?as?after?softmax)?
          ????????epsilon:?Used?for?numerical?stability?to?avoid?divide?by?zero?errors
          ????
          ????#?References
          ????????V-Net:?Fully?Convolutional?Neural?Networks?for?Volumetric?Medical?Image?Segmentation?
          ????????https://arxiv.org/abs/1606.04797
          ????????More?details?on?Dice?loss?formulation?
          ????????https://mediatum.ub.tum.de/doc/1395260/1395260.pdf?(page?72)
          ????????
          ????????Adapted?from?https://github.com/Lasagne/Recipes/issues/99#issuecomment-347775022
          ????'''

          ????
          ????#?skip?the?batch?and?class?axis?for?calculating?Dice?score
          ????axes?=?tuple(range(1,?len(y_pred.shape)-1))?
          ????numerator?=?2.?*?np.sum(y_pred?*?y_true,?axes)
          ????denominator?=?np.sum(np.square(y_pred)?+?np.square(y_true),?axes)
          ????
          ????return?1?-?np.mean(numerator?/?(denominator?+?epsilon))?#?average?over?classes?and?batch

          5、soft IoU loss

          前面我們知道計(jì)算 Dice 系數(shù)的公式,其實(shí)也可以表示為:

          其中 TP 為真陽(yáng)性樣本,F(xiàn)P 為假陽(yáng)性樣本,F(xiàn)N 為假陰性樣本。分子和分母中的 TP 樣本都加了兩次。

          IoU 的計(jì)算公式和這個(gè)很像,區(qū)別就是 TP 只計(jì)算一次:

          和 Dice soft loss 一樣,通過(guò) IoU 計(jì)算損失也是使用預(yù)測(cè)的概率值:

          其中 C 表示總的類(lèi)別數(shù)。

          總結(jié):

          交叉熵?fù)p失把每個(gè)像素都當(dāng)作一個(gè)獨(dú)立樣本進(jìn)行預(yù)測(cè),而 dice loss 和 iou loss 則以一種更“整體”的方式來(lái)看待最終的預(yù)測(cè)輸出。

          這兩類(lèi)損失是針對(duì)不同情況,各有優(yōu)點(diǎn)和缺點(diǎn),在實(shí)際應(yīng)用中,可以同時(shí)使用這兩類(lèi)損失來(lái)進(jìn)行互補(bǔ)。

          參考:

          An overview of semantic image segmentation.(https://www.jeremyjordan.me/semantic-segmentation/)

          Loss Functions for Medical Image Segmentation(https://medium.com/@junma11/loss-functions-for-medical-image-segmentation-a-taxonomy-cefa5292eec0)

          Losses for Image Segmentation(https://lars76.github.io/neural-networks/object-detection/losses-for-segmentation/)


          點(diǎn)個(gè)在看 paper不斷!

          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  污污成人免费网站 | 亚洲第一页面 | 欧美一级片在线视频 | 日本狠狠干 | 操美女逼网站 |