華東理工大學 楊沐泓 方霄揚 楊怡婧 光 磊
本文提出了一個基于遷移學習與卷積神經網絡的醫療影像自動診斷。在Kaggle新冠肺炎數據集上,F1得分達到0.838。實驗結果表明,這種方法在新冠肺炎影像的識別中是有效的。
2020年初,新冠肺炎(Coronavirus,COVID-19)疫情突然爆發。隨著病人確診數量急劇增加,全國各級醫院的醫療影像檢查需求激增,然而經過專門訓練能夠對疑似病例的影像進行診斷的專業醫生非常少,這就使得準確診斷新冠肺炎變得非常有挑戰性。
使用機器學習方法,自主學習醫療影像中特征,進而準確分析近年來,隨著人工智能深度學習的飛速發展,使得對影像數據進行深度學習建模成為可能。從2012年的ImageNet大規模視覺識別挑戰賽上,Krezhevsky等(Krizhevsky A,Sutskever I,Hinton G.ImageNet Classification with Deep Convolutional Neural Networks)憑著改進的卷積神經網絡(Convolutional Neural Network,CNN)模型得到了最佳的分類效果開始,CNN開始受到人們的重視,在人臉識別、無人駕駛等方面都有杰出的表現。CNN近年正逐漸成為醫療圖像分類篩查的標準技術。呂鴻蒙等(呂鴻蒙,趙地,遲學斌.基于增強AlexNet的深度學習的阿爾茨海默病的早期診斷)根據阿爾茲海默癥(Alzheimer disease,AD)的特點改進了卷積神經網絡AlexNet,得到增強的AlexNet模型,在多種AD分類問題上都得到了高于95%的準確率。Sun等(Sun W,Zheng B,Qian W.Computer aided lung cancer diagnosis with deep learning algorithms)在肺圖像數據集聯盟(Lung Image Database Consortium,LIDC)上對使用深度學習算法進行肺部疾病診斷進行了可行性測試。實驗中發現CNN的準確率為0.7976,高于傳統計算機輔助診斷(Computer-Aided Diagnosis,CADx)的正確率0.7940。Wang等(Wang D,Khosla A,Gargeya R,et al.Deep Learning for Identifying Metastatic Breast Cancer)應用深度卷積神經網絡GoogleNet來識別轉移性乳腺癌,在全視野病理數字切片(whole slide image,WSI)分類任務中ROC曲線下方面積大小(Area Under Curve,AUC)達到0.925。若與病理學家的診斷結果相結合,可以將病理學家的AUC提高到0.995,錯誤率降低大約85%。這說明深度學習可以顯著提高疾病診斷的正確率。
目前深度學習可以并對新的醫療圖像做出判斷,能夠提高診斷效率,并降低誤診可能。對于乳腺癌、肺結節等疾病已經有計算機輔助診斷系統被研發出來,輔助醫生進行疾病診斷。然而,由于新冠病人的影像的獨特性,目前,能夠勝任新冠病毒自動診斷的AI系統非常有限。
考慮到醫療影像標記數據較少、標記難度大等特點,本文運用已初步訓練好的模型,對少量樣本進行迭代更新。遷移學習能有效規避訓練數據不足的缺陷,提高神經網絡的性能,借助多源遷移學習方法訓練神經網絡,將各數據源訓練的不同的權重參數匯成一個權重參數集,再訓練集合各權重參數的。得到預訓練模型之后,我們可以用醫學影像數據對系統進行迭代更新,從而達到對疾病進行診斷的目的。最終,我們在共746張新冠相關影像數據集上獲得了84.4%的準確率,證明了本系統對新冠數據識別的有效性。
1962年,Hubel和Wiesel對貓的視覺皮層進行了研究,首次發現了視覺神經元對移動邊緣刺激的敏感,并定義了簡單細胞和復雜細胞,這為后來卷積神經網絡研究奠定了基礎。
卷積神經網絡(convolutional neural network,CNN)是多層感知機的變種,由輸入層、卷積層、池化層、全連接層、輸出層組成。卷積層負責提取特征,由多個特征面(feature map)組成,每個特征面又有多個神經元。同一個特征面上的神經元卷積核參數固定,即權值共享。隨著卷積層層數增加,輸出的特征逐漸抽象。卷積過程就是卷積核上的權值參數與其輸入圖像對應元素相乘并求和,然后加上偏置值、通過激活函數,得到神經元的輸出值。假設輸入一張圖像,則卷積層原理如式(1)所示:

池化層對特征面進行下采樣操作,目的是降低特征空間。池化操作在算力充足的條件下不是必須的。常見的池化操作有最大值池化、平均值池化等。一般池化層夾雜在連續的卷積層之間。
經過卷積和池化操作,我們得到了特征矩陣。將其作為全連接網絡的輸入,將每層神經元的加權和傳遞給下一層的神經元,與偏置值相加后通過激活函數即可得到神經元的輸出。第l第j個神經元的輸出如式(2)所示:

其中n表示第l-1層神經元數量,wij表示權值,表示第l-1層第i個神經元的輸出,表示偏置值。
采用訓練函數衡量CNN神經網絡的訓練誤差,常用的損失函數有均方誤差(Mean Square Error)和K-L散度(K-L divergence)等。CNN常用反向傳播算法(backpropagation)最小化訓練誤差。
在本模型中,我們選用了VGGNet搭建模型。VGGNet可以方便的與遷移學習結合。與一般的卷積神經網絡相比,VGGNet增大了神經網絡的深度,并采用了較小的卷積核來代替AlexNet中較大的卷積核,在降低參數量的同時提高了非線性特征的表達能力。
遷移學習是指將源域中的知識遷移到目標域中以提升學習模型的表現。傳統分類學習的可靠性與準確性大都基于以下兩個假設:(1)訓練集和測試集中的樣本滿足獨立同分布條件;(2)有足夠多的訓練樣本。但是醫療影像難以獲得,且標注成本很高,難以滿足以上假設,而遷移學習可以很好的解決這些問題。VGG-16具有很深的網絡結構,在網絡低層次提取到的特征與數據集關系不大,而在高層次提取到的特征與目標任務緊密相關,所以預訓練模型和目標模型可以共享低層次參數,只需重新訓練高層權重。圖1顯示了一般模型的遷移學習過程,在ImageNet數據集上預訓練卷積神經網絡,而后保持模型低層預訓練權重不變,更新高層權重,解決新數據集上的學習任務。

圖1 遷移學習:ImageNet上預訓練模型,保持低層權重不變,重新訓練高層權重

圖2 改進后的VGG-16:凍結預訓練模型VGG-16,只訓練添加層;而后解凍至Conv5-3,重新進行訓練
實驗采用了來自Kaggle的COVID-19數據集,其內有肺部CT圖像正樣本349張和負樣本397張。該數據集內COVID-19的CT圖像來自medRxiv,bioRxiv,NEJM,JAMA,Lancet等期刊內與新冠肺炎相關的論文(Yang X,He X,Zhao J,et al.COVID-CT-Dataset:A CT Scan Dataset about COVID-19),并通過文章內容對樣本進行標注。
我們選擇了VGG-16作為預訓練網絡,并在此基礎上添加了一個池化層和兩個全連接層,網絡結構如圖2所示。而后將VGG-16點所有權重凍結,對最后三層進行訓練,防止隨機初始化的參數影響預訓練好的權重。訓練完成后,將VGG-16解凍至Conv5-3,重新進行訓練。

圖3 改進后VGG-16的F1分數
本文將改進后的VGG-16與CNN進行比較,F1分數分別為0.838和0.797,提高了0.041,這說明我們訓練得到的模型是有效的。VGG-16在訓練集與驗證集上的F1分數如圖3所示。

圖4 改進后VGG-16的訓練迭代過程
圖4顯示了改進后VGG-16的訓練迭代過程,可以發現在迭代60次后損失函數曲線趨于平緩,符合深度學習曲線的迭代規律。
結論:在本文中,我們提出了一個基于卷積神經網絡和遷移學習的針對COVID-19的醫療診斷,并將其應用于Kaggle的新冠肺炎數據集中。我們對VGG-16進行改進,添加了一層池化層和兩層全連接層用于凍結預訓練模型后的訓練。我們將VGG-16作為預訓練網絡,得到預訓練模型后將其凍結,對添加層進行訓練,再對部分層解凍。將改進后的VGG-16與CNN對比后發現,在Kaggle肺炎數據集上,本方法的F1分數高出了0.041。