基於深度學習的自然圖像和醫學圖像分割:損失函數設計(1)


本文總結一下基於深度學習的自然圖像和醫學圖像分割問題中,常用的損失函數。

從頻率派的角度看深度學習模型,是把輸入數據 [公式] 假設為一個隨機變量,服從一個概率分布 [公式] , 其中的參數 [公式] 是未知常量。我們需要對 [公式] 進行求解,但深度學習模型直接得到解析解是不可能的,我們只能求得 [公式] 來逼近 [公式] 。損失函數就是作為優化過程的指導,衡量模型預測結果與真實標簽之間的“差距”,然后通過梯度反向傳播來不斷修正 [公式] 使其趨近於 [公式] ,這個過程就是優化。這樣模型參數的求解問題轉化為一個最優化問題。圖像語義分割問題可視為一個像素級分類問題,因此最常用的分類損失函數——交叉熵損失函數,可以用於圖像語義分割,發展出基於交叉熵的損失函數系列;圖像分割結果是一個mask(或概率圖),計算預測mask(或概率圖)與ground truth的重合度可以直接度量模型的分割性能,基於此發展出基於重合度度量(如IoU)的損失函數系列。下面分別進行詳細介紹:

1.基於交叉熵的損失函數系列

這個系列損失函數基於交叉熵理論進行設計,通過逐像素計算預測分布與groundtruth分布之間的“差距”得到損失函數的值。數學上可證明交叉熵損失函數等價於最大似然估計。

1.1 交叉熵(Cross Entorpy,CE)

交叉熵損失函數逐像素對比了模型預測向量與one-hot編碼后的groundtruth,在二類分割問題中,令:

[公式]

[公式]

其中, [公式] 分別表示標簽為陽性和陰性。在分割問題中,groundtruth是已知的,即 [公式]

模型的概率預測結果可以由sigmoid函數(或softmax)計算得到,令:

[公式]

[公式]

其中,x 是模型的輸出,后接sigmoid函數可以將其轉為概率結果(即各類預測概率之和為1), [公式] 分別表示預測為陽性和陰性。

那么二分類交叉熵損失函數可以定義為:

[公式]

推廣即可得到多分類分割的交叉熵損失函數公式:

[公式]

這里要說明一下,在從二分類推廣到多分類分割問題時,需要用到one-hot編碼。這在語義分割任務中是一個必不可少的步驟。一般情況下,我們分割的目標是為輸入圖像的每個像素預測一個標簽:

語義分割原圖與分割結果對比

但是FCN類網絡輸出結果是h*w*c的特征圖,想要在特征圖與GT之間 計算Loss值 ,就必須進行轉換使兩者額的shape對應,而且每個像素點擁有對每一類的預測概率。因此,對於網絡輸出的特征圖(假設預定類別數為C),我們使網絡輸出特征圖為h*w*C,然后對每個像素位置的所有通道進行softmax操作,以使其表示為預測概率,最終通過取每個像素點在所有 channel 的 argmax 可以得到該像素點最終的預測類別。
對於數據標簽(mask),為每一個類別創建一個輸出通道(one-hot編碼)。

GT經過one-hot編碼后

這樣一來,多分類轉化為各個channel的二分類問題。

小結:交叉熵損失函數行使監督、易於理解,但忽略了不同類樣本(像素)在樣本空間的數量比例。ont-hot編碼廣泛應用於圖像多類別分割問題中,使得所有二分類損失函數可以間接用於多分類任務。

1.2 加權交叉熵(Weighted Cross Entorpy,WCE)

交叉熵損失分別計算每個像素的交叉熵,然后對所有像素進行平均,這意味着我們默認每類像素對損失的貢獻相等。 如果各類像素在圖像中的數量不平衡,則可能出現問題,因為數量最多的類別會對損失函數影響最大,從而主導訓練過程。 Long等提出了為每個類加權的交叉熵損失(WCE),以抵消數據集中存在的類不平衡。以二類分割為例,WCE可被定義為:

[公式]

當 [公式] 時,可降低FN比例,當 [公式] 時,可降低FP比例。即想要減小哪一類的誤分率,就給哪一類賦予更大的相對權值。為了同時調整負樣本的權值,可以使用BCE(Balanced Cross Entropy)損失函數:

[公式]

Ronnenberger等人在交叉熵函數中添加了一個距離學習距離,加強模型對類間距離的學習,以在彼此之間非常接近的情況下實現更好的分割,公式如下:

[公式]

其中 [公式] 是兩個距離函數,在細胞分割問題中,Lin等用於計算當前像素到最近的和第二近細胞的邊界的距離。這個損失函數是在著名的U-Net論文中提出來的。

小結:對交叉熵損失函數進行加權后,可以削弱樣本類數量不平衡引起的問題。

1.3 Focal Loss

為了降低易分樣本對損失函數的貢獻,使模型更加專注於區分難分樣本,Lin等人用難易區分權重 [公式] 對加權交叉熵損失函數進行進一步改進,得到Focal Loss:

[公式]

其中 [公式] 是類數量平衡因子, [公式] 是難易分平衡因子。[公式] 越大,對應的類對損失函數的貢獻就越大,對應的誤分率就越低。 [公式] 越大,難分樣本對損失函數的貢獻越大,當 [公式] 時,Focal Loss等價於BCE(加權交叉熵損失)。當 [公式] 時,等價於CE(交叉熵損失)。

小結:交叉熵系列損失函數發展到Focal Loss基本完備了,解決了類數量不平衡,並且動態增加了針對難分樣本的權重,隨着訓練的進行,難分樣本的權重也會慢慢降低。

總結:交叉熵系列損失函數大概就以上這幾類,損失函數的改進其實相對於網絡結構的改進要難一些,有些具體的問題可以利用一些先驗來對損失函數做正則化(例如U-Net的損失函數),主體部分用Focal Loss就可以。

2. 基於重合度度量的損失函數

首先需要說明一下重合度如何度量,最常用的評價指標是IoU(交並比):

[公式]

其中X和Y分別表示預測結果和GroundTruth,這是最直觀地表示預測結果與標簽mask之間重合度的指標。取值范圍為[0~1],越大表明分割結果越接近GT。所以我們可以基於此來設計損失函數,那么評價指標和損失函數更相似,分割效果會不會更好?

2.1 Dice Loss(DL)

首先需要了解Dice系數,它可以衡量兩個樣本之間重疊程度,與F1-Score等價,與IoU基本相似。表達式為:

[公式]

相當於在IoU的分子分母上分別加了一個 [公式] ,那么 [公式] ,取值范圍和IoU類似為[0,1]。基於此來設計Dice Loss可以表示為:

[公式]

分割性能越好,則DC的值越低。其中 [公式] 表示每個通道的GT與預測結果矩陣點乘, 可以有效地將預測中未在 target mask 中“激活”的所有像素清零。對於剩余的像素,主要是在懲罰低置信度預測;[公式] 表示一范數,即矩陣元素絕對值之和,為簡化計算,也可以用2范數代替。Dice Loss在2016年的V-Net中首次提出,非常適用於類別不平衡問題,本身可以有效抑制類別不平衡引起的問題。

2.2 Tversky Loss(TL)

Tversky Loss是對Dice Loss的正則化版本,為控制FP和FN對損失函數的貢獻,TL對它們進行了加權:

當beta=0.5時,TL等價於DL。

2.3 指數對數損失(Exponential Logarithmic Loss)

Wong提出了一種使用指數對數Dice Loss( [公式] )和加權指數交叉熵損失( [公式] )的加權和構成的損失函數,以提高小結構的分割精度,這些要分割的小結構對象的大小一般存在較大差異。

其中:

[公式] 分別表示像素位置,預測標簽和數據真實標簽(GT)。 [公式] 表示平滑Dice Loss(在Dice Loss的分子分母上分別加1,可以避免出現除零問題)。 [公式] 和[公式] 用於控制兩部分損失函數的非線性。

2.4 Lovasz-Softmax Loss(LSL)

已知Jaccard損失(IoU損失)是submodular(子模,這部分還不太理解),因此Berman等人提出使用Lovasz鉸鏈和Jaccard損失進行二值分割,並提出了Jaccard損失的替代品,稱為Lovasz-Softmax損失, 適用於多類別分割任務。 因此,Lovasz-Softmax損失是離散Jaccard損失的平滑擴展,定義為:

其中 [公式] 表示子模Jaccard損失的凸閉包,表示它是緊的凸閉包且多項式時間可計算,C表示所有類別, [公式] 和 [公式] 表示Jaccard索引和C個類別的向量誤差。

2.5 邊界損失(Boundary Loss,BL)

Kervadec提出了一種新的損失函數:

其中,第一部分是正則化后的Dice Loss:

第二部分是邊界損失(Boundary Loss):

兩部分用 [公式] 來調整相對大小。具體參數含義如下:

2.6 保守損失(Conservative Loss,CL)

這個損失函數的作用和它的名字一樣保守:通過懲罰極端情況並鼓勵中等情況來在域適應任務中實現良好的泛化能力。CL可以表示為: [公式]

其中 [公式] 是對標簽的預測概率, [公式] 是對數的底數, [公式] 和 [公式] 分別選擇為e(歐拉數)和5。

2.7 小結

其他類似的工作還包括優化分割指標的方法,加權損失函數以及向損失函數添加正則化項以編碼幾何和拓撲形狀先驗的方法。以上介紹的這些方法可以直接拿來使用,也可以針對自己的具體問題,添加權重或正則化來改進。

3. 總結

圖像分割(尤其是醫學圖像)中的一個重要問題是要克服類別不平衡問題,基於重疊度量的方法在克服不平衡方面表現出相當好的性能。 在下一篇總結中,我們總結一下用於醫學圖像分割任務的新損失函數或上述(修改后的)損失函數。

不同損失函數針對大/小對象分割的效果對比

上圖將不同損失函數的表現進行了可視化(分別為分割大型和小型對象)。 對於損失函數的參數,我們使用與作者在各自論文中所設置的參數。

對於上面兩張圖,每張圖底部的可視化分割結果,從左向右,預測結果和GroundTruth的重疊逐漸變小,即產生更多的假陽性(FP)和假陰性(FN)。 理想情況下,Loss函數的值應隨着預測更多的假陽性和假陰性而單調增加。 對於大型對象(左圖),幾乎所有現象都遵循此假設; 但是,對於小型對象(右圖),只有combo loss和focal loss會因較大的誤差而單調增大更多。 換句話說,在分割大/小對象時,基於重合度(重疊度)的損失函數波動很大,這導致優化過程的不穩定。 使用交叉熵作為基礎的損失函數和重疊度作為加權正則函數的損失(combo loss)函數在訓練過程中顯示出更高的穩定性。(combo loss屬於醫學圖像分割問題中提出來的損失函數,所以放到下一篇《基於醫學圖像的自然圖像和醫學圖像分割:損失函數設計(二)》中介紹。)


免責聲明!

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



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