AAAI 2019論文:借鑑傳染病學原理探索醫學影象CNN可解釋性
回顧醫學的歷史,病菌感染曾一度困擾著人們:致病微生物也是看不見、摸不著的。微生物學鼻祖之一的羅伯特·科赫提出了一套科學驗證方法——科赫法則(Koch's postulates),用於將某種病變與特定的病原體建立聯絡。這一方法隨後成為傳染病病原學鑑定的金標準。科赫也因此獲得了 1905 年的諾貝爾生理學或醫學獎。
這套準則分為四條:
1. 每一例患病動物體內都可以分離到該病菌。
2. 該病菌可以在體外培養數代。
3. 培養了數代的細菌可以通過接種,使健康的實驗動物患上同樣的疾病。
4. 被接種的動物中可以分離到同樣的病菌。
自然界的微生物種類是天文數字,這其中僅有一小部分能夠感染人類,而對人類致病的就更微乎其微了,科赫法則成為確定這些病原體的金標準併成為現代醫學基礎之一。檢測醫療影象的 CNN 網路中也往往包含幾十萬乃至上百萬引數。受此方法啟發,可以使用類似的方法論來確定極少量的關鍵引數並研究 CNN 病變檢測器的決策依據。
論文 Pathological Evidence Exploration in Deep Retinal Image Diagnosis 以糖尿病視網膜病變為例,展示了 CNN 檢測器的決策依據,增進了醫生與 AI 之間的相互理解。
論文:Pathological Evidence Exploration in Deep Retinal Image Diagnosis
論文連結: https://arxiv.org/pdf/1812.02640.pdf
圖 1:受柯赫準則啟發,本論文對病變證據進行發掘、提取、重現
具體來說,本文首先在經典 CNN 病變檢測演算法中提取病理描述符,並利用一種 CNN 的視覺化方法來定位病變(圖 1.a);模仿科赫法則中在無數微生物中分離病原體這一過程,本方法從百萬級神經元中定位到數千維直接參與疾病診斷的引數並提取出描述符(圖 1.b);科赫法則接著將分離的微生物接種到健康生物體並觀察產生的疾病症狀,同樣,本方法訓練一個基於 GAN 的生成器,通過輸入病理描述符中來合成眼底圖(圖 1.c, d),如果眼底圖復現了相應的病變,就可以確認其與病理描述符的直接關係。
病理描述符的提取
本文以糖尿病視網膜病變(Diabetic Retinopathy,簡稱 DR)為例。全球範圍內,有超過 4 億糖尿病患者。根據 2016 年美國的統計,約有 40%-45% 的患者會發展出 DR 的症狀。這種病變通常根據視網膜眼底圖來進行診斷。DR 患者的眼底圖上會出現不同程度的微動脈瘤、出血、滲出等病變。
圖 2:DR 患者眼底圖中的病變
Kaggle 於 2016 年舉行了 DR 眼底圖檢測的競賽。本文使用的冠軍演算法中的一種:o_O(Antony 2016)。仿造 Zeiler 和 Fergus 的 CNN 視覺化方法,我們在檢測器後接上了一個啟用網路,用對稱的結構來還原每個卷積層中被啟用的神經元。
圖 3:病理描述符的提取
具體來講,為每一個卷積層構造一個轉置卷積層,為每一個池化層構造一個反池化層,啟用網路和檢測網路共享權重。使用這樣的網路架構,啟用網路某一層的結果是從 #9 層的神經元啟用結果翻譯回來的,一定程度上代表了這一層的神經元對 #9 的影響。
圖 4 將輸入的眼底病變圖和輸出的啟用圖進行放大對比。輸入的病變圖經過一層層卷積,保留了病理特徵,丟棄了血管等正常生理特徵。由結果對病變的選擇性,可以窺見 CNN 做出決策的證據。雖然在訓練 CNN 檢測器時僅僅使用了「病變圖-嚴重程度」這樣的影象級別標註,它仍能學到各種病變的特徵,並且主動關注這些區域。
圖 4:輸入的病變圖和輸出的啟用圖
接下來,根據病變參考圖的特徵層和啟用層,定義一個病理描述符,用於代表每一個病變的資訊。首先,對最後的啟用圖其進行閾值處理,得到二值掩碼圖,用於指示病變的位置資訊。然後,通過尋找最大連通區域,可以得到每個病變的邊界框。這一步操作即可將不同的病變分離開來。最後,使用邊界框,在特徵網路和啟用網路的中間層中截取出一些特徵塊、啟用塊,將它們作為病理描述符(圖 3)。這些病理描述符編碼了完整的病變特徵,可以為病變眼底圖的合成提供關於病變的所有資訊。
病變眼底圖的合成
柯赫準則中,將不可見的純化病菌注射到健康動物體內,可以使其患上相應的疾病。類似地,本文使用 GAN 來重現病理描述符中的特徵、說明 DR 檢測器提取出的病理描述符確實包含了病理資訊。
圖 5:病變眼底圖合成網路架構
本節的任務是訓練一個合成病變圖的生成器。生成器以血管分割圖 、噪聲向量
為輸入,通過一個 U-Net (Ronneberger, Fischer, and Brox 2015) 結構來合成出包含特定病變的眼底圖。
訓練生成器的時候,使用的資料集是正常眼底圖 和它的血管分割圖
。而病變資訊,全部來自於之前提取出的病理描述符。計算 Loss 時,設定了多個子網路來達到不同的目標。
子網路 1:判別器網路
判別器子網路判別一張圖片是真實圖 還是合成圖。進而計算出「生成對抗 Loss」,使生成器
和判別器
相互競爭,增加合成眼底圖的真實性。對於生成器、判別器,有
。
子網路 2:視網膜細節網路
視網膜細節網路使用VGG網路來提取健康眼底圖 與合成眼底圖
的特徵,做差得到「視網膜細節 Loss」,讓合成影象的特徵與其接近,保證合成圖片的生理細節。用
來代表VGG特徵提取函式,則視網膜細節 Loss 為
。
子網路 3:DR 檢測網路
DR 檢測子網路用來計算最重要的「病理 Loss」,使合成的眼底圖中出現病變。
計算病理 Loss 的時候,將合成的病變圖輸入到 DR 檢測器網路中,從想要合成病變的地方截取出特徵塊,與病理描述符中的相應特徵塊進行對比、做差即可得到合成病變與真實病變的差異。利用病理 Loss,能夠讓合成圖在特徵層的與病變相關的神經元啟用,從而保證病變的復現。
使用 代表合成圖的特徵塊,用
代表描述符中的特徵塊,則病理 Loss 為
。 計算過程中使用了 Gram 矩陣來保留樣式而非內容:
。
合成結果
在測試階段,文章使用了 DRIVE 資料集 (Staal et al. 2004) 作為正常眼底圖,使用 STARE (Hoover, Kouznetsova, and Goldbaum 2000) 和 Kaggle 中的影象作為病變參考圖,進行了多組實驗。
圖 6 是使用不同的病變參考圖來合成出的結果。根據專業眼科醫生的評估,前兩列的微動脈瘤合成較好,第三列合成的鐳射瘢痕與參考圖一致,不過第四列合成的硬性滲出有些欠真實。
圖 6:不同病變的合成效果
為了進一步說明合成結果的先進性,我們將本文方法與 Zhao 等人的 Tub-sGAN 生成的圖片隨機混合,並組織了 5 位專業的眼科醫生,對其進行雙盲評測。對於每幅合成影象,醫生為其進行三個評分:1. 眼底圖的真實性,2. 合成病變的真實性,3. DR 的嚴重程度(評分範圍是 1-10,得分越高越好)。最後收集到對 560 組評分,其平均值如表 1 所示。本文方法在合成的真實性上有明顯優勢。
病理描述符針對每個病變單獨儲存,這種設計使其應用變得容易操控。對病變的篩選、複製均可以通過對病理描述符的操作來實現,並可以進一步做到數量控制、合成病變的位置控制。具體操控效果如圖 7 所示。
圖 7:對病變位置和數量的操控
圖 8:病變數量增加時,DR 檢測器給出的嚴重程度也會相應提升
本文的生理細節 Loss,選用VGG來進行高層特徵的計算,而非直接使用 L1 Loss,能夠正確的保留視盤邊界等生理細節。與 Zhao 等人的 Tub-sGAN 不同,本文的病理 Loss 作用在病變區域性,不會影響生理細節的正常合成(圖 9)。
圖 9:生理細節保留對比
總體來看,本文的合成方法僅僅使用了參考圖中的病變特徵,忽略了參考圖的整體色調、外觀。若在此合成方法之後再增加一個 Deep Photo Style Transfer (Luan et al. 2017) 風格遷移,則會更進一步增加參考圖與合成圖在外觀上的相似程度(圖 10)。
圖 10:增加風格遷移後處理以後的效果
總結
本文提出了通過啟用神經元來檢測和編碼病變特徵的方法,該過程與決策證據緊密相關。
本文使用一種基於 GAN 的方法來將病理描述符視覺化,合成帶有特定病變的眼底圖,且病變合成的方法具有一定的可操控性。合成的結果得到了醫生的認可。
文章為 CNN 的可解釋性提供了一種研究思路,可激發更一般的探索。