07 進階
Grad-CAM · 模型到底在看哪裡
CNN 說這是一隻狗、信心 98%,但它是看了狗的臉,還是看了背景的草地剛好猜對?Grad-CAM 用最後一層卷積的梯度,畫出影像上哪些區域對預測貢獻最大——打開 CNN 黑盒子。
這堂課的完整程式碼在 Jupyter notebook 裡。點下面按鈕在 Colab 開啟,就能直接執行、修改、實驗——你的修改不會動到原檔。
CNN 說「這是一隻狗」,信心 98%。但它是看了狗的臉才這樣判斷,還是看了背景的草地剛好猜對?分不清楚,你就不敢信任它——尤其在醫療、自駕這種出錯代價很高的場景。
核心:用梯度找出「模型盯著看的地方」
Grad-CAM 利用最後一層卷積的梯度,算出影像上哪些區域對「這個預測」貢獻最大,畫成一張熱力圖疊在原圖上。紅的地方,就是模型「盯著看」的地方。
這堂課你會學到
- 用 pytorch-grad-cam 套件,對預訓練 ResNet-50 的預測做可解釋性分析
- 把熱力圖疊回原圖:一眼看出模型是看對地方還是靠背景瞎猜
- 換一個目標類別,看熱區移到對應物件身上——證明模型確實分得清不同物件的位置
- 把可解釋性當成除錯與建立信任的工具
呼應 sklearn 的 SHAP
ml/scikit-learn 軌道教過用 SHAP 解釋表格模型「為什麼這樣判斷」。Grad-CAM 是同一個精神在影像上的版本:打開黑盒子。能解釋的模型,才敢放進真實系統。可解釋性不是學術裝飾,而是負責任地部署 AI 的必修課。
💡 Grad-CAM 還能抓出資料集偏誤:如果模型分辨「狼 vs 狗」其實是靠「有沒有雪地背景」,熱力圖會立刻露餡。這類「看對答案、看錯理由」的陷阱,光看準確率永遠發現不了。下一課壓軸,把整條軌道串成一個完整專案。
#cv
#grad-cam
#explainability
#interpretability
留言 0
留言載入中…