智慧醫療輔助診斷:基於 ResNet50 的胸腔 X 光肺炎分類器
本專案以深度學習建立胸腔 X 光影像 (CXR) 分類模型,目標是探索 AI 在肺炎影像初步篩檢中的輔助價值。
📋 專案摘要 (Abstract)
本專案以深度學習建立胸腔 X 光影像 (CXR) 分類模型,目標是探索 AI 在肺炎影像初步篩檢中的輔助價值。
針對 COVID-19 與肺炎特徵在 X 光片上不易區分的情境,本專案選用 MATLAB 作為開發環境,並導入深層殘差網路 ResNet50 進行二元分類任務(Normal vs. Pneumonia/COVID-19)。模型在測試集上有較高的召回率 (Recall),適合作為初步篩檢流程的研究範例。
🛑 問題與挑戰 (The Problem)
在疫情高峰期或醫療資源匱乏地區,放射科醫師面臨巨大的閱片壓力。傳統的人工判讀存在以下痛點:
- 判讀耗時: 醫師需要長時間專注查看細微的肺部浸潤特徵。
- 特徵模糊: 早期肺炎或 COVID-19 的毛玻璃狀病變 (Ground-glass opacity) 與一般肺部紋理極為相似,容易造成誤判。
- 疲勞誤差: 長時間工作導致的視覺疲勞可能增加漏診率。
🛠️ 技術深度剖析 (Technical Deep Dive)
1. 資料前處理 (Data Preprocessing)
資料集包含兩類胸腔 X 光影像:
- Normal (正常): 肺野清晰,無明顯異常陰影。
- Pneumonia (肺炎/COVID-19): 肺部呈現斑片狀陰影或實變。
為了提升模型的泛化能力 (Generalization),我對原始影像進行了標準化處理,並調整至 ResNet50 所需的輸入尺寸 ($224 \times 224$ pixels)。
Figure 1: 正常的胸腔 X 光影像 (Normal),肺野清晰。
Figure 2: 患有肺炎的胸腔 X 光影像 (Pneumonia),可見肺部有模糊陰影。
2. 核心架構:ResNet50 與殘差學習 (Residual Learning)
傳統卷積神經網路 (CNN) 在層數加深時,容易遇到梯度消失 (Vanishing Gradient) 或梯度爆炸問題,導致訓練效果反而下降。
為了訓練高達 50 層的深層網路,我採用了 ResNet (Residual Network) 架構。其架構特色在於引入 「捷徑連接 (Shortcut Connection)」。
假設神經網路某一層的輸入為 $x$,期望學習到的特徵映射為 $H(x)$。ResNet 不直接學習 $H(x)$,而是學習殘差函數 $F(x) = H(x) - x$。最終輸出為:
$$y = F(x, {W_i}) + x$$
- $F(x, {W_i})$:殘差映射 (Residual Mapping),即網路層需要學習的變化量。
- $x$:恆等映射 (Identity Mapping),直接將輸入訊息傳遞到輸出。
這種 $y = F(x) + x$ 的結構確保了即使在網路極深的情況下,梯度也能透過 $x$ 這條「高速公路」直接回傳,讓模型能有效捕捉 X 光影像中極其細微的病徵特徵。
3. 訓練策略 (Training Strategy)
使用 MATLAB 的 Deep Learning Toolbox 進行訓練。
- 優化器 (Optimizer): SGDM (Stochastic Gradient Descent with Momentum)
- 損失函數 (Loss Function): Cross Entropy Loss (二元交叉熵)
📊 成果與數據分析 (Results & Analysis)
根據測試集的混淆矩陣(Confusion Matrix),我們對模型的效能進行了量化評估:
Figure 3: 測試集的混淆矩陣 (Confusion Matrix)。
1. 混淆矩陣數據解讀
測試集總樣本數:$N = 591$ 張
- True Positive (TP, 成功預測肺炎): 308 張
- True Negative (TN, 成功預測正常): 150 張
- False Positive (FP, 誤判為肺炎): 84 張
- False Negative (FN, 漏診肺炎): 49 張
2. 關鍵指標計算
準確率 (Accuracy): $$Accuracy = \frac{TP + TN}{Total} = \frac{308 + 150}{591} \approx 77.5%$$ 模型整體判斷正確的比例約為七成八。
召回率 / 靈敏度 (Recall / Sensitivity): $$Recall = \frac{TP}{TP + FN} = \frac{308}{308 + 49} \approx 86.3%$$ 召回率是醫療影像篩檢中需要特別關注的指標。結果顯示,在所有實際患有肺炎的樣本中,模型辨識出 86.3% 的案例,代表它在降低漏診風險上有一定參考價值。
精確率 (Precision): $$Precision = \frac{TP}{TP + FP} = \frac{308}{308 + 84} \approx 78.6%$$ 在模型判斷為肺炎的案例中,有 78.6% 是確診的。雖然有部分正常人被誤判為肺炎(偽陽性 84 例),但在醫療篩檢的情境下,「寧可誤判 (False Positive) 也不要漏診 (False Negative)」 是可接受的權衡。
結論 (Conclusion)
本專案利用 ResNet50 架構完成胸腔 X 光的自動化分類實驗。實驗數據顯示,模型在測試集上達到 86.3% 的召回率,可作為輔助標示高風險影像的研究雛形;實際醫療應用仍需要更大規模資料、臨床驗證與專業醫師判讀流程配合。
