舒甜督,劉 芳,蔡茂
(長春工業大學數學與統計學院,吉林長春 130012)
近年來,人口老齡化問題日益嚴峻,醫學影像檢查數量的快速增長是公眾健康意識正不斷提升的一大體現。醫學影像檢查數量正在飛速增長,然而,目前仍有許多基層醫院尚不具有足夠數量的專業影像技術人員和影像診斷醫師,醫學技術不斷發展的同時,醫學圖像診斷領域供需失衡的問題亟待解決。
深度學習[1]自問世以來,深受國內外圖像分類領域研究者的關注和喜愛,在各種圖像分類任務的研究中應用廣泛。眾多先進的卷積神經網絡(Convolutional Neural Network,CNN)結構被先后提出,如GoogLeNet[2],VGGNet[3],ResNet[4]等,均在圖像分類任務中顯現了優秀的結果。在醫學圖像分類方面,文獻[4]將設計的152 層基于殘差學習的卷積神經網絡ResHist 用于乳腺癌組織病理學圖像分類,分類性能得到了很大提升。文獻[5]研究了預訓練的VGG16 和未預訓練的卷積神經網絡對24 類組織病理學圖像的分類性能。目前,提高數據利用率、分類性能以及縮短訓練時間是醫學圖像分類研究工作中的重點問題。
肺癌作為發病率和死亡率最高的癌癥,其早期通常無顯著征兆,通過肺部CT 掃描發現的肺結節可能是肺癌的早期跡象。因此,根據CT 圖像篩查早期肺結節是降低肺癌死亡率的關鍵。但CT 圖像結構復雜,對比度較低,病變區域與其周圍正常組織之間的差異不顯著,使得醫務人員在逐一查閱和解讀大量CT 圖像數據時,容易造成誤診[6]。文獻[7]用一種基于DenseNet 的深度學習方法來輔助醫生對低劑量、低分辨率CT 影像的肺腺癌組織學亞型的分類鑒別。文獻[8]研究了支持向量機在肺部CT 圖像分類中的應用。文獻[9]設計了用于肺癌鈣化的深層神經網絡,并將其應用于肺部良惡性結節的CT 圖像分類中。基于深度學習的醫學圖像分類算法的性能不斷更新,但存在訓練過程耗時長、分類準確率不夠高等問題,仍有改進的空間。該文針對肺部CT 圖像分類任務構建一個新的卷積神經網絡模型,通過數值實驗研究該模型的有效性,并與未經預訓練的VGG16模型和基于遷移學習(Transfer Learning,TL)[10-11]的VGG16 模型在分類效率和準確率上進行比較研究。
輸入層、卷積層、池化層和全連接層[12-14]構成卷積神經網絡CNN 的主要結構。CNN 是傳統神經網絡的演變,在其基礎上增加了卷積層和池化層用于圖像特征的提取。整個模型可以自動學習多個層次的特征,不需要事先對圖像進行特征預提取,通過卷積神經網絡學習到的特征能夠有效用于圖像的分類,這也是其能夠優于傳統機器學習圖像分類算法的原因之一。卷積層又稱為特征提取層,原圖像中符合條件的部分可通過卷積運算篩選出來。經卷積運算后的圖像大小不會改變,輸入圖像的邊緣和角等不同的特征都可以很好地被提取到。在卷積神經網絡中,經過卷積處理后的圖像通常還需要進行池化。池化層又稱為特征映射層,通過池化過濾器對輸入數據進行降維。經過池化層處理過的圖像通過縮減采樣縮小了圖像的位置差異,所需處理的數據點也得到減少,因此節省了大量的后續運算時間。此外,網絡的過擬合概率由于計算量的減少得到了一定程度的降低。最后,全連接層的作用相當于“分類器”,將之前所有層學習到的特征進行匯總并將其映射到相應的標簽上實現分類。
VGG卷積神經網絡模型于2014年被首次提出[15],VGG16卷積神經網絡是VGG多個類別算法中的一種,其網絡結構包含13 個卷積層、5 個池化層和3 個全連接層。VGG16卷積神經網絡模型反復堆疊3×3的卷積層和2×2 的最大池化層來完成原始數據到隱層特征空間的映射,最后,通過全連接層把所有特征進行加權融合,實現最終的CT 圖像分類,其網絡結構如圖1 所示。

圖1 VGG16卷積神經網絡模型
VGG16 網絡模型結構簡單,擬合能力強,然而其包含的權重數目多達139 357 544 個,不僅需要較大的存儲容量,而且不利于模型部署,所需的訓練時間過長給參數調整帶來了很大困難。
因此,可對VGG16 網絡模型的構架進行簡化,僅保留四個卷積層、四個池化層和兩個全連接層,并在網絡結構中加入了批量規范化層(Batch Normalization,BN)[16-17],放置在每個卷積層之后,新網絡模型記為S-VGG(Simplified VGG),其結構如圖2 所示。

圖2 S-VGG卷積神經網絡模型
由于是否含有肺結節的CT 圖像間差異較小,過多數量的卷積層提取的特征信息量龐大,會增加計算時間與復雜度。對于CT 圖像,采用較少數量的卷積層即可提取到圖像的大部分特征信息且獲取較高的分類精度,故S-VGG 模型減少了相應的卷積層數目及卷積核大小。卷積層從圖片中提取特征,對輸入數據進行降維后用全連接層進行特征整合。模型的卷積層數目減少后池化層的數目也隨之相應減少。VGG16 模型包含3 個全連接層用于圖像的1 000 分類,對于二分類問題,過多的全連接層容易導致模型的過擬合,因此S-VGG 模型去掉了VGG16 原有的所有全連接層,依次換上分別具有256 個神經元的全連接層和連接一個二分類的softmax 分類器。同時,BN 層的增加可以減少訓練過程中由于參數不斷更新而導致的各層數據分布發生變化對模型的影響。在訓練模型時,批量規范化使得卷積層后的輸出可以通過小批量數據的均值和標準差進行調節,從而使輸出數據更加穩定。批量規范化的計算過程如下。
計算每一個訓練批次數據的均值μ與方差σ:

其中,xi為批量規范化處理輸入數據的樣本。
用所求得的均值μ與方差σ對該批次的訓練數據做歸一化,把它們規整到均值為0、方差為1 的正態分布范圍內:其中,ε是一個微小正數(以使分母不為0)。

通過尺度變換和偏移使返回的批量歸一化結果的特性和原始輸入數據的特性相同,避免數據的特征分布因數據歸一化而被破壞:

其中,yi為樣本標簽,是通過訓練學習的參數。
因此,在網絡中增加BN 層可以提升模型的訓練速度,加快其收斂速度,防止過擬合從而獲得更好的分類效果。此外,模型可使用較高的學習率,調參過程得到了簡化。
VGG16 模型相較于簡化后的模型,各卷積層擁有的卷積數目更多,可提取原始圖像中更為詳細的特征信息。然而肺結節CT 圖像與非肺結節CT 圖像之間的差異并不顯著,正負樣本相似性較高。過多的卷積數目使得學習到的CT 圖像相似性特征也在增加,模型計算量龐大,對最后的分類結果造成一定程度上的影響。該文構造的S-VGG 模型與VGG16模型相比,不僅通過卷積層的數目的減少,精簡了網絡結構,每個卷積卷層的卷積核的數目也進行了相應減少。此時的卷積神經網絡能夠提取的特征數量雖不如VGG16,但其所獲得的圖像樣本間差異信息相對于所獲得的樣本間相似信息的比例沒有減少,對于正負樣本間特征差異小的CT 圖像還是能取得不錯的分類效果。
相較于采用可用的數據集從零開始設計和訓練相同結構的深度網絡需要占用更多內存和耗費大量實驗與調參時間,使用預訓練的網絡來提取CT 圖像的深層特征只需要根據數據的性質進行微調就能獲得較高的準確率起點和更快的收斂時間,這種方式稱為遷移學習。因此,采用遷移學習的方法能優化模型的學習效率。VGG16 卷積神經網絡模型的預訓練是在ImageNet 數據集上進行的,模型通過對幾十萬張圖片進行1 000 分類訓練,獲得了較好的泛化能力。此次實驗將采用基于遷移學習的VGG16 網絡對肺結節CT 圖像進行分類的計算,并與在Luna16 數據集上從零開始訓練的VGG16 網絡的結果進行對比。
由于肺部CT 圖像是否含有肺結節的分類屬于二分類問題,使用VGG16 中1 000 分類的全連接層計算量大且容易導致過擬合。實驗將VGG16 預訓練模型全連接層之前的所有層進行凍結,只對重新定制的全連接層進行訓練,將VGG 模型中的全連接層替換為256 個神經元的全連接層和二分類的softmax分類器。實驗模型的參數初始化,仍使用在ImageNet數據集上預訓練的VGG16 神經網絡模型參數。
實驗所用的數據來自于包含888 個病例的肺部CT 切片的Luna16 數據集。將直徑大于3 mm 的結節作為樣本,并且將相距較近的結節進行合并,檢測區域為三位及以上專家標注的結節,肺結節圖像有1 186個,非結節圖像有549 879個。圖3為Luna16數據集中的肺部CT 圖像,左邊為含肺結節CT 圖像,右邊為無肺結節CT 圖像。

圖3 S-VGG卷積神經網絡模型
由于正負樣本差距懸殊,為了減少過擬合現象,將非肺結節圖像進行隨機采樣1 186 張,然后對這2 372 個肺結節和非肺結節圖像應用隨機翻轉、平移、旋轉變換擴充10 倍,使得最終實驗所用正負樣本比例為1∶1。對圖像進行擴充的部分示例圖如圖4所示,從左往右、自上而下依次是原圖、對圖像進行水平翻轉、垂直翻轉、向右和向下平移、向左和向上平移、逆時針旋轉45°、旋轉90°的圖像、旋轉225°的圖像。

圖4 數據擴充示意圖
為了驗證構建的S-VGG 模型對肺部CT 圖像分類任務的有效性,將其與未預訓練的VGG16 模型以及基于遷移學習的VGG16(Transfer Learning VGG16,TL-VGG16)模型對肺部CT 圖像分類實驗的結果進行了對比,結果如表1 所示。從表1 可知,S-VGG 模型在訓練集和驗證集上分別達到了99.91%和97.85%的高準確率,以及0.002 0 和0.155 0 的低損失值,其準確率和損失結果與TL-VGG16 模型相當,且訓練時間相較于TL-VGG16 模型和未經預訓練的VGG16模型有著顯著優勢,這很好地說明了所構造的SVGG 模型能快速高效地分類出CT 圖像是否含有肺結節。

表1 預訓練VGG16模型、未預訓練的VGG16模型和S-VGG模型分類結果
圖5(a)-(d)分別描述了TL-VGG16、未預訓練的VGG16 和S-VGG 模型對Luna16 數據集進行CT圖像分類完成30 次迭代訓練以及測試時準確率和損失的變化。通過圖5(a)-(d)可知,未預訓練的VGG16 模型準確率上升較慢且驗證集上的準確率和損失值有較大幅度的波動,不能很好地收斂。而新構建的S-VGG 模型與預訓練的VGG16 模型訓練集和驗證集上的分類準確率都能很快收斂,迭代次數在10 次左右分類準確率就能接近100%,損失值達到較低值后無大幅波動,可以很好地獲取及學習肺部CT 圖像的特征以進行高效分類。

圖5 模型準確率和損失函數曲線圖
該文利用Luna16 數據集,研究了基于CNN 的肺部CT 圖像分類算法。文中分析了模型原理,在VGG16 模型的框架下構建了一個S-VGG 神經網絡模型,并通過參數的調整使模型達到了較理想的分類結果,與遷移學習的VGG16 模型以及未預訓練的VGG16 模型進行了分類結果比較。構建的S-VGG模型相較于VGG16 模型,結構更加精簡,解決了在CT 圖像肺結節分類實驗中深度卷積網絡中大量參數與網絡結構設計調試時間長的問題,實驗準確率和預訓練的VGG16 模型相當,且訓練時間較短,更適合CT 圖像肺結節的快速高效分類。此外,該模型可推廣到醫學圖像中的各類CT 病灶診斷,對醫學影像智能輔助診斷的完善有著實際意義。