曹 真,謝紅薇,張 昊,F(xiàn)aizi Mohammad Khalid
(1. 太原理工大學(xué)軟件學(xué)院,山西 太原 030024;2. 太原理工大學(xué)信息與計算機(jī)學(xué)院,山西 太原 030024)
肺癌是當(dāng)下死亡率居高不下的癌癥之一[1]。惡性肺結(jié)節(jié)是肺癌的早期表現(xiàn)形式,因此做好肺結(jié)節(jié)檢測是降低肺癌死亡率的重要手段。肺結(jié)節(jié)良惡性分類診斷是計算機(jī)輔助診斷領(lǐng)域的重要課題[2],對輔助醫(yī)生盡快發(fā)現(xiàn)并診斷病人肺癌有重大的意義?,F(xiàn)有計算機(jī)輔助肺結(jié)節(jié)良惡性分類分為兩個方向,其一是對圖像進(jìn)行量化特征提取,分割,如SIFT[3]、直方圖特征等,之后采用傳統(tǒng)的機(jī)器學(xué)習(xí)分類算法如支持向量機(jī),隨機(jī)森林[4]等方式來進(jìn)行。但是上述方法的圖像特征提取由人工設(shè)計,對圖像特征提取的要求高,同時無法對圖像信息進(jìn)行深層次的分析與利用。另一種方向則是采用神經(jīng)網(wǎng)絡(luò)的方式進(jìn)行肺結(jié)節(jié)良惡性分類,如Hussein 等[5]采用基于AlexNet多層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來對肺結(jié)節(jié)良惡性情況進(jìn)行分類,但是由于技術(shù)限制,網(wǎng)絡(luò)較為簡單,檢測準(zhǔn)確率比較差;Suzuki等[6]提出了rd-CNN模型,利用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)在肺結(jié)節(jié)分類方面取得了良好的效果,但算法對于數(shù)據(jù)集要求較高,實(shí)際應(yīng)用存在困難;Shen[7]等人提出的MC-CNN結(jié)構(gòu),將多個卷積神經(jīng)網(wǎng)絡(luò)模型裁剪不同區(qū)域針對結(jié)點(diǎn)主要信息進(jìn)行學(xué)習(xí),這種方法還是在原有CNN結(jié)構(gòu)上進(jìn)行改進(jìn),模型存在參數(shù)冗余的情況;Nibali 等[8]提出了基于 ResNet卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),利用殘差學(xué)習(xí)的思想加強(qiáng)網(wǎng)絡(luò)信息層間流動對肺結(jié)節(jié)進(jìn)行分類,但是模型參數(shù)過多,訓(xùn)練效率有待提高。
以上的方法在提高分類準(zhǔn)確率與模型性能方面上還有提高的空間。因此,本文提出了一種基于改進(jìn)DenseNet的肺結(jié)節(jié)良惡性分類模型:分組卷積稠密神經(jīng)網(wǎng)絡(luò)(Group Convolution Dense Convolutional Network,GC-DenseNet)。該網(wǎng)絡(luò)在DenseNet網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,在稠密塊中加入了分組卷積操作,利用分組卷積的思想,采用多通道分組進(jìn)行參數(shù)優(yōu)化,減少了網(wǎng)絡(luò)中的參數(shù),避免網(wǎng)絡(luò)訓(xùn)練過程中過擬合的現(xiàn)象,從而提高了對肺結(jié)節(jié)檢測的準(zhǔn)確率與效率。
在肺結(jié)節(jié)檢測中,圖像特征的提取是決定模型檢測準(zhǔn)確率的關(guān)鍵環(huán)節(jié),因此本文在已有的研究基礎(chǔ)上,對圖像特征提取網(wǎng)絡(luò)進(jìn)行研究改進(jìn)。首先對DenseNet網(wǎng)絡(luò)進(jìn)行了闡述,在此基礎(chǔ)上加入了分組卷積的思想,提出了GC-DenseNet肺結(jié)節(jié)檢測算法。
本文提出的基于改進(jìn)稠密神經(jīng)網(wǎng)絡(luò)的肺結(jié)節(jié)檢測模型GC-DenseNet,主要包含三個步驟,(1)肺結(jié)節(jié)良惡性圖像數(shù)據(jù)集預(yù)處理。(2)特征提取,利用GC-DenseNet對肺結(jié)節(jié)CT圖像特征進(jìn)行提取。(3)特征融合分類階段,采用Softmax作為分類器進(jìn)行分了。算法整體流程如圖1所示。
圖1 算法流程圖
稠密神經(jīng)網(wǎng)絡(luò)作為一個深度的復(fù)雜神經(jīng)網(wǎng)絡(luò)有很好的應(yīng)用空間。稠密神經(jīng)網(wǎng)絡(luò)(Densely Connected Convolu-tional Networks,DenseNet)[9]主要包括兩個部分稠密塊(Dense Blocks)與過渡塊(Transition layers)。在一個稠密塊中每一層的輸入包含前面所有層的輸出特征信息,通過過渡塊來將產(chǎn)生特征信息到下一個稠密塊。如圖1所示為一個DenseNet稠密塊示意圖??梢钥闯鲈诿恳粚泳W(wǎng)絡(luò)不僅和下一層相連接,也和之后的所有網(wǎng)絡(luò)層相連接,這樣保證了稠密塊中的每一層都與損失函數(shù)和原始輸入的層數(shù)相連接,網(wǎng)絡(luò)結(jié)構(gòu)隨著稠密塊的增加變得緊密,可以有效的減少梯度消失問題,提高整個網(wǎng)絡(luò)的收斂速度,促進(jìn)了特征的重用。定義如下:
對于單個稠密塊來說假設(shè)稠密塊Bi有L層,第l層包含前面所有層的特征圖輸入,最終輸出的xl為
xl=Hl([x1,x2,…,x(l-1)])
(1)
其中[x1,x2,…,xl]代表l層前的l-1層的特征圖的集合,H(*)表示為作用在特征圖集合上面的操作,總共分為三個部分,如圖2所示為有一個兩層DenseNet稠密塊結(jié)構(gòu)示意圖,分為批量正則化操作(BN)、線性整流函數(shù)激活函數(shù)(Relu)以及一個3×3卷積操作(Conv3×3)。
過渡層在稠密塊Bi完成各層連接之后,通過過渡層在Bi和Bi+1進(jìn)行特征圖傳遞,傳遞到下一個稠密塊Bi+1的輸入為xi+1
xi+1=Ti([x1,x2,…,xi])
(2)
上述公式中T(*)表示過渡層對前一個稠密塊中輸出特征圖的操作結(jié)構(gòu),包含一個批量正則化操作層,一個1×1×1卷積層,一個2×2×2最大池化層組成。通過稠密塊和過渡層的配合使模型參數(shù)得到最大限度的利用,減少過擬合的情況。
圖2 DenseNet稠密塊結(jié)構(gòu)示意圖
在DenseNet中由于每一個稠密塊中每一層網(wǎng)絡(luò)都與前面網(wǎng)絡(luò)相連接,會導(dǎo)致每一個稠密塊的輸出維度過大,導(dǎo)致計算代價過高,同時冗余參數(shù)過多的問題。因此在每一個稠密塊中本文引入分組卷積操作對模型進(jìn)行降維,減少參數(shù)數(shù)量,提高計算效率,更敏捷的對肺結(jié)節(jié)樣本進(jìn)行分類。同時在經(jīng)過分組卷積操作之后可以根據(jù)不同通道自適應(yīng)的對通道進(jìn)行權(quán)重加權(quán),突出肺結(jié)節(jié)特征,降低背景因素的干擾。
2.3.1 網(wǎng)絡(luò)結(jié)構(gòu)
本文在稠密神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上加入了分組卷積的思想來解決肺結(jié)節(jié)檢測問題,提出了GC-DenseNet網(wǎng)絡(luò),網(wǎng)絡(luò)整體結(jié)構(gòu)如圖4 所示,包含7×7的卷積層、3×3池化層、4層稠密層(分組卷積分組數(shù)為3)、3個過渡層、全局池化層以及Softmax分類器。
在稠密塊部分,GC-DenseNet在DenseNet網(wǎng)絡(luò)結(jié)構(gòu)上添加了分組卷積的思想,如圖3所示為GC-DenseNet中稠密塊中分組操作示意圖,將稠密塊中的輸入分組進(jìn)行BN-Relu-Conv操作。在式子(1)中H(*)中對前面每一層的特征圖進(jìn)行操作,在稠密塊中進(jìn)行分組操作對每一層的特征圖分成G組。最終第l層中H(*)內(nèi)輸入變成:
(3)
其中G為分組卷積內(nèi)對分組進(jìn)行的操作,稠密塊中的輸出最終變?yōu)?/p>
xl=Hl(∑~G[x1+…·+xl])
(4)
其中G(*)為分組卷積操作,最終稠密塊的輸出作為下一個稠密塊的輸入經(jīng)過過渡層(Transition layer)傳輸?shù)较乱粋€稠密塊之中。相較于原有模型減少在稠密塊中的特征丟失,在豐富圖像特征的基礎(chǔ)上,消除冗余參數(shù)。
圖3 GC-DenseNet稠密塊分組卷積操作結(jié)構(gòu)示意圖
圖4 GC-DenseNet肺結(jié)節(jié)良惡性分類模型結(jié)構(gòu)示意圖
過渡層由BN層,1×1卷積層,2×2平均池化層組成,經(jīng)過稠密塊的輸出經(jīng)過過渡層進(jìn)行降維。
最后使用全局池化來得到每個特征圖的平均值,最后輸入 softmax中。作為模型的分類器作為肺結(jié)節(jié)良惡性判斷的分類器。Softmax分類器是邏輯回歸在多分類問題上的解決方案,首先通過 Softmax將多個神經(jīng)元的輸出映射到0和1之間,將數(shù)值大小轉(zhuǎn)化為概率。假設(shè)輸一個輸出數(shù)組X,Xi為數(shù)組X的第i個元素,因此Softmax的預(yù)測概率結(jié)果計算方式如式(5)所示
(5)
其中,k表示數(shù)組X的元素個數(shù)。L(x)損失函數(shù)對神經(jīng)網(wǎng)絡(luò)的輸出值進(jìn)行了歸一化,則所有輸出經(jīng)過L(x)損失函數(shù)之后的概率和為1。
2.3.2 GC-DenseNet損失函數(shù)
由于現(xiàn)實(shí)中,肺結(jié)節(jié)正負(fù)樣本不平衡,因此針對這種情況,采取Focal loss[12]作為模型的損失函數(shù)
(6)
其中x是特征值,i與j是類別,Pi=exp(xi)/∑exp(xj)代表每個類別的概率值,γ是調(diào)節(jié)損失函數(shù)變化的參數(shù),
當(dāng)神經(jīng)網(wǎng)絡(luò)對類別預(yù)測概率值很大,相應(yīng)的1-Pi會比較小,損失函數(shù)的損失比較小,網(wǎng)絡(luò)不會著重根據(jù)這樣的樣本進(jìn)行參數(shù)調(diào)整; 而當(dāng)神經(jīng)網(wǎng)絡(luò)對正確類別預(yù)測概率較小時,相應(yīng)的1-Pi會比較大,損失函數(shù)損失會相應(yīng)的變大,神經(jīng)網(wǎng)絡(luò)反向傳播時獲得的偏導(dǎo)因此會提高,網(wǎng)絡(luò)會著重對這樣的樣本進(jìn)行參數(shù)調(diào)整。對于肺結(jié)節(jié)圖像來說存在的一定數(shù)量的難以區(qū)服的肺結(jié)節(jié)。因此,神經(jīng)網(wǎng)絡(luò)可對分類困難的、容易錯分的肺結(jié)節(jié)樣本進(jìn)行區(qū)分,而且還能夠改善數(shù)據(jù)集中數(shù)據(jù)不平衡的問題。
本文采用美國肺部圖像數(shù)據(jù)庫聯(lián)盟LIDC-IDRI數(shù)據(jù)集作為肺結(jié)節(jié)良惡性情況分類實(shí)驗(yàn)數(shù)據(jù)集[11]。數(shù)據(jù)集中共有1018套真實(shí)的肺部結(jié)節(jié)CT圖像,同時還包含由4位經(jīng)驗(yàn)豐富的放射科專家標(biāo)注的肺結(jié)節(jié)位置坐標(biāo)信息。如圖4所示為肺結(jié)節(jié)樣本圖像。
在經(jīng)過專家標(biāo)注后的LIDC-IDRI肺結(jié)節(jié)圖像總共有三個類別標(biāo)簽,良性,惡性以及不確定。同時根據(jù)結(jié)節(jié)惡性評估總共分為五個等級1—5。本文設(shè)定其中等級低于3劃分為良性肺結(jié)節(jié),高于3劃分為惡性肺結(jié)節(jié),等于3劃分為不確定情況。
分析數(shù)據(jù)集發(fā)現(xiàn)在數(shù)據(jù)集中,圖像中肺結(jié)節(jié)大小范圍為2mm~45mm,因此對數(shù)據(jù)集進(jìn)行分割操作,以肺結(jié)節(jié)為中心將CT圖像分割成64mm×64mm的圖像作為模型的數(shù)據(jù)輸入??梢员WC所有輸入圖像可以完整的包含每一個肺結(jié)節(jié)。
為了保證數(shù)據(jù)集肺結(jié)節(jié)圖像分類準(zhǔn)確性,采取三名或三名以上專家標(biāo)注一致的圖像進(jìn)行實(shí)驗(yàn)。得到良性肺結(jié)節(jié)1428張圖像,惡性肺結(jié)節(jié)678張圖像。如圖所示為肺結(jié)節(jié)良惡性樣本圖像。同時為了保證模型的泛化能力對原始數(shù)據(jù)集進(jìn)行增強(qiáng)操作。采取翻轉(zhuǎn)、平移、旋轉(zhuǎn)、增加噪聲等方法擴(kuò)充數(shù)據(jù)集,將擴(kuò)充后的數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集。在訓(xùn)練樣本進(jìn)入模型進(jìn)行訓(xùn)練之前做好歸一化處理。將數(shù)據(jù)的閾值歸一到(0,1)之間。
圖4 肺結(jié)節(jié)樣本結(jié)節(jié)示意圖
本文使用準(zhǔn)確率、敏感性、特異性、AUC值作為評判模型分類效果的指標(biāo)。
定義惡性肺結(jié)節(jié)為正例(positive,P),良性肺結(jié)節(jié)為負(fù)例(negative,N)。其中預(yù)測類別與實(shí)際類別都為惡性的為真正例(True positive,TP);預(yù)測類別與實(shí)際類別都為良性的為真負(fù)例(True negative,TN);預(yù)測類別為正例,實(shí)際類別為負(fù)例的為假正例(False positive);預(yù)測類別為負(fù)例,實(shí)際類別為正例的為假負(fù)例(False negative,F(xiàn)N)。
準(zhǔn)確率(Accuracy)
ACC=(TP+TN)/(TP+FP+TN+FN)
(7)
特異性(Specificity )
SPE=TP/(TP+FN)
(8)
敏感性(Sensitivity)
SEN=TN/(FP+TN)
(9)
AUC值(Area Under Curve): AUC值為ROC曲線下面積,AUC值越高表示模型分類效果越好,反之模型分類效果越差。
影響GC-DenseNet模型性能的參數(shù)有分組卷積組數(shù)G、稠密塊數(shù)量N、稠密塊層數(shù)M以及網(wǎng)絡(luò)增長率K。通過對照肺結(jié)節(jié)良惡性分類實(shí)驗(yàn)為本文提出的模型選取最優(yōu)的參數(shù)進(jìn)行訓(xùn)練。
focal loss損失函數(shù)的固定損失函數(shù)參數(shù)樣本損失權(quán)重α=0.70,樣本的權(quán)重?fù)p失率γ=2。同時為了提高模型泛化能力加入dropout操作,在每一個Conv進(jìn)行,概率設(shè)置為0.3。論文采取十折交叉驗(yàn)證,將肺結(jié)節(jié)數(shù)據(jù)集等分為10個子集,每次試驗(yàn)選取一個子集作為測試集,其余9個子集作為訓(xùn)練集。同時為了保證訓(xùn)練效果會選取合適的參數(shù)優(yōu)化算法。本實(shí)驗(yàn)采取Adamax作為作為參數(shù)優(yōu)化算法。在訓(xùn)練過程中。采用動態(tài)學(xué)習(xí)率的方式,學(xué)習(xí)率初始化設(shè)置為0.2,選取平衡參數(shù)設(shè)置為0.001,動量和權(quán)重衰減設(shè)置為0.9和0.005。batch大小設(shè)置為50。訓(xùn)練中加入L2范數(shù)緩解過擬合問題。
分組卷積組數(shù)的合理選擇可以平衡參數(shù)數(shù)量和模型效果。為了判定在稠密塊中不同的分組卷積組數(shù)G對GC-DenseNet分類效果的影響,選取組數(shù)G分別為2,3,4來進(jìn)行實(shí)驗(yàn),如表1對比結(jié)果所示,可以看出進(jìn)行分組之后參數(shù)量得到顯著的降低,同時經(jīng)過模型對比,可以看出GC-DenseNet準(zhǔn)確率和明顯高于Densenet。權(quán)衡參數(shù)量與模型準(zhǔn)確率之間的關(guān)系,可以看出。在分組數(shù)G=3時,模型分類效果最好。
表1 GC-DenseNet在不同組數(shù)分組卷積下表現(xiàn)
以下參數(shù)選擇都按照GC-DenseNet網(wǎng)絡(luò)參數(shù)G=3作為對照。
稠密塊數(shù)量控制著整個模型的復(fù)雜度,在不同稠密塊數(shù)量下GC-DenseNet網(wǎng)絡(luò)分類表現(xiàn)如表2,稠密塊對照組數(shù)量設(shè)置為3,4,5,可以看出在稠密塊數(shù)量N為4的時候,在參數(shù)量適當(dāng)?shù)那闆r下,模型的AUC值以及準(zhǔn)確率最高。
表2 GC-DenseNet不同稠密塊數(shù)目表現(xiàn)
根據(jù)上表,在稠密塊數(shù)量固定為4,固定前三個稠密塊層數(shù)為2,4,4,第四個稠密塊層數(shù)M在2,4,8選擇進(jìn)行對照實(shí)驗(yàn),通過表2可以看出,在稠密塊層數(shù)設(shè)置為2,4,4,8時GC-DenseNet肺結(jié)節(jié)分類的準(zhǔn)確率與AUC值最大。
表3 GC-DenseNet不同稠密塊層數(shù)參數(shù)對比
網(wǎng)絡(luò)增長率代表著GC-DenseNet稠密塊中特征圖個數(shù),控制每個稠密塊輸出的參數(shù)數(shù)量,避免過擬合,網(wǎng)絡(luò)增長率K設(shè)定對照組為8,12,14,16,如表4所示在網(wǎng)絡(luò)增長率為16時,GC-DenseNet(G=3)模型的準(zhǔn)確率與AUC值最高,模型分類效果最好。
表4 GC-DenseNet不同網(wǎng)絡(luò)增長率參數(shù)對比
因此對于本文提出的GC-DenseNet模型,在分組卷積組數(shù)G=3,稠密塊數(shù)量N=4,稠密塊層數(shù)M={2,4,4,8},網(wǎng)絡(luò)增長率為16時,模型的分類性能和泛化能力最好。
對比經(jīng)過分組卷積后模型的效果。如表5所示為GC-DenseNet與DenseNet對比結(jié)果,稠密塊數(shù)量都為4,稠密塊層數(shù)為2,4,4,4,增長率為16??梢钥闯鯣C-DenseNet在分組卷積數(shù)G為2時分類精度比DenseNet提高了3.9%,在G為3時提高了7.1%??梢宰C明改進(jìn)的DenseNet相比DenseNet,在參數(shù)量顯著減少的情況下,準(zhǔn)確率得到了提高。
表5 DenseNet與GC-DenseNet對比
本文方法與AlexNet、rd-CNN、MC-CNN、ResNet在第3部分中處理過的肺結(jié)節(jié)數(shù)據(jù)集中進(jìn)行良惡性分類實(shí)驗(yàn)并做出對比,最終的性能比較如表5所示,可以看出本文提出的方法在分組卷積層數(shù)為3時準(zhǔn)確率、特異性、敏感性和AUC值都顯著高于其它方法達(dá)到了92.4%??梢钥闯觯煌姆椒▽Ψ谓Y(jié)節(jié)良惡性分類有一定的差異性,GC-DenseNet網(wǎng)絡(luò)分類性能最好。
表6 不同方法肺結(jié)節(jié)分類性能比較
圖5 GC-DenseNet模型分類結(jié)果可視化
圖5為隨機(jī)抽取部分仿真結(jié)果圖像,可以看出,模型可以保持在90%以上的準(zhǔn)確率對肺結(jié)節(jié)良惡性進(jìn)行分類檢測。可以直觀的反應(yīng)出GC-DenseNet模型具有優(yōu)秀的分類性能。
如圖6所示為在對比方法下模擬肺結(jié)節(jié)良惡性分類性能柱狀圖,可以看出,在本文提出的算法在所有指標(biāo)都高于其它方法,同時根據(jù)圖示可以證明根據(jù)4.2節(jié)設(shè)置在分組卷積分組數(shù)為3時,整個模型的分類性能最好。
圖6 肺結(jié)節(jié)良惡性分類模型性能柱狀圖
為了提高肺結(jié)節(jié)檢測準(zhǔn)確率和模型性能,本文提岀了一種基于改進(jìn)DenseNet網(wǎng)絡(luò)的肺結(jié)節(jié)檢測方法。通過分組卷積方法對DenseNet網(wǎng)絡(luò)進(jìn)行改進(jìn),改進(jìn)后的模型減少了網(wǎng)絡(luò)冗余參數(shù)數(shù)量,減緩梯度消失問題,增加了網(wǎng)絡(luò)的深度,提高肺結(jié)節(jié)分類準(zhǔn)確率。為了證明方法的有效性,與現(xiàn)有的利用神經(jīng)網(wǎng)絡(luò)肺結(jié)節(jié)檢測模型進(jìn)行了對比實(shí)驗(yàn)。實(shí)驗(yàn)證明,本文提出的基于改進(jìn)的DenseNet網(wǎng)絡(luò)相比已有的模型有效的減少了模型參數(shù),提高了肺結(jié)節(jié)檢測準(zhǔn)確率,準(zhǔn)確率達(dá)到了92.4%。本文提出的研究方法,可以作為輔助工具為臨床醫(yī)學(xué)對肺結(jié)節(jié)檢測做出有效幫助。