AI醫(yī)療場景化業(yè)務(wù):如何用AI技術(shù)做食管癌識別和輔助診斷?
AI運用于醫(yī)療,通過機器學(xué)習(xí)的特點,可以輔助診斷。筆者分享了運用AI技術(shù)做食道癌識別和輔助診斷的經(jīng)歷,闡釋了各階段的難點。
影輔助診斷主要做兩件事情:
- 醫(yī)學(xué)知識圖譜構(gòu)建;
- 基于疾病的診斷。
今天我們來分析如何用AI技術(shù)做食道癌識別和輔助診斷。
食道癌是世界五大惡性腫瘤之一,我國又是食道癌的高發(fā)地區(qū)。這個項目的目標(biāo)是通過影像判別病人是否可能患有癌癥。
項目的整體流程如下:
- 采集數(shù)據(jù)集:內(nèi)窺鏡探頭一般從患者鼻腔進入,然后經(jīng)過咽喉和食管,最后到達胃。我們采集食管數(shù)據(jù)的時候,可能會引入大量非食管數(shù)據(jù)。
- 數(shù)據(jù)標(biāo)注與模型建立:然后對這些數(shù)據(jù)做區(qū)分,通過食管判別模型,只保留食管數(shù)據(jù)。然后將食管數(shù)據(jù)送到下一個模型,這個模型只做一件事情,就是把正常的食管和異常的食管區(qū)別開來。
- 圖像分析:區(qū)分之后,再把病變的食管數(shù)據(jù)送到下一個環(huán)節(jié),判斷這個圖像代表的是癌癥還是炎癥。
整個流程大致可以分為這樣三個階段,接下來我會簡單介紹每個階段的難點。
圖像數(shù)據(jù)集少、表現(xiàn)不一
通常的圖像分類任務(wù)動輒幾十萬、上百萬,甚至上千萬的數(shù)據(jù)量相比,醫(yī)療影像它的數(shù)據(jù)量是非常少的。同時,由于設(shè)備參數(shù)、醫(yī)生的拍照手法或拍攝角度、光照的明暗不同,食管的表觀變化非常復(fù)雜。
那么,我們怎樣才能在這樣的條件下得到一個可靠穩(wěn)定的模型?
采用Feature map。Feature Map是卷積核卷出來的,你用各種情況下的卷積核去乘以原圖,會得到各種各樣的feature map。你可以理解為你從多個角度去分析圖片。而不同的特征提?。ê耍崛〔煌膄eature,模型想要達成的目的是解一個最優(yōu)化,來找到能解釋現(xiàn)象的最佳的一組卷積核。
在同一層,我們希望得到對于一張圖片多種角度的描述,具體來講就是用多種不同的卷積核對圖像進行卷,得到不同核(這里的核可以理解為描述)上的響應(yīng),作為圖像的特征。
他們的聯(lián)系在于形成圖像在同一層次不同基上的描述。下層的核主要是一些簡單的邊緣檢測器(也可以理解為生理學(xué)上的simple cell)。
在拿到食管數(shù)據(jù)之后,如何判別這個食管屬于健康正常食管還是病變食管呢?
這個問題跟前面的問題比較類似,也是一個判別模型。
它們的不同之處在哪呢?
當(dāng)我們判斷一個食管是否異常食管時,只需要找到一個病變區(qū)域,就能夠說明這個食管是異常的。
但是反過來,在正常圖像中,并不能說找到一個正常特征,就說明這個食管是正常的。只能說在這張圖像中我們沒有找到異常特征,它可能是見正常的。
因此,在正常特征和異常特征之間,我們更傾向于提取病變特征,抑制正常特征。
我們是怎么做到呢?
病變和正常的case都會經(jīng)過神經(jīng)網(wǎng)絡(luò),以得到特征向量。對于這個向量,我們希望盡可能凸顯異常特征,讓正常特征趨近于0。
我們是如何把這種信息建模到模型中的呢?
我們對模型進行了重新建模,最后準(zhǔn)確率大概在97%左右。
前面的模型相對來說比較簡單,第三個模型主要是區(qū)分炎癥和癌癥,它與前兩個問題不大一樣。
一般情況下,病變的食管圖像里都會伴隨著一些炎癥的特征。
我們對癌癥的判斷往往是通過一個紋理特別小的區(qū)域得出的,因此需要提取出更加精細化的特征。比較好的做法就是讓很多專家把病灶區(qū)非常嚴(yán)謹(jǐn)?shù)貥?biāo)注出來,這樣我們只需要對這個區(qū)域進行識別就好了。
這個標(biāo)注量非常大,因此數(shù)據(jù)異常匱乏。我們沒有癌癥區(qū)域的標(biāo)注數(shù)據(jù),但又希望得到非常精細化的特征,如何解決這個矛盾呢?
幸運的是,我們雖然無法獲取到非常精準(zhǔn)的病變區(qū)域標(biāo)注影像,卻能夠相對容易地知道一張圖像是否包含癌癥,因為只需要跟病例對應(yīng)關(guān)聯(lián)起來就好了。這樣一來,我們可以更容易地得到圖像全局的標(biāo)簽。
如果一張圖像包含了癌癥,必然會有一個或幾個區(qū)域包含了癌癥的特征。也就是說,如果我們把圖像切分成幾個patch,必然會有某個或某幾個patch包含癌癥特征?;谶@樣一種思路,我們采取了多序列的學(xué)習(xí)方式。這個方法的內(nèi)在思想很簡單,就是把圖像切分成若干個patch,然后對每個patch建模,判別這個patch發(fā)生癌癥的概率。
我們最后把所有patch里面癌癥概率最高的那塊,作為圖像是否包含癌癥的標(biāo)簽。
做的過程當(dāng)中,我們會逐漸積累精準(zhǔn)標(biāo)注的數(shù)據(jù),這些數(shù)據(jù)非常少,不足以虛擬一個模型。但圖像中的特征都是最精準(zhǔn)的,是經(jīng)過人為校驗和標(biāo)注的。
我們怎樣才能把這種少量的、精準(zhǔn)的數(shù)據(jù)強化到癌癥識別中去呢?
這是個非常有意思的問題,如果能解決這個問題,即使只有少量標(biāo)準(zhǔn)數(shù)據(jù),我們也能不斷提升。
這里主要采用了多任務(wù)學(xué)習(xí)的方法,這個方法需要完成兩個任務(wù):
- 基于有病變區(qū)域標(biāo)注的數(shù)據(jù)建立有監(jiān)督的學(xué)習(xí)任務(wù);
- 對于沒有病變區(qū)域標(biāo)注的數(shù)據(jù),建立前面提到的多序列學(xué)習(xí)任務(wù)。
這兩個模型共享特征提取網(wǎng)絡(luò),特征提取網(wǎng)絡(luò)必須同時滿足兩大任務(wù),這樣才能把精準(zhǔn)標(biāo)注的特征強化到癌癥識別中去。
以上是我們食道癌項目的簡單介紹,下面再簡單介紹一下我們在輔助診斷方面做的一些工作。
輔助診斷的目的是什么呢?
我們希望機器最終能夠像臨床醫(yī)生一樣具備診斷疾病的能力。
在介紹輔助診斷項目之前,我們先來看看一個醫(yī)生或者一個普通的學(xué)生是如何成長為一名專家的:一個學(xué)生從剛?cè)雽W(xué)開始,學(xué)習(xí)了大量專業(yè)課程,閱讀了大量專業(yè)醫(yī)學(xué)文獻后,就可以積累一定程度的醫(yī)學(xué)知識。
當(dāng)醫(yī)學(xué)知識達到一定程度之后,就可以去醫(yī)院里面實習(xí),由臨床醫(yī)生結(jié)合一些真實案例,指導(dǎo)他去學(xué)習(xí)診斷的技能。
當(dāng)我們具備了這些技能,就能夠成為一名普通的醫(yī)生,醫(yī)生可以看到大量的病人,學(xué)習(xí)大量經(jīng)驗,經(jīng)驗足夠豐富之后就成了專家。
機器成長的過程與人類大致相似。
我們可以將其分為三個階段:
- 醫(yī)學(xué)知識圖譜的構(gòu)建,也就是機器學(xué)習(xí)知識的過程;
- 有了知識之后學(xué)習(xí)診斷的能力,也就是建立疾病判別的一些模型;
- 讓機器在與專家的博弈過程中,不斷提升診斷水平,逐漸逼近甚至超過專家。
醫(yī)療知識圖譜的構(gòu)建過程中,我們首先要對文本數(shù)據(jù)進行處理。文本數(shù)據(jù)分成兩類,一類是半結(jié)構(gòu)化數(shù)據(jù),一類是非結(jié)構(gòu)化數(shù)據(jù)。
這里我列舉一個例子,說明我們?nèi)绾伟逊墙Y(jié)構(gòu)化的文本變成結(jié)構(gòu)化文本,也就是計算機可以理解的形式。
我們可以把病史分為幾個部分:疾病的情況、入院的治療經(jīng)過、入院的依據(jù)等;把病史分為這樣幾部分信息后,再對每一類信息進行細化和提取;經(jīng)過提取之后,非結(jié)構(gòu)化的文本就變成了計算機能夠理解的結(jié)構(gòu)化文本;我們會把這些信息轉(zhuǎn)化為醫(yī)學(xué)知識圖譜存在電腦里,于是計算機就把這個知識學(xué)會了。
以上就是醫(yī)學(xué)知識圖譜的構(gòu)建過程。
第二步我們會有一個診斷模型。
診斷的過程是這樣的,首先把一段人類語言描述的病情轉(zhuǎn)化成計算機可以理解的結(jié)構(gòu)化知識。有了結(jié)構(gòu)化的知識以后,機器就能理解這個人的情況,把知識推送到疾病診斷模型當(dāng)中,模型將給出一個疾病列表,診斷模型的流程大致就是這樣。
下面我們來看一個病情理解的實例。
通過技術(shù)對病人病情的理解可以得到一些基本信息,其中包含性別、年齡,這個人的主動描述、現(xiàn)病史和既往史等。
主動描述里會提到癥狀以及持續(xù)的時間,甚至一些更復(fù)雜的信息,比如說唾沫是什么樣子的,咳嗽是否帶痰。這些信息都會詳細刻畫出來,按照前面提到的模式畫出病歷,完成對病情的理解。
理解病情以后,將其輸入診斷模型當(dāng)中。
診斷的demo包含幾個部分:對病情的人類語言的描述,通過病情理解后得到結(jié)構(gòu)化的病情表示,之后得出機器診斷的結(jié)果,按照概率從高到低給出5個結(jié)果。
我們還給醫(yī)生留了一個接口,醫(yī)生可以對診斷結(jié)果評分,通過評分將結(jié)果反饋到模型當(dāng)中。
通過醫(yī)生和機器之間的交互,可以將模型迭代得越來越好。
我們在實驗室數(shù)據(jù)里選擇了大概10萬個真實病例進行測試,TOP1的結(jié)果與醫(yī)生的一致率大概是92%,TOP3是90%,但這種模型還需要更多臨床病例做驗證。
本文由 @pms-rolia 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
想請教下,建模是程序員寫的還是產(chǎn)品經(jīng)理負責(zé)的?
非常棒,在智慧醫(yī)療領(lǐng)域知名產(chǎn)品經(jīng)理
要考慮召回率,I類錯誤和II類錯誤
是的,這里忘記寫了,感謝
非常棒,很有意思,我也是CV方向的PM,歡迎交流
哈哈哈可以相互交流,相互學(xué)習(xí) vx:bluebless