鄒奕軒 周蕾蕾 趙紫婷 吳倩倩 韓煜東 田書暢 蔣紅兵③*
甲狀腺結節是成年人群中最常見的結節性病變之一,而甲狀腺癌的發生率約為5%~15%[1-2]。由于缺少對疾病的認知,許多患者接受了不必要的穿刺與手術。醫學指南指出:所有甲狀腺結節均需行頸部超聲檢查,并行惡性風險評估[3]。美國甲狀腺學會(American Thyroid Association,ATA)明確定義甲狀腺結節為“甲狀腺內散在病灶,影像學能將其和周圍甲狀腺組織清楚分界”,表明超聲影像檢查在甲狀腺結節性疾病診斷中具有無可替代的作用。然而,超聲圖像分辨率和對比度較低、固有斑點噪聲較大且偽影較多,不同品牌及型號設備間存在系統性差異,導致超聲診斷結果難以明確。此外,檢查過程中存在醫師操作習慣不同,經驗依賴性判斷偏差等主觀性差異。因此,深入了解結節性甲狀腺疾病的超聲圖像影像組學特征對提高此類疾病的診療水平,改善診療效果意義重大。本研究擬利用超聲圖像影像組學的方法對甲狀腺結節性疾病的良惡性進行分類,結合深度學習算法之一的卷積神經網絡(convolutional neural networks,CNNs)模型進行遷移學習,以實現對甲狀腺超聲圖像的特征提取與量化,實現良惡性分類目標。
MyLab?Twice彩超(意大利ESAOTE公司);VIVID E9彩超(美國GE公司);IE33彩超(荷蘭PHILIPS公司)。
回顧性選擇2016年2月至2018年2月經南京醫科大學附屬南京醫院(南京市第一醫院)功能檢查科B超室檢查定性的200例甲狀腺結節性病變患者,其中男性100例,女性100例,平均年齡(53.6±10.8)歲,其中良性結節患者154例,惡性結節患者46例。所有患者均分別采用MyLab?Twice型、VIVID E9型或IE33型超聲檢查機對其患處進行掃描。所有采集病例均接受甲狀腺結節手術,將病理檢驗結果作為良惡性診斷的標準。
1.3.1 軟件工具
(1)主體使用Python 3.6作為開發語言,Python作為一種計算機程序設計語言功能強大、輕量、便捷、成熟且穩定。Python語言相較于其他編程語言,在神經網絡模型訓練方面框架可選擇性大、類庫豐富,具有開發便捷、代碼量少、內部類型和庫函數使用成本低等顯著優勢[4]。同時使用Matlab 9.4作為輔助軟件工具,實現部分運算、檢驗、制表及預處理等工作。
(2)運算部分使用NVIDIA推出的統一計算設備架構技術(compute unified device architecture,CUDA)通用并行計算架構,該架構包含了CUDA指令集架構(ISA)以及GPU內部的并行計算引擎。充分利用圖形處理單元(graphics processing unit,GPU)的計算能力來解決在深度學習中復雜而龐大的計算量。
(3)深度學習框架使用Facebook公司在深度學習框架Torch的基礎上使用Python開發的Pytorch框架,其功能豐富,應用程序接口(application programming interface,API)眾多,可以快速完成深度神經網絡模型的搭建和訓練。相比于TensorFlow框架,Pytorch框架的動態特性使訓練的過程和數據的變化得以更加直觀的展現,計算和修改權值的過程更加便捷。
1.3.2 硬件工具
硬件部分使用搭載Windows 10版本的計算機,CPU為i7-7700HQ,4核8線程處理器,主頻為2.8 GHz。GPU為NVIDIA GeForce GTX 1060。
CNNs作為一種前饋型神經網絡,其主要包含卷積(Convolution)、激活函數(Rectified Linear Units,ReLu)和池化(Pooling)3種操作[5-6]。網絡中的神經元可以響應周圍神經元,進行數字圖像處理,完成如目標檢測、分類和分割等工作[7-8]。在本研究中首先對原始數據進行預處理,再通過遷移學習的方法訓練模型,并比較結果。
2.1.1 數字圖像處理
在臨床醫師截取的原始圖像數據中選擇包含完整結節區域且較為清晰的圖像片層,刪除原始數據中不含感興趣區域(region of interest,ROI)的冗余圖像。由于不同廠家型號的超聲檢查儀存在圖像尺寸、分辨率、信噪比等客觀差異,需首先針對超聲圖像數據特征,對其進行濾波處理,主要采用斑點抑制各向異性擴散濾波器(speckle reduce anisotropic diffusion,SRAD)來降低高頻成分幅度,防止高頻段的特征信息被噪聲掩蓋,從而減弱噪聲對圖像質量和模型訓練結果的影響。利用直方圖均衡化(Histogram equalization)對數據集中的數據進行灰度變換。之后結合形態學處理,去除醫師在檢查過程中標注的信息,得到反映甲狀腺組織超聲圖像信息的子圖像[9-10]。上述數字圖像處理步驟使得圖像特征更為顯著,從而減少無關信息對訓練結果的影響。
2.1.2 數據增強
CNNs模型需要大量數據作為訓練網絡的支撐,但項目實際中難以找到充足的數據。數據量不足會使得CNNs為了得到一致性假設而變得過度嚴格,從而出現過度擬合現象。由于不同廠家型號及版本的超聲檢查儀輸出圖像大小不同,采用隨機裁剪的方式將圖像隨機裁剪成224×224像素,可將1份超聲數據圖像增強幾百倍。但由于包含甲狀腺的有意義的部分相似度過高,實際效果欠佳。同時,借助其他的數據增強方法擴大訓練樣本量,主要為空間幾何變換類,包括反轉、隨機裁剪、隨機旋轉、隨機縮放變形等操作,對圖像進行仿射變換。通過插值法填充,使圖像大小保持一致。同時有研究表明,數據增強倍數不宜過大,否則會導致冗余數據過多,模型從冗余數據中無法學習到更多特征,徒增訓練量[11]。
本研究的增強倍數為10,即1份數據擴增出9份平行的甲狀腺超聲圖像數據,以此提升模型的準確率和泛化性能,避免過擬合。最后,使用ImageFolder模塊將圖片轉換為可供運算的張量(tensor)。
選用在ImageNet圖像分類競賽中表現優異的CNN卷積神經網絡模型,通過遷移學習方法,對模型參數進行反復比較和調整,以獲取更優異的分類預測效果。CNN網絡模型通常需要大量的數據作為支撐,在醫學圖像數據領域難于找到如此龐大的數據量,而利用遷移學習的方法可以將自然圖像領域中有標注的圖像應用于醫學圖像領域。從而極大降低了訓練模型的難度,節約寶貴的運算資源和時間成本[12]。圖1對遷移學習給出簡明示意。

圖1 遷移學習過程示意圖
選擇固定CNN模型訓練網絡并調整網絡參數。選用(visual geometry group,VGG)19、GoogLeNet Inception V3和密集卷積網絡DenseNet 161的3種初始CNNs模型,并用在自然圖像數據集預訓練得到的預訓練參數初始化網絡,獲取圖像高維特征[13]。卷積神經網絡遷移學習流程見圖2。

圖2 CNNs遷移學習流程圖
2.3.1 VGG 19模型
VGG網絡由牛津大學Visual Geometry Group團隊研發搭建,采用連續數個3×3的卷積核代替神經網絡中的較大卷積核。對給定的感受野,采用堆積的小卷積核意味著更多的非線性層,可以增加神經網絡在復雜訓練中的優勢,能夠在具有相同感知野的條件下,提升網絡深度,減少參數,在一定程度上提升神經網絡分類的準確性[14]。
2.3.2 Inception V3模型
Google Inception Net在結構上創新,采用全局平均池化層取代全連接層的方式,降低參數量,并通過引入批標準化,加速神經網絡訓練過程中的收斂。Inception V3模型為47層神經網絡模型,創新性地將二維卷積層拆分成2個一維卷積層,以達到減少訓練參數,減輕過擬合現象的目的[15]。
2.3.3 DenseNet 161模型
DenseNet可以看作是殘差神經網絡ResNet的一種特例,ResNet的CNNs模型通過建立前后層之間的短路連接,使訓練過程中梯度能夠反向傳播,從而避免梯度消失和梯度爆炸的問題[16-17]。DenseNet 161模型則開發了一個互相連接所有層的密集連接機制,每層都將其之前層的參數作為額外的輸入。密集卷積網絡連接機制見圖3。

圖3 密集卷積網絡連接機制示圖
對于N層網絡,DenseNet 161模型共包含個連接,較殘差神經網絡連接更密集。且DenseNet 161模型的各層直接連接其之前所有層的特征參數,以實現特征重用,提升網絡效率。
傳統CNNs在第n層的輸出為公式1:

ResNet單元,則在第n層增加了來自前層特征函數為公式2:

DenseNet則在第n層連接之前所有層作特征函數為公式3:

在分類訓練中將數據依據病理診斷結果標準打上標簽,將數據隨機按照75%與25%分為訓練集和測試集兩部分,以保證分類結果的客觀性,避免隨機誤差和偶然性。綜合考慮GPU、CPU及內存性能,選擇將3種模型在相同數據相同平臺上運行150個Epoches作為參考結果。微調參數重復訓練多次,去除模型陷入“死區”等結果,以測試集最高準確率、測試集后30個Epoches準確率平均值及參數模型大小總結3種模型在訓練中情況及訓練測試結果見表1。

表1 三種模型訓練測試結果
三種模型的訓練集正確率和損失曲線以及測試集正確率和損失曲線見圖4和圖5。

圖4 三種模型的訓練集正確率和損失曲線

圖5 三種模型的測試集正確率和損失曲線
本研究采用從自然圖像訓練得到預訓練參數的CNNs模型對甲狀腺結節超聲圖像進行特征提取并分類,同時對網絡參數進行調整。在VGG 19模型、Inception V3模型和DensenNet 161模型這3種結構迥異、特色鮮明的CNNs模型進行測試,在3種模型上均訓練出了較為優良的結果,證明了基于CNNs的甲狀腺結節良惡性分類的可行性,為后續研究工作打下基礎。
3種CNNs模型中,VGG 19模型在訓練集上收斂速度最快,訓練效果最優,表現出良好的分類性能,但其在測試集中的表現不如Inception V3模型和DensenNet 161模型,平均準確率僅為88.18%。推測是由于VGG 19模型獨特的簡潔結構造成的網絡層數不高,隱藏層數量不夠,對于訓練集中高維特征的提取不夠,導致低維參數過度擬合,造成測試集中的分類偏差[18]。同時,VGG 19模型占用更多的計算資源,使用更多的網絡參數,幾乎是另外兩個網絡模型參數大小的5倍,因此在訓練時間上的優勢并不明顯。該模型中多數參數來源于第一個全連接層,在后續測試中發現,去除部分全連接層,對網絡性能影響甚微,卻可以極大減少網絡參數。
Inception V3模型和DensenNet 161模型的收斂過程均呈穩步波動上升趨勢,最終收斂結果均在98%以上,在測試集上準確率分別為92.85%與92.91%,分類效果不俗。Inception V3模型用數個小卷積核替代一個大卷積核,能夠在有效減少參數的同時保證性能,且Inception V3模型結構將全連接與部分卷積轉化為稀疏連接,能夠減少計算成本,節約計算時間,提高訓練效率。DenseNet 161模型激進的密集連接機制使其兼具較少的參數量與較好的抗過擬合能力。一般神經網絡隨著深度的增加,非線性函數運算復雜度也增加。而DenseNet 161模型利用淺層低復雜度特征,使決策函數的光滑度和泛化能力得到加強,非常適用與本研究類似的小數據樣本訓練。Inception V3和DensenNet 161模型兩者最終保存參數模型大小均為100 MB左右,相較于VGG 19模型有顯著優勢。考慮到各模型網絡層數的差異,Inception V3和DensenNet 161模型在訓練中更有利于提取高維特征值,且效率較高。此外,由于DensenNet 161模型獨特的反向傳播設計,對顯存要求較高,在實際訓練時需要對網絡架構進行優化,并選擇較小的Batch_Size。
本研究通過對3種不同網絡深度、寬度及功能的CNNs模型進行分類訓練測試,表明CNNs模型能夠較好的對甲狀腺結節超聲圖像進行特征提取并分類,其結果表明,Inception V3模型與DenseNet 161模型分類準確率相似,并且參數數量較少,模型簡潔,魯棒性強。相比之下DenseNet 161模型的網絡結構對于小樣本量的神經網絡訓練泛化效果更好,但對硬件要求較高;Inception V3模型略遜,但運行速度更快。
本研究成果可輔助醫生的診斷,減輕醫生工作負荷,同時減輕患者生理和心理負擔。但本研究仍不完善,還需進一步增加數據樣本量;網絡結構還需要進一步優化,網絡參數也需要同步微調,還應實現ROI勾畫,以進一步完善研究,減少過擬合和欠擬合現象的發生,向更高準確性、更強適應性以及更廣適用范圍的方向發展,為臨床診療工作提供全面的參考依據。