圖像分割(二)分割問題常用的損失函數

(一)醫學圖像分割常用的損失函數

本文主要介紹醫學圖像中常用的損失函數,包括cross entropy, generalized dice coefiicients, focal loss 等。       

一、cross entropy 交叉熵

       圖像分割中最常用的損失函數是逐像素交叉熵損失。該損失函數分別檢查每個像素,將類預測(深度方向的像素向量)與我們的熱編碼目標向量進行比較。

cross entropy

      由此可見,交叉熵的損失函數單獨評估每個像素矢量的類預測,然後對所有像素求平均值,所以我們可以認爲圖像中的像素被平等的學習了。但是,醫學圖像中常出現類別不均衡(class imbalance)的問題,由此導致訓練會被像素較多的類主導,對於較小的物體很難學習到其特徵,從而降低網絡的有效性。

      有較多的文章對其進行了研究,包括 Long et al. 的 FCN 在每個通道加權該損失,從而抵消數據集中存在的類別不均的問題。同時,Ronneberger et al.提出的 U-Net 提出了新的逐像素損失的加權方案,使其在分割對象的邊界處具有更高的權重。該損失加權方案以不連續的方式幫助他們的 U-Net 模型細分生物醫學圖像中的細胞,使得可以在二元分割圖中容易地識別單個細胞。

二、dice coefficient 

    dice coefficient 源於二分類,本質上是衡量兩個樣本的重疊部分。該指標範圍從0到1,其中“1”表示完整的重疊。 其計算公式爲:

                                                                         Dice = \frac{2\left | A\cap B \right |}{\left | A \right |+\left | B \right | },

    其中 \left | A\cap B \right | 表示集合A、B 之間的共同元素,\left | A \right |  表示 A 中的元素的個數,B也用相似的表示方法。

    爲了計算預測的分割圖的 dice coefficient,將 \left | A\cap B \right |  近似爲預測圖和label之間的點乘,並將結果函數中的元素相加。

      intersection

      因爲我們的目標是二進制的,因而可以有效地將預測中未在 target mask 中“激活”的所有像素清零。對於剩餘的像素,主要是在懲罰低置信度預測; 該表達式的較高值(在分子中)會導致更好的Dice係數。

      爲了量化計算 \left | A \right | 和 \left | B \right | ,部分研究人員直接使用簡單的相加, 也有一些做法是取平方求和。

cardinality

       其中,在式子中 Dice係數的分子中有2,因爲分母“重複計算” 了兩組之間的共同元素。爲了形成可以最小化的損失函數,我們將簡單地使用1-Dice。這種損失函數被稱爲 soft dice loss,因爲我們直接使用預測概率而不是使用閾值或將它們轉換爲二進制mask。      

      關於神經網絡輸出,分子涉及到我們的預測和 target mask 之間的共同激活,而分母將每個mask中的激活量分開考慮。實際上起到了利用 target mask 的大小來歸一化損失的效果,使得 soft dice 損失不會難以從圖像中具有較小空間表示的類中學習。

      soft dice loss 將每個類別分開考慮,然後平均得到最後結果。

              soft dice

    值得注意的是,dice loss比較適用於樣本極度不均的情況,一般的情況下,使用 dice loss 會對反向傳播造成不利的影響,容易使訓練變得不穩定。

三、focal loss

    該損失函數在何凱明 1-stage 目標檢測框架中被提出。專爲解決 class imbalance 問題。首先定性感受一下 target problem(基於目標檢測背景):

    在目標檢測領域,常用的損失函數爲CE(cross entropy)。但會帶來一些問題:

                                                                  CE(p_{t})=-log(p_{t})

                                                          其中,   p_{t}=\left\{\begin{matrix} p & if \,y=1 \\ 1-p& otherwise \end{matrix}\right.

    (1)首先,在目標檢測中,一般圖像的目標所佔的比例會遠遠小於背景,在傳統的樣本分類中,被分爲 positive 和 negative 兩類。由於 negative 樣本過多,會造成它的loss太大,容易把 positive 的 loss 遮蓋從而不利於整個目標函數的收斂,針對這個問題,用平衡的CE (balanced cross entropy)改進傳統CE。

                                                                CE(p_{t}) = -\alpha _{t}log(p_{t})

   \alpha爲權重係數,當爲正樣本時,  \alpha \in \left [ 0,\, 1 \right ] ,爲負樣本時,1-\alpha

  (2)實際上,從圖可以看出大多negative 樣本位於背景區,而極少的 negative 位於前景和背景的過渡區。位於背景區的樣本分類相對容易,成爲easy negative, 訓練時對應的score很大,loss 相對很小,在計算反向梯度時,造成easy negative example對參數收斂作用有限。從而導致hard negative 樣本很難得到更新,效果不佳。

          究其原因,是由於常用的損失函數,傳統CE(cross entropy)包括平衡化的 CE 均只有 positive/ negative 的區分,未考慮到 easy/ hard 的樣本區分。根據文章的分類,有以下幾類樣本:hard positive(IOU>0.5), easy positive, hard negative(IOU<0.4) 以及 easy negative。 

      所以提出了focal loss 加大 hard negative的 loss值,使之更好的訓練。具體公式如下:

                                                        FL(p_{t})=-\alpha _{t}(1-p_{t})^{\gamma }log(p_{t})

      主要就是增加了 (1-p_{t})^{\gamma } 這個調節因子。調節因子有兩方面作用:1)當網絡錯分類的時候,p_{t} 很小,(1-p_{t}) \rightarrow 1,公式基本不變,但當 p_{t} 很大,(1-p_{t}) \rightarrow 0,大大降低了 easy example 的損失權重。2)\gamma\in [0,5],稱爲 focusing parameter, \gamma增強了調節因子的作用。

       整體上看,調節因子降低了 easy example 損失的貢獻,調節了簡單樣本權重降低的速率,並拓寬了樣本接收低損失的範圍。對於困難樣本的學習更有利。值得注意的是, \alpha 和調節因子需要配合使用,具體實現時,可以參考論文中的實驗進一步探究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章