鄧 棋,雷印杰,田 鋒
(四川大學(xué) 電子信息學(xué)院,成都 610065)
肺炎(Pneumonia)[1]作為一種危害人類健康的常見(jiàn)疾病,在0~5歲嬰幼兒以及65歲以上老年人的呼吸道疾病中尤為常見(jiàn),且致死率逐年升高。根據(jù)世界衛(wèi)生組織(World Health Organization,WHO)的統(tǒng)計(jì),僅在2015年,因肺炎導(dǎo)致的兒童死亡人數(shù)就達(dá)到了92萬(wàn)人,占全世界五歲以下兒童死亡人數(shù)的16%[2]。在中國(guó)2000—2010年5歲以下兒童死亡原因中,肺炎排在第2位[3]。我國(guó)每年約有250萬(wàn)例肺炎發(fā)生,12萬(wàn)5千人因肺炎死亡,在各種致死病因中占第5位[4],而由于老人年身體素質(zhì)和免疫系統(tǒng)能力下降,在我國(guó)患有肺炎的人群中,老年人所占的比例就達(dá)到了70%[5]。
在傳統(tǒng)肺炎診斷過(guò)程中,肺炎影像的判斷主要依靠有經(jīng)驗(yàn)的醫(yī)生,但由于人工經(jīng)驗(yàn)的差別準(zhǔn)確率得不到保證[6]。隨著計(jì)算機(jī)與數(shù)字圖像處理技術(shù)的發(fā)展,計(jì)算機(jī)輔助診斷系統(tǒng)(Computer-Aided Diagnosis, CAD)[7]逐漸被引入臨床,并為放射科醫(yī)生判斷CT圖像提供參考意見(jiàn)。針對(duì)肺炎影像的自動(dòng)識(shí)別問(wèn)題,中外學(xué)者們提出了許多不同的方法。岳路等[8]利用決策樹算法對(duì)200例小兒肺炎進(jìn)行分類,取得了準(zhǔn)確率80%的成績(jī)。決策樹(Decision Tree)[9]是一種經(jīng)典的機(jī)器學(xué)習(xí)分類方法,通過(guò)樹形結(jié)構(gòu)完成類型劃分。決策樹算法的優(yōu)點(diǎn)是算法簡(jiǎn)單易于理解,可處理多種不同類型的分類問(wèn)題,但是當(dāng)數(shù)據(jù)量過(guò)大,容易產(chǎn)生過(guò)擬合問(wèn)題,同時(shí),在面對(duì)復(fù)雜數(shù)據(jù)時(shí)分類效果不是太好。Jun等[10]利用支持向量機(jī)(Support Vector Machine, SVM)算法[11]對(duì)間質(zhì)性肺炎與非特異性肺炎進(jìn)行分類,與放射科醫(yī)生分類結(jié)果進(jìn)行比較,準(zhǔn)確率相差在5%~6%。邵欣蔚[12]也利用SVM算法對(duì)兒童社區(qū)獲得性肺炎(Community Acquired Pneumonia, CAP)進(jìn)行分類,在早期診斷問(wèn)題上取得了準(zhǔn)確率90%的良好效果。SVM算法作為一種優(yōu)秀的機(jī)器學(xué)習(xí)方法,利用高維映射解決了許多線性不可分問(wèn)題,在圖像、文本信息分類等方面取得了十分良好的效果,但當(dāng)數(shù)據(jù)量過(guò)大時(shí)常常導(dǎo)致模型計(jì)算量過(guò)大、效率降低,魯棒性與準(zhǔn)確率得不到保證。近年來(lái),隨著人工智能和大數(shù)據(jù)應(yīng)用的發(fā)展,計(jì)算機(jī)輔助診斷技術(shù)越來(lái)越多地被應(yīng)用到臨床。隨著深度學(xué)習(xí)(Deep Learning)[13]這一概念的興起,一大批以卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)[14]為代表的深度學(xué)習(xí)方法開始出現(xiàn)。劉長(zhǎng)征等[15]利用一個(gè)7層的卷積神經(jīng)網(wǎng)絡(luò)對(duì)400例肺炎患者的CT影像進(jìn)行分類,識(shí)別準(zhǔn)確率比SVM算法提高了5.7%。由于卷積神經(jīng)網(wǎng)絡(luò)“自主”學(xué)習(xí)的特性,避免了機(jī)器學(xué)習(xí)中人工提取圖像特征的局限性,大幅度提高了識(shí)別準(zhǔn)確率。為進(jìn)一步提高卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率,通常的做法是增大數(shù)據(jù)集、增加神經(jīng)網(wǎng)絡(luò)層數(shù)。Rajpurkar等[16]提出一種121層的卷積神經(jīng)網(wǎng)絡(luò),在總量為112 120張帶標(biāo)記的肺部X光圖像數(shù)據(jù)集ChestX-ray14上進(jìn)行訓(xùn)練,在檢測(cè)14種不同肺部疾病過(guò)程中,有11種取得了與放射科醫(yī)生相似或更優(yōu)的表現(xiàn)。
雖然通過(guò)增加網(wǎng)絡(luò)層數(shù)獲得了更加優(yōu)異的分類效果,但是相應(yīng)網(wǎng)絡(luò)參數(shù)數(shù)量比淺層網(wǎng)絡(luò)增加了幾十甚至幾百倍,內(nèi)存占用也由幾十兆提升至幾百甚至上千兆,對(duì)系統(tǒng)資源的占用比淺層網(wǎng)絡(luò)提高了很多。深度神經(jīng)網(wǎng)絡(luò)對(duì)系統(tǒng)性能較高的要求,給客戶端部署造成了很大的阻礙,而采用淺層網(wǎng)絡(luò)的訓(xùn)練結(jié)果往往不能夠達(dá)到實(shí)際應(yīng)用的要求。
針對(duì)以上的問(wèn)題,本文提出一種基于知識(shí)蒸餾(Knowledge Distillation)方法[17]優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò),在減少系統(tǒng)資源占用的同時(shí)提高網(wǎng)絡(luò)對(duì)于肺炎識(shí)別的能力。根據(jù)肺部CT圖像特點(diǎn),選擇AlexNet與InceptionV3模型。AlexNet模型在ILSVRC2012競(jìng)賽中獲得冠軍,在Top- 5錯(cuò)誤率上取得了15.3%的成績(jī);InceptionV3模型則在ILSVRC2014將Top- 5錯(cuò)誤率降到了4.2%。兩者相比,前者網(wǎng)絡(luò)深度為8層,而后者為159層。在訓(xùn)練時(shí)采用遷移學(xué)習(xí)(Transfer Learning)方法避免因訓(xùn)練集過(guò)小引起的過(guò)擬合問(wèn)題,將InceptionV3預(yù)訓(xùn)練模型作為Teacher Module,AlexNet模型作為Student Module,將前者的輸出作為后者訓(xùn)練的監(jiān)督信息,使訓(xùn)練完成后的AlexNet模型具有與InceptionV3模型相近的識(shí)別能力,同時(shí)減少對(duì)圖像處理器(Graphics Processing Unit, GPU)的占用。
深度學(xué)習(xí)相比傳統(tǒng)的簡(jiǎn)單學(xué)習(xí),其區(qū)別就在于前者可以通過(guò)一種多層的非線性結(jié)構(gòu)“自主”學(xué)習(xí),來(lái)表征數(shù)據(jù)的特征,而后者大多數(shù)需要人工提取特征信息,且因人工提取的特征往往不能很好地表征事物的本質(zhì),故學(xué)習(xí)效果難以提高。相比于簡(jiǎn)單學(xué)習(xí)常用的決策樹、SVM等方法,深度學(xué)習(xí)通過(guò)多層網(wǎng)絡(luò)結(jié)構(gòu)分層學(xué)習(xí)數(shù)據(jù)的特征,再單獨(dú)對(duì)每一層的分類信息進(jìn)行微調(diào),可以以簡(jiǎn)單結(jié)構(gòu)完成對(duì)復(fù)雜樣本的描述。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)在圖像處理領(lǐng)域的成功應(yīng)用,作為一種具有深度結(jié)構(gòu)的前饋型神經(jīng)網(wǎng)絡(luò),一般由卷積層、池化層、全連接層與輸出層組成。相比于傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò),兩者主要的區(qū)別就在于前者通過(guò)卷積核以及權(quán)值共享大幅度降低了參數(shù)數(shù)量與訓(xùn)練難度。再結(jié)合大量數(shù)據(jù)的訓(xùn)練,使卷積神經(jīng)網(wǎng)絡(luò)突破了傳統(tǒng)網(wǎng)絡(luò)的限制,在圖像處理領(lǐng)域取得了很大的進(jìn)展。
針對(duì)任務(wù)特點(diǎn),本文首先比較了幾種目前較為流行的深度學(xué)習(xí)網(wǎng)絡(luò)架構(gòu),如AlexNet[18]、VGG16[19]、ResNet18[20]、ResNet34[20]、InceptionV3[21]。它們?cè)阱e(cuò)誤率、參數(shù)數(shù)量、網(wǎng)絡(luò)深度等性能指標(biāo)的比較如表1所示。
表1 各模型性能對(duì)比 Tab. 1 Performance comparison of different models
可以看出,在評(píng)價(jià)識(shí)別準(zhǔn)確率指標(biāo)的參數(shù)Top- 1錯(cuò)誤率上,InceptionV3模型比其他模型具有較大的優(yōu)勢(shì)。其錯(cuò)誤率比AlexNet模型減小了近1/2,比其他模型也有不同程度的下降。作為Google在2014年開發(fā)的GoogLeNet[22]模型基礎(chǔ)上改進(jìn)的版本,InceptionV3由5個(gè)卷積層、3個(gè)池化層、1個(gè)全連接層以及11個(gè)Inception模塊組成。由表1可以看出,雖然InceptionV3模型的網(wǎng)絡(luò)深度約為AlexNet模型的20倍,但得益于其Factorization操作,其參數(shù)數(shù)量比后者少了3 850萬(wàn)。在教師模型的選擇上,主要考慮的參數(shù)為模型的識(shí)別準(zhǔn)確率,因此本文選擇InceptionV3模型作為教師模型。
在學(xué)生模型的選擇上,主要考慮模型的參數(shù)數(shù)量與計(jì)算量,參數(shù)數(shù)量對(duì)于內(nèi)存要求影響較大,計(jì)算量則對(duì)GPU運(yùn)算能力要求有較大影響。AlexNet作為上表中層數(shù)最淺的網(wǎng)絡(luò),是由加拿大多倫多大學(xué)教授Hinton等[18]在2012年提出的深度神經(jīng)網(wǎng)絡(luò)模型,通過(guò)5層卷積層與3層全連接層構(gòu)成。在計(jì)算量方面,AlexNet僅有InceptionV3模型的1/7,VGG16模型的1/21。雖然參數(shù)數(shù)量指標(biāo)上沒(méi)有特別的優(yōu)勢(shì),考慮到實(shí)際應(yīng)用場(chǎng)景中用戶端GPU運(yùn)算能力普遍較弱的情況,本文選用AlexNet模型作為學(xué)生模型。
在醫(yī)學(xué)影像分類領(lǐng)域,隨著深度學(xué)習(xí)的崛起,許多層數(shù)更深、結(jié)構(gòu)更加復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)開始在這一領(lǐng)域得到應(yīng)用。如Rajpurkar等[16]提出的121層神經(jīng)網(wǎng)絡(luò),Kermany等[23]提出的159層神經(jīng)網(wǎng)絡(luò)。一般來(lái)說(shuō),層數(shù)越多結(jié)構(gòu)越復(fù)雜的神經(jīng)網(wǎng)絡(luò),往往需要消耗更多的系統(tǒng)資源。知識(shí)蒸餾是由多倫多大學(xué)教授Hinton等[17]在2015年提出的一種知識(shí)遷移的技術(shù),常用于網(wǎng)絡(luò)模型壓縮。本文考慮實(shí)際應(yīng)用中用戶端計(jì)算機(jī)性能的限制,將知識(shí)蒸餾方法引入到醫(yī)學(xué)影像分類領(lǐng)域,在壓縮模型的同時(shí)提高模型的分類性能。
本文選用兩個(gè)大小不同的模型,將結(jié)構(gòu)復(fù)雜、層數(shù)更深的InceptionV3模型作為教師模型(Teacher Module),結(jié)構(gòu)簡(jiǎn)單、層數(shù)更淺的AlexNet模型作為學(xué)生模型(Student Module),兩種模型的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)如表2、表3所示。表2中編號(hào)為8~18層網(wǎng)絡(luò)結(jié)構(gòu)為InceptionV3模型特有的Inception模塊,每一個(gè)模塊由多個(gè)層數(shù)不同的卷積層構(gòu)成,所以有多個(gè)尺寸不同的卷積核存在。在表2、表3中的“—”符號(hào)表示該網(wǎng)絡(luò)層中沒(méi)有此參數(shù)。首先,單獨(dú)訓(xùn)練教師模型,取得較為理想的結(jié)果后固化其訓(xùn)練參數(shù);其次,訓(xùn)練學(xué)生模型,在訓(xùn)練過(guò)程中將教師模型的輸出除以參數(shù)T,再經(jīng)過(guò)softmax變換后作為參數(shù),傳遞給學(xué)生模型,起到提高后者的泛化與識(shí)別能力的作用。
表2 教師模型網(wǎng)絡(luò)參數(shù) Tab. 2 Network parameters of teacher module
表3 學(xué)生模型網(wǎng)絡(luò)參數(shù) Tab. 3 Network parameters of student module
如圖1所示,先將教師模型InceptionV3的訓(xùn)練結(jié)果用溫度參數(shù)T“軟化”,再經(jīng)過(guò)softmax變換得到軟化后的概率分布—軟目標(biāo)(soft target),計(jì)算公式如下:
(1)
其中:qi為教師模型給出的每一類的可能性;zi為教師模型最后一層的神經(jīng)元;T為調(diào)節(jié)參數(shù);在軟目標(biāo)中包含了許多未標(biāo)記但對(duì)于分類十分有用的信息,因此通過(guò)提取教師模型中的軟目標(biāo)可以大幅度提高學(xué)生網(wǎng)絡(luò)的識(shí)別能力。
圖1 知識(shí)蒸餾網(wǎng)絡(luò)結(jié)構(gòu)Fig. 1 Network structure of knowledge distillation
訓(xùn)練過(guò)程中,調(diào)節(jié)參數(shù)T的大小對(duì)訓(xùn)練結(jié)果有較大的影響,一般設(shè)置為大于0的整數(shù)。此處選擇1、10、20、30、40、50作為實(shí)驗(yàn)參數(shù),比較Student Module在參數(shù)T不同大小下的訓(xùn)練結(jié)果,如表4。可以看出,參數(shù)設(shè)為1時(shí),實(shí)驗(yàn)取得的準(zhǔn)確率、特異性以及靈敏度等性能指標(biāo)均優(yōu)于其他選項(xiàng),故之后的訓(xùn)練過(guò)程中,設(shè)置調(diào)節(jié)參數(shù)T的大小為1。
表4 不同參數(shù)T的實(shí)驗(yàn)結(jié)果 Tab. 4 Experimental results with different parameter T
在訓(xùn)練學(xué)生模型AlexNet時(shí)除了正常訓(xùn)練結(jié)果——硬目標(biāo)(hard target)外,同樣地采用上面的方法得到一個(gè)soft target。在計(jì)算損失函數(shù)時(shí)將兩者結(jié)合,計(jì)算公式如下:
L=Lsoft
(2)
其中:L為訓(xùn)練學(xué)生模型最終使用的loss,Lsoft是使用溫度參數(shù)T軟化后的loss。在實(shí)驗(yàn)中,采用Lsoft作為最終訓(xùn)練學(xué)生模型的loss。
訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)分類肺炎圖像時(shí)常常會(huì)有過(guò)擬合問(wèn)題,本文中為提高訓(xùn)練效果,降低過(guò)擬合現(xiàn)象發(fā)生的幾率,決定采用遷移學(xué)習(xí)[24]的方法,讓卷積模型由ImageNet數(shù)據(jù)集訓(xùn)練過(guò)后,保留訓(xùn)練參數(shù)并刪除原來(lái)的全連接層,在新建的全連接層上隨機(jī)初始化參數(shù)并訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,采用遷移學(xué)習(xí)方法能夠有效地防止過(guò)擬合問(wèn)題。
本文采用教師模型“教”學(xué)生模型的方法,讓學(xué)生模型學(xué)習(xí)教師模型的訓(xùn)練參數(shù),讓小網(wǎng)絡(luò)有了大網(wǎng)絡(luò)的識(shí)別能力,起到了模型壓縮的作用,訓(xùn)練整體流程如下。
輸入:實(shí)驗(yàn)所用的數(shù)據(jù)集D。
輸出:教師模型與學(xué)生模型的預(yù)測(cè)結(jié)果。
1)將實(shí)驗(yàn)所用的數(shù)據(jù)集D中所有圖片合并,按一定的比例隨機(jī)分為訓(xùn)練集DTR、測(cè)試集DTE與驗(yàn)證集DVE。
2)將訓(xùn)練集DTR、測(cè)試集DTE與驗(yàn)證集DVE中的圖片采用拉伸縮放的形式,縮放至適應(yīng)教師模型InceptionV3與學(xué)生模型AlexNet的大小。
3)使用訓(xùn)練集DTR訓(xùn)練教師模型InceptionV3,使用驗(yàn)證集DVE與測(cè)試集DTE實(shí)時(shí)測(cè)量InceptionV3的分類性能并更新其參數(shù)。
4)將訓(xùn)練好的教師模型參數(shù)固化,獲得其輸出Z。
5)使用訓(xùn)練集DTR訓(xùn)練學(xué)生模型,在訓(xùn)練過(guò)程中將Z作為監(jiān)督信息用于loss計(jì)算,使用驗(yàn)證集DVE實(shí)時(shí)測(cè)量AlexNet的分類性能并更新其參數(shù)。
6)將訓(xùn)練好的AlexNet模型參數(shù)固化,利用測(cè)試集DTE獲得相應(yīng)的預(yù)測(cè)結(jié)果。
實(shí)驗(yàn)在一臺(tái)桌面級(jí)高性能GPU工作站上進(jìn)行,運(yùn)行系統(tǒng)為L(zhǎng)inux,操作平臺(tái)為ubuntu 16.04。工作站配備一顆Intel Xeon E5- 1650 v4六核心處理器,主頻為3.6 GHz,內(nèi)存32 GB,GPU為Nvidia Geforce GTX 1080Ti,顯存11 GB。實(shí)驗(yàn)使用的深度學(xué)習(xí)框架為PyTorch,運(yùn)行平臺(tái)為JetBrains公司提供的Python語(yǔ)言開發(fā)工具Pycharm。PyTorch是由Facebook公司的研發(fā)團(tuán)隊(duì)開發(fā)的一款針對(duì)深度學(xué)習(xí)與深度神經(jīng)網(wǎng)絡(luò)編程的工具包,使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò),用戶可以方便地調(diào)用相關(guān)的函數(shù)工具包,而不需要自己編寫所有的實(shí)現(xiàn)算法,從而節(jié)省了大量時(shí)間,提高了學(xué)習(xí)效率。
實(shí)驗(yàn)采用的數(shù)據(jù)來(lái)自廣州市婦女兒童醫(yī)學(xué)中心,由醫(yī)學(xué)中心患者常規(guī)臨床檢測(cè)時(shí)拍攝的醫(yī)學(xué)影像組成,并由美國(guó)加州大學(xué)圣地亞哥分校研究員Daniel Kermany等在2018年發(fā)布于開源數(shù)據(jù)庫(kù)Mendeley。該數(shù)據(jù)集中包含了總量為5 856張的人體胸部X光照片,圖像格式為JPEG,數(shù)據(jù)分布情況如表5所示。
表5 數(shù)據(jù)集成分分布 Tab. 5 Component distribution of datasets
胸部X光照片作為肺炎診斷的重要依據(jù),照片的質(zhì)量對(duì)于診斷結(jié)果的影響很大,因此,數(shù)據(jù)集中的照片首先由有經(jīng)驗(yàn)的醫(yī)生初步篩選,得到質(zhì)量較為穩(wěn)定的圖像后,再由相關(guān)專家進(jìn)行人工標(biāo)記。數(shù)據(jù)集中的X光照片分為訓(xùn)練集與測(cè)試集,訓(xùn)練集的人工標(biāo)記由兩位肺部疾病專家完成。為避免因人工標(biāo)記造成的誤差,保證檢測(cè)效果,測(cè)試集的標(biāo)記由另一位專家完成。測(cè)試集與訓(xùn)練集X光照片的數(shù)量比例為約為1∶10,同時(shí)為滿足InceptionV3與AlexNet模型的輸入要求,采用拉伸縮放的方式,將X光照片的大小分別調(diào)整為299×299和224×224像素尺寸,如圖2所示。
圖2 胸部X光圖像示例Fig. 2 Examples of chest X-ray images
在實(shí)驗(yàn)過(guò)程中,訓(xùn)練InceptionV3模型采用遷移學(xué)習(xí)的方式,將全連接層的參數(shù)隨機(jī)初始化后開始訓(xùn)練。將學(xué)習(xí)率設(shè)置為5×10-3,并設(shè)置衰減率為0.9,每隔7個(gè)epoch衰減一次。分類函數(shù)使用softmax函數(shù),損失函數(shù)則使用交叉熵函數(shù)(Cross Entropy Loss),優(yōu)化方法采用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)算法。雖然常用的優(yōu)化方法為Adam,但它也有收斂過(guò)快難以達(dá)到最優(yōu)解的問(wèn)題。在本實(shí)驗(yàn)中經(jīng)過(guò)比較發(fā)現(xiàn),采用SGD能夠取得更優(yōu)的結(jié)果。在AlexNet模型訓(xùn)練過(guò)程中,將學(xué)習(xí)率設(shè)置為2×10-4,衰減率設(shè)為0.9,采用與InceptionV3模型相同的遷移學(xué)習(xí)方法。損失函數(shù)使用交叉熵函數(shù),分類函數(shù)使用softmax,優(yōu)化方法同樣采用隨機(jī)梯度下降算法。
對(duì)于醫(yī)學(xué)影像分類,評(píng)價(jià)其性能的指標(biāo)一般有三個(gè),分別為準(zhǔn)確率(Accuracy,Acc)、特異性(Specificity)與靈敏度(Sensitivity)。準(zhǔn)確率即預(yù)測(cè)患者是否患有肺炎與實(shí)際結(jié)果之比,體現(xiàn)模型的預(yù)測(cè)能力;特異性又被稱為正陽(yáng)率(True Positive Rate,TPR),即將正?;颊哳A(yù)測(cè)為正常的概率,正陽(yáng)率越高則誤診的概率越低;靈敏度又被稱為正陰率(True Negative Rate,TNR),即將肺炎患者預(yù)測(cè)為患有肺炎的概率,正陰率越高則漏診的概率越低。
計(jì)算準(zhǔn)確率(Acc)、特異性(TPR)與靈敏度(TNR)的公式如下:
Acc=(TP+TN)/(TP+TN+FN+TN)
(3)
TPR=TP/(TP+FN)
(4)
TNR=TN/(FP+TN)
(5)
其中:TP、TN、FP、FN分別代表正陽(yáng)性、正陰性、假陽(yáng)性與假陰性。同時(shí),為了全面衡量?jī)?yōu)化前后的AlexNet以及InceptionV3模型的性能,采用的指標(biāo)還有顯存占用量、GPU使用率及訓(xùn)練時(shí)間。
針對(duì)分類任務(wù)特點(diǎn),實(shí)驗(yàn)首先比較了幾種較為流行的深度學(xué)習(xí)模型對(duì)本文所用數(shù)據(jù)集的識(shí)別準(zhǔn)確率及損失。其中,損失為交叉熵函數(shù)的輸出,主要體現(xiàn)預(yù)測(cè)值與真實(shí)值的概率分布情況。在訓(xùn)練過(guò)程中損失常常作為訓(xùn)練結(jié)果的參考,通常在0.02及以下時(shí)說(shuō)明分類器已經(jīng)取得了較好的訓(xùn)練效果。選取的模型有AlexNet、VGG16[19]、ResNet18[20]、ResNet34[20]、InceptionV3,在同一訓(xùn)練集與測(cè)試集下,它們的分類性能如表6所示。
表6 各模型識(shí)別準(zhǔn)確率 Tab. 6 Recognition accuracy of each model
經(jīng)過(guò)比較后發(fā)現(xiàn),具有inception結(jié)構(gòu)的InceptionV3模型在肺炎CT圖像分類上表現(xiàn)更加優(yōu)異。故本文選取了InceptionV3模型作為優(yōu)化方法中的Teacher Module,同時(shí)選取網(wǎng)絡(luò)結(jié)構(gòu)更加簡(jiǎn)單的AlexNet作為Student Module。在訓(xùn)練過(guò)程中,比較兩者對(duì)于系統(tǒng)資源的占用情況,如表7所示??梢钥闯觯c前者相比,AlexNet模型無(wú)論在顯存占用、GPU使用率還是訓(xùn)練時(shí)間上都更加具有優(yōu)勢(shì)。
表7 AlexNet與InceptionV3模型系統(tǒng)資源占用情況 Tab. 7 Occupation of system resources of AlexNet and Inception V3 models
訓(xùn)練結(jié)束后,比較由本文方法優(yōu)化后的AlexNet(以下稱AlexNet_S)與優(yōu)化前的AlexNet模型對(duì)肺炎CT圖像分類性能的差異,同時(shí)使用InceptionV3模型(表8中稱為Teacher Module)作為參考標(biāo)準(zhǔn)??梢钥闯?,優(yōu)化后的模型對(duì)肺炎的識(shí)別準(zhǔn)確率有了明顯的提高,在衡量模型性能的參數(shù)特異性與靈敏度上也有一定的提升。
如表8所示,AlexNet_S模型與InceptionV3模型相比,前者作為Student Module,比后者節(jié)省了近一半的顯存,使其能夠更加靈活地部署在擁有不同大小顯存的計(jì)算機(jī)上;同時(shí),GPU使用率下降了51個(gè)百分點(diǎn),使Student Module能夠應(yīng)用于GPU計(jì)算能力較弱的計(jì)算機(jī)上,讓神經(jīng)網(wǎng)絡(luò)的可移植性大幅度提高。
表8 優(yōu)化前后AlexNet模型性能對(duì)比 單位:% Tab. 8 Performance comparison of AlexNet model before and after optimization unit:%
在衡量模型性能的指標(biāo)方面,如表8所示,AlexNet_S模型比未優(yōu)化的AlexNet模型在衡量模型分類能力的指標(biāo)準(zhǔn)確率上,前者比后者提高了4.1個(gè)百分點(diǎn),比InceptionV3模型提高了2.39個(gè)百分點(diǎn)。在肺炎診斷的過(guò)程中,及時(shí)發(fā)現(xiàn)及時(shí)治療對(duì)于患者最為有利,而靈敏度越高,模型對(duì)于肺炎判別的漏診率越低。AlexNet_S模型比AlexNet模型的靈敏度提高了1.97個(gè)百分點(diǎn),且與InceptionV3模型在靈敏度參數(shù)上性能相同。特異性作為衡量模型正確識(shí)別正?;颊吣芰Φ闹匾笜?biāo),特異性越高,模型對(duì)于肺炎判別的誤診率越低。在特異性這一指標(biāo)上,AlexNet_S模型比AlexNet模型提高了7.45個(gè)百分點(diǎn),比InceptionV3提高了6.41個(gè)百分點(diǎn)。
綜合實(shí)驗(yàn)結(jié)果,可以看出通過(guò)知識(shí)蒸餾的方法能夠有效增強(qiáng)學(xué)生模型的識(shí)別能力,提高其分類性能。學(xué)生模型在特異性指標(biāo)上比原有模型大幅度提高,在識(shí)別準(zhǔn)確率以及靈敏度指標(biāo)上達(dá)到甚至超過(guò)教師模型。
針對(duì)醫(yī)學(xué)影像分類特點(diǎn),本文提出了一種使用卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)肺炎CT圖像分類的方法。利用兩種結(jié)構(gòu)、深度不同的神經(jīng)網(wǎng)絡(luò)模型AlexNet與InceptionV3,使用知識(shí)蒸餾方法得到優(yōu)化后的模型AlexNet_S,在分類性能上接近甚至超過(guò)InceptionV3模型的同時(shí),大幅度降低了模型對(duì)系統(tǒng)資源的需求。在今后的工作中,進(jìn)一步提高教師模型的性能,同時(shí)減少學(xué)生模型對(duì)系統(tǒng)資源的需求可以作為未來(lái)研究的方向。