直到今天,醫學影像AI的研究和落地,還有多少問題沒有解決?
任務的複雜多樣、數據的非標孤立、標註的稀疏有噪、模型的脆弱不穩,這些成為醫學影像AI學者難以迴避的問題。而在現實環境中,AI模型面臨的考驗更為複雜、不確定性更大。
2020年可以稱之為「醫療AI商業化的元年」,已經有多款醫療AI產品獲得官方審批。在人們驚嘆「中國AI速度」的時候、在醫學影像AI的大規模商業化之前,我們仍然要冷靜思考眼下的問題。
2021年1月9日,中關村醫學人工智慧研討會舉行。
本次研討會由《中國圖象圖形學報》聯合中國生物醫學工程學會醫學人工智慧分會共同主辦,中國科學院自動化所田捷教授、華西醫院副院長龔啟勇教授、中國科學院計算所周少華教授、中國科學院計算所趙地副研究員等分享了在醫學影像的最新研究與應用進展。

周少華教授是中科院計算所研究員、香港中文大學(深圳)兼職教授。
曾獲發明奧斯卡獎、西門子年度發明家、馬里蘭大學ECE傑出校友等,任MICCAI協會財長和理事,曾擔任MICCAI 2020程序聯席主席,AAAI、CVPR、ICCV、MICCAI和NeurIPS等會議的領域主席。
雷鋒網了解到,2020年底,周少華教授入選美國國家發明家科學院(National Academy of Inventors, NAI) Fellow。NAI是一個非政府、非營利性會員組織,成立於2000年。NAI Fellow是該院授予學術創新發明家的最高榮譽,旨在表彰對人類生活質量、經濟發展和社會福祉影響重大的學術創新發明家。
迄今有1403名Fellows(包括本年度新科Fellows),其中有38名諾貝爾獎獲得者、63名美國國家技術發明獎章(U.S. National Medal of Technology and Innovation)和美國國家科學獎章(U.S. National Medal of Science)獲得者、556名美國國家科學院(NAS)、美國國家工程院(NAE)和美國國家醫學院(NAM)院士、137名美國研究型大學校長或研究機構負責人等。
這些來自世界各地的院士共持有42700餘項美國專利,創造了3600萬個就業崗位和超過22000億美元的收益。

演講中,周少華教授列舉了醫學影像AI現階段面臨的七大問題。並且,圍繞深度學習自動化、通用表徵學習、學習與知識融合等技術,分享了自己最新的研究思路與應用進展。
徵得周少華教授同意後,我們提供PPT供大家學習和下載。關注公眾號《醫健AI掘金志》,對話框回復「周少華」即可獲取。
以下是周少華教授的演講內容,雷鋒網做了不改變原意的修改
周少華:非常感謝大會的邀請,我會從演算法的層面來分享一下醫學影像AI分析的特點、技術與趨勢。進行醫學影像分析和處理,首先要知道醫學影像有哪些區別於自然圖像的特點。以下,我從影像、數據、疾病、標註、樣本、任務、安全這七個要素來介紹其特點。
首先,醫學影像多模高清。常見的影像多模態包含了X光、CT、核磁、PET-CT、超聲。而且,現在單個模態(如CT)的圖像精度非常高。精度很高之後,我們就可以利用現有的渲染技術,把影像渲染地像是照相機拍的。當然,這也給GPU訓練帶來了一定的挑戰。

第二個特點是數據非標孤立。醫學影像的數據採集沒有同一標準,不同醫院、影像科室的採集協議不太一樣。而且,影像數據在不同醫院之間是不互通的,屬於一個孤島的狀態。甚至,同一家醫院不同的科室之間的數據也是不互通的。

此外,醫學影像是疾病的表徵。
Kahn』s Radiology Gamuts是一個疾病知識庫,定義了大概17000多個條目。每一個條目可以想像成報告里的一個相關概念,這需要一個很大的知識庫在底層作支撐。因此,要構建一個完全意義上的影像診斷系統,複雜度巨大。
而且,像肺結節等這樣比較常見的疾病佔據了大量數據;相反,大量的疾病只有非常少的數據,整個呈現一個典型的長尾分布。另外,像新冠肺炎這樣的突發疾病,數據採集從一開始就很有難度。總之,疾病長尾突發。

從標註層面來看,數據的標註也是比較稀少的。我摘取了一些2019年MICCAI競賽組織方提供的標註數量,有的只有33例;也有貌似很大規模的數據集(32萬例),但確是把64×64的patch作為一個樣本。
當然,業界也做出了很多努力,推出一些大型的數據集。
另外,即使是有標註的數據,標註也通常會有雜訊。(i)上圖可以看出,不同醫生在標註器官時存在明顯差異。(ii)把這個影像報告作為金標準,從中提取標註信息,也是有問題的。
有統計數字表明,15%的報告內容並沒有完全準確地描述圖像信息。即使是同一幅圖像讓兩個不同的醫生來看,可能30%的內容是不一致的,這也充分證明標註會有很多雜訊。所以,標註稀疏有噪。

假設標註充分且沒有雜訊,實際中又面臨樣本各異不均的問題。
例如肺結節良惡性二分類的問題。左邊是正樣本,右邊是負樣本。可以看到,即使在同一類中,形態差異非常大。從樣本的比例來看,負樣本的數量遠大於正樣本,高好幾個數量級。另外,很多負樣本長得非常像正樣本。
這些也給我們利用機器學習來進行醫學影像分析帶來很多困難。

從任務層面來看,如果想構建一個非常大型的AI系統,我們可以看一下總共有多少任務。
這邊展示了幾個典型任務,包括從頭顱骨的X光片里找特徵點、基於不同模態的腦配准、基於乳腺鉬靶來檢測腫瘤、腹部多器官分割、模擬冠脈血流情況。這是五個不同的任務。
回想一下,醫學影像有不同的模態、不同的疾病類型、不同的技術、如果把這些要素進行排列組合,你會發現任務複雜多樣。

另外一個就是醫學影像的安全性。相比於自然圖像,醫學圖像更加脆弱和不穩定,即安全脆弱不穩。
左邊是剛才展示的頭顱骨X光片,我們設計了一個特徵點檢測的演算法。這些綠色的特徵點,就是演算法檢測到的我們想要的位置。但是,如果在圖像里加上一點干擾,這些特徵點的位置就可以被任意操縱。
在這個例子當中,我們可以把這些特徵點操縱成一個字母「M」的形狀,而我們人眼察覺不到圖像的變化。
因此,這個演算法就處於非常脆弱的狀態,在原圖加上一些不太容易關注的變化,就會對輸出結果產生巨大的影響。

我們也進行了一些定量化研究。假設對一個醫學影像進行強度小於一個灰度級別的攻擊,意圖改變輸出的結果。我們攻擊的目標是讓神經網路特徵的平均值儘可能降低或增加。
上圖中展示的一個是眼底圖像,另一個是自然圖像。可以看到,兩者的變化差異非常大。醫學影像在受到擾動後,很容易就把特徵值縮小50%以上,而自然圖像的變化是相對微弱的。隨著網路的層數加深,這個現象進一步加劇,變得越來越不穩定了。這也從側面證明,醫學影像是一個相對不穩定的狀態,很容易受到影響。

考慮到醫學影像的這些特點,我們是否可以針對性地設計演算法?
目前,最火熱的演算法是訓練深度神經網路,所謂的深度學習。這個演算法的假設條件是:我們有一個單任務,且有大量的標註數據,即「小任務、大數據」。在這個條件下,現在的深度神經網路可以做到非常好的效果。
例如,很多公司在某一類單任務的影像產品上可以真正達到實用級別。但是,這種模式不容易擴展,構建不了全面的、滿足影像科醫生所有任務的系統。

而實際情況需要我們去解決「大任務、小數據」的問題,即有大量的複雜多樣的任務,每個任務擁有小量的標註數據。這給演算法研究者提出了新的挑戰:我們能否設計一些新的演算法,來達到更好的效果。
「大任務、小數據」是一個非常寬泛的概念,在不同的方向上湧現出了不同類別的趨勢性技術。今天我主要會介紹深度學習自動化、通用表徵學習、學習與知識的融合這三類技術。
深度學習自動化
深度學習自動化的概念,比較容易理解。

這是一個非常簡單的框架。
假設有一個輸入的圖像X,輸出變數Y,中間學習一個神經網路f,它的參數是W。我們會假設有一堆訓練數據,就是{(Xi,Yi)}, 然後構建一個優化問題,定義一些損失函數或者正則項來學習W。

在這個框架之中,實際上有很多人工的部分(如圖中黃色標識所示)。
第一個就是,很多 Yi需要標註,標註的數據量越大越好。所以,我們的第一個研究就是,能否找到一些標註高效的演算法(如自監督、半監督、弱監督學習等方法),減低對標註量的需求
其次,學習過程本身就是一個優化過程,就會有個目標函數。所以我們要提出這麼一個損失函數、正則項,這些也是人為來定義的。現在,也有研究提出,讓目標函數通過學習的方法,更明確地符合所提出的問題。
另外,就是網路結構的問題。現在很多做法是,直接拿一個現有的神經網路進行訓練,沒有仔細地調整結構。所以,我們需要研究,針對具體,是否存在最適合於這個問題的結構。目前的方法包括網路結構搜索和元學習。
還有一個大家容易忽略的點在於表達方面。因為X已經給定了它的表達,但是Y可以引入不同的表達。不同的表達也有講究,因為這會影響到訓練本身,主要在於計算梯度回傳時,它的大小是不一樣的;而梯度回傳的容易程度是訓練神經網路時最重要的指標。所以,我們希望找到一個好的Y的表達,能夠更好地實現梯度回傳。
輸出表達

我們先看一個表達方面的例子:設計一個通用型的腫瘤檢測的方案。一般對此類檢測問題,我們會使用Bounding Box (BBox),二維的BBox有四個參數,即中心點和長寬。你也可以訓練一個神經網路來尋找方框,但這個方框的表達在梯度回傳時是非常低效的。因為它是由四個參數的差異,來控制了一個可能包含幾百萬個參數的神經網路訓練,所以它不是很高效。
基於此,我們提出了Bounding Map(BMap)的概念,把一個原本是四個參數的方框變成了一個圖像式的表達。這樣做的好處在於,每一個像素點都可以回傳一個有指導性的梯度信息。所以,梯度信息就更豐富,神經網路會學習得更好。
我們做了三種方框表達常用方法的比較。在運用了我們的新表達之後,性能有比較大的提升。
自監督
接下來介紹一下自監督的概念。

在實際中,我們可能只有少量的標註數據,卻有大量的無標註數據。所以,一個直觀的想法是:我們是否可以利用這些沒有標註的數據,來幫助目標任務或者目標模型的訓練。這個就是自監督的出發點。
我們要做的,就是去定義一個proxy task(代理任務),這個任務產生監督信號。利用這個監督信號,我們可以訓練一個神經網路,得到一個預訓練的模型。由於我們有大量未標註過的數據,而通常神經網路訓練中見到的數據量越大,其學到的表徵就會越魯棒。
代理任務的設計就成為了一個研究的課題。我們可以去設計不同的代理任務。如果設計的好,就可以學到非常好的網路表徵。
接下來,我們利用目標任務的少量已標註數據,把預訓練模型通過遷移學習的方法得到最終的目標模型。

我們在這個方面也做了一些探索。
我們定義了一個「魔方復原」的任務,你可以想像成把一個三維的影像分為8塊(2×2×2)。訓練中,你可以像魔方一樣打亂它,但任何一個圖像的打亂過程都是已知的,我們可以通過訓練神經網路去復原魔方。
在復原過程當中,神經網路就學到了圖像本身的表徵,然後再把它遷移到目標任務上。上面是我們的最後得到的效果。對比只利用標註數據從頭訓練的方式,我們的自監督方法在腦卒中分類、腦腫瘤分割等任務上的提升是顯而易見的。當然,前提是我們有少量的有標註數據和大量的無標註數據。
顯然,代理任務和目標任務的效果是相關的。目前,很多同行學者們嘗試提出了不同的代理任務。我們探索了另一種可能,不提出新的代理任務,而是將目前已有的代理任務進行融合,看看結果是否會做的更好。

我們的直覺也很簡單:經過訓練之後,每個代理任務應該是找到特徵空間的一部分,目標任務很可能佔據了特徵空間的另外一部分。如果代理任務完全覆蓋了目標任務想要的特徵空間,這個效果就會比較好。
因此,如果每個代理任務得到的特徵空間相似度越小、互補性越強,通過融合後,它們覆蓋的空間就越大,對目標任務的幫助也越大。
我們就據此設計了演算法,去尋找這些互補的代理任務。上面圖中,我們發現,在六個不同的代理任務中,其中三個任務是非常互補的。如果我把這三個任務融合起來,在這個物體識別實驗上的性能可以提高到接近80%。回到剛才腦卒中的問題,在融合了兩個代理任務後,性能提高到了90%以上。
部分監督
標註高效的另外一個例子是部分監督。
以器官分割舉例,目前存在很多不同的數據集,分別提供不同器官的分割標註。例如這裡有五個不同的數據集,分別針對肝臟、腎臟、脾臟、胰腺等。如果能夠整合這五個不同的的數據集,以此來擴大數據量,並融合所有數據集里的標註信息,是非常有意義的。
我們的做法很簡單:訓練一個分割網路,對每一個像素點進行多分類,即分成六類:肝臟、胰腺、脾臟,左右腎,還有背景。因此,每個像素都會輸出一個六維的向量,代表是屬於哪一個類別的概率(從p0到p5)。
對於只有肝臟標註的數據,p1代表肝臟,而「背景」則是變成了原先背景與其他器官的融合,因為所有的非肝臟像素點都是背景,背景的概率變成了五個概率的相加,即邊緣概率。在這個條件下,我們就可以在損失函數裡面使用邊緣概率。通過這個機制,就可以利用所有的標註數據進行六分類網路訓練,有效地把這些數據融合在一起。
同時,在這個文章里我們也提出了一個exclusion loss,利用一個非常顯著的先驗知識:這些器官之間是一定不相交的。
例如,回到剛才只有肝臟標註的數據,我也可以計算p2(胰腺)來預測胰腺區域,而胰腺區域一定是不能跟p1代表的肝臟區域是有交叉的。
所以,基於此可以設計一個損失函數,讓這兩個區域的exclusion要越小越好。
利用這兩個損失函數訓練的結果如上。實驗中有30個數據是有全標註的,基於這些數據進行測試,得到的分割Dice係數是0.87。針對只有單器官標註的數據訓練二分類的分割網路,
它的Dice沒有這麼高,只有0.85。通過我們的融合方法,進行一個部分監督的訓練,利用了總共所有688個數據,我們模型的Dice達到了0.93。
所以,我們通過一個非常簡單的想法,就可以有效地把這個數據融合在一起,提升了分割的性能。
無標註分割

最近,我們還進行了一個比較「極端」的探索:在沒有任何標註的條件下,也可以進行基於CT的新冠肺炎病灶分割。
我們的出發點是:不使用新冠肺炎病灶的分割標註,但是利用很多沒有任何疾病的CT圖像。
利用這些正常圖,添加一些「人造病灶」。如果這些病灶與新冠病灶類似,我們就可以對病灶分割進行學習。因此,我們設計了一個人造的病灶生成器,該生成器的所有參數是由人工調控的。然後把「人造病灶」注入乾淨的圖像里,就得到了訓練樣本,進而訓練出一個分割網路。
與我們的方法對比的是Anomaly Detection(基於正常的圖像來訓練,從而檢測是不是有異常)。
Anomaly Detection在分割上不是很擅長,性能較低,在三個不同新冠數據集的Dice係數只有0.3左右;而我們的USL方法達到了60%以上,接近70%。 Inf-Net是一個半監督的方法,分割性能與我們相近。當然,以上方法得到的分割Dice係數在臨床上遠沒有達到應用的標準。但是,從研究角度來看,是一個非常有意思的探索。
通用表徵學習
通用表徵學習,意在學習一個通用的表徵來綜合異質任務、擬合多域數據、耦合不同表達,她更符合「大任務、小數據」的思路。

目前我們的一個探索也是基於分割網路,意圖設計了一個分割網路,可以適用於六個不同的分割任務:輸入是CT圖像,要求輸出是肝臟分割;輸入是MRI圖像,要求輸出是前列腺分割,諸如此類。
我們採用的架構本身是通用的U-Net,但是對不同的任務引入了紫色的Adapter;
就是說,每一個任務會利用到通用網路本身的這些係數,也會利用到自帶的adapter部分係數,共同組成了神經網路。這麼做得的好處在於,利用一個網路,完成六個網路的事情。網路的參數量明顯減少:我們用了原先網路接近1%的參數量,達到了與六個網路類似的分割性能。
另一個優勢在於,網路的通用部分很容易自適應到一個新任務上。如果我們遇到第七個任務,我們只需要把通用的部門固定住,針對第七個任務的差異化表徵進行微調,就可以得到非常有競爭力的分割結果。

這是另一個通用表徵的例子,應用在MR的影像生成。
從X到Y,我們可以設計一個神經網路,用F來代表,Y=F(X)。通常情況下,我們也會設計一個逆網路:X= F-1(Y),這樣就可以從Y回到X。這是一個比較重要的過程,因為引入一個迴路,通過迴路可以定義cycle consistency。
在此基礎上,我們提出了一個非常簡單的想法:不是訓練兩個不同的神經網路,一個正網路,一個逆網路,而是只訓練一個神經網路; 也就是說,兩個網路是互為自逆的。
訓練過程也比較簡單:第一次拿X作為輸入,訓練網路輸出Y。第二次拿Y作為輸入,反過來輸出X。我們在這個MR的影像生成任務上達到了很好的效果,把信噪比提升了3dB左右,這個效果相當驚人。
這也是一個通用表徵的例子,因為我們用了一個表徵完成了兩件事情。
學習與知識融合

最後,再介紹一下學習與知識融合。
我們知道,醫學影像有很多數據,可以通過機器學習(特別是深度學習)來建模。同時,醫學影像有很多知識,我們也可以直接通過對知識進行建模。因此,將學習與知識進行融合,其效果比僅僅基於大數據的機器學習要好。

在實踐中,我也經常觀察到其提升了性能。下面舉例說明。

這是一個胸片自動診斷的例子。
一般方法是訓練一個『黑盒』神經網路直接預測診斷結果。我們研究了一個方法,利用解剖結構分解的知識來提高性能,這也是我們跟臨床醫生交流之後了解到的。
看胸片進行診斷時,你會觀察到肋骨可能會遮擋了肺部,妨礙診斷。因此,我們設計了一個分解網路把X光片一分為三:骨頭投影、肺部投影、其他投影,然後和原圖一起輸入神經網路進行肺部疾病的自動診斷。這麼做,可以從中間的肺部投影圖中獲取到很多更準確的診斷信息。實驗結果表明,在14類疾病中,有11類疾病診斷預測都做得更好,而這11類疾病大多是和肺部直接相關的。

第二個例子是無配對的偽影去除:給神經網路一個有偽影的圖,通過學習的方法把偽影消除。
這是我們網路的設計,裡面就像是樂高一樣進行模塊搭建,搭建過程中就用到了很多知識。最終,網路也可以成功地分離出偽影,利用知識後搭建的神經網路,比一般黑盒的方法要提高不少性能。

另外一個例子,醫學影像的層內精度比較高,但是層間精度不太高,很多層間信息會模糊。
如果是一個常規CT、層間精度不夠高的脊柱圖像,進行渲染之後,哪怕是骨骼都看不太清楚。
我們最近嘗試進行了層間插值的工作,可以有效恢復層間的信息,更有利於診斷(效果如上圖)。演算法本身用到了圖像精度方面的具體知識,因此我們也將其視為「學習與知識融合」的例子來展示。具體演算法細節請參照發表的文章。

總結一下,我們分析了醫學影像的七大特點,以及圍繞這七大特點,我們提出的相應演算法趨勢。

最近,我們也寫了一篇綜述文章,也被Proceedings of IEEE接收。

最後,介紹一下MONAI。
MONAI是完全開源的社區,可以為醫學影像分析的研究者提供深度神經網路方面的資源,由專門的團隊來打造、測試這個軟體,因此軟體的可靠性非常高。

我也是MONAI項目的顧問,我們會提出很多的這些需求,也希望大家可以來使用MONAI。雷鋒網