華東理工大學(xué) 楊沐泓 方霄揚(yáng) 楊怡婧 光 磊
本文提出了一個(gè)基于遷移學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)的醫(yī)療影像自動(dòng)診斷。在Kaggle新冠肺炎數(shù)據(jù)集上,F(xiàn)1得分達(dá)到0.838。實(shí)驗(yàn)結(jié)果表明,這種方法在新冠肺炎影像的識(shí)別中是有效的。
2020年初,新冠肺炎(Coronavirus,COVID-19)疫情突然爆發(fā)。隨著病人確診數(shù)量急劇增加,全國各級(jí)醫(yī)院的醫(yī)療影像檢查需求激增,然而經(jīng)過專門訓(xùn)練能夠?qū)σ伤撇±挠跋襁M(jìn)行診斷的專業(yè)醫(yī)生非常少,這就使得準(zhǔn)確診斷新冠肺炎變得非常有挑戰(zhàn)性。
使用機(jī)器學(xué)習(xí)方法,自主學(xué)習(xí)醫(yī)療影像中特征,進(jìn)而準(zhǔn)確分析近年來,隨著人工智能深度學(xué)習(xí)的飛速發(fā)展,使得對影像數(shù)據(jù)進(jìn)行深度學(xué)習(xí)建模成為可能。從2012年的ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽上,Krezhevsky等(Krizhevsky A,Sutskever I,Hinton G.ImageNet Classification with Deep Convolutional Neural Networks)憑著改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)模型得到了最佳的分類效果開始,CNN開始受到人們的重視,在人臉識(shí)別、無人駕駛等方面都有杰出的表現(xiàn)。CNN近年正逐漸成為醫(yī)療圖像分類篩查的標(biāo)準(zhǔn)技術(shù)。呂鴻蒙等(呂鴻蒙,趙地,遲學(xué)斌.基于增強(qiáng)AlexNet的深度學(xué)習(xí)的阿爾茨海默病的早期診斷)根據(jù)阿爾茲海默癥(Alzheimer disease,AD)的特點(diǎn)改進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)AlexNet,得到增強(qiáng)的AlexNet模型,在多種AD分類問題上都得到了高于95%的準(zhǔn)確率。Sun等(Sun W,Zheng B,Qian W.Computer aided lung cancer diagnosis with deep learning algorithms)在肺圖像數(shù)據(jù)集聯(lián)盟(Lung Image Database Consortium,LIDC)上對使用深度學(xué)習(xí)算法進(jìn)行肺部疾病診斷進(jìn)行了可行性測試。實(shí)驗(yàn)中發(fā)現(xiàn)CNN的準(zhǔn)確率為0.7976,高于傳統(tǒng)計(jì)算機(jī)輔助診斷(Computer-Aided Diagnosis,CADx)的正確率0.7940。Wang等(Wang D,Khosla A,Gargeya R,et al.Deep Learning for Identifying Metastatic Breast Cancer)應(yīng)用深度卷積神經(jīng)網(wǎng)絡(luò)GoogleNet來識(shí)別轉(zhuǎn)移性乳腺癌,在全視野病理數(shù)字切片(whole slide image,WSI)分類任務(wù)中ROC曲線下方面積大小(Area Under Curve,AUC)達(dá)到0.925。若與病理學(xué)家的診斷結(jié)果相結(jié)合,可以將病理學(xué)家的AUC提高到0.995,錯(cuò)誤率降低大約85%。這說明深度學(xué)習(xí)可以顯著提高疾病診斷的正確率。
目前深度學(xué)習(xí)可以并對新的醫(yī)療圖像做出判斷,能夠提高診斷效率,并降低誤診可能。對于乳腺癌、肺結(jié)節(jié)等疾病已經(jīng)有計(jì)算機(jī)輔助診斷系統(tǒng)被研發(fā)出來,輔助醫(yī)生進(jìn)行疾病診斷。然而,由于新冠病人的影像的獨(dú)特性,目前,能夠勝任新冠病毒自動(dòng)診斷的AI系統(tǒng)非常有限。
考慮到醫(yī)療影像標(biāo)記數(shù)據(jù)較少、標(biāo)記難度大等特點(diǎn),本文運(yùn)用已初步訓(xùn)練好的模型,對少量樣本進(jìn)行迭代更新。遷移學(xué)習(xí)能有效規(guī)避訓(xùn)練數(shù)據(jù)不足的缺陷,提高神經(jīng)網(wǎng)絡(luò)的性能,借助多源遷移學(xué)習(xí)方法訓(xùn)練神經(jīng)網(wǎng)絡(luò),將各數(shù)據(jù)源訓(xùn)練的不同的權(quán)重參數(shù)匯成一個(gè)權(quán)重參數(shù)集,再訓(xùn)練集合各權(quán)重參數(shù)的。得到預(yù)訓(xùn)練模型之后,我們可以用醫(yī)學(xué)影像數(shù)據(jù)對系統(tǒng)進(jìn)行迭代更新,從而達(dá)到對疾病進(jìn)行診斷的目的。最終,我們在共746張新冠相關(guān)影像數(shù)據(jù)集上獲得了84.4%的準(zhǔn)確率,證明了本系統(tǒng)對新冠數(shù)據(jù)識(shí)別的有效性。
1962年,Hubel和Wiesel對貓的視覺皮層進(jìn)行了研究,首次發(fā)現(xiàn)了視覺神經(jīng)元對移動(dòng)邊緣刺激的敏感,并定義了簡單細(xì)胞和復(fù)雜細(xì)胞,這為后來卷積神經(jīng)網(wǎng)絡(luò)研究奠定了基礎(chǔ)。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是多層感知機(jī)的變種,由輸入層、卷積層、池化層、全連接層、輸出層組成。卷積層負(fù)責(zé)提取特征,由多個(gè)特征面(feature map)組成,每個(gè)特征面又有多個(gè)神經(jīng)元。同一個(gè)特征面上的神經(jīng)元卷積核參數(shù)固定,即權(quán)值共享。隨著卷積層層數(shù)增加,輸出的特征逐漸抽象。卷積過程就是卷積核上的權(quán)值參數(shù)與其輸入圖像對應(yīng)元素相乘并求和,然后加上偏置值、通過激活函數(shù),得到神經(jīng)元的輸出值。假設(shè)輸入一張圖像,則卷積層原理如式(1)所示:
池化層對特征面進(jìn)行下采樣操作,目的是降低特征空間。池化操作在算力充足的條件下不是必須的。常見的池化操作有最大值池化、平均值池化等。一般池化層夾雜在連續(xù)的卷積層之間。
經(jīng)過卷積和池化操作,我們得到了特征矩陣。將其作為全連接網(wǎng)絡(luò)的輸入,將每層神經(jīng)元的加權(quán)和傳遞給下一層的神經(jīng)元,與偏置值相加后通過激活函數(shù)即可得到神經(jīng)元的輸出。第l第j個(gè)神經(jīng)元的輸出如式(2)所示:
其中n表示第l-1層神經(jīng)元數(shù)量,wij表示權(quán)值,表示第l-1層第i個(gè)神經(jīng)元的輸出,表示偏置值。
采用訓(xùn)練函數(shù)衡量CNN神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差,常用的損失函數(shù)有均方誤差(Mean Square Error)和K-L散度(K-L divergence)等。CNN常用反向傳播算法(backpropagation)最小化訓(xùn)練誤差。
在本模型中,我們選用了VGGNet搭建模型。VGGNet可以方便的與遷移學(xué)習(xí)結(jié)合。與一般的卷積神經(jīng)網(wǎng)絡(luò)相比,VGGNet增大了神經(jīng)網(wǎng)絡(luò)的深度,并采用了較小的卷積核來代替AlexNet中較大的卷積核,在降低參數(shù)量的同時(shí)提高了非線性特征的表達(dá)能力。
遷移學(xué)習(xí)是指將源域中的知識(shí)遷移到目標(biāo)域中以提升學(xué)習(xí)模型的表現(xiàn)。傳統(tǒng)分類學(xué)習(xí)的可靠性與準(zhǔn)確性大都基于以下兩個(gè)假設(shè):(1)訓(xùn)練集和測試集中的樣本滿足獨(dú)立同分布條件;(2)有足夠多的訓(xùn)練樣本。但是醫(yī)療影像難以獲得,且標(biāo)注成本很高,難以滿足以上假設(shè),而遷移學(xué)習(xí)可以很好的解決這些問題。VGG-16具有很深的網(wǎng)絡(luò)結(jié)構(gòu),在網(wǎng)絡(luò)低層次提取到的特征與數(shù)據(jù)集關(guān)系不大,而在高層次提取到的特征與目標(biāo)任務(wù)緊密相關(guān),所以預(yù)訓(xùn)練模型和目標(biāo)模型可以共享低層次參數(shù),只需重新訓(xùn)練高層權(quán)重。圖1顯示了一般模型的遷移學(xué)習(xí)過程,在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),而后保持模型低層預(yù)訓(xùn)練權(quán)重不變,更新高層權(quán)重,解決新數(shù)據(jù)集上的學(xué)習(xí)任務(wù)。
圖1 遷移學(xué)習(xí):ImageNet上預(yù)訓(xùn)練模型,保持低層權(quán)重不變,重新訓(xùn)練高層權(quán)重
圖2 改進(jìn)后的VGG-16:凍結(jié)預(yù)訓(xùn)練模型VGG-16,只訓(xùn)練添加層;而后解凍至Conv5-3,重新進(jìn)行訓(xùn)練
實(shí)驗(yàn)采用了來自Kaggle的COVID-19數(shù)據(jù)集,其內(nèi)有肺部CT圖像正樣本349張和負(fù)樣本397張。該數(shù)據(jù)集內(nèi)COVID-19的CT圖像來自medRxiv,bioRxiv,NEJM,JAMA,Lancet等期刊內(nèi)與新冠肺炎相關(guān)的論文(Yang X,He X,Zhao J,et al.COVID-CT-Dataset:A CT Scan Dataset about COVID-19),并通過文章內(nèi)容對樣本進(jìn)行標(biāo)注。
我們選擇了VGG-16作為預(yù)訓(xùn)練網(wǎng)絡(luò),并在此基礎(chǔ)上添加了一個(gè)池化層和兩個(gè)全連接層,網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。而后將VGG-16點(diǎn)所有權(quán)重凍結(jié),對最后三層進(jìn)行訓(xùn)練,防止隨機(jī)初始化的參數(shù)影響預(yù)訓(xùn)練好的權(quán)重。訓(xùn)練完成后,將VGG-16解凍至Conv5-3,重新進(jìn)行訓(xùn)練。
圖3 改進(jìn)后VGG-16的F1分?jǐn)?shù)
本文將改進(jìn)后的VGG-16與CNN進(jìn)行比較,F(xiàn)1分?jǐn)?shù)分別為0.838和0.797,提高了0.041,這說明我們訓(xùn)練得到的模型是有效的。VGG-16在訓(xùn)練集與驗(yàn)證集上的F1分?jǐn)?shù)如圖3所示。
圖4 改進(jìn)后VGG-16的訓(xùn)練迭代過程
圖4顯示了改進(jìn)后VGG-16的訓(xùn)練迭代過程,可以發(fā)現(xiàn)在迭代60次后損失函數(shù)曲線趨于平緩,符合深度學(xué)習(xí)曲線的迭代規(guī)律。
結(jié)論:在本文中,我們提出了一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)和遷移學(xué)習(xí)的針對COVID-19的醫(yī)療診斷,并將其應(yīng)用于Kaggle的新冠肺炎數(shù)據(jù)集中。我們對VGG-16進(jìn)行改進(jìn),添加了一層池化層和兩層全連接層用于凍結(jié)預(yù)訓(xùn)練模型后的訓(xùn)練。我們將VGG-16作為預(yù)訓(xùn)練網(wǎng)絡(luò),得到預(yù)訓(xùn)練模型后將其凍結(jié),對添加層進(jìn)行訓(xùn)練,再對部分層解凍。將改進(jìn)后的VGG-16與CNN對比后發(fā)現(xiàn),在Kaggle肺炎數(shù)據(jù)集上,本方法的F1分?jǐn)?shù)高出了0.041。