---
title:AI for Medical Diagnosis
tags:Course
---
# [AI for Medical Diagnosis](https://www.coursera.org/learn/ai-for-medical-diagnosis)
###### tags: Course
歡迎各位路見不平直接改共筆!不管是美編,內容補充或校正!
# Week 1
## 在深度學習中使用數據的方式

## 訓練醫學影像的三個主要挑戰 [Video](https://www.coursera.org/learn/ai-for-medical-diagnosis/lecture/YFDyV/image-classification-and-class-imbalance)

:::success
Class Imbalance
:::
* **解決方法一: Weighted loss**

補充:在迴歸問題常用的 Mean Square Error當我們遇到 outlier 時可以考慮改用 Huber loss
在分類問題中常用的 Cross Entropy 在物件偵測領域則有 Focal loss 這樣的變形, 做法上都是針對樣本來給定權重
[more info](https://reurl.cc/g7LoeN)
* **解決方法二: Resampling**

:::success
Multi-task
:::
解決方法:直接將同一張圖輸出到對應的多個病種


:::success
Data size
:::
> Medical image datasets typically have 10 thousand to 100 thousand examples.
Question: 這邊我目前打個問號, 就我所知我們好像很少拿到這個level的數據集?
* **解決方法一: Transfer Learning to deal with small training set**


* **解決方法二: Data Augmentation**
> Do Augmentation keep the label the same?

[Dextrocardia](https://en.wikipedia.org/wiki/Dextrocardia)
## 驗證模型的三個主要挑戰 [Video](https://www.coursera.org/learn/ai-for-medical-diagnosis/lecture/mFjNY/model-testing)

:::success
Patient Overlap
:::
這部份其實討論到的是 [**數據洩漏**](https://towardsdatascience.com/data-leakage-in-machine-learning-10bdd3eec742) 的問題,概念上等同模型看過正確答案。
在我們切割數據時 Testing set 的假設是模型完全沒見過,且符合真實分佈的數據,**方便我們評估在真實應用時的模型表現**,然而我們常常會不小心讓 Testing set 中的數據混到 Training 裡面,如同投影片中這種情況,模型學到一個特徵是有項鍊的都是 Normal, 若是這樣的數據比例很高 (例如很多人會在乎模型差了 0.1% 的準度表現,這邊只是粗略估算一下,反推回去就可能是一千張照片裡面出現一張這樣的情況,照上面提到的醫療影像數據集一般是 10k~100k,測試集則可能是 1k~10k,也就是 1~10 張照片出現這種情況就可能影響結果 0.1%),**最終將導致我們對模型的評估過度樂觀**。

這張圖又讓我想到在 [**可解釋AI**](https://reurl.cc/R4aVQn) 領域中的雪地哈士奇問題,模型根據背景而非本體來做出分類([參考資料](https://arxiv.org/abs/1602.04938))。
[延伸閱讀:地震預測模型的數據洩漏事件?](https://www.jiqizhixin.com/articles/2019-06-26-8?fbclid=IwAR3MsanLh0yLtSYMDDfDZEyxDsRB3kUPy1fpaykT6vTXrXLTQ0-VG95YI5Y)
* **解決方法**

:::success
Set Sampling
:::
在一般的訓練中我們常會把資料切 10% 給 Testing,這個數字一般也會控制在人有辦法逐一驗證的範圍內,但這個數字在數據極度不平衡的情況下可能造成 testing set 並沒有某些數據, 導致 test set 無法呈現真實分佈。
* **解決方法**
分割數據時先分配 test set 讓最少的樣本數至少在 test set 中要佔有一定的比例(如二分類可能可以給到 ~50% ),接著由於 validation 的部份是我們期待要看到與 test 一樣的成果,所以第二個分配的是 validation,配與 test set 差不多的比例。

:::success
Ground Truth
:::
在醫學問題中,如下圖,常發生不同的專家看同一張醫學影像有不同的判斷,這種情況稱為 inter-observer disagreement.

* **解決方法一**
如下圖,讓多位專家決定出共識。上為多數決,下則是讓專家們討論出一個答案。

* **解決方法二**
用其他醫學上更進一步的採檢方法來確診

在這兩個方法中,前者的取得難度較低,在研究中較為常見。
---
## 第一週作業
作業程式:[](https://colab.research.google.com/drive/1-gjCSxq6fCn9NJGwp2divn8v9PbH_fwk#scrollTo=G5aZAlVbn5yz)
下載完整數據:[](https://colab.research.google.com/drive/1zilttv3FeHfiLsSYA28hFuTKKNaSiDK-?usp=sharing)
## Question
---
# Week 3
## MR Image

## Image Registration

## MRI Segmentation
**2D Segmentation by pixels**

:::warning
缺點:深度(depth)上相鄰切片的相關性資訊會遺失
:::
**3D Segmentation by voxels**

:::info
問題點:輸入太大,硬體吃不下 (GPU memory 之類的)
:::
* 作法:切塊放入(如下圖)

:::warning
缺點:空間(height,width)上相鄰的資訊可能會遺失
:::
## 模型: 3D-Unet
Unet主要是用在生醫影像(一開始主要是組織)分割的模型,3D-Unet則主要是把 2D convolution 換成 3D convolution

## Loss function
重點: Soft Dice Loss是常用在影像切割的loss, 尤其用在class imbalance data

## Main Challenge of applying AIgorithms in the clinic
:::success
模型的泛化能力
:::
其實這邊就是在談跨醫院的問題,影片中的第一個範例是從 US 到 INDIA的跨區域
* Prevelance: 第一個範例是從 US 到 INDIA的跨區域盛行率不同

* Resolution: 第二個範例則是跨機台,當舊機台與新機台的解析度不同,面臨的數據變異問題

:::success
模型泛化能力的驗證
:::

* 解決方法: Fine-tune

:::success
回溯性資料與現實世界資料差異
:::
1. 在訓練模型時可能用的是清過的資料,而實際的應用是接收raw data
2. 訓練模型用 frontal 照,實際應用時則有 Lateral 照的資料

:::success
Measuring Patient outcomes
:::
:::success
模型可解釋性
:::
