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