張曉倩,羅 建,楊 梅,金芊芊,朱 熹
(西華師范大學 電子信息工程學院,四川 南充 637009)
腦腫瘤,也指顱內腫瘤,包括垂體瘤、腦膜瘤和膠質瘤,是常見且致命的腫瘤之一。如果能盡快確定腦腫瘤的類型,及時確定治療方案,那么腦腫瘤患者的生存率將明顯提高。通常,手工篩選腫瘤圖像來預測腦腫瘤的類別非常耗時,而利用腦腫瘤輔助診斷系統,將深度學習與醫學圖像相結合,可以在一定程度上幫助醫生解決這一問題。腦腫瘤輔助診斷系統是在大量腦腫瘤圖像數據的基礎上,結合以往的診斷結果、醫生的個人經驗以及患者的既往病史,幫助醫生快速得出診斷結論。
近年來,卷積神經網絡已經成為圖像處理中最流行的方法。HE等[1]提出了一種殘差學習框架來訓練深度網絡,并在ILSVRC2015圖像分類任務中取得了最好的效果。它摒棄了以往簡單疊加卷積層的方法,在網絡上增加跳躍連接,并將淺層特征信息帶到網絡的深層,很大程度上解決了網絡梯度消失或梯度爆炸的問題,但殘差網絡沒有對關鍵信息進行聚焦。Abiwinanda等[2]提出了一種不同的CNN結構,通過在卷積層、最大池化層和flatten層的每一層后都添加全連接層,可對腦膜瘤、膠質瘤和垂體瘤實現準確分類,但是CNN結構對信息的提取有限,并且當網絡層數太深時,采用反向傳播調整內部參數會使靠近輸入層的參數改動較慢。Kumar等[3]提出了一種將ResNet50與全局平均池化相結合的方式來解決在深度網絡中存在的梯度消失和過擬合的問題,該方法的平均準確率高達97.48%,能對腦膜瘤、膠質瘤和垂體瘤進行高質量分類,雖然此方法利用全局平均池化避免過擬合,但是沒有關注目標信息,存在一定的信息丟失情況。夏景明等[4]提出MDM-ResNet網絡框架,利用雙通道池化層、深度殘差結構、多尺寸卷積核對腦膜瘤、膠質瘤和垂體瘤進行有效分類,但沒有對有效信息給予關注,使得網絡對信息學習的不夠充分。
由于深度網絡容易出現信息丟失,因此可以利用殘差結構給網絡深層帶來淺層特征來解決這一問題。針對上述情況,本文將從以下幾個方面展開研究:(1)利用Swish激活函數同時代替批歸一化和特征融合后的ReLU激活函數,與ReLU激活函數相比,Swish并沒有屏蔽過多的特征,這可以使模型更好地學習有效特征,對腦腫瘤圖像進行有效分類;(2)在第一層卷積、批歸一化和Swish激活函數后插入ECA注意力,提取通道特征信息,彌補深層網絡存在信息丟失的情況,能使得模型更好地學習到有效信息;(3)在第二層卷積、批歸一化和Swish激活函數后插入BAM注意力,用Swish激活函數代替ReLU激活函數,在通道和空間上并發的提取特征信息,使特征信息得到充分利用;(4)SE注意力模塊中加入全局最大池化,將全局平均池化和全局最大池化相結合,使提取的高維信息互補,更有利于特征提取。
本文基于改進的SE-Net網絡,利用多注意力機制提取特征信息,在空間和通道上獲取有效特征,在分類上取得了較好的效果。
SE-Net(Squeeze-and-Excitation Networks)是由自動駕駛公司Momenta的高級工程師胡杰提出的一種基于加權特征圖思想的網絡結構[5]。它可以在Inception結構或殘差網絡ResNet中嵌入SE注意力模塊。SE注意力模塊主要對特征通道間的相關性進行建模,促使網絡能對有效特征聚焦,能更好的提取目標特征,以提高模型的表達能力。簡而言之,是通過對重要特征信息進行強化來提升準確率。
本文基于SE-Net的思想,在殘差網絡ResNet中嵌入SE注意力模塊。本文的網絡模型如圖1所示:首先,在批歸一化后,用Swish激活函數代替ReLU激活函數。與ReLU激活函數相比,Swish并沒有屏蔽過多的特征,這可以使模型更好地學習有效特征。其次,在特征融合后用Swish激活函數代替ReLU激活函數,Swish激活函數處處可導且連續光滑,與ReLU激活函數相比,可以顯著提高模型的表達能力。此外,在全局最大池化后的第一個卷積層(包括卷積、批歸一化和Swish激活函數)后,增加ECA注意力模塊,將其在通道特征中聚焦,以最大限度地提取通道信息;然后,在第二層卷積層之后加入改進的BAM注意力機制,讓其在空間和通道2個方向并發進行特征提取,使目標特征發揮極致作用。通過試驗發現,通道特征更有利于信息提取,可以提高模型的準確率。因此,采用改進的SE注意機制可獲取更多通道信息,提高模型的表達能力。

在輸入特征圖后,模型將執行3個步驟。首先,通過步驟1對特征圖進行數據預處理,包括卷積、批歸一化、Swish激活函數和全局最大池化;然后,對處理后的圖像分別進行保留操作和步驟2操作,包括4個子步驟,分別為卷積和批歸一化以及Swish激活函數、ECA注意力模塊、BAM注意力模型和SE注意力模塊,將步驟2循環處理多次。若保留數據和輸出數據的尺寸不相同,則對保留數據再添加一次卷積操作;若兩者數據尺寸相同,則直接進行融合處理。最后通過步驟3進行全局平均池化和全連接層后輸出。
深度網絡中激活函數的選擇對模型的性能有顯著影響。校正線性單元(ReLU)是應用最廣泛的激活函數,Swish激活函數在深度網絡中往往表現優秀。Swish激活函數又稱自門控激活函數,是谷歌在2017年提出的[6]。經驗證,在同等情況下,Swish激活函數比ReLU激活函數更能提高模型的精準度。
Swish激活函數的表達式如式(1)所示:
Swish(X)=X·sigmoid(βX),
(1)
式中:β可以是常數也可以是通過訓練得到的參數。當β→∞,Swish激活函數即為ReLU激活函數,當β=0時,Swish激活函數則變成線性函數。因此,Swish激活函數則可看作是兩者之間的平滑激活函數[7]。當X>0時,不存在梯度消失的情況,當X<0時,神經元不會像ReLU激活函數那樣死亡。同時與ReLU激活函數相比,Swish激活函數的導數不是一成不變的,而且Swish激活函數處處可導,連續光滑。
1.3.1 雙通道池化層
平均池化更突出背景信息,用于將圖片中激活的平均值作為最終輸出。最大池化更突出紋理信息,用于將圖片中激活的最大值作為最終輸出[8]。本文在SE注意力模塊中將平均池化與最大池化相結合,采用雙通道池化層的方式,主要步驟如下:將X分別傳入最大池化和平均池化兩個路徑后使用Add函數將兩部分的結果合并,最后使用Sigmoid激活函數來捕捉非線性因素,然后輸出X′進入下一步操作。雙通道池化層結構如圖2所示。

1.3.2 改進的SE注意力模塊
圖3(a)為原始的SE注意力模塊[9],主要由壓縮Squeeze和激勵Excitation組成。改進后的SE注意力模塊如圖3(b)所示,主要步驟如下:首先是Squeeze操作,先將W×H×C的特征圖通過雙通道池化層,可得到1×1×C的全局信息描述符。再經過Excitation操作,由兩次全連接層來預測通道間的重要性。先通過第一個全連接層來縮放,輸入與輸出分別為1×1×C和1×1×C/r,其中r為縮放參數;再通過第二個全連接來還原,輸入與輸出分別為1×1×C/r和1×1×C。之后利用Sigmoid輸出特征圖中各層權值的向量。最后是Scale操作,將輸出的權值向量與特征圖相乘,獲得有權值信息的特征圖。這一步驟聚焦有效特征,避免無效特征,更好地提取目標特征,在一定程度上提高模型的精準度。

ECA注意力模型是Wang等[10]在2020年提出的一種高效的通道注意力,它主要是通過獲取通道間的關系來提高目標特征的表達能力[11]。相對于傳統的注意力方法,它可能解決降維對模型預測帶來的副作用。本文采用ECA注意力模塊增強卷積層后通道間的相關性,便于有效特征的提取。
圖4是ECA注意力模塊的結構,在同等條件下,特征圖X先通過全局平均池化,再利用權重共享的一維卷積進行學習。在此期間將考慮通道間的相關性來獲取跨通道交互,可以明顯降低模型的復雜度。隨后將通過Sigmoid激活函數。最后將激活函數輸出的信息與特征圖X相乘后輸出X′。公式(2)是ECA自適應選擇一維卷積核大小的方法,

(2)
式中:k代表一維卷積核大小,γ=2,b=1,C為通道數,通過此公式,可以確定局部跨通道交互的覆蓋范圍,即確定k的取值。
BAM主要由通道和空間注意力模塊組成,是2018年提出的注意力模塊[12]。它可以與任何前饋卷積神經網絡集成,提取有效特征信息。BAM注意力模塊的結構如圖5所示。特征圖F的尺寸是C×H×W,依次表示為特征圖的通道數、高度和寬度。經過BAM注意力模塊后,輸出特征圖M(F),尺寸大小為C×H×W,最終輸出的特征圖F′為

F′=F?M(F),
(3)
式中:?指2個向量對應相乘,M(F)指通道與空間注意力模塊融合后的特征圖,M(F)為
M(F)=σ(MC(F)+MS(F)),
(4)
式中:σ表示Sigmoid激活函數,MC(F)表示通道注意力后的輸出特征,MS(F)表示空間注意力后的輸出特征[13]。為了更有效地提取特征,本文用Swish激活函數代替通道和空間注意力中的ReLU激活函數,在同等條件下可以提高模型的準確率。
通道注意力模塊的主要步驟如下:首先對特征圖進行全局平均池化,再通過MLP方法獲得通道間的相關性,最后通過全連接層輸出特征圖。
空間注意力模塊的主要步驟如下:首先將特征圖進行卷積,卷積核大小為1×1,然后分別進行空洞卷積(卷積核大小為3×3)和普通卷積(卷積核大小為1×1),最后輸出特征圖。
通過式(3)和(4)輸出最后的注意力特征圖,對重要的特征信息分配更多的注意力,提高模型的精確率。
本文所使用的數據集來自于Kaggle的公開腦腫瘤數據集[14],通常用于分類。此數據集包含4類腫瘤圖像:膠質瘤、腦膜瘤、垂體瘤和無腫瘤。數據集一共有來自7 678張腦圖像,其中膠質瘤1 796例,腦膜瘤1 784例,垂體瘤1 936例以及正常腦圖像2 162例。在本次腫瘤分類任務中,由于數據集圖像統一并且分布均衡,對訓練數據集進行隨機裁剪圖像大小為224、隨機水平翻轉以及歸一化操作;對于驗證和測試數據集,將原圖片中短邊尺寸統一縮放到256、裁剪圖像大小為224和歸一化操作。將數據集劃分為訓練集(5 712張)、驗證集(655張)、測試集(1 311張)。在訓練集中包含膠質瘤1 321例、腦膜瘤1 339例、垂體瘤1 457例以及無腫瘤1 595例;在驗證集中包含膠質瘤175例、腦膜瘤139例、垂體瘤179例以及無腫瘤162例;在測試集中包含膠質瘤300例、腦膜瘤306例、垂體瘤300例以及無腫瘤405例。
本文試驗的硬件環境:CPU為Intel(R) Xeon(R) Gold 6148 CPU @ 2.40 GHz,1個CPU,內存為100 G,GPU為Tesla V100,顯卡16 G。軟件環境:python 3.7,PaddlePaddle 2.2.2深度學習框架。
在訓練模型的過程中,學習率采用Piecewise策略,初始學習率設置為0.1,最終學習率為0.01,迭代批量設置為64,訓練次數Iteration為4 500。用Momentum優化器進行優化,動量設置為0.9。
圖像分類的常用評價指標包括準確率、精確率、召回率和F1值,準確率指所有樣本中被模型預測為正確的比例;精確率則是指正確被模型預測為正的,占模型全部預測為正的比例;召回率可以理解為正確被模型預測為正的,占樣本中所有實際為正的比例;F1值被定義為精確率和召回率的調和平均數。F1值受精確率和召回率的影響,精確率越高,召回率越高,F1值越高。公式如下:

(5)

(6)

(7)
(8)
式中:TP指預測為正確(實際為正確)的正樣本個數,FP指預測為正確(實際是錯誤)的負樣本個數,FN指預測為錯誤(實際是正確)的正樣本個數,TN指預測為錯誤(實際是錯誤)的負樣本個數。本文使用宏平均計算準確率、精確率、召回率和F1值。
模型訓練完成后,使用測試數據集對本文中改進的SE-Net模型進行評估,生成的混淆矩陣如圖6所示。改進的SE-Net模型在腦腫瘤圖像的分類任務中具有較好的準確率,出現錯誤分類的個體較少,能對腦腫瘤進行精準分類。模型的錯誤分類圖像如圖7所示,(a1)—(d1)是模型預測結果,(a2)—(d2)是圖像的真實標簽。可以看出(a2)垂體瘤圖像診斷為腦膜瘤,存在的問題可能是病灶區域較小,模型對于較小的腫瘤敏感度較低;(b2)腦膜瘤圖像診斷為膠質瘤,存在的問題可能是大多數膠質瘤生長于在腦內,即不靠近顱底,腦膜瘤是個相對規則和規整的球形形態,常常位于顱板內側顱底,但在這張圖像中,腫瘤區域位于腦內但真實標簽是腦膜瘤,屬于特殊情況,模型對于這一類特殊情況還不具備分辨能力。(c2)和(d2),都是將膠質瘤圖像診斷為腦膜瘤,通過圖像可以看出腫瘤區域較小且腦膜瘤和膠質瘤有一定的相似性,所以模型出現了判斷錯誤。


通過對錯誤分類的個體圖像分析,可以得出由于腫瘤區域較小且膠質瘤和腦膜瘤有一定的相似性,模型對于兩者的區分出現少部分的錯誤,但對于診斷為腦腫瘤這一結果是沒有問題的,對于具體的腫瘤類型還需借助腫瘤專家的幫助,但總體來說改進的模型對腦腫瘤可以實現精準分類,能大大縮短診斷時間,證明了模型的有效性。
本文模型在訓練時,損失函數值的變化如圖8所示:當迭代次數增大,網絡的損失值慢慢減小,在迭代次數接近4 500次左右,網絡的損失值開始收斂,并且趨于穩定。由于保存loss值時,每隔10次迭代保存1次損失值,即一共有450次迭代數據。

為了驗證改進的模塊對網絡模型的有效性,進行了消融試驗。所有試驗在相同的環境下進行,消融試驗結果如表1 所示。首先在SE-Net的基礎上,在特征融合和批規范化后使用Swish激活函數替換原有的ReLU激活函數,在深層網絡中,效果優于ReLU激活函數的同時也不會出現神經元死亡的情況,使得模型能更好地學習;隨后在SE注意力模塊中添加全局最大池化來突出目標特征,通過全局平均池化和全局最大池化相結合的方式,使提取的高維信息互補,更有利于通道特征信息的提取。為了進一步的提取更多地特征信息,加入ECA和BAM注意力模塊,在通道和空間兩個方面都再一次進行目標特征提取,使得目標信息能充分利用,最終能準確地對腫瘤實現分類。

表1 SE-ResNet-50消融試驗對比結果Table 1 Comparison results of ablation experiments for SE-ResNet-50
在消融試驗中,驗證了更改激活函數,添加最大池化、ECA和BAM注意力模塊的性能。其中影響最大的是在特征融合后使用Swish激活函數,在深度網絡中其表現良好,優于ReLU激活函數,對模型的準確率有一定的提高。
表1消融試驗對比結果可見,改進后的模型的準確率可達到99.47%,在同時更換Swish激活函數、添加最大池化、ECA注意力以及BAM注意力后,對表1中測試集的準確率top1值進行比較,最終結果較原模型增加了4.50%,充分驗證了改進后模型的可行性。
為了驗證本文改進的SE-Net模型的有效性,將其與目前先進的算法進行對比。由于大多數的分類模型是基于ResNet和DenseNet改進的,所以本文將ResNet和DenseNet優秀的變體進行對比,試驗對比結果如表2:在同等試驗環境下,采用Kaggle的公開數據集進行訓練與測試,在準確率、精確率、召回率和F1值中都取得了最優的結果。由此可見,本文提出的改進SE-Net模型在腦腫瘤分類中表現優秀,能大幅度的提升模型的性能。

表2 模型對比結果Table 2 Comparison results of models
為了更好地對模型的注意力模塊進行解釋,本文使用梯度加權類激活映射(Gradient-Weighted Class Activation Mapping,Grad-CAM)方法[20]生成了熱圖,用于可視化分析模型在判別腦腫瘤類別時所依據的病灶區域。如圖9所示,本文分別將4個類別的腦腫瘤圖像進行可視化分析,從左到右圖像的類別分別為垂體瘤、腦膜瘤、膠質瘤以及無腫瘤。從上到下4組圖像中,第一組圖像是原始圖像,第二組到第四組圖像都是熱圖,暖色部位表示模型對該位置的關注度,關注度越高,模型學習到的特征越豐富。其中第二組圖像是原始圖像使用基礎模型SE-ResNet-50生成的熱圖;第三組圖像是在基礎模型的基礎上將ReLU激活函數更換為Swish激活函數、在SE注意力模塊中添加最大池化以及添加ECA注意力模塊后生成的熱圖;第四組圖像是在第三組的基礎上添加BAM注意力模型后生成的熱圖。

通過可視化結果,可以看到使用基礎模型對4個類別的圖像進行可視化時,模型對疾病位置和面積關注度準確度不高,如第二組圖像SE-ResNet-50所示;當第二組模型的基礎上添加ECA注意力,可以從圖中看到模型更加聚焦病灶范圍,這也使得模型避免學習病灶區周圍無用特征,如第三組圖像SE-ResNet-50+ECA所示;最后在第三組模型的基礎上添加BAM注意力,從通道和空間兩個部分捕捉特征信息,使得模型對病灶區域定位更加準確,如第四組圖像SE-ResNet-50+BAM所示。通過可視化分析模型,也充分解釋了模型中添加注意力模型的可行性,對模型的準確率的提高有著不可或缺的作用。
利用深度學習與醫學圖像相結合的方法來輔助臨床醫師減少腦腫瘤患者的死亡率有著至關重要的作用。本文基于多注意力提出一種改進的SE-Net網絡﹐能夠大幅度提高模型的準確率,高質量的對腦腫瘤實現分類。通過對1 311例數據進行測試,并和先進的ResNet變體進行試驗對比﹐表明了提出的方法能夠準確對腫瘤的類別分類﹐是省時和準確高的輔助診斷工具。