讀書筆記 (2):Deep Learning 模型訓練攻略 - 從資料切割到評估
接續上一篇 Deep Learning 的起點,在了解了基本概念與數學基礎後,這篇文章將進入實戰環節:如何訓練一個好的模型?
訓練模型不僅僅是 model.fit() 這麼簡單,更重要的是如何處理資料、如何診斷模型的健康狀況,以及如何解決 Overfitting 等常見問題。
1. The Deep Learning Workflow
一個完整的深度學習專案通常包含以下步驟:
Figure 1: The Deep Learning Workflow. 從資料收集、模型設計、訓練優化到最終評估的標準作業流程。
Note: 這是一個反覆迭代 (Iterative) 的過程,我們經常需要回到上一步重新調整。
- Data Collection & Preprocessing: 收集並清理資料,這是最耗時但也最重要的一步。
- Dataset Splitting: 將資料劃分為 Training, Validation 與 Test sets,確保評估的公正性。
- Model Design: 設計神經網路架構 (下一篇的主題)。
- Model Training: 使用訓練資料優化參數 (之後的主題)。
- Model Evaluation: 使用測試資料評估效能 (Accuracy, F1-score 等),確認模型是否能泛化到未知資料。
- Optimization & Tuning: 根據評估結果調整超參數 (Hyperparameters) 或策略,解決 Overfitting/Underfitting 問題。
2. Data Splitting
在訓練之前,最重要的一步就是把資料切分成三份。為什麼不全部拿來訓練?因為我們需要模擬「未知」的資料來測試模型的泛化能力 (Generalization)。
Figure 2: Data Splitting Strategy. 將資料劃分為 Training (學習)、Validation (調參) 與 Test (最終考驗) 三個獨立集合的重要性。
- Training Set (訓練集): 讓模型看著學,調整權重 (Weights)。
- Validation Set (驗證集): 像是模擬考。用來調整超參數 (Hyperparameters),例如 Learning Rate 或層數。
- Test Set (測試集): 像是期末考。訓練過程中完全不能看,只能在最後用來評估真實效能。
3. Evaluation Metrics
模型訓練完後,我們需要量化它的表現。對於分類問題 (Classification),我們通常會先看 Accuracy (準確率),但在許多情況下(例如資料不平衡),單看準確率可能會誤導我們。
為了更全面地評估模型,我們不能只看「對了幾題」,還要看「是怎麼錯的」。這就需要引入 Confusion Matrix 的概念。
3.1 Confusion Matrix
Confusion Matrix (混淆矩陣) 是評估分類模型最基礎的工具,它將預測結果分為四類:
- True Positive (TP): 預測是正例,實際上也是正例 (抓對了)。
- True Negative (TN): 預測是負例,實際上也是負例 (沒亂抓)。
- False Positive (FP): 預測是正例,但實際上是負例 (誤報/錯殺)。
- False Negative (FN): 預測是負例,但實際上是正例 (漏報/漏抓)。
所有的進階指標 (Precision, Recall) 都是從這四個數字衍生出來的。
Figure 3: Confusion Matrix. 視覺化 TP, TN, FP, FN 的分佈,是計算 Precision 與 Recall 的基礎。
Goal: 我們的目標是最大化對角線上的數值 (TP, TN),並最小化非對角線的錯誤 (FP, FN)。
Table 1: Common Classification Metrics
| Metric | Formula | Focus | Use Case |
|---|---|---|---|
| Accuracy | 整體預測對了多少? | 類別分佈平均時。 | |
| Precision | 預測為正的樣本中,有多少是真的正? | 寧可漏抓,不可錯殺 (例如:垃圾郵件過濾)。 | |
| Recall | 真正的正樣本中,有多少被抓出來了? | 寧可錯殺,不可漏抓 (例如:癌症篩檢)。 | |
| F1-Score | Precision 與 Recall 的調和平均。 | 類別不平衡,或需要兼顧兩者時。 |
3.2 Choosing the Right Metric
不同的任務類型需要關注不同的指標,選錯指標可能會導致模型優化方向錯誤。
Table 2: Metrics by Task Type
| Task Type | Common Metrics | When to use? |
|---|---|---|
| Regression (回歸問題) | MSE (Mean Squared Error) | 最常用,對大誤差懲罰較重。 |
| MAE (Mean Absolute Error) | 對 Outliers 較不敏感時使用。 | |
| R-squared () | 評估模型解釋了多少變異 (Goodness of Fit)。 | |
| Classification (分類問題) | Accuracy | 資料分佈平均 (Balanced) 時。 |
| F1-Score / ROC-AUC | 資料分佈不均 (Imbalanced) 時。 | |
| Precision / Recall | 對「誤判」或「漏判」有特殊偏好時。 | |
| Unsupervised (非監督式學習) | Silhouette Score | 評估分群的凝聚度與分離度 (越接近 1 越好)。 |
| Davies-Bouldin Index | 評估分群的緊密度 (越小越好)。 |
4. Overfitting and Underfitting
訓練過程中,我們最常遇到的兩個極端狀況:
Table 3: Diagnosing Model Performance
| Condition | Description | Symptom (症狀) | Solution (解法) |
|---|---|---|---|
| Underfitting (欠擬合) | 模型太簡單,連訓練資料的規律都抓不到。 | Training Loss 高 Validation Loss 高 | 1. 增加模型複雜度 (更多層/神經元) 2. 訓練久一點 (More Epochs) |
| Overfitting (過擬合) | 模型太強大,把訓練資料的雜訊都背下來了,導致無法泛化。 | Training Loss 低 Validation Loss 高 | 1. Data Augmentation 2. Regularization (L1/L2, Dropout) 3. Early Stopping |
Figure 4: Model Fit Scenarios. 左圖 Underfitting (太簡單抓不到規律),右圖 Overfitting (太複雜連雜訊都學),中圖 Good Fit (適當的泛化能力)。
Goal: 我們的目標是找到中間的 Good Fit,即在 Training Loss 和 Validation Loss 之間取得平衡,既有足夠的學習能力,又能泛化到未知資料。
4.1 Learning Curves Diagnosis
透過繪製 Loss Curve,我們可以一眼看出模型的健康狀況:
Figure 5: Learning Curves Diagnosis. 透過 Training Loss 與 Validation Loss 的變化曲線,判斷模型是否發生 Overfitting (兩線分離) 或 Underfitting (兩線皆高)。
Ideal Curve: 理想的曲線應該是 Training 和 Validation Loss 都很低,且兩者之間的差距 (Gap) 很小。
5. Bias and Variance
這兩個概念其實對應著上面的 Underfitting 和 Overfitting,是從統計學的角度來看誤差。
Figure 6: Bias vs Variance Tradeoff. 靶心圖解:High Bias 代表預測偏離目標 (準確度低),High Variance 代表預測結果分散 (穩定性低)。
Ultimate Goal: 我們的終極目標是 Low Bias, Low Variance:既能準確命中紅心,表現又穩定一致。
- High Bias (高偏差) Underfitting: 模型對資料有錯誤的假設(例如用直線去擬合曲線),導致準確度一直上不去。
- High Variance (高變異) Overfitting: 模型對訓練資料太敏感,換一組資料預測結果就差很多。
6. Conclusion
這篇文章帶領大家走過了模型訓練的核心流程,從資料處理一路到成效評估。
- Workflow: 建立標準化的訓練流程 (Data -> Design -> Train -> Evaluate)。
- Data Splitting: 堅持 Train/Val/Test 的切割原則,確保評估的公正性。
- Evaluation: 透過 Confusion Matrix 與各種 Metrics (Accuracy, F1, etc.) 全面檢視模型表現。
- Diagnosis: 利用 Loss Curve 診斷 Overfitting/Underfitting,並找到 Bias 與 Variance 的平衡點。
掌握了這些內容後,下一篇我們將進入 Neural Networks 的內部世界,打開這個黑盒子,了解 Perceptron、MLP 以及賦予網路靈魂的 Activation Function!
Note: 本文內容整理自「深度學習介紹」課程講義,由 AI 輔助撰寫,並經人工審核確保正確性。