王廣涵,程遠志,史 操,許燦輝
(青島科技大學 信息科學技術(shù)學院,青島 266061)
肺癌是全球范圍內(nèi)發(fā)病率和死亡率增長最快的惡性腫瘤之一,病死率在惡性腫瘤中居首位[1].高病死率的原因之一就是肺癌患者早期癥狀不明顯,然而等到發(fā)病明顯時,再檢查就已經(jīng)是中晚期,難以有效的治療.Orlacchio 等人[2]指出,如果可以早期診斷,進行肺癌切除手術(shù)后,患者5年生存率可達到40%~80%.因此若能在肺癌早期階段進行正確診斷和治療,將顯著改善患者預后,降低肺癌病死率,早期肺癌沒有明確轉(zhuǎn)移,可以得到幾乎根治的效果.
肺癌的確診需要進行穿刺或者活檢,但是這兩項檢查需要進行手術(shù)操作,對醫(yī)生要求比較高,且耗時耗費,一般只有通過影像檢查確定癌癥風險和惡性結(jié)節(jié)位置之后才會視情況進行病理診斷確認.計算機斷層掃描技術(shù)(computed tomography,CT)是目前臨床上肺癌診斷最常用的影像檢查手段.
想要盡早的發(fā)現(xiàn)癌癥風險,則需要經(jīng)常性的進行檢查,低劑量螺旋CT 掃描(LDCT)在顯著減低輻射劑量的同時可保證較好的圖像質(zhì)量,使得肺癌篩查也可以成為日常體檢的項目之一,也就能及時進行早期肺癌診斷[3].
其實際應用價值,使得國內(nèi)外的9 部肺癌篩查指南/共識都推薦高危人群定時采用LDCT 進行篩查[4],但是目前LDCT 肺癌篩查還未大規(guī)模普及應用是因為尚存在兩個問題:放射診斷醫(yī)師的培養(yǎng)數(shù)量遠跟不上需要分析的CT 影像的增長量,且人工分析的工作量也十分巨大,時間和經(jīng)濟上的成本居高不下;放射診斷醫(yī)師人工觀察CT 圖像給出的結(jié)果也還存在假陰性和假陽性而導致的漏診、延誤.因此一種能夠根據(jù)CT 圖像自動得出肺結(jié)節(jié)癌變良惡性風險的計算機輔助診斷系統(tǒng)(CAD)就顯得十分必要.
近年來的研究中,根據(jù)算法可以分為兩類:基于影像語義特征的方法和基于深度學習的方法.
前一種方法是通過機器學習算法來提取肺結(jié)節(jié)明確的影像組學特征,如紋理特征、灰度特征、形態(tài)學特征等,然后根據(jù)這些語義特征來得出肺結(jié)節(jié)的良惡性的分類結(jié)果.比較有代表性的有:Suzuki 等人[5]提出的訓練多個神經(jīng)網(wǎng)絡,采用3 個灰度特征、2 個邊緣特征、1 個形狀特征和臨床信息用于良惡性肺結(jié)節(jié)的分類方法;張佳嘉等人[6]也是用同一數(shù)據(jù)集訓練出多個分支網(wǎng)絡,先提取出醫(yī)生診斷時所用的肺結(jié)節(jié)語義特征信息,然后用于完成肺結(jié)節(jié)良惡性診斷任務.這種方法的優(yōu)點在于能夠給出病理診斷的依據(jù),可解釋性上更強一些.
后一種方法是直接應用深度學習等方法,不去關心放射科醫(yī)師的診斷依據(jù),充分利用CT 圖像的全部特征信息,直接得出良惡性判斷的結(jié)果.比較有代表性的有:Ardila 等人[7]提出了一種端到端的肺結(jié)節(jié)檢測和肺癌風險預測模型,利用3D CNN 網(wǎng)絡,可以對同一病患的多張不同時期的CT 影像進行對比處理,檢測出肺結(jié)節(jié)區(qū)域后結(jié)合CT 全局信息給出一個惡性腫瘤得分,取得了很好的效果;Hua 等人[8]提出了兩種深度學習架構(gòu),來對肺結(jié)節(jié)的良惡性直接進行分類,規(guī)避了對語義特征進行細化的需要,也取得了不錯的分類性能.
在對比過兩種方法的優(yōu)缺點之后,本文提出了一種基于多頭注意力機制的多任務學習方法,既采用深度學習網(wǎng)絡來充分提取CT 圖像特征,又利用硬參數(shù)共享的多任務模式來得出結(jié)節(jié)良惡性以及相關語義特征,避免了兩階段判斷網(wǎng)絡受到第一步分析識別各語義特征任務性能影響的情況,同時還能利用關聯(lián)語義特征提升對于良惡性判斷的性能.
方法流程如圖1所示,從原CT 圖像中根據(jù)檢測出的結(jié)節(jié)坐標,將需要判斷的結(jié)節(jié)截取出來,然后進行圖像處理輸入到基于多頭注意力機制的多任務學習網(wǎng)絡中,進而得出良惡性程度等語義屬性的判斷結(jié)果.
圖1 整體流程圖
多任務學習(multitask learning,MTL)的概念最早由Caruana[9]在 1997年提出,他構(gòu)造了一個前饋神經(jīng)網(wǎng)絡,提出了一種通過訓練單一的多層的感知器來執(zhí)行多個任務的機制,在輔助醫(yī)療診斷和自動駕駛等領域得到了成功應用.
選擇多任務學習是因為單任務只關注一個目標而可能忽略了更多有用的信息.具體來說,這些信息來自于相關任務的訓練信號.通過在相關任務之間共享表示,我們可以使我們的模型能夠更好地對原始任務進行泛化[10].多任務學習的目的是在一并解決多個相關任務的同時實現(xiàn)內(nèi)在特征的共享.已經(jīng)證明,這種共享可以提高部分或所有任務的性能[11].
目前基于深度神經(jīng)網(wǎng)絡的多任務學習中常用的模式有兩種:硬參數(shù)共享與軟參數(shù)共享,相對軟參數(shù)共享模式來講,硬參數(shù)共享模式不需要對每個任務都構(gòu)建和訓練單獨的模型,且可以降低過擬合的風險[12],因此本文選擇硬參數(shù)共享的多任務模式.
LIDC-IDRI[13]是由美國國家癌癥研究所發(fā)起收集的肺結(jié)節(jié)公開數(shù)據(jù)集,用于高危人群早期肺癌的檢測診斷.除了影像數(shù)據(jù)還包含了4 位胸部放射科醫(yī)師的診斷結(jié)果XML 文件.醫(yī)師針對每個結(jié)節(jié)給出9 個醫(yī)學語義特征(對比度、分葉征、毛刺征、球形度、邊緣、紋理、內(nèi)部結(jié)構(gòu)、鈣化程度和惡性程度)的具體分級(1-5 級,鈣化程度為1-6 級),等級越高,語義特征越明顯.
LUNA16[14]是該數(shù)據(jù)集的子集,刪除了LIDC-IDRI中切片厚度大于2.5 mm 和肺結(jié)節(jié)小于3 mM的CT 影像.相對于原數(shù)據(jù)集,LUNA16 數(shù)據(jù)集能夠更好的對計算機輔助診斷系統(tǒng)的性能進行評估.其中包含888 張肺部LDCT 掃描數(shù)據(jù),以及1 186 個肺結(jié)節(jié)的坐標位置和直徑大小.
結(jié)合LIDC-IDRI 數(shù)據(jù)集中4 位胸部放射科醫(yī)師的診斷結(jié)果,就可以得到LUNA16 數(shù)據(jù)集中全部肺結(jié)節(jié)的語義特征,我們?nèi)? 位醫(yī)師的診斷結(jié)果的算術(shù)平均作為最終各語義特征的分級數(shù)值.
在構(gòu)造多任務模型之前,我們要先探討其他語義特征與結(jié)節(jié)良惡性之間的相關關系,以此來估計添加到多任務學習中的特征是否會對良惡性判斷產(chǎn)生正向影響,對此我們采用余弦相似度來衡量每一個語義特征Y與結(jié)節(jié)良惡性等級X的關系,計算公式如下:
計算結(jié)果如圖2所示,通過其他8 個語義特征和結(jié)節(jié)大小與良惡性的相似系數(shù),可以發(fā)現(xiàn):除內(nèi)部結(jié)構(gòu)這一特征外,其他語義特征與結(jié)節(jié)良惡性之間都存在較強的相關性,因此我們選擇這些語義特征作為多任務學習中的輔助任務.
圖2 與良惡性相關關系
對于多任務的loss,最簡單的方式是直接將這兩個任務的loss 直接相加,得到整體的loss.這種loss 計算方式的不合理之處是顯而易見的,不同任務loss 的量級很有可能不一樣,loss 直接相加的方式有可能會導致多任務的學習被某個任務所主導或?qū)W偏.當模型傾向于去擬合某個任務時,其他任務的效果往往可能受到負面影響,效果會相對變差.因此需要對每個任務的loss 進行加權(quán)[15].
通過上一步得出的8 個語義特征以及良惡性,每個結(jié)節(jié)有9 個標簽來對應9 個特征的平均等級評分,每個子任務都有其損失函數(shù),如式(2)所示,將這些子任務的損失函數(shù)加權(quán)求和便是整個網(wǎng)絡的損失函數(shù):
其中,Li(X,Yi)是以X為輸入,Yi為輸出的第i個子任務的損失函數(shù),具體到語義特征屬性的等級預測任務,可以表示為式(3):
其中,n為結(jié)節(jié)數(shù)量,是第i個結(jié)節(jié)的真實值,是網(wǎng)絡輸出的預測值.
多任務學習中,不同子任務的收斂速度,訓練難度都是不同的,不能讓簡單任務主導整個訓練,導致各個子任務的表現(xiàn)差距過大,對于大多數(shù)多任務網(wǎng)絡而言,訓練過程中的最大難題是為每一個子任務找到合適的權(quán)重,讓每個子任務的重要性得到平衡,解決這些問題的辦法有幾類,有代表性的有:梯度歸一化(GradNorm)[16],使不同的任務loss 量級接近;動態(tài)任務優(yōu)先級(dynamic task prioritization)[17],利用不確定性賦權(quán)值,根據(jù)任務難易程度進行賦權(quán)值等.
本文采用的權(quán)重設計機制為動態(tài)加權(quán)平均(dynamic weight average)[18],通過考慮每個任務損失的變化率來調(diào)整任務權(quán)重.受梯度歸一化方法的啟發(fā),動態(tài)加權(quán)平均方法對每個子任務首先計算前一個epoch 對應損失的比值,然后除以一個固定的值T進行exp 映射后,計算各個損失所占比.如式(4)所示,首先計算一個epoch后的損失變化:
然后,將ωi(t-1)帶入式(5),得到對應子任務i的權(quán)重:
其中,T的大小代表了任務間的松散程度,如果該值足夠大,那么 λ便會趨向于1,代表各任務的權(quán)重相同.得到各任務權(quán)重之后,就按照整體損失函數(shù)對共享網(wǎng)絡結(jié)構(gòu)進行優(yōu)化調(diào)整.
Transformer 是Vaswani 等人[19]于2017年提出的一種模型架構(gòu).它開創(chuàng)性的思想,顛覆了以往序列建模和RNN 劃等號的思路,之后被廣泛應用于自然語言處理的各個領域,BERT、GPT 等模型也都是基于Transformer 的模型,在自然語言處理各個任務中都取得了突破性的成果.
因其在自然語言處理領域的巨大成功,開始有研究者嘗試將Transformer 引入到計算機視覺領域,其中由Dosovitskiy 等人[20]提出的Vision Transformer(ViT)模型很好的保留了Transformer 的原始框架,在圖像分類任務上可以獲得與當前最優(yōu)卷積網(wǎng)絡相媲美的結(jié)果.
并且因為Transformer 中所應用的多頭注意力機制,將模型分為多個頭,形成多個子空間,可以讓模型去關注不同方面的特征/信息,正適用于多任務學習中對不同的子任務關注不同的特性,因此本文采用ViT 模型作為多任務學習框架的共享特征提取層.
本文的多任務學習方法框架,如圖3所示.
圖3 模型框架圖
(1)根據(jù)檢測出的結(jié)節(jié)坐標,從CT 原圖上取出小塊,然后采用了一種保留3 維信息的CT 圖像轉(zhuǎn)換ViT 切片數(shù)據(jù)的方法,將3 維數(shù)據(jù)通過切片拼接轉(zhuǎn)為符合特征提取網(wǎng)絡輸入所需的二維圖片形式,來完成第一部分的圖像處理任務.
(2)將訓練集數(shù)據(jù)輸入基于ViT 模型的多頭注意力機制特征提取網(wǎng)絡中,提取出的特征向量作為后續(xù)不同的分類任務網(wǎng)絡的輸入.
ViT 模型為了將一個標準Transformer 直接應用到圖像上,盡可能少的修改,選擇將圖像分割成小塊,并將這些塊轉(zhuǎn)化為線性嵌入序列,然后在圖像patch 的嵌入中加入位置嵌入,通過不同的策略在全局范圍內(nèi)保留空間/位置信息.之后因為是分類任務,只需要輸入Transformer 的Encoder 層就可以了,而無需像自然語言處理的翻譯任務中還需要加Decoder 層.
本文中,通過第一步圖像處理的方法,將3 維CT圖像的每一個截面切片作為一個patch,進行線性序列化后,嵌入位置序列信息,作為Transformer 的輸入,更能夠保留和獲取空間/位置信息.
(3)采用多個分類任務共享特征提取網(wǎng)絡的硬參數(shù)共享模式,將ViT 模型提取出的特征向量分別輸入不同的MLP 網(wǎng)絡,對結(jié)節(jié)的多個屬性進行良惡性的判斷.使用動態(tài)加權(quán)平均(DWA)的損失函數(shù)權(quán)重計算優(yōu)化方法,保證多個分類任務的loss 同步降低,反向調(diào)整特征提取網(wǎng)絡以獲取跟任務更為相關的特征,動態(tài)整體優(yōu)化各分類網(wǎng)絡的準確性.模型在共享層就要學到一個通用的嵌入式表達使得每個任務都表現(xiàn)較好,從而降低過擬合的風險,以達到通過多任務學習,提升該模型的泛化效果.
本文選用基于ViT 模型的多頭注意力機制特征提取網(wǎng)絡,因為Transformer 模型的特性,加載在更大樣本上預訓練好的模型參數(shù),然后再根據(jù)具體的任務遷移到目標數(shù)據(jù)集進行調(diào)整,可以獲得更好的結(jié)果,并且所需的計算資源大大減少.然而ViT 模型現(xiàn)有的預訓練參數(shù)都是用二維圖像數(shù)據(jù)訓練得出的,因此想要應用于3 維的CT 數(shù)據(jù)上,需要對CT 數(shù)據(jù)進行變形調(diào)整.
受到ViT 對二維圖像進行切片取patch 方法的啟發(fā),本文采用的方法是,對3 維的CT 數(shù)據(jù)進行截面切片,形成的切片大小可以對應ViT 模型的patch 大小,然后將一整套切片圖片拼接成一副二維圖像,就可以應用現(xiàn)有的ViT 預訓練模型進行遷移學習.這樣即最大程度上保留了CT 數(shù)據(jù)的3 維信息,還可以保證ViT模型進行裁剪圖像時,取到的每一片patch 都是原CT圖像的一個完整的截面圖像.
圖4 為拼接后的二維圖像以及經(jīng)過ViT 的多頭注意力機制處理后的注意力熱力圖,可以看到注意力集中于結(jié)節(jié)區(qū)域.
圖4 注意力熱力圖
本文對LUNA16 數(shù)據(jù)集上進行五折交叉驗證實驗,結(jié)節(jié)各特征屬性值按照第1 節(jié)所述的,取4 個醫(yī)師給定值的算數(shù)平均,用兩種方式分類:(1)評級小于3 的歸為負樣本,評級大于3 的歸為負樣本,評級等于3(4 名醫(yī)師全部認為該結(jié)節(jié)評級不確定)的歸為不確定樣本,進行三分類;(2)評級小于2.75 的歸為負樣本,評級大于3.25 的歸為正樣本,排除掉最不確定的情況進行二分類.
分別以上述兩種分類方式進行單任務和多任務的實驗,三分類的結(jié)節(jié)良惡性判斷準確率遠小于二分類的準確率,此結(jié)果表明人類醫(yī)師無法準確判斷識別的結(jié)節(jié),使用本文提出的判斷語義特征的多任務學習框架同樣無法識別判斷.
下面僅就二分類的實驗結(jié)果進行具體說明.
首先用最基礎的MVC 模型,通過第1 節(jié)選定的9 個語義特征的值來判斷結(jié)節(jié)良惡性類別,準確率達到了93%,符合我們對于語義特征與良惡性具有相關關系的分析.
我們使用ViT 模型分別對每一個語義特征單獨訓練,部分結(jié)果如表1所示.
表1 單任務網(wǎng)絡分類結(jié)果
可以發(fā)現(xiàn)單任務對各語義特征判斷的效果并不是很好,如果用各個單任務網(wǎng)絡得出的屬性值再來對良惡性進行分類,則相當于對原輸入數(shù)據(jù)增加20%-30%的噪聲干擾,最終的準確率甚至會低于單任務直接對良惡性判斷的結(jié)果.
如表2所示,在使用多任務網(wǎng)絡對全部語義特征一起訓練時,因其內(nèi)在特征的共享,使得各任務或多或少的有了性能上的提升.
表2 多任務網(wǎng)絡分類結(jié)果
雖然對于結(jié)節(jié)良惡性分類的準確率最高只有87.3%,未達到SOTA,但是本文提出的框架除良惡性判斷之外,還可以一步同時輸出結(jié)節(jié)的9 個語義特征屬性值,提供了良惡性判斷的依據(jù)與標準,更具有實際應用價值.
在本文中,我們提出了一種基于注意力機制的多任務學習框架,該方法可以同時對CT 影像中肺結(jié)節(jié)的良惡性等9 類語義特征進行判斷.我們在LUNA16 數(shù)據(jù)集上的1 186 個CT 結(jié)節(jié)進行了試驗評估,實驗結(jié)果表明該方法對肺結(jié)節(jié)癌變風險的似然性預測是有效的.雖然準確率沒有達到目前3D 預測模型的精度,但是本文的方法同時給出了其他語義特征的預測值,能夠?qū)α紣盒缘呐袛?下一步需要進行的研究工作是:(1)交叉驗證每一項語義特征對良惡性結(jié)果的影響;(2)進一步提升包括良惡性在內(nèi)的各特征屬性的預測準確率.