舒甜督,劉 芳,蔡茂
(長春工業(yè)大學(xué)數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,吉林長春 130012)
近年來,人口老齡化問題日益嚴(yán)峻,醫(yī)學(xué)影像檢查數(shù)量的快速增長是公眾健康意識(shí)正不斷提升的一大體現(xiàn)。醫(yī)學(xué)影像檢查數(shù)量正在飛速增長,然而,目前仍有許多基層醫(yī)院尚不具有足夠數(shù)量的專業(yè)影像技術(shù)人員和影像診斷醫(yī)師,醫(yī)學(xué)技術(shù)不斷發(fā)展的同時(shí),醫(yī)學(xué)圖像診斷領(lǐng)域供需失衡的問題亟待解決。
深度學(xué)習(xí)[1]自問世以來,深受國內(nèi)外圖像分類領(lǐng)域研究者的關(guān)注和喜愛,在各種圖像分類任務(wù)的研究中應(yīng)用廣泛。眾多先進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)結(jié)構(gòu)被先后提出,如GoogLeNet[2],VGGNet[3],ResNet[4]等,均在圖像分類任務(wù)中顯現(xiàn)了優(yōu)秀的結(jié)果。在醫(yī)學(xué)圖像分類方面,文獻(xiàn)[4]將設(shè)計(jì)的152 層基于殘差學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)ResHist 用于乳腺癌組織病理學(xué)圖像分類,分類性能得到了很大提升。文獻(xiàn)[5]研究了預(yù)訓(xùn)練的VGG16 和未預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)對(duì)24 類組織病理學(xué)圖像的分類性能。目前,提高數(shù)據(jù)利用率、分類性能以及縮短訓(xùn)練時(shí)間是醫(yī)學(xué)圖像分類研究工作中的重點(diǎn)問題。
肺癌作為發(fā)病率和死亡率最高的癌癥,其早期通常無顯著征兆,通過肺部CT 掃描發(fā)現(xiàn)的肺結(jié)節(jié)可能是肺癌的早期跡象。因此,根據(jù)CT 圖像篩查早期肺結(jié)節(jié)是降低肺癌死亡率的關(guān)鍵。但CT 圖像結(jié)構(gòu)復(fù)雜,對(duì)比度較低,病變區(qū)域與其周圍正常組織之間的差異不顯著,使得醫(yī)務(wù)人員在逐一查閱和解讀大量CT 圖像數(shù)據(jù)時(shí),容易造成誤診[6]。文獻(xiàn)[7]用一種基于DenseNet 的深度學(xué)習(xí)方法來輔助醫(yī)生對(duì)低劑量、低分辨率CT 影像的肺腺癌組織學(xué)亞型的分類鑒別。文獻(xiàn)[8]研究了支持向量機(jī)在肺部CT 圖像分類中的應(yīng)用。文獻(xiàn)[9]設(shè)計(jì)了用于肺癌鈣化的深層神經(jīng)網(wǎng)絡(luò),并將其應(yīng)用于肺部良惡性結(jié)節(jié)的CT 圖像分類中?;谏疃葘W(xué)習(xí)的醫(yī)學(xué)圖像分類算法的性能不斷更新,但存在訓(xùn)練過程耗時(shí)長、分類準(zhǔn)確率不夠高等問題,仍有改進(jìn)的空間。該文針對(duì)肺部CT 圖像分類任務(wù)構(gòu)建一個(gè)新的卷積神經(jīng)網(wǎng)絡(luò)模型,通過數(shù)值實(shí)驗(yàn)研究該模型的有效性,并與未經(jīng)預(yù)訓(xùn)練的VGG16模型和基于遷移學(xué)習(xí)(Transfer Learning,TL)[10-11]的VGG16 模型在分類效率和準(zhǔn)確率上進(jìn)行比較研究。
輸入層、卷積層、池化層和全連接層[12-14]構(gòu)成卷積神經(jīng)網(wǎng)絡(luò)CNN 的主要結(jié)構(gòu)。CNN 是傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的演變,在其基礎(chǔ)上增加了卷積層和池化層用于圖像特征的提取。整個(gè)模型可以自動(dòng)學(xué)習(xí)多個(gè)層次的特征,不需要事先對(duì)圖像進(jìn)行特征預(yù)提取,通過卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的特征能夠有效用于圖像的分類,這也是其能夠優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)圖像分類算法的原因之一。卷積層又稱為特征提取層,原圖像中符合條件的部分可通過卷積運(yùn)算篩選出來。經(jīng)卷積運(yùn)算后的圖像大小不會(huì)改變,輸入圖像的邊緣和角等不同的特征都可以很好地被提取到。在卷積神經(jīng)網(wǎng)絡(luò)中,經(jīng)過卷積處理后的圖像通常還需要進(jìn)行池化。池化層又稱為特征映射層,通過池化過濾器對(duì)輸入數(shù)據(jù)進(jìn)行降維。經(jīng)過池化層處理過的圖像通過縮減采樣縮小了圖像的位置差異,所需處理的數(shù)據(jù)點(diǎn)也得到減少,因此節(jié)省了大量的后續(xù)運(yùn)算時(shí)間。此外,網(wǎng)絡(luò)的過擬合概率由于計(jì)算量的減少得到了一定程度的降低。最后,全連接層的作用相當(dāng)于“分類器”,將之前所有層學(xué)習(xí)到的特征進(jìn)行匯總并將其映射到相應(yīng)的標(biāo)簽上實(shí)現(xiàn)分類。
VGG卷積神經(jīng)網(wǎng)絡(luò)模型于2014年被首次提出[15],VGG16卷積神經(jīng)網(wǎng)絡(luò)是VGG多個(gè)類別算法中的一種,其網(wǎng)絡(luò)結(jié)構(gòu)包含13 個(gè)卷積層、5 個(gè)池化層和3 個(gè)全連接層。VGG16卷積神經(jīng)網(wǎng)絡(luò)模型反復(fù)堆疊3×3的卷積層和2×2 的最大池化層來完成原始數(shù)據(jù)到隱層特征空間的映射,最后,通過全連接層把所有特征進(jìn)行加權(quán)融合,實(shí)現(xiàn)最終的CT 圖像分類,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 VGG16卷積神經(jīng)網(wǎng)絡(luò)模型
VGG16 網(wǎng)絡(luò)模型結(jié)構(gòu)簡單,擬合能力強(qiáng),然而其包含的權(quán)重?cái)?shù)目多達(dá)139 357 544 個(gè),不僅需要較大的存儲(chǔ)容量,而且不利于模型部署,所需的訓(xùn)練時(shí)間過長給參數(shù)調(diào)整帶來了很大困難。
因此,可對(duì)VGG16 網(wǎng)絡(luò)模型的構(gòu)架進(jìn)行簡化,僅保留四個(gè)卷積層、四個(gè)池化層和兩個(gè)全連接層,并在網(wǎng)絡(luò)結(jié)構(gòu)中加入了批量規(guī)范化層(Batch Normalization,BN)[16-17],放置在每個(gè)卷積層之后,新網(wǎng)絡(luò)模型記為S-VGG(Simplified VGG),其結(jié)構(gòu)如圖2 所示。
圖2 S-VGG卷積神經(jīng)網(wǎng)絡(luò)模型
由于是否含有肺結(jié)節(jié)的CT 圖像間差異較小,過多數(shù)量的卷積層提取的特征信息量龐大,會(huì)增加計(jì)算時(shí)間與復(fù)雜度。對(duì)于CT 圖像,采用較少數(shù)量的卷積層即可提取到圖像的大部分特征信息且獲取較高的分類精度,故S-VGG 模型減少了相應(yīng)的卷積層數(shù)目及卷積核大小。卷積層從圖片中提取特征,對(duì)輸入數(shù)據(jù)進(jìn)行降維后用全連接層進(jìn)行特征整合。模型的卷積層數(shù)目減少后池化層的數(shù)目也隨之相應(yīng)減少。VGG16 模型包含3 個(gè)全連接層用于圖像的1 000 分類,對(duì)于二分類問題,過多的全連接層容易導(dǎo)致模型的過擬合,因此S-VGG 模型去掉了VGG16 原有的所有全連接層,依次換上分別具有256 個(gè)神經(jīng)元的全連接層和連接一個(gè)二分類的softmax 分類器。同時(shí),BN 層的增加可以減少訓(xùn)練過程中由于參數(shù)不斷更新而導(dǎo)致的各層數(shù)據(jù)分布發(fā)生變化對(duì)模型的影響。在訓(xùn)練模型時(shí),批量規(guī)范化使得卷積層后的輸出可以通過小批量數(shù)據(jù)的均值和標(biāo)準(zhǔn)差進(jìn)行調(diào)節(jié),從而使輸出數(shù)據(jù)更加穩(wěn)定。批量規(guī)范化的計(jì)算過程如下。
計(jì)算每一個(gè)訓(xùn)練批次數(shù)據(jù)的均值μ與方差σ:
其中,xi為批量規(guī)范化處理輸入數(shù)據(jù)的樣本。
用所求得的均值μ與方差σ對(duì)該批次的訓(xùn)練數(shù)據(jù)做歸一化,把它們規(guī)整到均值為0、方差為1 的正態(tài)分布范圍內(nèi):其中,ε是一個(gè)微小正數(shù)(以使分母不為0)。
通過尺度變換和偏移使返回的批量歸一化結(jié)果的特性和原始輸入數(shù)據(jù)的特性相同,避免數(shù)據(jù)的特征分布因數(shù)據(jù)歸一化而被破壞:
其中,yi為樣本標(biāo)簽,是通過訓(xùn)練學(xué)習(xí)的參數(shù)。
因此,在網(wǎng)絡(luò)中增加BN 層可以提升模型的訓(xùn)練速度,加快其收斂速度,防止過擬合從而獲得更好的分類效果。此外,模型可使用較高的學(xué)習(xí)率,調(diào)參過程得到了簡化。
VGG16 模型相較于簡化后的模型,各卷積層擁有的卷積數(shù)目更多,可提取原始圖像中更為詳細(xì)的特征信息。然而肺結(jié)節(jié)CT 圖像與非肺結(jié)節(jié)CT 圖像之間的差異并不顯著,正負(fù)樣本相似性較高。過多的卷積數(shù)目使得學(xué)習(xí)到的CT 圖像相似性特征也在增加,模型計(jì)算量龐大,對(duì)最后的分類結(jié)果造成一定程度上的影響。該文構(gòu)造的S-VGG 模型與VGG16模型相比,不僅通過卷積層的數(shù)目的減少,精簡了網(wǎng)絡(luò)結(jié)構(gòu),每個(gè)卷積卷層的卷積核的數(shù)目也進(jìn)行了相應(yīng)減少。此時(shí)的卷積神經(jīng)網(wǎng)絡(luò)能夠提取的特征數(shù)量雖不如VGG16,但其所獲得的圖像樣本間差異信息相對(duì)于所獲得的樣本間相似信息的比例沒有減少,對(duì)于正負(fù)樣本間特征差異小的CT 圖像還是能取得不錯(cuò)的分類效果。
相較于采用可用的數(shù)據(jù)集從零開始設(shè)計(jì)和訓(xùn)練相同結(jié)構(gòu)的深度網(wǎng)絡(luò)需要占用更多內(nèi)存和耗費(fèi)大量實(shí)驗(yàn)與調(diào)參時(shí)間,使用預(yù)訓(xùn)練的網(wǎng)絡(luò)來提取CT 圖像的深層特征只需要根據(jù)數(shù)據(jù)的性質(zhì)進(jìn)行微調(diào)就能獲得較高的準(zhǔn)確率起點(diǎn)和更快的收斂時(shí)間,這種方式稱為遷移學(xué)習(xí)。因此,采用遷移學(xué)習(xí)的方法能優(yōu)化模型的學(xué)習(xí)效率。VGG16 卷積神經(jīng)網(wǎng)絡(luò)模型的預(yù)訓(xùn)練是在ImageNet 數(shù)據(jù)集上進(jìn)行的,模型通過對(duì)幾十萬張圖片進(jìn)行1 000 分類訓(xùn)練,獲得了較好的泛化能力。此次實(shí)驗(yàn)將采用基于遷移學(xué)習(xí)的VGG16 網(wǎng)絡(luò)對(duì)肺結(jié)節(jié)CT 圖像進(jìn)行分類的計(jì)算,并與在Luna16 數(shù)據(jù)集上從零開始訓(xùn)練的VGG16 網(wǎng)絡(luò)的結(jié)果進(jìn)行對(duì)比。
由于肺部CT 圖像是否含有肺結(jié)節(jié)的分類屬于二分類問題,使用VGG16 中1 000 分類的全連接層計(jì)算量大且容易導(dǎo)致過擬合。實(shí)驗(yàn)將VGG16 預(yù)訓(xùn)練模型全連接層之前的所有層進(jìn)行凍結(jié),只對(duì)重新定制的全連接層進(jìn)行訓(xùn)練,將VGG 模型中的全連接層替換為256 個(gè)神經(jīng)元的全連接層和二分類的softmax分類器。實(shí)驗(yàn)?zāi)P偷膮?shù)初始化,仍使用在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練的VGG16 神經(jīng)網(wǎng)絡(luò)模型參數(shù)。
實(shí)驗(yàn)所用的數(shù)據(jù)來自于包含888 個(gè)病例的肺部CT 切片的Luna16 數(shù)據(jù)集。將直徑大于3 mm 的結(jié)節(jié)作為樣本,并且將相距較近的結(jié)節(jié)進(jìn)行合并,檢測(cè)區(qū)域?yàn)槿患耙陨蠈<覙?biāo)注的結(jié)節(jié),肺結(jié)節(jié)圖像有1 186個(gè),非結(jié)節(jié)圖像有549 879個(gè)。圖3為Luna16數(shù)據(jù)集中的肺部CT 圖像,左邊為含肺結(jié)節(jié)CT 圖像,右邊為無肺結(jié)節(jié)CT 圖像。
圖3 S-VGG卷積神經(jīng)網(wǎng)絡(luò)模型
由于正負(fù)樣本差距懸殊,為了減少過擬合現(xiàn)象,將非肺結(jié)節(jié)圖像進(jìn)行隨機(jī)采樣1 186 張,然后對(duì)這2 372 個(gè)肺結(jié)節(jié)和非肺結(jié)節(jié)圖像應(yīng)用隨機(jī)翻轉(zhuǎn)、平移、旋轉(zhuǎn)變換擴(kuò)充10 倍,使得最終實(shí)驗(yàn)所用正負(fù)樣本比例為1∶1。對(duì)圖像進(jìn)行擴(kuò)充的部分示例圖如圖4所示,從左往右、自上而下依次是原圖、對(duì)圖像進(jìn)行水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、向右和向下平移、向左和向上平移、逆時(shí)針旋轉(zhuǎn)45°、旋轉(zhuǎn)90°的圖像、旋轉(zhuǎn)225°的圖像。
圖4 數(shù)據(jù)擴(kuò)充示意圖
為了驗(yàn)證構(gòu)建的S-VGG 模型對(duì)肺部CT 圖像分類任務(wù)的有效性,將其與未預(yù)訓(xùn)練的VGG16 模型以及基于遷移學(xué)習(xí)的VGG16(Transfer Learning VGG16,TL-VGG16)模型對(duì)肺部CT 圖像分類實(shí)驗(yàn)的結(jié)果進(jìn)行了對(duì)比,結(jié)果如表1 所示。從表1 可知,S-VGG 模型在訓(xùn)練集和驗(yàn)證集上分別達(dá)到了99.91%和97.85%的高準(zhǔn)確率,以及0.002 0 和0.155 0 的低損失值,其準(zhǔn)確率和損失結(jié)果與TL-VGG16 模型相當(dāng),且訓(xùn)練時(shí)間相較于TL-VGG16 模型和未經(jīng)預(yù)訓(xùn)練的VGG16模型有著顯著優(yōu)勢(shì),這很好地說明了所構(gòu)造的SVGG 模型能快速高效地分類出CT 圖像是否含有肺結(jié)節(jié)。
表1 預(yù)訓(xùn)練VGG16模型、未預(yù)訓(xùn)練的VGG16模型和S-VGG模型分類結(jié)果
圖5(a)-(d)分別描述了TL-VGG16、未預(yù)訓(xùn)練的VGG16 和S-VGG 模型對(duì)Luna16 數(shù)據(jù)集進(jìn)行CT圖像分類完成30 次迭代訓(xùn)練以及測(cè)試時(shí)準(zhǔn)確率和損失的變化。通過圖5(a)-(d)可知,未預(yù)訓(xùn)練的VGG16 模型準(zhǔn)確率上升較慢且驗(yàn)證集上的準(zhǔn)確率和損失值有較大幅度的波動(dòng),不能很好地收斂。而新構(gòu)建的S-VGG 模型與預(yù)訓(xùn)練的VGG16 模型訓(xùn)練集和驗(yàn)證集上的分類準(zhǔn)確率都能很快收斂,迭代次數(shù)在10 次左右分類準(zhǔn)確率就能接近100%,損失值達(dá)到較低值后無大幅波動(dòng),可以很好地獲取及學(xué)習(xí)肺部CT 圖像的特征以進(jìn)行高效分類。
圖5 模型準(zhǔn)確率和損失函數(shù)曲線圖
該文利用Luna16 數(shù)據(jù)集,研究了基于CNN 的肺部CT 圖像分類算法。文中分析了模型原理,在VGG16 模型的框架下構(gòu)建了一個(gè)S-VGG 神經(jīng)網(wǎng)絡(luò)模型,并通過參數(shù)的調(diào)整使模型達(dá)到了較理想的分類結(jié)果,與遷移學(xué)習(xí)的VGG16 模型以及未預(yù)訓(xùn)練的VGG16 模型進(jìn)行了分類結(jié)果比較。構(gòu)建的S-VGG模型相較于VGG16 模型,結(jié)構(gòu)更加精簡,解決了在CT 圖像肺結(jié)節(jié)分類實(shí)驗(yàn)中深度卷積網(wǎng)絡(luò)中大量參數(shù)與網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)調(diào)試時(shí)間長的問題,實(shí)驗(yàn)準(zhǔn)確率和預(yù)訓(xùn)練的VGG16 模型相當(dāng),且訓(xùn)練時(shí)間較短,更適合CT 圖像肺結(jié)節(jié)的快速高效分類。此外,該模型可推廣到醫(yī)學(xué)圖像中的各類CT 病灶診斷,對(duì)醫(yī)學(xué)影像智能輔助診斷的完善有著實(shí)際意義。