郭保蘇,莊集超,吳鳳和,車小雙,袁林棟,齊 軍
(1.燕山大學(xué) 機械工程學(xué)院,河北 秦皇島 066004;2.聊城市人民醫(yī)院,山東 聊城 252000)
在傳統(tǒng)的病毒檢測中,需要對每例疑似病例進(jìn)行逆轉(zhuǎn)錄聚合酶鏈反應(yīng)(RT-PCR)檢測確診,然而RT-PCR方法十分耗時且檢測的假陰性率較高[1],胸部CT圖像檢查則可有效地對COVID-19(新冠病毒肺炎)患者肺部影像和治療效果進(jìn)行醫(yī)學(xué)評估[2]。胸部CT圖像提供了豐富的病理信息,但由于缺乏計算機來準(zhǔn)確地量化感染區(qū)域及其病理變化,醫(yī)護(hù)人員無法快速地提供診斷篩查。馮雨等[3]針對傳統(tǒng)計算機輔助檢測系統(tǒng)中肺結(jié)節(jié)檢測存在大量假陽性問題,提出了一種基于三維卷積神經(jīng)網(wǎng)絡(luò)的肺結(jié)節(jié)識別方法。馬圓等[4]采用深度信念網(wǎng)絡(luò)方法對CT圖像的良惡性肺結(jié)節(jié)進(jìn)行識別研究。黃盛等[5]基于改進(jìn)的深度殘差網(wǎng)絡(luò),提出更加適合肺部組織的CT圖像模式分類模型。采用人工智能的方法可快速分析病例特征,檢測胸部CT圖像是否有顯示任何異常,并供臨床醫(yī)生進(jìn)一步診斷,以便進(jìn)行治療或隔離。本文將人工智能與初步臨床理解相結(jié)合,以應(yīng)對COVID-19帶來的巨大挑戰(zhàn)。
本文的目標(biāo)是基于卷積神經(jīng)網(wǎng)絡(luò)開發(fā)自動化CT圖像分析方法,以便快速區(qū)分COVID-19患者與普通肺炎病毒患者,從而為一線醫(yī)護(hù)人員對疾病進(jìn)展的檢測和治療提供支持。目前還未見有關(guān)利用卷積神經(jīng)網(wǎng)絡(luò)在CT圖像中識別COVID-19感染和普通肺炎感染的報道。卷積神經(jīng)網(wǎng)絡(luò)也面臨諸多挑戰(zhàn),不合適的網(wǎng)絡(luò)超參數(shù)會導(dǎo)致算法收斂緩慢、泛化性差,并使模型表現(xiàn)出較差的魯棒性和預(yù)測精度,同時超參數(shù)優(yōu)化需要大量的計算等問題[6]。
Shalu C等[7]使用卷積神經(jīng)網(wǎng)絡(luò)來識別運動成像任務(wù),但并未考慮超參數(shù)對分類性能的影響。Ma M等[8]提出了k-均值聚類初始化超參數(shù)的算法,提高了網(wǎng)絡(luò)識別的準(zhǔn)確性并加快了網(wǎng)絡(luò)訓(xùn)練過程。Ijjina E P等[9]采用遺傳算法優(yōu)化網(wǎng)絡(luò)超參數(shù)可使分類誤差最小化。超參數(shù)自動選擇方法指使用高性能加速模型在選擇過程計算和統(tǒng)計的方法[10]。貝葉斯優(yōu)化算法用于自動搜索深度卷積的最佳超參數(shù),用以配置網(wǎng)絡(luò)[11]。Wang Y等[12]采用粒子群優(yōu)化算法優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并確定超參數(shù)的配置。盡管當(dāng)前的優(yōu)化算法可以表現(xiàn)出不同的復(fù)雜性、優(yōu)化效率、探索能力和評估成本,但超參數(shù)優(yōu)化仍然值得研究和探索。
本文提出了一種基于CT圖像卷積神經(jīng)網(wǎng)絡(luò)處理的新冠肺炎檢測算法。通過對卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和超參數(shù)進(jìn)行優(yōu)化,增強網(wǎng)絡(luò)模型對新冠肺炎和普通肺炎在胸部CT圖像中紋理特征的區(qū)分能力。實驗結(jié)果表明:該方法相對其他優(yōu)化模型具有更高的檢測精度,提高了網(wǎng)絡(luò)模型對兩類肺炎差異特征的提取和識別能力。
CT圖像數(shù)據(jù)集由疫情一線的臨床醫(yī)生收集,包含1 420張新冠肺炎和1 065張普通肺炎的CT圖像,每張圖像的切片厚度為12 mm,尺寸為1 737×864 pixels。由臨床醫(yī)生在每張CT圖像上對兩種肺炎的對應(yīng)病理區(qū)域采用綠色不規(guī)則多邊形進(jìn)行標(biāo)注,如圖1所示。從所標(biāo)注的病理區(qū)域中裁剪出32×32 pixels的圖像塊,以便網(wǎng)絡(luò)模型能夠更加精準(zhǔn)地提取肺炎特定病理的紋理特征。所獲得的數(shù)據(jù)量包含3 850張新冠肺炎CT圖像塊和3 212張普通肺炎CT圖像塊,每種肺炎的部分圖像塊如圖2所示。本文采用3折-交叉驗證的方式進(jìn)行驗證,隨機挑選2組圖像塊作為訓(xùn)練集,余下圖像塊作為1組測試集,具體數(shù)量如表1所示。為使進(jìn)一步拓展訓(xùn)練集,可進(jìn)行后續(xù)的數(shù)據(jù)增廣,包括翻轉(zhuǎn)和旋轉(zhuǎn)。
圖1 CT圖像標(biāo)注區(qū)域Fig.1 Labeled areas of CT image
表1 數(shù)據(jù)集描述Tab.1 Description of dataset
圖2 CT圖像塊樣本示意Fig.2 CT image patch examples
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)是一種結(jié)合特征提取和檢測的模型[13]。通過多層卷積捕獲圖像的特征,然后利用全連接層和SoftMax分類器進(jìn)行分類[14]。
在實際訓(xùn)練中,隨著網(wǎng)絡(luò)層數(shù)的加深,在反向傳播過程中梯度越容易消失,導(dǎo)致網(wǎng)絡(luò)參數(shù)無法更新從而影響網(wǎng)絡(luò)的收斂。為解決上述問題,本文采用了殘差網(wǎng)絡(luò)[15]中的殘差單元,如圖3所示,以避免深層網(wǎng)絡(luò)出現(xiàn)的網(wǎng)絡(luò)退化問題。輸入值x經(jīng)過卷積層(Conv)變換,歸一化和激活函數(shù)后得到殘差F(x)。在下一次卷積映射后,所得到的F(x)與x用shortcut的方式進(jìn)行連接,兩者的和再經(jīng)過歸一化和激活函數(shù)。
圖3 殘差單元Fig.3 Residual block
本文構(gòu)建了一個卷積神經(jīng)網(wǎng)絡(luò),通過多層卷積和池化捕獲CT圖像的低級特征和高級抽象特征,然后通過全連接層和SoftMax分類器進(jìn)行分類。卷積層(Conv)通過移動卷積核來提取圖像特征。池化層(Pooling)通過中間計算過程減小特征圖輸出的尺寸,從而減小圖像尺寸,以降低模型訓(xùn)練計算的復(fù)雜性。全連接層(FC)通過將模型連接至SoftMax分類器。該層的每個輸出可被視為將前一層的每個節(jié)點乘以權(quán)重系數(shù)。SoftMax分類器輸出與輸入標(biāo)簽相同數(shù)量神經(jīng)元的概率。將上述各層進(jìn)行疊加,以構(gòu)建本文所提出的CNN模型。CNN利用輸出和標(biāo)簽之間的差異控制權(quán)重的變化。由于線性結(jié)構(gòu)的網(wǎng)絡(luò)不能適應(yīng)復(fù)雜的功能,利用激活函數(shù)提高模型的非線性功能。圖4展示了本文所提出的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),主要包括Layer單元,F(xiàn)C層和SoftMax分類器。在Layer單元中包括3個Conv層和1個Pooling層。為了便于訓(xùn)練和避免梯度消失問題,在Layer單元中采用殘差單元,將圖像的原始輸入與第2個Conv層的輸出進(jìn)行融合并作為第3個Conv層的輸入。通過調(diào)整模型深度,以獲取最佳的網(wǎng)絡(luò)結(jié)構(gòu),提高模型的檢測能力。
圖4 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Convolution neural network structure
3.3.1 超參數(shù)描述
卷積神經(jīng)網(wǎng)絡(luò)的成功依賴于所選擇的結(jié)構(gòu)和超參數(shù)[16]。超參數(shù)是一種在模型訓(xùn)練前需要人為設(shè)置的參數(shù),不能通過樣本數(shù)據(jù)估計和模型訓(xùn)練獲得。對于不同的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)集,其最優(yōu)超參數(shù)是不同的,需要通過優(yōu)化超參數(shù)來提高模型的性能。表2展示了常見的卷積神經(jīng)網(wǎng)絡(luò)超參數(shù)。
表2 卷積神經(jīng)網(wǎng)絡(luò)的超參數(shù)Tab.2 Hyper-parameters of convolution neural network
表3給出了本文中所考慮優(yōu)化的超參數(shù)和為每個參數(shù)定義的范圍。當(dāng)沒對選擇的參數(shù)范圍限制時,將產(chǎn)生具有大量參數(shù)的復(fù)雜結(jié)構(gòu),增加訓(xùn)練時間,并且隨機選擇這些參數(shù)值也可能導(dǎo)致網(wǎng)絡(luò)效率低下。為了獲得參數(shù)較少的模型,且該模型能取得具有競爭性的結(jié)果,但同時能夠有效地探索搜索空間。在優(yōu)化超參數(shù)的同時,需要設(shè)置網(wǎng)絡(luò)的固定參數(shù)和超參數(shù)約束:
表3 本文需要優(yōu)化的超參數(shù)范圍Tab.3 The range of hyper-parameters in this work
1) 為防止特征圖尺寸過早縮減,Conv層的Stride固定為1;
2) 相同Layer塊中的Conv層使用相同的超參數(shù)值[17];
3) 所有Conv層和Pooling層的Padding固定為Same方式;
4) Conv層選擇的核尺寸應(yīng)小于或等于上1個Conv層中的核尺寸;
5) Layer塊中的特征映射數(shù)至少應(yīng)比上1個Layer塊中的特征映射數(shù)多出32個;
6) FC層中的神經(jīng)元數(shù)量可設(shè)置為前1個Pooling層中神經(jīng)元數(shù)量的相等或2倍;
7) FC層選擇的丟棄率應(yīng)大于或等于上1個FC層的丟棄率[18]。對于第一個FC層的丟棄率為0.3。
圖5展示了網(wǎng)絡(luò)結(jié)構(gòu)和超參數(shù)約束而形成的初始解,由2個Layer塊組成,其中第1個Layer塊的每個Conv層包括64個濾波器,而第2個Layer塊的每個卷積層有128個濾波器,每個Layer塊的Pooling層采用最大池化方式。
圖5 初始解介紹Fig.5 The introduction of initial solution
3.3.2 禁忌遺傳算法
本文提出了一種禁忌遺傳算法對網(wǎng)絡(luò)的超參數(shù)進(jìn)行優(yōu)化,并基于CT圖像數(shù)據(jù)以獲取最優(yōu)的超參數(shù)組合。該算法結(jié)合了改進(jìn)的遺傳算法與局部搜索算法[19],其流程如圖6所示。
圖6 禁忌遺傳算法流程圖Fig.6 Tabu genetic algorithm workflow
禁忌遺傳算法首先以改進(jìn)的遺傳算法進(jìn)行全局搜索,對超參數(shù)進(jìn)行離散化和編碼后,進(jìn)行種群初始化,適應(yīng)度計算,交叉,變異,選擇等操作直至終止條件。由于傳統(tǒng)的遺傳算法存在最優(yōu)解附近震蕩問題,因此所獲得的解并不一定是全局最優(yōu)解[20]。為此,本文提出結(jié)合爬山算法獲取最優(yōu)解。該方法以改進(jìn)的遺傳算法所獲取的解作為初始點進(jìn)行驅(qū)動,并與相鄰的點進(jìn)行搜索比較,同時建立禁忌列表以跳過已搜索的點。為提高遺傳算法對超參數(shù)優(yōu)化問題的求解能力,對交叉和變異操作進(jìn)行了改進(jìn),并借鑒演化算法[21]中的選擇方式,同時將禁忌搜索算法[22]的禁忌列表融入其中。
交叉操作:為保證父代中優(yōu)秀個體的性狀能在子代個體中盡可能地遺傳,本文將種群按照適應(yīng)度大小進(jìn)行排列,選取適應(yīng)度最高的個體與余下個體進(jìn)行交叉操作,該方法不用設(shè)置交叉概率。圖7展示了交叉操作方式。
圖7 交叉操作Fig.7 Crossover operation
變異操作:提出了一種等差變異操作,即種群所有個體的變異概率并非相同,呈現(xiàn)等差數(shù)列的排布,其數(shù)學(xué)描述如下:
(1)
式中:n表示種群個體數(shù)量;i表示排序后第i個個體;Pmi表示第i個體的變異概率;m表示種群數(shù)。
由式(1)可知個體的適應(yīng)度越小,其變異概率越大,可進(jìn)行自適應(yīng)地變異,不需要人為設(shè)置變異概率。該變異操作對適應(yīng)度越小的個體變異程度越大,能夠很好地跳過局部最優(yōu)解,防止出現(xiàn)過早收斂。
選擇操作:為了保證父代中最優(yōu)個體可以完整的保留到子代,即將搜索引導(dǎo)至可能的超參數(shù)范圍內(nèi),引入了演化算法的選擇方式(μ+λ)。(μ+λ)的選擇集合是父代和子代的并集,可確保最好的個體生存和保存。
禁忌列表:當(dāng)進(jìn)行迭代搜索時,會不可避免地搜索到部分相同點。為避免重復(fù)搜索和減少優(yōu)化時間,引入禁忌列表,以記錄搜索過程中所有不同點的信息。當(dāng)子代出現(xiàn)與前幾代相同的個體時,由禁忌列表輸出適應(yīng)度值,避免重復(fù)計算。
禁忌遺傳算法克服了遺傳算法在最優(yōu)解附近的震蕩問題,采用自適應(yīng)的交叉、變異操作能夠促使算法跳出局部最優(yōu)解,并利用禁忌列表跳過已搜索的點,減少了網(wǎng)絡(luò)評估次數(shù)和計算量,可提高超參數(shù)優(yōu)化的收斂速度。
實驗是在裝有NVIDIA RTX2060圖形處理器和Intel Core i7 CPU的計算機上進(jìn)行。軟件平臺基于Python 3語言和TensorFlow框架實現(xiàn)。
在檢測實驗中,選用識別率、馬修相關(guān)系數(shù)、F1Score等3個評價指標(biāo)[7,23]。
(1) 識別率體現(xiàn)了算法的分類識別的精度。其計算公式為
(2)
式中:TP和TN分別為正確檢出的同一肺炎類型和不同肺炎類型的數(shù)量;FN和FP分別是被誤檢的同一肺炎類型和不同肺炎類型的數(shù)量。
(2) 馬修相關(guān)系數(shù)是更全面的評價指標(biāo),體現(xiàn)了算法的可靠性,在類別數(shù)不同時認(rèn)為是平衡的措施,取值范圍在[-1,1],當(dāng)FN和FP均為0時,MCC取值為1,即分類完全正確。當(dāng)TP和TN均為0時,MCC取值為-1,即分類完全錯誤。其計算公式如下:
(3)
(3) F1Score綜合識別率和召回率兩方面,認(rèn)為是加權(quán)平均的評價指標(biāo),取值范圍為[0,1],值越接近1,準(zhǔn)確率越高,其計算公式如下:
(4)
表4展示了3種深度結(jié)構(gòu)的實驗對比結(jié)果,每組實驗結(jié)果是3折交叉驗證的平均值。這實驗結(jié)果表明:具有2層深度的CNN模型的識別精度比1層和3層深度的CNN模型分別提高了2.19%和0.34%。在MCC和F1Score方面上,2層深度的CNN模型相對其他結(jié)構(gòu)均表現(xiàn)最佳的性能值。然而,具有3層深度的CNN模型的識別精度是86.96%,相對于2層深度的CNN模型而言,其性能明顯降低了。隨著網(wǎng)絡(luò)層數(shù)的增加,網(wǎng)絡(luò)模型的訓(xùn)練難度加大,致使3層深度的CNN模型出現(xiàn)退化。因此本文選取2層深度的CNN模型。
表4 CNN模型試驗結(jié)果Tab.4 Experimental results of CNN model (%)
為驗證所提出的優(yōu)化后的CNN模型的有效性,分別采用隨機搜索算法、網(wǎng)格搜索算法、貝葉斯優(yōu)化算法和遺傳算法分別對CNN的超參數(shù)進(jìn)行迭代尋優(yōu),見圖8,并在肺炎CT圖像數(shù)據(jù)集上運行。圖8展示了算法單次運行過程中產(chǎn)生的驗證誤差。每種算法均進(jìn)行1 100次搜索迭代對卷積神經(jīng)網(wǎng)絡(luò)的超參數(shù)進(jìn)行搜索尋優(yōu)。禁忌遺傳-CNN相對于前4種模型,在在少于200次的搜索次數(shù)就已獲取最小的平均驗證誤差,并獲得最佳超參數(shù)組合方案,見圖8(e),結(jié)果表明:禁忌遺傳-CNN較好地提高了遺傳算法的優(yōu)化性能。貝葉斯優(yōu)化-CNN的性能僅次于禁忌遺傳-CNN,而對于隨機搜索算法和網(wǎng)格搜索算法的搜索能力較差,使用禁忌遺傳方法微調(diào)的CNN能夠執(zhí)行自動超參數(shù)優(yōu)化的研究獲得更具有競爭性分類結(jié)果。
圖8 5種算法的迭代尋優(yōu)結(jié)果。Fig.8 Iterative optimization results of five algorithms
為了進(jìn)一步說明禁忌遺傳-CNN模型的可行性,與經(jīng)典的方法進(jìn)行了對比驗證。圖9展示了5種模型的受試者操作特征曲線(receiver operating characteristic,ROC)曲線,禁忌遺傳-CNN模型比其他4種算法,其ROC曲線覆蓋面積更大。因此,禁忌遺傳-CNN在識別肺炎種類方面優(yōu)于其他4種算法。禁忌遺傳-CNN模型的識別精度、MCC和F1Score分別為93.89%,96.05%和93.44%,實驗結(jié)果表明:相比于其他4種算法,禁忌遺傳-CNN模型具有更好的檢測性能,如表5所示。與遺傳算法-CNN模型相比,禁忌遺傳-CNN的識別精度提高了6.26%,禁忌遺傳-CNN模型計算產(chǎn)生的權(quán)重參數(shù)量減少了15.7×106。與其他3種方法的最佳精度相比,M-CNN模型的識別精度提高了7.13%。在識別精度上,貝葉斯優(yōu)化-CNN模型僅次于禁忌遺傳-CNN模型。因此,禁忌遺傳-CNN在識別新冠肺炎方面優(yōu)于其他4種算法。禁忌遺傳算法可提高網(wǎng)絡(luò)的準(zhǔn)確率。當(dāng)同時考慮這些網(wǎng)絡(luò)的規(guī)模時,所提出的方法產(chǎn)生的卷積神經(jīng)網(wǎng)絡(luò)優(yōu)于其他方法,特別是在快速訓(xùn)練與精度同等重要的情況下,該方法可作為首選。
圖9 5種模型實驗結(jié)果的ROC曲線Fig.9 ROC curve experimental results of five models
表5 肺炎檢測實驗結(jié)果Tab.5 Experimental results of pneumonia detection
針對新冠肺炎與普通肺炎的區(qū)分問題,本文提出了一種基于CT圖像卷積神經(jīng)網(wǎng)絡(luò)處理的新冠肺炎檢測算法。通過搭建卷積神經(jīng)網(wǎng)絡(luò)模型,調(diào)整網(wǎng)絡(luò)深度以獲取最佳的網(wǎng)絡(luò)結(jié)構(gòu)。采用禁忌遺傳算法對超參數(shù)進(jìn)行優(yōu)化的網(wǎng)絡(luò)模型能夠獲得與其他優(yōu)化模型相競爭的分類結(jié)果。實驗結(jié)果表明:本文方法能夠有效地檢測出新冠肺炎和普通肺炎,檢測的準(zhǔn)確率、MCC值和F1Score值分別為93.89%,93.32%和91.40%。相比于其他方法具有更高的檢測精度和更強的泛化能力。由于工作存在以下局限性:1) 所收集的CT圖像數(shù)據(jù)集可能不代表其他地理區(qū)域的肺炎患者;2) 基于深度學(xué)習(xí)的方法需要在更加廣泛的數(shù)據(jù)集上進(jìn)一步驗證。因此在未來的工作中,將使用遷移學(xué)習(xí)來提高模型對不同地理區(qū)域肺炎患者的泛化性,并通過深度學(xué)習(xí)方法對病理區(qū)域進(jìn)行自動分割,以量化肺炎的嚴(yán)重程度。