李語心,趙艷娜,謝榮理,劉浚嘉,付 莊,王 堯,張 俊,費 健
(1.上海交通大學機械系統與振動國家重點實驗室,上海 200240;2.上海市瑞金康復醫院,上海 200023;3.上海交通大學醫學院附屬瑞金醫院,上海 200025)
甲狀腺結節是甲狀腺內部的一種離散性病變,它與其周圍的甲狀腺組織有著放射性差異。根據甲狀腺癌影響報告與數據系統(TI-RADS),對于甲狀腺癌惡性程度,雖有多種分級標準,但基本遵循五級分級:呈現從一級到五級逐步遞增。自2002年起,甲狀腺疾病發生率便持續走高。因此,有必要對大數據處理或數據兼容的機器學習算法進行研究。
針對甲狀腺結節良惡性分類問題,LIU等[1]通過HOG, SIFT, LBP和VGG網絡[2]進行特征提取,因其關鍵區域由人工標定,使得數據量非常有限,也不符合一般意義上進行醫學圖像處理的圖像情況。葉晨等[3]利用VGG16和CNNf兩種卷積神經網絡對于甲狀腺結節進行檢測,達到了91.6%的正確率,然而該研究使用數據集為CT圖像,并不是在甲狀腺檢察中更廣泛使用的超聲圖像。
生成對抗網絡于2014年由Ian Goodfellow及其團隊[4]提出。生成對抗網絡由生成器(G)和判別器(D)共同構成。其理念是通過判別器輔助生成器訓練,使得生成器能夠較好地擬合實際樣本的分布。在實際實現過程中,判別器判斷樣本屬于生成樣本還是實際樣本,生成器則以迷惑判別器為訓練目標,二者依次訓練,迭代更新,以極小極大博弈為整體目標函數,尋找其納什均衡點。
本文以DICOM格式的甲狀腺結節數據集為原數據,面向甲狀腺結節良惡分類,從結節的實性/囊性、回聲、鈣化、邊界、邊緣、形態情況等6個角度進行結節惡性特征的考量;針對目前甲狀腺結節DICOM文件良惡性分類GAN的相關算法均將重點放在圖片生成,而沒有利用生成器優化判別器的分類效果、幫助解決數據樣本類別偏差大以及樣本數量有限的問題,由此,基于生成對抗網絡(GAN)設計建立了條件限制殘差生成對抗網絡(cRes-GAN)算法;并與Hog[5]+隨機森林[6]、ResNet18[7],Res18GAN和ACGAN[8]等其他4種算法進行對比分析,以驗證所設計新算法的優越性。
針對甲狀腺結節分類問題,本文提出了端到端的模型cRes-GAN算法。利用cRes-GAN進行良惡性判斷的數據流,如圖1所示。

圖1 cRes-GAN數據流
首先,將生成的高斯噪聲和標簽輸入生成器,得到生成圖片。然后,將生成的圖片與真實圖片共同輸入判別器,由判別器判斷輸入的圖片是真實圖片還是生成圖片,并且判斷輸入的圖片所對應的良惡性標簽。
具體模型結構如圖2所示。首先,對良惡性標簽c′生成對應的編碼矩陣,矩陣大小為2×100,作為其向量表現形式。通過高斯分布,生成長度為100維噪聲向量,將標簽向量與噪聲向量進行向量相乘作為G的輸入。

圖2 cRes-GAN模型示意
cRes-GAN的生成器由3個卷積模塊、8個殘差模塊、反卷積層和卷積層構成。為了能夠在除去數據噪聲的同時保留每個樣本中獨特的細節,除了最后的卷積層,在每一次卷積操作之后都使用了實例標準化。在卷積模塊中,為了幫助收斂,使用LeakyReLU作為激活函數,在輸出前使用tanh代替LeakyReLU作為激活函數。
LeakyReLU(x)=max{0,x}+0.2×min{0,x}
(1)
(2)
(3)
cRes-GAN的判別器D由1個卷積層、1個最大池化層、6個殘差模塊、1個平均池化層和2個并聯的全連接層串聯而成。每一個殘差模塊中包含2個卷積層。為了使得D能夠對于一個批次中所有的圖像分布特點有一個均衡的了解,在每一個卷積層后進行了批標準化操作,并使用ReLU作為激活函數。為了除去數據噪聲,并且減少參數數量,避免過擬合,在全連接層之前添加平均池化層。
D中的2個全連接層分別對應真實圖片/生成圖片的判斷任務(adv層)和良性結節/惡性結節的判斷任務(aux層)。adv層輸出1個值作為對于當前輸入圖像為真實圖片的概率。針對該分類任務的概率表示,使用Sigmoid作為激活函數。aux層輸出1個二維數組,數組的每個值分別表示判斷輸入圖像為該標簽的概率。根據先驗知識,需要保證該二維數組的和為全概率,因此針對該分類問題,使用SoftMax作為激活函數。
D的輸入圖片首先經過1個核大小為7×7,通道數量為64的卷積層,繼而經批標準化處理后輸入殘差網絡結構。殘差網絡結構由5個殘差網絡模塊組成,每個模塊的卷積核大小都為3×3,其通道數分別為64,64,128,128,256,512。2個全連接層的輸入層由不同通道數的殘差模塊每個模塊的輸出特征拼接而成,共960維。
Adv層經由Sigmoid 激活函數,輸出1個值,當該值大于0.5則判斷為真實圖片,反之則認為是生成圖片。
Aux層經由SoftMax激活函數,輸出1個二維向量,向量中,較大的值所對應的列即為標簽類別。其中1代表惡性,0代表良性。對于真實圖片,其自帶良惡性標簽;對于生成圖片,其良惡性標簽即為輸入生成器的標簽。
判別器的誤差函數由LD,1+LD,2兩部分組成。
LD=LD,1+LD,2
(4)
LD,1=E[‖S預測-S‖]
(5)
LD,2=-E[logP(C預測=c|Xreal)]-
E[logP(C預測=c′|G(z,c′)]
(6)
S預測為判別器所預測的樣本來源;S為樣本的實際來源;C預測為差別器所預測的樣本良惡性標簽;c為樣本的實際良惡性標簽;Xreal為真實圖像;c′為生成樣本時使用的良惡性標簽;G(z,c′)為生成樣本。
第1部分使用EM距離,見式(5),輸入樣本具有真/偽標簽S,通過判別器D獲得對于真偽標簽的預測S預測,該部分誤差函數希望S與S預測盡可能接近。第2部分使用交叉熵式(7)對于樣本良惡性進行判斷,式(7)中P為預測結果C預測的對應概率,即當輸入圖像標簽c為良性結節(或惡性結節)時,所判斷的結節的標簽C預測是否與c一致。對于生成的圖像,由于生成器生成的圖像與指定的標簽類型有關,因此生成的樣本亦與1個唯一的標簽c′對應,見式(6)。
L=-C預測logP+(1-C預測)log(1-P)
(7)
生成器誤差函數由3個部分組成:第1部分LG,1對應生成器于標簽層面混淆判別器對于真偽樣本判別的能力;第2部分LG,2要求生成器于像素層面生成更接近真實樣本的圖片;第3部分LG,3在于幫助判別器強化標簽識別能力。
LG=LG,1+LG,2+LG,3
(8)
LG,1=-E[‖S預測-S‖]
(9)
LG,2=MSE(G(z,c′),Xreal)
(10)
LG,3=-E[logP(C預測=c′|G(z,c′))]
(11)
其中,第1部分使用了ME距離作為誤差函數,見式(9),對應是否準確通過預測值S預測判別輸入圖像的來源S;第2部分比較生成樣本G(z,c′)與實際樣本Xreal的像素間相似性,見式(10);第3部分使用交叉熵作為誤差函數,對應生成器所生成樣本是否符合包含有區分度的良惡性特征,幫助生成器和判別器更專注于搜索有區分度的良惡性特征,見式(11)。
將甲狀腺超聲圖像數據集分成訓練集和測試集2個部分,對二者分別進行圖像預處理,觀察分類器在訓練集和測試集上分類準確率曲線情況。
1.4.1 數據增強
訓練集中的樣本在訓練過程中,通過隨機進行水平翻轉、豎直翻轉、隨機旋轉(±2°范圍),則增加訓練集數據量至原本的4倍以上,并且幫助神經網絡學習到良惡性旋轉無關的信息,同時可以緩解機器學習訓練過程中常見的過擬合問題。
1.4.2 圖像預處理
針對不同圖形的大小不同、光強不同的情況,對圖片進行統一的切割和直方圖均衡歸一化操作,如圖3所示,則cRes-GAN訓練的圖像的灰度值在同一范圍內。

圖3 直方圖均衡歸一化操作結果比較
1.4.3 遷移學習
針對訓練效果與網絡參數初始化位置有關的問題,使用在ImageNet中進行過預訓練的殘差網絡中的部分層作為cRes-GAN中判別器的初始值,使用在ImageNet的馬-斑馬數據集中進行過預訓練的循環生成對抗網絡中的部分結構作為cRes-GAN中生成器的初始值。
1.4.4 訓練方式
為了更快幫助生成器與判別器收斂,先分別對于二者進行一定周期的訓練。繼而將二者進行共同訓練,由于判別器較易對于生成圖像和真實圖像進行判斷,因此將判別器與生成器以1∶2的周期數量進行迭代訓練。
1.4.5 生成樣本的標簽比例
針對訓練集中,良性圖片與惡性圖片比例呈2∶1,不均衡的問題,設置生成的圖片良惡性標簽比例為1∶2,以使得cRes-GAN中的判別器所面對的良惡性樣本總數為1∶1。
1.4.6 標簽平滑
針對神經網絡對于對抗性樣本的脆弱性問題,為真實圖片/生成圖片標簽添加噪聲,平滑標簽,幫助訓練。
按照樣本的真實標簽和判斷標簽,可以將模型于測試集的測試結果分成4類:真陽性(TP);假陽性(FP);真陰性(TN);假陰性(FN)。其中真陽性指惡性結節樣本被準確診斷為惡性的數量;假陽性指良性結節樣本被誤診為惡性的數量;真陰性指良性結節樣本被準確診斷為良性的數量;假陰性指惡性結節被誤診為良性的數量。
對于良惡性結節診斷的量化指標由準確率、特異度和敏感度(或召回率)體現,見式(12)~式(14)。準確率(Acc)體現的是將測試集樣本中的良性結節圖像和惡性結節圖像準確分類的比率。特異度(Spec)體現的是對于所有的良性結節圖像,準確將其判斷為良性的概率。敏感度(Sens)體現的是對于所有的惡性結節圖像,準確將其判斷為惡性的概率。在醫學實踐中,敏感度的提高可以被視作對于病患的漏診率的降低。
(12)
(13)
(14)
本實驗的數據集由合作單位提供(由專業醫生圈畫結節位置),共有1 501份符合要求的DICOM文件,對其按照訓練集-測試集7∶3的比例進行劃分,具體內容如表1所示。

表1 訓練集-測試集數據情況
具體實驗結果如表2 所示。甲狀腺結節良惡性的區別包括回聲強弱、邊緣光滑與否,這些特征在超聲圖片上體現為紋理,陰影,光照的變化。又鑒于甲狀腺結節超聲圖片為灰度圖,因此使用專門針對灰度圖像,尋找紋理光照信息的方向梯度直方圖進行特征提取,并使用隨機森林分類器進行分類,該算法組合下獲得正確率僅有67.4%,分類出現了較大的偏差性。
不使用生成對抗網絡結構,只使用ResNet18進行分類時,正確率為82.2%[9]。比較3種生成對抗網絡模型對于本課題目標的分類效果,訓練圖像如圖4所示。由圖4可以發現,3種生成對抗網絡均有良好的收斂趨勢,其中cRes-GAN對于甲狀腺結節良惡性分類問題有最好的分類效果。

圖4 分類正確率隨訓練周期變化曲線
當目標函數收斂時,ACGAN的結果出現了很大的偏差性,它將所有的樣本都歸結于良性結節,因此敏感度為0;Res18GAN以ResNet作為判別器結構,得到的正確率為79.6%,敏感度較低僅為76.4%;cRes-GAN的正確率達到92.2%,敏感度達到86.5%,特異度達到95.0%。cRes-GAN比起其他模型,在3項指標上有極大的進步。

表2 對比分析結果 %
面向甲狀腺結節良惡分類,設計建立了一種cRes-GAN算法,并與Hog+隨機森林、ResNet18,Res18GAN和ACGAN等其他4種算法相比較,對比分析結果表明,該算法在良惡性分類的準確率、敏感度以及特異度上均有顯著提升,且診斷結果準確度可達92.2%,可以為醫生的最終診斷提供輔助參考和量化依據。為了提升分類正確率,可以在未來使用多類特征進行融合。