劉開華,田 嵐,李 鏘,關(guān) 欣
(天津大學(xué)微電子學(xué)院,天津 300072)
胸部疾病嚴(yán)重威脅著人類的生命健康安全,其中肺炎、肺結(jié)節(jié)是癌癥轉(zhuǎn)變率最高的疾病種類,轉(zhuǎn)變率高達(dá) 20%[1].胸部 X光圖像是目前較為常見的診斷胸部疾病方式之一,具有成本低、方便快捷的優(yōu)勢(shì).醫(yī)生通過 X光圖像識(shí)別病灶,判斷疾病種類,可以盡早確診疾病,使患者能夠在發(fā)病初期獲得治療,有效提高治療成功率.但由于放射科醫(yī)生經(jīng)驗(yàn)和主觀方面的差異,識(shí)別結(jié)果可能出現(xiàn)一定程度的誤差,因此亟需開發(fā)一套計(jì)算機(jī)輔助診斷系統(tǒng)[2],幫助醫(yī)生進(jìn)行病灶判斷,從而降低誤診率.
基于深度學(xué)習(xí)的計(jì)算機(jī)輔助診斷系統(tǒng),例如肺炎檢測(cè)[3]、肺結(jié)節(jié)分類[4]、腦腫瘤分割[5]等已取得較好的效果.自 ChestX-Ray14數(shù)據(jù)集發(fā)布以來,國內(nèi)外學(xué)者提出了大量胸部疾病自動(dòng)分類的方法.方法大致分為兩類.一類是傳統(tǒng)機(jī)器學(xué)習(xí)分類方法.Agrawal等[6]提出一種神經(jīng)網(wǎng)絡(luò)高斯過程模型,在貝葉斯神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上將寬度無限增大,5層深度的網(wǎng)絡(luò)模型優(yōu)于其他非卷積模型,進(jìn)一步縮小了非卷積模型與卷積模型之間的差距.另一類是深度學(xué)習(xí)分類方法.Xu等[7]提出 DeepCXray網(wǎng)絡(luò),訓(xùn)練 InceptionV3模型提取特征,并且使用交叉熵?fù)p失作為目標(biāo)函數(shù),獲得了優(yōu)秀的分類效果.Gozes等[8]將在 ChestX-Ray14數(shù)據(jù)集上預(yù)訓(xùn)練的模型用于小數(shù)據(jù)集結(jié)核病的檢測(cè)獲得了優(yōu)異的分類結(jié)果,說明大型數(shù)據(jù)集預(yù)訓(xùn)練學(xué)習(xí)到的特征有助于提升小數(shù)據(jù)集上的分類結(jié)果.Wang等[9]將預(yù)訓(xùn)練的全卷積作為特征提取器,通過訓(xùn)練全連接分類層,評(píng)估了 4種經(jīng)典 CNN模型,得出ResNet性能最優(yōu)的結(jié)論,然而傳統(tǒng) ResNet僅對(duì)全連接層進(jìn)行微調(diào),忽略了網(wǎng)絡(luò)其他層特征提供的信息,尤其是針對(duì)醫(yī)學(xué)圖像,特征提取部分有待進(jìn)一步優(yōu)化;Yao等[10]采用長短期記憶(long- short-term memory,LSTM)網(wǎng)絡(luò)作為解碼器學(xué)習(xí)病理標(biāo)簽之間的依賴關(guān)系,該方法通過重新整理多標(biāo)簽之間的關(guān)系進(jìn)一步提高了分類的準(zhǔn)確率,但是沒有考慮樣本不平衡、多標(biāo)簽問題,造成模型傾向于學(xué)習(xí)樣本量大的疾病特征,從而導(dǎo)致預(yù)測(cè)精度較低.Rajpurkar等[11]提出用肺炎數(shù)據(jù)訓(xùn)練 121層 DenseNet卷積神經(jīng)網(wǎng)絡(luò),然后模型微調(diào)用于其他 13種胸部疾病的檢測(cè),該方法使用121層DenseNet網(wǎng)絡(luò),參數(shù)量和計(jì)算復(fù)雜度較大.
針對(duì)上述問題,為了進(jìn)一步提高胸部 X光圖像分類算法的性能,本文提出一種基于八度卷積[12]的殘差神經(jīng)網(wǎng)絡(luò)(octave convolution based residual network,OC-ResNet),OC-ResNet主要有 3方面的改進(jìn):①在 ResNet[13]網(wǎng)絡(luò)架構(gòu)中利用八度卷積改進(jìn)普通卷積,分離出圖像中的高低頻信息特征,降低低頻特征比例,增加高頻信息權(quán),在提升對(duì)胸部病灶特征表達(dá)能力的同時(shí),降低了計(jì)算復(fù)雜度;②采用漸進(jìn)式微調(diào)的遷移學(xué)習(xí)方法[14],在 ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練提取圖像一般性公共特征,獲得初始網(wǎng)絡(luò)參數(shù),然后固定網(wǎng)絡(luò)淺層參數(shù),在 ChestX-Ray14數(shù)據(jù)集上微調(diào)網(wǎng)絡(luò)深層參數(shù),獲得最優(yōu)的遷移學(xué)習(xí)效果;③采用焦點(diǎn)損失(focal-loss)函數(shù)[15],減小樣本數(shù)量多的疾病類別權(quán)重,從而解決樣本不平衡問題.
本節(jié)介紹以ResNet為基礎(chǔ),將ResNet網(wǎng)絡(luò)中的普通卷積替換成八度卷積,構(gòu)成的 OC-ResNet胸部X光圖像分類網(wǎng)絡(luò),如圖1所示.ChestX-Ray14數(shù)據(jù)集的樣本數(shù)量雖有11萬,但是相較ImageNet數(shù)據(jù)集有千萬級(jí)的數(shù)據(jù)量,醫(yī)學(xué)圖像數(shù)據(jù)量依然較少,仍然存在泛化性差、易過擬合等問題.因此加入遷移學(xué)習(xí)解決在小樣本數(shù)量目標(biāo)域上的訓(xùn)練困難.第 1階段預(yù)訓(xùn)練,在 ImageNet數(shù)據(jù)集上訓(xùn)練 OC-ResNet,預(yù)訓(xùn)練模型的最后一層是 ImageNet數(shù)據(jù)集對(duì)應(yīng)的1000個(gè)類別的輸出向量.第 2階段遷移學(xué)習(xí),保留除全連接層之外的所有層級(jí)參數(shù),遷移至 ChestXRay14數(shù)據(jù)集上進(jìn)行微調(diào)訓(xùn)練.由于網(wǎng)絡(luò)淺層通常提取到的是邊緣、顏色等基礎(chǔ)信息,網(wǎng)絡(luò)深層提取到的則是物體個(gè)性特征等語義信息.因此在遷移學(xué)習(xí)過程中采用漸進(jìn)式微調(diào)策略,即網(wǎng)絡(luò)淺層參數(shù)固定不變,深層參數(shù)進(jìn)行微調(diào),此時(shí)遷移學(xué)習(xí)效果最優(yōu)[14].X光圖像通過預(yù)訓(xùn)練模型的輸入層,依次經(jīng)過殘差單元中的八度卷積層、池化層、正則化層,最后通過全連接層,將結(jié)果輸出為1×14的向量.
圖1 OC-ResNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 OC-ResNet network structure
為解決深層網(wǎng)絡(luò)的過擬合和梯度消失問題,本文采用 ResNet網(wǎng)絡(luò)結(jié)構(gòu),該網(wǎng)絡(luò)由殘差單元模塊組成.本文將殘差單元模塊改進(jìn)為八度卷積殘差單元,其模塊結(jié)構(gòu)如圖2所示.
圖2 八度卷積殘差單元結(jié)構(gòu)Fig.2 Octave convolution residual unit structure
一個(gè)八度卷積殘差單元由2層八度卷積層組成,在八度卷積的每一層后面都使用 ReLU激活函數(shù)和批歸一化來代替實(shí)例正則化.
隨著網(wǎng)絡(luò)層數(shù)逐漸加深,導(dǎo)致網(wǎng)絡(luò)內(nèi)存消耗和計(jì)算成本不斷增加,為了緩解該問題,本文采用八度卷積改進(jìn)普通卷積,通過八度卷積存儲(chǔ)和處理空間分辨率較低且空間變化較慢的特征圖,可以有效降低內(nèi)存和計(jì)算成本,同時(shí)有效提取圖像中的高頻特征信息,有利于圖像的識(shí)別分類.
八度是指八音階,在音樂中降低八音階代表頻率減半.八度卷積[8]將“八度”的概念應(yīng)用到卷積神經(jīng)網(wǎng)絡(luò)中,其核心思想是對(duì)圖像數(shù)據(jù)中低頻信息減半,從而達(dá)到加速卷積運(yùn)算和降低內(nèi)存與計(jì)算成本的目的.
Xu等[16]將八度卷積用在膠囊網(wǎng)絡(luò)中進(jìn)行高光譜圖像分類獲得優(yōu)異的分類結(jié)果.Wang等[17]在 3維CT肝臟腫瘤分割中使用八度卷積神經(jīng)網(wǎng)絡(luò),通過學(xué)習(xí)多空間頻率特征,完成端到端的學(xué)習(xí)和推理.文獻(xiàn)[16-17]已證明八度卷積在其他任務(wù)中的有效性.
在普通卷積神經(jīng)網(wǎng)絡(luò)中,設(shè)W 是k×k大小的卷積核,X ,Y ∈ Rc×h×w分別表示輸入和輸出張量,(p,q)為進(jìn)行卷積運(yùn)算的位置坐標(biāo),則卷積運(yùn)算可表示為
八度卷積實(shí)現(xiàn)的目標(biāo)是有效地處理相應(yīng)頻率張量中的低頻和高頻分量,同時(shí)使八度特征表示的高頻分量和低頻分量之間能夠有效地通信.八度卷積實(shí)現(xiàn)過程如圖3所示.八度卷積核大小為k×k,權(quán)重W ∈ Rcin×cout×k×k,與普通卷積核有相同的參數(shù),八度卷積核示意如圖4所示.4個(gè)卷積核分別參與到4條卷積路徑中,WH→H表示高頻之間的卷積核,WH→L表示高頻到低頻之間的卷積核,WL→H表示低頻到高頻之間的卷積核,WL→L表示低頻之間的卷積核.
圖3 八度卷積運(yùn)算過程Fig.3 Octave convolution operation procedure
圖4 八度卷積核示意Fig.4 Schematic of octave convolution kernel
在卷積層中,輸入張量和輸出張量都被分成高頻和低頻兩部分,其中高頻部分表示為低頻部分表示為.為了實(shí)現(xiàn)高低頻特征之間的有效通信,需要將在低頻分量上采樣的信息通過 WL→H更新到高頻分量上,同時(shí),將在高頻分量上的采樣信息通過 WH→L更新到低頻分量上.于是輸出特 征 表 示 為 YH= YH→H+YL→H和YL= YL→L+YH→L.它由4條計(jì)算路徑組成,如圖3所示,兩條藍(lán)色路徑對(duì)應(yīng)于高頻和低頻特征圖的信息更新,兩條灰色路徑便于兩個(gè)八度之間的信息交換.實(shí)現(xiàn)方式如下.
式中: f(X ;W ) 表示輸入特征與參數(shù)之間的卷積;upsample(X ,k)是通過最近差值進(jìn)行k倍的上采樣操作;p o ol(X ,k)表示池化操作,池的核大小為k,步長為k.
八度卷積的具體網(wǎng)絡(luò)結(jié)構(gòu)與卷積網(wǎng)絡(luò)參數(shù)定義如圖5所示,假設(shè)低頻通道占比為α,則高頻通道占比為 1-α.高頻輸入和低頻輸入的尺寸分別是 224×224×3×(1-α)和 112×112×3×α.高頻輸入分別進(jìn)行兩次運(yùn)算:一個(gè)是經(jīng)過 16×(1-α)個(gè)尺寸為 3×3×3的卷積核進(jìn)行卷積運(yùn)算得到尺寸為224×224×16×(1-α)的特征圖;另一個(gè)是經(jīng)過步長為 2、核尺寸為 2的池化之后,再與 16×α個(gè)尺寸為 3×3×3卷積核進(jìn)行卷積運(yùn)算得到尺寸為 112×112×16×α的特征圖.低頻輸入也分別進(jìn)行兩次運(yùn)算:一個(gè)是經(jīng)過 16×(1-α)個(gè)尺寸為 3×3×3的卷積核進(jìn)行卷積運(yùn)算得到尺寸為 112×112×16×(1-α)的特征圖,再通過步長為 2、核尺寸為 2的上采樣得到 224×224×16×(1-α)的特征圖;另一個(gè)是經(jīng)過 16×α個(gè)尺寸為 3×3×3卷積核進(jìn)行卷積運(yùn)算得到尺寸為112×112×16×α的特征圖.尺寸相同的特征圖進(jìn)行相加,得到最終尺寸為 224×224×16×(1-α)的高頻輸出和尺寸為112×112×16×α的低頻輸出.
圖5 八度卷積網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù)設(shè)置Fig.5 Octave convolution network structure and parameter setting
微調(diào)深度對(duì)遷移學(xué)習(xí)的效果有很大影響,文獻(xiàn)[18]通過實(shí)驗(yàn)發(fā)現(xiàn)不同數(shù)據(jù)集在同一個(gè)網(wǎng)絡(luò)上以不同微調(diào)深度進(jìn)行訓(xùn)練時(shí),隨著微調(diào)深度的增加準(zhǔn)確率會(huì)先增大,達(dá)到峰值后準(zhǔn)確率開始下降.這說明當(dāng)從最小的深度開始對(duì)比,如果后一個(gè)較大深度的準(zhǔn)確率低于前一個(gè)深度,那么前一個(gè)深度為最佳微調(diào)深度,而且準(zhǔn)確率不會(huì)隨著微調(diào)深度變化出現(xiàn)波動(dòng),很適合迭代方法去尋找最優(yōu)解.據(jù)此提出漸進(jìn)式微調(diào)深度的遷移學(xué)習(xí)方法,算法步驟描述如下.
步驟1輸入以下數(shù)據(jù):
(1) 在大規(guī)模數(shù)據(jù)集上訓(xùn)練的模型權(quán)重W(0);
(2) 訓(xùn)練數(shù)據(jù)x和真實(shí)標(biāo)簽y;
(3) 學(xué)習(xí)率η;
(4) 網(wǎng)絡(luò)深度depth;
(5)微調(diào)深度不一樣的網(wǎng)絡(luò)結(jié)構(gòu)文件NET=[net1, net2, … ,n etdepth],其中net1微調(diào)深度最小,n e tdepth微調(diào)深度最大;
(6) 每C次迭代進(jìn)行一次競(jìng)爭(zhēng);
(7) 最大迭代次數(shù)MAX.
步驟2最佳模型Wbest,最佳微調(diào)深度Dbest.
該方法能夠較快確定微調(diào)深度,減少訓(xùn)練開銷,提升遷移學(xué)習(xí)后網(wǎng)絡(luò)的準(zhǔn)確率.在訓(xùn)練過程中,微調(diào)深度不斷增大,從深層特征向淺層特征逼近,先讓較深層的參數(shù)達(dá)到最優(yōu),損失函數(shù)降到一定程度后,再加入一些較淺層的網(wǎng)絡(luò),進(jìn)一步降低損失函數(shù).然而損失函數(shù)不是越低越好,過低會(huì)導(dǎo)致訓(xùn)練過擬合,這種逐層微調(diào)的訓(xùn)練方式能夠讓損失函數(shù)在一定范圍內(nèi)逐步下降,所以需要根據(jù)測(cè)試集的反饋決定微調(diào)深度是否繼續(xù)加深.
在 ChestX-Ray14數(shù)據(jù)集的多標(biāo)簽類別中,本文為每張 X光圖像定義了一個(gè) 14維標(biāo)簽向量y=[y1, y2, … ,y14],每個(gè)維度代表一種疾病,yc(c=1,2,…,14)表示是否存在相應(yīng)的疾病,值為 1表示患有該疾病,值為0表示未患該疾病.
之前的研究中很多都選擇二分類交叉熵作為損失函數(shù),公式為
式中:c為病變類別;yc為真實(shí)標(biāo)簽;為預(yù)測(cè)標(biāo)簽.但在 ChestX-Ray14數(shù)據(jù)集中,疾病樣本的數(shù)量嚴(yán)重不平衡,較少的疾病擁有大量的樣本數(shù)據(jù),導(dǎo)致訓(xùn)練不充分,為了解決這個(gè)問題,本文采用焦點(diǎn)損失函數(shù)[15],如式(4)所示,在交叉熵的基礎(chǔ)上增加權(quán)重因子γ(γ> 0 )和平衡因子σ,以使網(wǎng)絡(luò)更加關(guān)注難分類的樣本,平衡正負(fù)樣本比例.根據(jù)實(shí)驗(yàn)對(duì)比分析[15],當(dāng)σ=0.5、γ=2時(shí),網(wǎng)絡(luò)的分類效果最佳.
本文使用的服務(wù)器為CPU Intel? Core i7-6800K 3.5GHz,GPU Nvidia GTX1080Ti(11GB)×2,操作系統(tǒng)為 Ubuntu 16.04,采用 Pytorch[19]開源深度學(xué)習(xí)框架.
實(shí)驗(yàn)過程中,首先搭建基于 Pytorch框架的網(wǎng)絡(luò),將全連接層的參數(shù)隨機(jī)初始化,并使用 Adam 優(yōu)化器[20]進(jìn)行優(yōu)化.訓(xùn)練過程中將學(xué)習(xí)率設(shè)置為1×10-3,衰減率設(shè)為 0.9,激活函數(shù)使用 ReLU[21],分類函數(shù)使用 Softmax.為了充分發(fā)揮實(shí)驗(yàn)設(shè)備作用,將批尺寸(batch size)設(shè)置為128,訓(xùn)練輪數(shù)為150次.
在計(jì)算機(jī)輔助診斷中,為了選擇客觀公正的指標(biāo)對(duì)比算法的性能,業(yè)界通常采用受試者特征(receiver operating characteristic,ROC)曲線來表現(xiàn)算法的識(shí)別能力.ROC的計(jì)算和混淆矩陣相關(guān),混淆矩陣如表1所示.
表1 混淆矩陣Tab.1 Confusion matrix
表2中TP表示真正例,意為預(yù)測(cè)為陽性,實(shí)際也是陽性的樣本數(shù);FP表示假正例,意為預(yù)測(cè)是陽性,實(shí)際是陰性的樣本數(shù);FN表示假反例,意為預(yù)測(cè)是陰性,實(shí)際是陽性的樣本數(shù);TN表示真反例,意為預(yù)測(cè)是陰性,實(shí)際也是陰性的樣本數(shù).
ROC曲線的橫軸表示假陽率(false positive rate,F(xiàn)PR),意為在所有陰性樣本中,預(yù)測(cè)為陽性的比例;縱軸表示真陽率(true positive rate,TPR),意為在所有陽性樣本中,預(yù)測(cè)為陽性的比例;FPR和TPR的計(jì)算公式如下.
ROC曲線下的面積(area under the curve of ROC,AUC)用于比較分類模型的性能,最初使用是在文獻(xiàn)[9]中,現(xiàn)在廣泛應(yīng)用在醫(yī)學(xué)圖像分類算法評(píng)估中.ROC曲線越接近1,AUC值越大,說明算法性能越好,分類效果越好.
分類模型的準(zhǔn)確率(A)即為在所有樣本中,預(yù)測(cè)正確的數(shù)量占總樣本數(shù)量的比重,準(zhǔn)確率可以判斷總體的正確率.準(zhǔn)確率公式表示為
分類模型的精確率(P)即為預(yù)測(cè)為正樣本占全部預(yù)測(cè)為正樣本的比重,含義是對(duì)正樣本結(jié)果中的預(yù)測(cè)準(zhǔn)確程度,精確率的提出是為了讓預(yù)測(cè)結(jié)果盡可能不出錯(cuò).精確率公式表示為
分類模型的召回率(R)即為預(yù)測(cè)為正的樣本數(shù)量占所有實(shí)際為正的樣本數(shù)量的比重,含義是在實(shí)際為正的樣本中被預(yù)測(cè)為正樣本的概率,召回率公式表示為
精確率和召回率互相影響,理想狀態(tài)下會(huì)追求兩者都高,但實(shí)際上兩者互相制約,如果追求精確率高,則召回率低,如果追求召回率高,則精確率會(huì)低.基于上述情況,需要綜合考慮,最好的方法是 F1值(F1-Score),F(xiàn)1值是精確率和召回率的調(diào)和平均,F(xiàn)1值越大說明模型質(zhì)量更高,F(xiàn)1值公式表示為
實(shí)驗(yàn)使用的數(shù)據(jù)集為美國國立衛(wèi)生研究院(NIH)于 2017年發(fā)布的 ChestX-Ray14公共胸部 X射線數(shù)據(jù)集,該數(shù)據(jù)集包含 30805例患者的 112120張正面 X光圖像,圖像大小為 1024×1024.每張圖像都被標(biāo)記為一種或多種常見的胸部疾病標(biāo)簽,例如肺炎、心臟腫大、積液、浸潤等,比較特殊的是,該數(shù)據(jù)集的標(biāo)簽是由自然語言處理識(shí)別放射學(xué)報(bào)告生成,并不是由專家直接標(biāo)注,自然語言處理標(biāo)注的準(zhǔn)確率大于90%.數(shù)據(jù)集中疾病種類分布情況如圖6所示,可以明顯看出樣本分布極其不均衡,疝氣、肺炎等樣本數(shù)量較少,浸潤、積液等疾病樣本數(shù)量較多,這種情況導(dǎo)致分類模型訓(xùn)練的難度加大.
圖6 ChestX-Ray14數(shù)據(jù)集疾病種類比例Fig.6 Proportion of disease types in the ChestX-Ray14 dataset
多數(shù)研究通過隨機(jī)分割數(shù)據(jù)集進(jìn)行訓(xùn)練、驗(yàn)證和測(cè)試對(duì)比,但是這種方案在 ChestX-Ray14數(shù)據(jù)集中存在問題.由于同一名患者平均擁有 3.6張 X光圖像,可能會(huì)同時(shí)存在于訓(xùn)練集和測(cè)試集中.因此本文根據(jù)公開的官方數(shù)據(jù)分割標(biāo)準(zhǔn),采用7∶1∶2的比例將數(shù)據(jù)集分割成訓(xùn)練集、驗(yàn)證集和測(cè)試集,確保同一患者的圖像在 3個(gè)數(shù)據(jù)集中無任何交叉.數(shù)據(jù)集劃分好后,訓(xùn)練前將圖像轉(zhuǎn)化為灰度圖像,在灰度圖像基礎(chǔ)上進(jìn)行自適應(yīng)直方圖均衡化[22],提高胸部 X 光圖像的對(duì)比度.然后隨機(jī)裁剪為 224×224像素的圖像,并通過隨機(jī)翻轉(zhuǎn)、旋轉(zhuǎn)進(jìn)行數(shù)據(jù)增強(qiáng).預(yù)處理前后的圖像對(duì)比如圖7所示.
圖7 原始X光圖像與處理后的X光圖像Fig.7 Original and processed X-ray images
在八度卷積過程中,參數(shù)α表示分配給低頻通道的比率,當(dāng)α=0時(shí),表示不使用低頻特征,即普通卷積.由于變量α∈ [ 0,1],在 ResNet_50網(wǎng)絡(luò)中將α分別取值為 0、0.25、0.50、0.75、1.00 進(jìn)行實(shí)驗(yàn),將其所對(duì)應(yīng)的網(wǎng)絡(luò)參數(shù)量、計(jì)算復(fù)雜度(floating point operations,F(xiàn)LOPs)、平均 AUC(average-AUC)值進(jìn)行統(tǒng)計(jì)比較.選擇ResNet_50作為基礎(chǔ)網(wǎng)絡(luò)的原因是該網(wǎng)絡(luò)層數(shù)相對(duì)較小,訓(xùn)練時(shí)間較短,可以低成本獲得參數(shù)α對(duì)于基礎(chǔ)網(wǎng)絡(luò)的影響效果數(shù)據(jù).實(shí)驗(yàn)結(jié)果如表2所示.
表2 ResNet_50中網(wǎng)絡(luò)參數(shù)量、計(jì)算復(fù)雜度、平均AUC值與α 的對(duì)應(yīng)關(guān)系Tab.2 Correspondence among the network parameters,F(xiàn)LOPs, average AUC values and α with Res-Net_50
由表2數(shù)據(jù)可知,隨著α的增加,參數(shù)量和計(jì)算復(fù)雜度逐漸降低,當(dāng)α從0增加到0.25時(shí),F(xiàn)LOPs減少 0.477×109,降低 11.46%,參數(shù)量減少 0.106×106.當(dāng)α增加到 0.50時(shí),F(xiàn)LOPs減少了 1.709×109,降低41.04%,參數(shù)量減少了 0.962×106.說明低頻特征通道的比例增加,確實(shí)能夠減少網(wǎng)絡(luò)的計(jì)算復(fù)雜度和網(wǎng)絡(luò)參數(shù)量.并且 AUC值隨著α的增大先增大后減小,當(dāng)α=0.50時(shí),達(dá)到峰值 0.831,比基礎(chǔ)網(wǎng)絡(luò)的AUC值提高 0.017,說明當(dāng)α=0.50時(shí)訓(xùn)練結(jié)果最優(yōu).表2數(shù)據(jù)說明八度卷積模塊的加入,能夠有效提取高頻信息,適當(dāng)弱化低頻信息,對(duì)模型的準(zhǔn)確率提升有較大作用.
本文對(duì)不同層數(shù)的 ResNet進(jìn)行了實(shí)驗(yàn)對(duì)比,分別選擇了50層、101層和152層作為基礎(chǔ)網(wǎng)絡(luò).然后分別對(duì)零基礎(chǔ)訓(xùn)練 ResNet網(wǎng)絡(luò)、經(jīng)過遷移學(xué)習(xí)的ResNet網(wǎng)絡(luò)、零基礎(chǔ)訓(xùn)練嵌入八度卷積的 ResNet網(wǎng)絡(luò)以及經(jīng)過遷移學(xué)習(xí)的嵌入八度卷積的ResNet網(wǎng)絡(luò)進(jìn)行消融實(shí)驗(yàn).由表2數(shù)據(jù)分析結(jié)論將八度卷積的參數(shù)α取值為 0.50.將各自訓(xùn)練模型的參數(shù)量、計(jì)算復(fù)雜度和平均AUC值進(jìn)行對(duì)比,數(shù)據(jù)如表3所示.
表3 消融實(shí)驗(yàn)結(jié)果Tab.3 Results of ablation experiments
根據(jù)表3數(shù)據(jù)可知,經(jīng)過遷移學(xué)習(xí)的ResNet_50的 AUC值相比基礎(chǔ)網(wǎng)絡(luò)提高 0.005,經(jīng)過遷移學(xué)習(xí)的ResNet_101的AUC值相比基礎(chǔ)網(wǎng)絡(luò)提高0.009,經(jīng)過遷移學(xué)習(xí)的ResNet_152的AUC值相比基礎(chǔ)網(wǎng)絡(luò)提高 0.008,說明遷移學(xué)習(xí)后的模型對(duì)網(wǎng)絡(luò)性能有提高作用.3種不同層數(shù)的 ResNet網(wǎng)絡(luò)嵌入八度卷積后,參數(shù)量和計(jì)算復(fù)雜度均有不同程度的下降,平均AUC值均有提升.嵌入八度卷積的ResNet_50相比基礎(chǔ)網(wǎng)絡(luò) FLOPs下降 41.04%,平均 AUC值提高0.017;嵌入八度卷積的 ResNet_101相比基礎(chǔ)網(wǎng)絡(luò)FLOPs下降 44.77%,平均 AUC值提高 0.016;但是嵌入八度卷積的 ResNet_152相比基礎(chǔ)網(wǎng)絡(luò) FLOPs只下降3.41%,平均AUC值提高 0.013,可能是因?yàn)榘硕染矸e在減少網(wǎng)絡(luò)計(jì)算復(fù)雜度方面,對(duì)于較深層數(shù)的網(wǎng)絡(luò)降低幅度有限制.這些網(wǎng)絡(luò)參數(shù)量的下降幅度在 ResNet_101網(wǎng)絡(luò)表現(xiàn)較為明顯,減少 9.6%.嵌入八度卷積的 ResNet網(wǎng)絡(luò)經(jīng)過遷移學(xué)習(xí)后,平均AUC 值也均有提升,ResNet_50、ResNet_101、ResNet_152分別提升0.002、0.006、0.007.其中 AUC值最佳的是 ResNet_101網(wǎng)絡(luò),嵌入八度卷積且經(jīng)過遷移學(xué)習(xí)的ResNet_101平均AUC值達(dá)到了0.849.
在表4中表現(xiàn)最優(yōu)的模型經(jīng)過遷移學(xué)習(xí)并嵌入八度卷積的 ResNet_101,把交叉熵函數(shù)換為焦點(diǎn)損失函數(shù),得到的平均AUC值為0.856,相比交叉熵?fù)p失函數(shù)平均 AUC值提高 0.007,交叉熵?fù)p失函數(shù)與焦點(diǎn)損失函數(shù)的實(shí)驗(yàn)結(jié)果數(shù)據(jù)如表4所示.肺炎疾病數(shù)據(jù)量僅為 1431張,數(shù)量相對(duì)其他疾病較少,焦點(diǎn)損失函數(shù)相比交叉熵?fù)p失函數(shù),肺炎的 AUC值提高 0.016,說明焦點(diǎn)損失函數(shù)對(duì)于樣本較少類別的準(zhǔn)確率提升有幫助.
表4 交叉熵?fù)p失函數(shù)和焦點(diǎn)損失函數(shù)AUC值對(duì)比Tab.4 Comparison of the AUC values of cross-entropyloss function and focus-loss function
經(jīng)過表3數(shù)據(jù)分析發(fā)現(xiàn)性能最優(yōu)的算法組合是嵌入八度卷積和經(jīng)過遷移學(xué)習(xí)的 ResNet_101,在此基礎(chǔ)上將交叉熵?fù)p失函數(shù)換為焦點(diǎn)損失函數(shù),得到的平均AUC值為0.856.在ChestX-Ray14數(shù)據(jù)集上14種胸部疾病分類結(jié)果ROC曲線如圖8所示.
圖8 ChestX-Ray14數(shù)據(jù)集14種疾病分類ROC曲線Fig.8 ROC curves for classification of 14 diseases in the ChestX-Ray14 dataset
在相同條件下得到的 OC-ResNet在 ChestXRay14數(shù)據(jù)集上的準(zhǔn)確率和F1值如表5所示.平均準(zhǔn)確率為0.791,平均F1值為0.481.準(zhǔn)確率和F1值作為AUC值的補(bǔ)充指標(biāo),進(jìn)一步說明OC-ResNet算法的分類性能優(yōu)異.
表5 OC-ResNet準(zhǔn)確率和F1值Tab.5 OC-ResNet accuracy and F1 score
將此方法與當(dāng)前最先進(jìn)的方法進(jìn)行比較,分別與Yao 等[10]、Ma 等[23]、Rajpurkar 等[11]、張智睿等[24]提出的方法進(jìn)行了對(duì)比實(shí)驗(yàn).將 ChestX-Ray14數(shù)據(jù)集分為訓(xùn)練集(70%)、驗(yàn)證集(10%)和測(cè)試集(20%),遵循和他們相同比例的數(shù)據(jù)集劃分方式,表6是用不同方法對(duì)14種胸部疾病進(jìn)行分類的AUC值比較的結(jié)果.
表6 在ChestX-Ray14數(shù)據(jù)集上與最優(yōu)的方法比較AUC值Tab.6 Comparison of AUC values between the proposed method and the state-of-the-art methods on ChestX-Ray14 dataset
首先從整體分類效果來看,本文方法與其他4種方法相比,14種胸部疾病的平均 AUC值有較大提升,AUC值比其中最優(yōu)方法(文獻(xiàn)[11])提高了 0.008.其次在心臟擴(kuò)大、積液、肺氣腫、疝氣疾病分類中的表現(xiàn)較為優(yōu)異,AUC值均達(dá)到了0.900以上,說明本文提出的 OC-ResNet對(duì)圖像細(xì)粒度的特征學(xué)習(xí)較好,且通過高低頻的分量卷積運(yùn)算,對(duì)高頻像素的學(xué)習(xí)效果更優(yōu).另外對(duì)于除積液之外的其他 13種疾病,本文模型的分類 AUC值均有提升.而在滲透疾病的分類中效果表現(xiàn)較差,可能是因?yàn)闈B透的病灶位置處于低頻像素區(qū)域,學(xué)習(xí)效果較差.
本文方法與 Yao等[10]方法相比平均 AUC值提升0.095,其中疝氣疾病的AUC值提升幅度最大,提高 0.156,Yao等[10]提出的方法受限于訓(xùn)練數(shù)據(jù)集樣本不平衡,依賴標(biāo)簽之間的關(guān)系不夠準(zhǔn)確,本文方法采用焦點(diǎn)損失函數(shù),在一定程度上緩解樣本不平衡帶來的準(zhǔn)確度不高問題.
本文方法相比 Ma等[23]提出的方法,平均 AUC值提升 0.062,其中積液疾病提升幅度最大,提高0.143.本文和 Rajpurkar等[11]相比,平均 AUC值提高 0.008,肺實(shí)變和肺結(jié)節(jié)提升較為明顯,分別提高0.016和 0.019.本文和張智睿等[24]方法相比,平均AUC值提高0.054.
本文將八度卷積引入胸部疾病分類中,改進(jìn)ResNet網(wǎng)絡(luò)中的普通卷積,提出一種 OC-ResNet算法,提升了胸部多標(biāo)簽 X光圖像自動(dòng)分類方法的性能.八度卷積模塊通過分離圖像的高低頻通道,降低低頻通道比例,使模型能夠有效提取高頻信息,同時(shí)大幅度降低網(wǎng)絡(luò)的計(jì)算冗余,并且將 ChestX-Ray14數(shù)據(jù)集的14種胸部疾病的平均AUC值相比基礎(chǔ)網(wǎng)絡(luò)提高 0.016,F(xiàn)LOPs相比基礎(chǔ)網(wǎng)絡(luò)下降 44.77%,參數(shù)量下降 9.6%.通過漸進(jìn)式遷移學(xué)習(xí)的訓(xùn)練方式,將平均 AUC值提高 0.006.焦點(diǎn)損失函數(shù)解決了樣本分布不平衡的問題,相比交叉熵?fù)p失函數(shù),平均AUC值提高0.007.在ChestX-Ray14數(shù)據(jù)集的14種疾病圖像上分類效果優(yōu)秀,平均AUC值達(dá)到0.856.