深度學習在醫療影像之應用

tc Lin (德全)
Taiwan AI Academy
Published in
10 min readMar 24, 2020

近幾年深度學習在影像處理應用上的實現日趨成熟,相關應用諸如工業瑕疵檢測、自駕車、人臉辨識等,都有許多成功案例。醫療影像相關領域,也在深度學習技術的引入後有很大的進展,本文為大家分享深度學習在醫療影像之應用,讓大家對這方面的應用有初步的認識。

本文分享主題:

1.深度學習介紹
2.醫療影像系統開發流程
3.模型建置流程
4.參考程式範例

深度學習介紹

近代人工智慧的發展脈絡由1956年起,基於機率統計的rule-base模型開始,透過圖靈測試(Turing Test)定義一個廣義人工智慧(General AI)所需具備的條件。到了1980年代發展出機器學習理論與工具,讓電腦能夠從資料中學習出規則,開啟許多機器學習演算法的發展,同時受益於電腦的普及與資料的數位化,讓機器學習的應用有很多實作的場景,例如:電子商務的銷售資料分析與預測、銀行信用評等、電子郵件病毒偵測、以及科學研究等諸多用途。

在2010年後,雲端應用與大數據的發展,我們對資料的取得與保存成本大幅的降低,且受益於電腦運算能力的高速發達,我們對圖形、影像、聲音的處理能力大增,搭配近十年發展出的資通訊基礎建設完備。許多深度學習的演算法在強大算力與資料量的支援下,逐一攻克許多人類善長的領域。

例如:2012年AlexNet在視覺辨識的領域取得16.4%的Top-5錯誤率,隨後VGG(2014年,7.3% Top-5)、GoogLeNet(2014年,6.7% Top-5)、ResNet(2015年,3.57% Top-5),CNN模型的Top-5錯誤率表現己超越人類平均水準的5%。此外在其它的應用上最廣為人知的2016年AlphaGo圍棋以4–1打敗頂尖韓國棋士李世乭,更是人工智慧發展的重要里程碑。

人工智慧、機器學習與深度學習間有什麼區別? | NVIDIA [1]

深度學習模型 DNN,Deep Neural Networks。以模仿神經元結構來組成神經網路模型,基本是由輸入層的Features與隱藏層(Hidden Layers)及輸出層(Output Layer)來組成神經網路結構,每一層隱藏層由數個神經元線性組合成為一個感知層,將輸入的訊息透過倒傳遞方式來回修正各神經元的權重值,來達到從資料中學習的效果。(下圖示為google網站提供的神經網路模擬器,對此模型結構感興趣的朋友,可以依註解連結,實地進行互動操作)

Neural Networks playground| Google [2]

深度學習模型 CNN,Convolutional Neural Networks。CNN模型是由輸入層(Input)、卷積層(Convolution layer)、池化層(Pooling)、特徵圖(Feature maps)、全連接層(Fully connected)與Softmax函數(output)來組成整體模型架構。輸入層為影像資料經過前處理後的尺寸與(數)值域輸入模型,再運用卷積層來抽取特徵(Feature),經池化層進行重要訊息的萃取壓縮,從圖形抽取的資訊會整理成特徵圖(Feature maps)輸入全連結層與Softmax函數(做為分類器的功能),最後得到一個輸出結果,或稱為分類結果。

A guide to deep learning in healthcare | Nature [3]

CNN Model & Transfer Learning and Open dataset。這三個重要的名詞是觸發視覺模型快速發展的關鍵。承上述中2012年起發表AlexNet、VGG、ResNet等大型模型架構,在ImageNet、COCO(Common Object in Context)Dataset等開源資料集進行訓練,運用遷移學習(Transfer Learning)將預先訓練好的權重,移轉到不同的影像任務中使用,其中包括醫療影像的應用。對這些大型CNN模型有興趣的朋友,可以參考以下Convnet playground連結,前往線上互動網頁進行操作。

Convnet playground | Cloudera Fast Forward Labs [4]

醫療影像系統開發流程

我們在瞭解深度學習的視覺模型可以應用到各個場域,其中包括醫療影像的應用。這部份的AI系統開發流程,可以參考下圖:醫療影像 AI系統開發流程表(工研院,iThome整理),知悉整個系統開發分為三個階段。

前處理期,參與醫療應用開發之人員必需通過IRB(研究倫理審查委員會)審核,才得以參與系統開發。前處理期有很多時間會花在資料的收集清理與資料標註的工作,為了讓模型建置有好的成效,清理出乾淨的資料集與符合建模所需的正確資料標記,非常的重要。

模型建置與試驗階段,訂定符合建模任務的效能評比指標,經由模型建置(訓練模型、評估、參數及模型調整)再到場域的系統部署測試及維運等一連串過程。最後是醫材登記與上市階段,進行醫材臨床試驗與TFDA(台灣食品藥物管理局)醫材查驗登記,始可進行商業化販售。

醫療影像 AI系統開發流程表 | 工研院,iThome整理 [5]

我們以 prototype system for diagnosing CXR 這個網頁範例來說明建置流程,讀者可以利用下圖連結前往該網頁實地操作胸部X光片的疾病診斷預測。但此網站僅為教學示範系統非合格的醫療應用,需請知悉

Chester the AI Radiology Assistant | Mila Medical [6]

模型建置流程,首先我們需要有CXR(Chest X-rays)的標記資料集,這部份可以在美國國立衛生研究院(NIH, National Institutes of Health),取得NIH Chest X-rays 資料集,這是一個擁有11萬張影像的標記資料集,可以供我們進行模型建立。但是這個資料集在輸入模型前,仍需進行資料清理的作業,以提升後續模型建立成效。

一般深度學習模型的建立步驟,可以參考下圖:深度學習模型訓練常見問題 — 模型建置流程。我們會以一個簡易的CNN模型來做為起手模型,主要在搭建資料流及debug的工作,等pipeline建立後,可以進行模型的效能評估與優化,透過參數調校與資料集改善來提升模型成效,諸如準確率的提升,預測速度的改善等。直到模型的成效符合實驗場域的規格需求。

深度學習模型訓練常見問題 — 模型建置流程 [7]

最後,若對模型程式撰寫有興趣的朋友,可以參考Microsoft程式範例指示逐步操作,來搭建Chest X-rays的疾病判別模型。

這個範例是以DenseNet 121層的模型架構為主要骨幹,輸入的CXR image會先縮放為224 x 224 x 3 (長 x 寬 x 頻道) 來輸入DenseNet121,分類器是由一個(1 x 100)的全連接層經過 Sigmoid函數 ,讓各疾病分類得到一個0~1之間的評估值,評估值最大的為最可能的疾病類別。

Using Microsoft AI to Build a Lung-Disease Prediction Model Using Chest X-Ray Images | Microsoft [8]

希望透過以上的簡要介紹,讓您可以瞭解開發一個醫療影像AI系統需考慮的環節,我們也很建議您可以參考實作範例連結,實地操作模型訓練的過程,相信更能體會其中的原理,謝謝您的閱讀。

參考資料

[1]人工智慧、機器學習與深度學習間有什麼區別? | NVIDIA https://blogs.nvidia.com.tw/2016/07/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/

[2]Neural Networks playground| Google http://playground.tensorflow.org/

[3]A guide to deep learning in healthcare | Nature https://www.nature.com/articles/s41591-018-0316-z

[4]Convnet playground | Cloudera Fast Forward Labs https://convnetplayground.fastforwardlabs.com/#/

[5]醫療影像 AI系統開發流程表 | 工研院,iThome整理 https://www.ithome.com.tw/news/129974

[6]Chester the AI Radiology Assistant | Mila Medical https://mlmed.org/tools/xray/

[7]深度學習模型訓練常見問題https://www.facebook.com/stuser.lin/posts/3224773510866923

[8]Using Microsoft AI to Build a Lung-Disease Prediction Model Using Chest X-Ray Images | Microsoft https://docs.microsoft.com/zh-tw/archive/blogs/machinelearning/using-microsoft-ai-to-build-a-lung-disease-prediction-model-using-chest-x-ray-images

[投影片連結] 深度學習在醫療影像之應用 (以Chest X-Rays 為例) https://www.facebook.com/stuser.lin/posts/4015317271812539

【PyData Taipei 2020 — 深度學習在醫療影像之應用】投影片連結: https://drive.google.com/file/d/15rKKmlLiPSQ9RQZB1FHmuWqhcTxESfZ2/view?usp=sharing
實作範例: https://github.com/stuser/temp/blob/master/pneumoniamnist_CNN.ipynb

--

--