CNN 模型評估指標與方法:準確率、混淆矩陣、精準率、召回率及 ROC 曲線

更新於 發佈於 閱讀時間約 8 分鐘

在訓練完一個 CNN 之後,我們當然要知道它「學得好不好」,這就是評估 (Evaluation) 的重要性。

評估 CNN 就像是給學生期末考,看看他們學到了多少。我們通常會用一套從未在訓練中出現過的「測試資料」(Test Data) 來評估模型,這樣才能客觀地看出它在新資料上的表現。

以下是幾個評估 CNN 常常會用到的指標和方法:

1. 準確率 (Accuracy)

* 定義: 這是最直觀、也最常被提及的指標。它計算的是模型預測正確的樣本數量占總樣本數量的比例。

* 計算方式:

\text{Accuracy} = \frac{\text{正確預測的數量}}{\text{所有預測的數量}}

* 比喻: 班上 100 個學生,有 90 個學生考試及格,那及格率就是 90%。

* 優點: 簡單易懂,直接反映模型整體表現。

* 缺點: 在某些情況下,單看準確率可能會產生誤導。例如,如果我們要辨識一張圖片是不是「腫瘤」,而絕大部分的圖片都是健康的(非腫瘤),只有極少數是腫瘤。即使模型很懶惰,把所有圖片都判斷為「非腫瘤」,它的準確率可能還是很高(例如 99%),但它卻完全無法辨識出真正的腫瘤,這顯然不是我們想要的結果。

2. 混淆矩陣 (Confusion Matrix)

* 定義: 混淆矩陣是一個表格,它能詳細地展示模型在每個類別上的預測結果,包括哪些預測正確,哪些預測錯誤,以及錯在哪裡。

* 比喻: 考試後,老師會列出一個清單,上面寫著:

* 考 100 分的有幾個人

* 考 90 分的有幾個人

* 原本以為會及格但不及格的有幾個人(粗心)

* 原本以為會不及格但及格了的有幾個人(進步)

* 構成要素:

* 真陽性 (True Positive, TP): 實際是正例,預測也是正例。(例如:實際是貓,預測也是貓)

* 真陰性 (True Negative, TN): 實際是負例,預測也是負例。(例如:實際是狗,預測也是狗)

* 假陽性 (False Positive, FP): 實際是負例,預測卻是正例。(例如:實際是狗,卻預測成貓,也稱為「誤報」或 Type I error)

* 假陰性 (False Negative, FN): 實際是正例,預測卻是負例。(例如:實際是貓,卻預測成狗,也稱為「漏報」或 Type II error)

通常會呈現像這樣的表格(以二分類為例):

| | 預測為正例 | 預測為負例 |

|---|---|---|

| 實際是正例 | TP | FN |

| 實際是負例 | FP | TN |

* 優點: 提供比準確率更豐富的資訊,幫助我們了解模型在不同類別上的表現偏好,以及它犯了哪些錯誤。

3. 精準率 (Precision) 與 召回率 (Recall) / F1 分數 (F1-Score)

當類別分佈不平衡時(例如上面提到的腫瘤辨識案例),單看準確率是不足的。這時,精準率、召回率和 F1 分數就顯得非常重要。

* 精準率 (Precision):

* 定義: 在所有被模型預測為正例的樣本中,有多少是真的正例。它衡量的是模型「預測為正例的準確性」。

* 計算方式:

\text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}}

* 比喻: 班上考試,老師說「及格」的學生,裡面真的有幾位是及格的。如果老師隨便說,裡面很多其實不及格,那精準率就低。

* 應用場景: 當我們不希望有太多「誤報」時,會更看重精準率。例如,垃圾郵件過濾:如果郵件過濾器把正常信件判斷成垃圾郵件(FP),使用者會很不滿意。

* 召回率 (Recall) / 敏感度 (Sensitivity):

* 定義: 在所有實際為正例的樣本中,有多少被模型正確地預測出來。它衡量的是模型「找到所有正例的能力」。

* 計算方式:

\text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}}

* 比喻: 班上真正及格的學生,老師有幾位是真的把他們點出來說「及格」的。如果老師漏掉很多及格的學生沒點到,那召回率就低。

* 應用場景: 當我們不希望有太多「漏報」時,會更看重召回率。例如,醫療診斷(如腫瘤檢測):如果模型漏掉了真正的腫瘤(FN),後果可能很嚴重。

* F1 分數 (F1-Score):

* 定義: 它是精準率和召回率的調和平均值,綜合考慮了兩者的表現。當精準率和召回率都很高時,F1 分數才會高。

* 計算方式:

F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}

* 比喻: 就像一個學生,他不僅要答對,還要確保他沒有隨便亂猜(精準率高),而且沒有漏掉任何一個他本該知道的答案(召回率高),F1 分數就是一個綜合評價。

* 應用場景: 當我們需要同時兼顧精準率和召回率時,F1 分數是一個很好的綜合指標。

4. ROC 曲線 (Receiver Operating Characteristic Curve) 與 AUC (Area Under the Curve)

* 定義: ROC 曲線以「真陽性率 (True Positive Rate, TPR,就是召回率)」為 Y 軸,以「假陽性率 (False Positive Rate, FPR)」為 X 軸繪製而成。曲線下方的面積就是 AUC。

* 目的: 用來評估分類模型在不同分類閾值下的表現,特別適合處理不平衡資料集。

* 優點:

* 不受類別不平衡的影響:ROC 曲線和 AUC 對於不平衡的數據集來說是更可靠的評估指標。

* 展示權衡:它能展示在不同閾值下,真陽性率和假陽性率之間的權衡關係。

* AUC 解讀: AUC 的值介於 0 到 1 之間。

* AUC 越接近 1,表示模型的分類能力越好。

* AUC 接近 0.5,表示模型的分類能力接近隨機猜測。

教學活動建議:

在課堂上,您可以這樣引入評估的概念:

* 「AI 醫生」遊戲:

* 準備一些有「病症」(例如:紅點、裂痕)和「健康」的圖片。

* 讓學生扮演「AI 醫生」,讓他們判斷圖片是「有病」還是「健康」。

* 然後揭示正確答案,一起統計:

* 「診斷正確」的比例(準確率)

* 「沒病診斷成有病」的數量(假陽性)

* 「有病卻沒診斷出來」的數量(假陰性)

* 生活案例討論:

* 銀行詐騙電話識別系統: 如果一個系統把正常的電話判斷成詐騙(FP),會怎麼樣。如果漏掉真正的詐騙電話(FN),又會怎麼樣,這時候是精準率重要還是召回率重要。

* 人臉辨識門禁: 如果把不是員工的人判斷成員工(FP),或把員工判斷成不是員工(FN),哪個後果比較嚴重。

留言
avatar-img
留言分享你的想法!
avatar-img
Hank吳的沙龍
0會員
35內容數
這不僅僅是一個 Blog,更是一個交流與分享的空間。 期待在這裡與你相遇,一起探索科技、體驗生活、夢想旅行!💖
Hank吳的沙龍的其他內容
2025/07/17
卷積神經網路(CNN)的訓練過程就像教小孩辨識貓狗一樣,透過準備大量訓練資料、前向傳播預測、計算損失、反向傳播修正錯誤,以及反覆迭代等步驟,讓CNN不斷學習並提升影像辨識能力。訓練過程中,大量的數據、強大的計算資源、適當的模型架構和超參數設定都至關重要。
Thumbnail
2025/07/17
卷積神經網路(CNN)的訓練過程就像教小孩辨識貓狗一樣,透過準備大量訓練資料、前向傳播預測、計算損失、反向傳播修正錯誤,以及反覆迭代等步驟,讓CNN不斷學習並提升影像辨識能力。訓練過程中,大量的數據、強大的計算資源、適當的模型架構和超參數設定都至關重要。
Thumbnail
2025/07/17
卷積神經網路(CNN)是一種專門用於處理影像的 AI 模型,其運作方式類似於人類大腦觀察圖像的方式,層層分析提取特徵。主要包含卷積層、池化層和全連接層。卷積層使用濾鏡提取局部特徵;池化層精簡數據並提升模型穩健性;全連接層進行最終分類。CNN 廣泛應用於影像辨識、自動駕駛和醫療影像分析等領域。
Thumbnail
2025/07/17
卷積神經網路(CNN)是一種專門用於處理影像的 AI 模型,其運作方式類似於人類大腦觀察圖像的方式,層層分析提取特徵。主要包含卷積層、池化層和全連接層。卷積層使用濾鏡提取局部特徵;池化層精簡數據並提升模型穩健性;全連接層進行最終分類。CNN 廣泛應用於影像辨識、自動駕駛和醫療影像分析等領域。
Thumbnail
2025/07/17
Google 推出的 Teachable Machine 讓使用者能輕鬆體驗 AI 訓練過程。此教學文章說明如何訓練一個能辨識「讚」和「OK」手勢的 AI 模型,步驟包含建立分類、餵食 AI 範例圖片、訓練模型以及測試預覽。
Thumbnail
2025/07/17
Google 推出的 Teachable Machine 讓使用者能輕鬆體驗 AI 訓練過程。此教學文章說明如何訓練一個能辨識「讚」和「OK」手勢的 AI 模型,步驟包含建立分類、餵食 AI 範例圖片、訓練模型以及測試預覽。
Thumbnail
看更多