主要工作內容
研究動機
慢性病是國人的健康殺手,根據調查,全民健保支出逐年成長,從健保署公佈的10大花費最高的疾病可以看出,慢性腎病高居首位,而其中洗腎人數超過9.2萬人,其次則是第二型糖尿病。而衛生福利部於民國108年國人10大死因調查中,糖尿病是死亡率第五高、高血壓性疾病以及腎炎腎病症候群及腎病變則分別是第八和第九高,高血壓、糖尿病以及慢性腎病可以說是台灣非常常見的慢性疾病。
另一方面,近年因憂鬱傾向而求助醫師的人也有增加趨勢,現全台將近200萬人有憂鬱症狀,約佔總人口的8.9%,其中重度憂鬱者約125萬人,約佔5.2%。從以上數據來看這些疾病的罹患機率都不低,困擾著不少民眾,但若是想檢驗是否患有這些疾病,通常需要在健康檢查時分別檢測,例如糖尿病檢查為測量空腹血糖值或口服葡萄糖測試,腎功能檢查依靠抽血和驗尿,但是若沒有出現症狀,比較難在早期發現問題並且進一步作檢測,可能因此錯失早期治療的機會,所以想透過使用深度學習的方法,從腦部磁振造影影像輔助判斷是否罹病。
研究方法
因為一般的檢查流程是讓醫師去檢視磁振造影的腦部影像,然後依據經驗來判斷是否有可能罹患疾病,若使用 AI 可以幫助區分影像,專題預計使用深度學習架構下的模型來建立疾病輔助診斷系統,降低醫務人員的負擔。
研究過程
第一步先採用最原始、未調整的模型,開始訓練後幾星期的成果都是不太正常的,預測結果非常不穩定,所以程式執行上老師建議可以用實驗的方式先設定較高的epoch觀察看看,看看參考指標是否穩定。在程式執行時雖有輸出資料,但因為對資料內容不熟悉,會判斷錯誤,所以花了不少時間去理解結果,也改進收集資料的方式和收集的內容,讓程式輸出的內容是可以直接作圖或比較的格式,節省整理的時間,也以此作為後續調整的依據。
原本的模型在抽出圖片做訓練時,是取亂數選擇圖片的,在老師的解說後我才了解因為資料筆數不多,程式也應該做改變,於是把程式改為每一份圖都放進模型訓練。除此之外,深度學習對於資料很敏感,所以在把輸入的檔案分為訓練資料和測試資料之前,應該先將資料種類平均分配,盡量維持各種分類的比例,也該過濾掉一些雜訊或是不必透過訓練就可分類的資料,避免訓練過程產生偏誤,保持模型架構在訓練過程不被擾亂。在這部分開始需要修改程式時,我發現自己對撰寫程式這件事遠比預期中的不擅長,容易想不到解決的辦法,所以常常土法煉鋼寫冗長程式碼試圖解決問題。在練習之後稍微進步了一點點,但距離熟練應該還是很長的路。
實際在訓練時印象最深刻的是憂鬱症是否患病的分類,在憂鬱症這份資料中分類0的數量很少,也就是患病的比例極低,比例上失衡也許會造成訓練結果不佳。所以後來先計算四種疾病的0,1標籤比例,然後先做比例較平均的那一組資料,那時老師也建議改做訓練效果較好的洗腎,比較能看出結果,不會因為本身特徵不明顯等因素,誤判為模型有問題。這部分因為掌握程度低,我的思考方式多半都會有錯,在老師講解後才明白可以這樣思考。我覺得蠻有挑戰性的,雖然只是一個小錯誤,但仔細想想自己很多部分都不熟悉,會在很多步驟都有下錯誤決定的毛病,導致需要重複進行實驗,但卻沒有太多進度。