張 麗 強 彥 張小龍 王三虎
1(太原理工大學計算機科學與技術學院 山西 太原 030024)2(賓夕法尼亞州立大學信息科學與技術學院 賓西法尼亞州 尤尼弗西蒂帕克 16802)3(呂梁學院計算機科學與技術系 山西 呂梁 033000)
肺癌已成為全世界發病率與致死率最高的惡性腫瘤之一[1]。肺癌死亡率逐年增高的最主要原因是其早期的病變特征不易被發現,一經確診,治愈率很低。計算機輔助診斷(CAD)系統[2]能通過幫助放射科醫師做出正確的分類決策并降低手動讀取掃描所產生的成本,顯著提高基于計算機斷層掃描(CT)的篩查程序的可行性。本文應用基于同步深度監督的多尺度肺結節分類方法顯著提高了CAD系統決策的準確率。
計算機輔助診斷方法在肺癌早期篩查中發揮著重要作用。Li等[3]提出了一種改進的隨機森林(RF)算法用于肺結節良惡性分類,在LIDC數據集上達到了0.90的準確率,這是傳統的計算機輔助診斷方法。近年來,深度學習已經成功應用于語音識別、圖像識別[4-6]等領域,在醫學圖像處理中深度學習技術也得到廣泛的應用[7-8],其中卷積神經網絡(CNN)在肺部醫學圖像處理中取得一定的研究成果,使用CNN的一個顯著優點是它們不需要從圖像中手工提取任何類型的特征,而是直接從數據中學習辨別特征。Shen等[9]使用2層卷積神經網絡在不同尺度的多個結節上成功地對惡性肺結節進行分類。Ciompi等[10]使用現有的預訓練CNN(稱為OverFeat[11],具有8個加權層)對周圍結節進行分類。Setio等[12]在不同的結節視圖(軸向、冠狀、矢狀和六個對角線平面)上使用9個獨立的CNN(每個有三個卷積層)進行分類,以確定結節的存在。通過將CNN輸出與完全連接的層融合來獲得最終的分類結果。
盡管目前的CNN模型在肺部醫學圖像處理中取得一定的研究成果,但針對肺結節占肺部CT影像面積小且結節大小不一的特點,選擇適當的網絡架構提取特定輸入數據特征仍是一個巨大的挑戰。AlexNet[13]由Hinton提出并在2012年ImageNet競賽中成功使用,與其他結構復雜的深度CNN架構相比(例如GoogLeNet、VGG等),AlexNet是一種結構簡單的CNN架構,易于訓練和優化,但它并不是針對醫學圖像的網絡模型。針對肺部結節的特征,本文改進了典型的AlexNet模型以適應肺部醫學圖像的分析與處理。但是改進的AlexNet模型并不能直接處理肺結節的多尺度現象,并且容易產生梯度消失、過擬合等現象。Chen等[14]提出了空間金字塔模型(PSR)來捕獲局部特征的絕對和相對空間關系,在遙感圖像分類中表現出優異的性能。He等[15]提出了空間金字塔池化策略,用于物體檢測和分類任務。Lee等[16]提出深度監督網絡,通過對隱藏層使用監督功能,在MNIST、CIFAR-10、CIFAR-100及SVHN等數據集中均取得良好的分類效果。鑒于此,本文提出了基于同步深度監督的多尺度肺結節分類方法。
本文充分考慮肺結節的圖像特征,改進了AlexNet架構,減小了卷積核尺寸,舍棄了部分池化層,使其能夠作為一種簡單有效的醫學圖像分類模型。在該網絡模型中為每個隱藏層引入“伴隨”目標函數,為隱藏層提供集成的同步監督,以減少分類錯誤并提高隱藏層學習過程的直接性和透明度。為了處理多尺度肺結節現象,本文將空間金字塔池化作為一種有效的多尺度池化操作添加到網絡架構中,以允許該模型能夠處理多尺度信息并有效提取對肺結節分類有強影響的特征。整體模型架構如圖1所示。

圖1 整體模型架構圖
AlexNet主要由卷積層、池化層、整流線性單元(ReLU)層和完全連接層組成。AlexNet較傳統神經網絡的優勢是因為其使用了ReLu激活函數和DropOut正則化技術。如式(1)所示,ReLU具有半波整流器功能,其可以顯著加速訓練階段并防止過度擬合。AlexNet通過引入多種權值組合的DropOut方法控制過擬合,在訓練過程中,通過將多個輸入神經元或隱藏神經元隨機設置為零來減少神經元間復雜的互適應。
f(x)=max(x,0)
(1)
傳統的AlexNet卷積神經網絡模型主要用于分辨率較高、圖片尺寸較大的圖片識別。受限于肺部ROI圖像的大小,原AlexNet模型的卷積核過大,不適合處理肺部醫學影像數據,因此要針對本文中數據源的特點,對AlexNet模型進行針對性改進。改進后的AlexNet模型對比如表1所示。

表1 AlexNet模型改進前后對比

續表1
改進的AlexNet架構是一種有效的端到端肺部醫學影像數據分類框架,但當前框架存在三個明顯的問題。第一個問題是在整個分類過程中,中間層的不透明性使得訓練過程難以觀察。第二個問題涉及學習特征的魯棒性和判別能力,特別是在網絡的后一層,會嚴重影響性能。第三個問題是在梯度“爆炸”和“消失”的情況下,訓練效果差。為了更好地處理當前改進的AlexNet架構中存在的問題,將同步深度監督策略納入到改進的AlexNet架構中。這種方法可以同時最小化分類錯誤并提高隱藏層學習過程的直接性和透明度。SDS的核心思想旨在為隱藏層提供集成的同步監督,這與僅在輸出層提供監督并將該監督傳播回早期層的標準方法形成對比。SDS為每個隱藏層引入“伴隨”目標函數,這些伴隨目標函數可以被視為學習過程中的附加約束。圖2表示SDS的執行過程。
為了更好地理解融合SDS策略的AlexNet架構,下面給出了一個例子。假設輸入樣值Xi∈Rn表示原始輸入數據,yi∈{1,2,…,K}表示樣本Xi所對應的標簽。假設改進的AlexNet架構中總共有M個層,其權重組合是W=(W(1),W(2),…,W(M))。改進的AlexNet架構的每個隱藏層中的分類器,相應的權重是w=(W(1),W(2),…,W(M-1))。在改進的AlexNet架構中,權重參數和濾波器之間的關系分別為:
Z(m)=f(Q(m)),Z(0)=X
(2)
Q(m)=W(m)×Z(m-1)
(3)
式中:m指網絡中的特定層;W(M),m=1,2,…,M是要學習的網絡權重;Z(m-1)為第m-1層的特征圖,Q(m)為先前特征圖上的卷積響應;f()為Q上的池化函數。本文網絡架構的總目標函數如下式:
F(W)=P(W)+Q(W)
(4)
式中:P(W)和Q(W)分別為輸出目標和總伴隨目標,其定義如下:
(5)
(6)
式中:M表示網絡總層數,w(out)是指輸出層的分類器權重。改進的AlexNet架構的最終組合目標函數定義如下:
(7)

式(7)中輸出層L(W,w(out))的總損失為:
(8)
在式(7)中,作為隱藏層的伴隨損失l(W,w(m))為:
(9)
式(8)和式(9)都是預測誤差的鉸鏈損失,可以看出,改進的AlexNet架構不僅學習卷積核W*,而且在每個隱藏層中強制執行約束,以直接進行良好的標簽預測,并強烈推動每個單獨的層具有辨別力和敏感性。注意,對于每個l(W,w(m)),w(m)直接取決于Z(m),其取決于W1,W2,…,Wm直到第m層。在訓練過程中,常把式(7)中的第二項設置為零。這樣,在輸出層產生良好分類結果的總體目標不會改變,并且伴隨目標只是作為代理或正規化。為了實現該目標,通常在式(6)的第二項中設置閾值r。該伴隨函數的工作機制是當隱藏層的(伴隨目標)總值達到或低于r時,整體功能和伴隨目標函數的鉸鏈損失消失,并不在學習過程中發揮作用。平衡參數αm為輸出目標和伴隨目標間的平衡參數。
總而言之,通過改進每個隱藏層中的分類器,同步深度監督(SDS)將隱藏層的特征質量同步執行優化,舍棄弱影響冗余特征,有效解決了梯度消失現象,減少過擬合,具有較好的分類性能。
本文使用肺部影像公開數據集LIDC-IDRI[17],其中標注的肺結節大小范圍為3~30 mm,像素級別的范圍為6×6~60×60像素,為保證大規模數據下批量訓練及數據的原始性,將圖片調整為32×32、48×48、64×64像素3個尺度。如圖3所示。

(1) 三個尺度的良性結節 (2) 三個尺度的惡性結節圖3 多尺度ROI圖
常用的CNN都需要輸入的圖像尺寸是固定的,這是由CNN的結構決定的。
在以往的肺結節分類任務中,往往采用特定大小ROI作為網絡輸入,但這種做法降低了分類結果的準確度。也有采用多尺度ROI作為輸入,但需要設計多個網絡模型,這增加了訓練的復雜度。
本文使用了空間金字塔池化策略,用來處理多尺度卷積特征圖以生成固定長度的池化表示。即在最后一個卷積層conv4后加入MSPP層。MSPP層對特征進行池化,并產生固定長度的輸出,將此輸出作為全連接層的輸入。空間金字塔的輸出是一個k×M維向量,M代表金字塔塊的數量,k代表最后一層卷積層的卷積核的數量。這個固定維度的向量就是全連接層的輸入。本文使用四個尺度的圖像輸入到同一個深度網絡,當輸入圖像處于不同的空間尺度時,帶有相同大小卷積核的網絡就可以在不同的尺度上抽取特征,最后生成固定維度的向量。MSPP網絡結構如圖4所示。

圖4 MSPP網絡結構圖
如圖4所示,將最后一層卷積后產生的特征圖輸入空間金字塔池化層中,該金字塔層由4層組成,都使用全局池化進行特征映射。第1層為1×1,將特征映射的整個區域r11匯集到R1中。第2層為2×2,將特征映射區域r21、r22、r23、r24匯集到R2中。同理,將第3層和第4層將特征映射區域分別匯集到R3、R4中。因此,每個特征圖通過空間金字塔池合并為30個單元。由于前一層具有64個特征圖,因此空間金字塔池化層的輸出被連接以形成30×64維向量,然后,將該矢量送入全連接層以進行后續的分類。
將MSPP策略納入改進的AlexNet-SDS架構,可以使網絡模型適用于多尺度圖像同時輸入到同一個網絡中,它能在輸入尺寸任意的情況下產生固定大小的輸出,并將卷積特征匯集在任意比例區域中以生成固定長度表示。
本實驗基于來自LIDC-IDRI數據庫,包含1 010組醫療記錄和1 018套胸部CT圖像,共有244 527個胸部CT圖像,每個圖像由4位經驗豐富的放射科醫師進行標記。每組數據中的標記信息以XML格式存儲,包含輪廓坐標和肺結節的惡性程度。放射科醫師將肺結節的惡性程度M量化為1、2、3、4、5五個等級,分別表示極不可能、適度不可能、不確定、適度懷疑、高度懷疑。
為了提高準確性,選取至少有三個醫師同時標注惡性度的結節,并取其平均值。去除了平均值為3的結節,若平均值低于3,則認為該結節屬于良性結節;若平均值高于3,則認為該結節屬于惡性結節。共得到1 265個結節,其中良性結節779,惡性結節486。為了增強數據集,將預處理后的ROI圖像分別進行90°、180°、270°旋轉及水平和垂直翻轉。使用10折交叉驗證,經過大量實驗調整,將初始學習率設置為0.3,并使用動態學習率;動量和權重衰減分別設置為0.9和0.000 5。平衡參數αm設置為0.001。在訓練期間增加了L2范數權重衰減緩解過擬合。在實驗中分別使用兩種分類器,具有徑向基函數核的SVM分類器和RF分類器。
在肺結節分類實驗中,通常使用準確性、靈敏度、特異度、ROC曲線等作為評價指標[18]。評估分類指數的公式如表2所示,其中:TP代表真陽性,TN代表真陰性,FP代表假陽性,FN代表假陰性。ROC曲線指受試者工作特征曲線,是反映敏感性和特異性連續變量的綜合指標,曲線下面積越大,診斷準確性越高。最后實驗結果是在重復運行基礎上由平均值和標準差的形式給出。

表2 評價指標計算公式
為了評估本文所提出的方法的性能,與最近發表的論文中使用基于LIDC數據集的肺結節傳統分類方法及深度學習分類方法進行比較,結果列于表3和圖5中。

表3 基于LIDC數據集的肺結節分類不同算法比較

圖5 不同模型的ROC曲線圖
從表3可以看出,本文提出的方法精度為93.68,與其他方法相比有更好的肺結節分類性能,同時也說明改進的AlexNet網絡融合SDS策略能有效提高肺結節分類性能,其精確度能達到92.07。本文提出的方法與傳統的分類方法(Improved-RF)相比,精確度提升了8.82;與其他深度網絡(Setio-CNN,Overfeat)相比,精確度分別提升了7.22、11.65。
從圖5中可以看出,不同診斷方法的結果存在一定的差異性,本文方法的ROC曲線較其他方法更靠近坐標左上方,AUC值最大,在肺結節良惡性診斷上具有明顯的優勢。
不同分類器同步監督結果比較如圖6所示。

圖6 不同分類器性能比較
可以看出,兩種分類器均能達到較好的效果,但RF分類器的分類精度更高。兩個分類器的整體性能表明加入同步監督策略可以使分類結果更加準確。這歸功于分層同步監督策略選擇強影響特征,消除了許多弱影響冗余特征。
為了研究MSPP層數對本文方法的影響,保持其他參數不變。設置MSPP層的數量分別為1層、2層、3層和4層。當MSPP層為1層時,設置局部空間塊為1×1,即得到1個塊。當MSPP層為2層時,第1層塊數保持不變,設置第2層局部空間塊為2×2,即第2層得到4個塊。當MSPP層為3層時,第1~2層塊數保持不變,設置第3層局部空間塊為3×3,即得到9個塊。當MSPP層為4層時,第1~3層塊數保持不變,設置第4層局部空間塊為4×4,即得到16個塊,結果如圖7所示。

圖7 多層次池化結果比較
可以看出,隨著訓練次數的增加,當金字塔層數為4層時分類精確度最高;金字塔為3層時的精度與4層很接近;但是金字塔層數為1時,精度明顯降低,最高只有89.61%。由此證明,金字塔層數對提高模型精確度有著至關重要的影響。
本文提出了一種基于同步深度監督的多尺度肺結節分類方法,該方法改進了經典的AlexNet模型使其更適用于醫學圖像分類,融合了同步深度監督策略,解決了梯度消失現象,減少了過擬合;應用SPP策略,解決了不同尺度圖像不能輸入同一模型進行訓練的難題,實現了多尺度肺結節ROI圖像端到端的分類診斷,提高了肺結節分類精度。通過實驗證明,本文方法優于當前幾種比較流行的深度分類方法以及傳統分類算法。在下一步工作中,嘗試在3D-CNN模型中融入同步深度監督策略,從而實現更精確的肺結節惡性度分類。