天天看點

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

文章于2017年6月送出到Arxiv,投稿于 Neuroinformatics (2018),Published online: 3 May 2018

作者機關:Department of Computer Science and Engineering,Lehigh University

文章截止2019.3.25的引用量為50

文章代碼見github

這篇文章主要的創新點在于不同于之前的公式化loss,作者設計了一個可以進行學習的loss函數(一個神經網絡的輸出作為loss);并借鑒GAN訓練的思路,采用min-max的對抗學習模式來訓練segment網絡和loss網絡,得到了目前(2017年)state-of-art的分割結果。此外,作者沒有直接用預測圖與ground truth二值圖計算loss,而是分别利用它們對原圖進行掩膜後再計算loss,也是一個很好的idea。

問題的提出

首先,作者提出了一個問題:在醫學圖像分割中,目前(2017年)state-of-art的網絡結構Unet存在的一個問題是無法有效解決圖像中像素類别不平衡的問題。針對這個問題,之前有人提出過用weighted cross-entropy loss來進行優化,但是作者認為這個weghted loss 的問題是 task-specific 以及難以優化的。

作者基于上述問題,并借鑒了GAN的思路,設計了新的分割網絡,并提出了Multi-scale L1 Loss來優化分割網絡。

網絡結構

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

整個網絡分為segmentor和critic兩部分:

1、segmentor部分為普通的unet結構,encoder部分為4層stride=2的卷積,decoder部分為4層upsample,輸出為網絡預測的惡性良性腫瘤二值圖像;

2、critic部分的網絡共用segmentor部分encoder的前三層,分别向critic部分輸入經預測的惡性良性腫瘤二值圖掩膜的原始輸入圖像,以及經真值惡性良性腫瘤二值圖掩膜的原始輸入圖像,最後的loss計算兩個不同輸出之間的MAE值(L1 loss)。其中Multi-scale展現在對critic部分每一個卷積層輸出的特征圖像都計算MAE值,最後的總loss取平均。

3、訓練方式類似于GAN的min-max對抗學習過程。首先,固定S(segmentor),對C(critic)進行一輪訓練;再固定C(critic),對S(segmentor)進行一輪訓練,如此反複。對 critic 的訓練想使loss變大(min),對 segmentor 訓練想使loss變小(max)。

其loss函數如下式所示:

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

訓練的穩定性與收斂性證明

1、首先定義幾個概念:

f : χ → χ ′ f: \chi \rightarrow \chi^{'} f:χ→χ′ 表示從輸入圖像的緊空間到輸出分割圖的緊空間的映射。

g θ : χ → χ ′ g_{\theta}: \chi \rightarrow \chi^{'} gθ​:χ→χ′ 表示上述映射 f f f的估計,即為segmentor

g θ ^ : χ → χ ′ g_{\hat\theta}: \chi \rightarrow \chi^{'} gθ^​:χ→χ′ 表示從輸入圖像的緊空間到真值分割圖的緊空間的映射。即理想最優的segmentor

2、接着證明一個關于Lipschitz 連續性的引理:

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

3、最後證明網絡訓練穩定且收斂:

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

( 詳細證明過程見原文章 )

實驗結果

在Brats13和Brats15資料集上進行了實驗,目标是分割出腦部MRI影像中的3類惡性良性腫瘤,評價名額為DICE分數。

資料集中包含有T1、T1c、T2、Flair四個模态,作者實驗中隻使用T1c、T2、Flair三個模态作為輸入,因為發現這對最後的結果沒有明顯影響,且節約了顯存。

作者探究了不同的segmentor、critic的組合搭配,包括:

1、S1-1C:每個S1-1C網絡分割一類惡性良性腫瘤,需要分别訓練三個獨立的S1-1C;

2、S3-1C:S3-1C中segmentor輸出三個通道,分别對應三類惡性良性腫瘤的預測圖,但critic隻有一個

3、S3-3C:與S3-1C相比,使用3個不同的critic來評價不同類别惡性良性腫瘤的分割結果

4、S3-3C:single scale:與S3-3C相比,loss計算隻使用單一scale。其中S3-3C-s3為隻使用critic的第三層輸出特征圖計算loss,S3-3C-s0為隻使用critic的輸入層計算loss。

比較結果如下,S3-3C最優:

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

與state-of-start比較結果如下:

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

(其中用于比較的U-net結構與segmentor的結構完全一樣,隻是loss由softmax loss變成了提出的Multi-scale L1 Loss,從這兩者DICE的差别可以看出引入的loss對segmentor的提升效果比較明顯)

讨論:該方法與GAN的關聯

首先我們來看一下基礎的GAN的訓練方式

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

再來看本文網絡的訓練方式:

[論文筆記] SegAN: Adversarial Network with Multi-scale L1 Loss for Medical Image Segmentation

可以看出兩者的訓練過程很相似,而且因為本文網絡用于分割任務,使得無論是反傳S還是C,計算的loss都是相同的。作者認為S和C使用相同的loss以及multi-scale的計算形式(有更豐富的梯度資訊反傳)使得整個對抗學習更加穩定。

我比較希望的是,作者再添加一個比較:網絡按傳統方式訓練和按對抗方式訓練。比較好奇這種對抗學習的方式帶來了多大增益。

文章作者公式推導證明了L1 norm可穩定收斂,但沒有對L2 norm進行相關證明。作者嘗試性使用 L2 norm 代替L1 norm,模型不穩定且難以收斂,但并沒有排除L2 norm可能穩定的潛能。

最後,作者提到,目前該模型的缺點:1、對小的分割區域,比起使用pixelwise loss還有些差距;2、對多類别分割任務而言,該模型太大;

繼續閱讀