醫療人工智慧-診斷AI 第一週筆記 上

螺絲

螺絲


最近我在Coursera上面發現了一組專門課,名稱是AI in Medical Specialisation人工智慧在醫療專門。

這一組專門課又分為三個不同的課程:一、AI for Medical Diagnosis 醫療診斷的人工智慧,二、醫療預後的人工智慧AI for Medical Prognosis,三、醫療治療的人工智慧 AI for Medical Treatment。該課程是由史丹佛客座教授Andrew Ng 領頭的deep learning.ai推出的課程,授課的講師是Dr. Pranav Pajpurkar。每個人都可以以旁聽的方式免費學習到課程裡面的內容,或是可以付費完成包含作業和考試的完整課程,我目前是以旁聽的方是參與課程,同時也有申請Coursera獎學金,打算完成整門課。

目前已經開放的課程有第一個診斷AI和第二個預後AI課,第三個課程醫療治療的人工智慧即將在5月29號正式上線。

deeplearning.ai 官網:https://www.deeplearning.ai/

接下來我想要一筆記的方式記錄我在旁聽這門課這門課的經驗,因為我目前有在上同樣是deeplearning.ai出品但是更初階的實作課程。因為怕理論的部分忘記所以決定給自己寫一份筆記,之後如果申請獎學金下來之後有通過的話再補充作業部分的學習心得。

目前我正在上的是醫療診斷的人工智慧第一週的課程。

首先在上課之前,同學們都可以加入deeplearning.ai 建立的Slack,在裡面,有許多各行各業共同參與這門課的人,所以你可以在裡面認識許多不同專業的人,可以直接向同學發問。同時間,這也是一個把自己的問題發在上面的平台。根據我的經驗來說,deeplearning.ai所開設的課程中,討論區並沒有專業的老師駐點,所以解答問題大部分都還是要依靠學生互相幫助為主。加入Slack之後大家就可以在上面問問題。這也是我覺得非常好的一點,比起以往的課程來說,現在這門課程就有一個比較方便問問題的平台,大家回答的速度也都可以快上許多! 同時一些重要的系統上面的問題或者是像「第三門課在29號即將上線」這樣子的公告也都會及時地在上面可以看到。

本文會採用不翻譯專有名詞的晶晶體,但會盡量解釋,請大家見諒。另外,我算是個程式小白,不是CS也不是任何演算法資工等等專業,以下就是我依照上課所學習到的給自己的筆記整理,如果有誤在麻煩不吝指正。

WEEK 1

適合的學生:

在正式上課之前,講師有提到大家需要有一些基本的程式語言能力(會用到Python)、具有深度學習的概念(包含supervised learning 和 unsupervised learning …等)以及知道怎麼計算loss和 prediction probability。

應用:

人工智慧在醫療上面的應用可以是非常的廣泛,在第一門課-診斷裡面,講者以胸腔X光、皮膚科學Dermatology、視網膜疾病ophthalmology以及 組織病理學Histopathology為例子,這些都是可以用深度學習來幫助診斷的部分。

Supervised Learning 使用在胸腔X光(CXR)作為舉例

第一部份的理論解釋將影像分做正常的CXR以及有腫塊的CXR,所以在這邊有腫塊的CXR的desired label:1 也就是有腫塊的CXR影像預測的可能性值(prediction probability)應該要是1;沒有腫塊、正常的CXR為零。

在把一組影像丟進一個演算法處理的訓練之前機器都會給一個事先給一個prediction probability,如這張圖裡面寫的,上面這張圖的prediction probability是0.48,而下面這張圖的prediction probability是0.51。

所以當我們發現prediction probability以及我希望能得到的desired label 值有差異,這時候可以用Loss去量化這樣的差異。

在下一組訓練的影像再度送進機器時機器就會利用Loss值去修正probability,這就是Supervised Learning 的最基本原理。

然而當我們在應用人工智慧到醫療上時會遇到三個主要的挑戰。

三個主要的挑戰

1.Class Imbalance

2.Multi-task

3.Data Size

先備知識:Binary cross-entropy loss計算


Class Imbalance

是指當我們在收集要拿來做深度學習的醫學資料時會發現正常的病患資料比不正常的、有疾病的資料還要多上很多,如果這時候我們直接把所有收集到的資料拿去做訓練的話就會出現問題。

如果今天有八張CXR的影像,每一個影像一開始的prediction probability是0.5, 所以在第一次計算Loss的時候,每一個影像的Loss都是0.3 。但是當正常的影像數量大於有問題的影像數量時, 正常影像所貢獻的Total Loss會比非正常影像的Total Loss還要大上很多,也就是說機器會認為他更應該努力在Loss最大的地方(正常影像)改進。但是這和我們建立人工智慧的初衷,也就是「找到不正常影像」是完全相反的,這就會產生問題。


這樣子的問題解決方法有兩個:第一個就是給予Loss權重 weight loss,第二個就是重新採樣 Resampling。

給予Loss權重weight loss:在原本計算Loss的function中加上權重,計算Loss的方式便會改成這樣。

重新採樣Resampling:重新採樣的意思就是以人工的方式將正常以及不正常的影像數量變得一樣。


就以這張圖片來說,原本的training set(Example的部分)有六張正常的影像,和兩張不正常的影像,以人工的方式將正常的影像去掉兩張之後,另外再把兩張不正常的影像重複放入變成四張,這樣的話,正常的影像和不正常的影像都分別有四張,便可以解決先前的Class Imbalance 問題。

但是這個解決方式會有一個缺點,可以看到原本應該有六種不同的正常影像涵蓋在traning set當中,變成四種,也就是說會有兩個正常的影像情況沒有被包含在這個訓練當中。

文章有點長了,下一篇的話會加上另外兩個挑戰 2.Multi-task 3.Data Size 的筆記。

如果看完我的文章想和我討論更多,歡迎利用粉絲專頁「SpongeRose海綿螺絲」的私訊或留言功能和我聯絡!(粉專聯絡可以回得比較快一點)https://www.facebook.com/spongeros

可以找到我的平台:

Leave a Comment

Your email address will not be published. Required fields are marked *

error: Content is protected !!