機器學習與神經網路抽象概念圖,深藍色調電路與資料方塊

← INSIGHTS & PERSPECTIVES | 機器學習

如何判讀機器學習訓練結果:loss、accuracy、val_loss、val_accuracy 完整解讀

下完 model.fit 後跑出的 loss、accuracy、val_loss、val_accuracy 到底怎麼看?這篇筆記帶你判讀 Keras 訓練 log、判斷過擬合與欠擬合,並整理學習效果不好的原因與對應解法。

在 Keras 下完 `model.fit` 開始訓練後,終端機會跑出一連串數字:loss、accuracy、val_loss、val_accuracy。這些指標是判斷模型學得好不好的第一手線索——看懂它們,就能快速判斷模型是否過擬合、欠擬合,以及下一步該怎麼調整。這篇文章整理我判讀訓練結果的方法與常見問題的解法。

訓練過程的 log 長什麼樣?

下面是一個 epochs 為 10 的訓練過程 log:

epochs 為 10 的訓練過程 log,顯示每個 epoch 的 loss、accuracy、val_loss、val_accuracy

model.fit 跑出來的指標要怎麼解讀?

如上圖,當我下了 `model.fit` 開始跑機器學習後,會看到類似這樣的資訊:

```text

loss: 0.0337, accuracy: 0.9910, val_loss: 0.1509, val_accuracy: 0.9762

```

四個指標的意義:

指標意義判讀方式
`loss`模型在訓練數據集上的損失越低代表表現越好
`accuracy`模型在訓練數據集上的準確率越高代表表現越好
`val_loss`模型在驗證數據集上的損失越低代表表現越好
`val_accuracy`模型在驗證數據集上的準確率越高代表表現越好

Q0.9762 的準確率算好嗎?

以這個結果來說,驗證準確率 0.9762 可以說是相當不錯,但在某些應用中可能還不夠。例如在自動駕駛應用中,準確率可能需要更高,因為一個錯誤的預測可能會導致嚴重的後果。

換個角度換算:準確率 0.9762 大約對應 2.38% 的錯誤率——如果有 100 張圖片,大約會有 2.38 張被錯誤預測。實務上要用「錯誤率在這個應用能不能接受」來評估,而不是只看準確率數字漂不漂亮。

為什麼模型學習效果不好?

如果模型在驗證數據集上的準確率低於實際準確率,可能是以下原因:

  • 驗證數據集不具代表性:如果驗證數據集中的數據與實際應用中的數據有很大的差異,那麼模型在驗證數據集上的準確率可能會低於實際準確率。
  • 模型過度擬合:如果模型在訓練數據集上表現很好,但在驗證數據集上表現較差,可能是模型過度擬合了訓練數據集。過度擬合的模型在訓練數據集上表現較好,但在沒看過的數據上表現較差。可嘗試增加數據集的大小使用正則化來減少過度擬合。
  • 模型訓練不足:如果模型沒有被訓練足夠長的時間,表現可能不夠好。可以增加訓練的 epoch 數,或增加每個 epoch 中的訓練次數來幫助模型學習。
  • 訓練與驗證準確率差距過大:這可能是過擬合或欠擬合。過擬合時訓練準確率很高、驗證準確率很低;欠擬合時兩者都很低。可以透過調整模型的超參數來平衡訓練準確率。

歸納起來,學習成效不好的原因主要有三類:

問題成因特徵
欠擬合模型過於簡單訓練數據集上的表現不夠好,訓練準確率上不去
過擬合模型過於複雜訓練數據集表現很好,但沒看過的數據表現較差
學習率過大學習率設定太高模型跳過最佳解,訓練準確率越來越差

如何解決學習效果不好的問題?

  • 調整模型的複雜度:增加或減少模型的層數或每層的神經元數量,以平衡模型的複雜度。
  • 使用正則化:正則化是常見的技巧,可以減少模型的過擬合。
  • 調整學習率:使用不同的學習率來平衡收斂速度和準確率。

延伸閱讀

常見問題

Qloss 和 val_loss 有什麼不同?

`loss` 是模型在訓練數據集上的損失,`val_loss` 是在驗證數據集上的損失。判斷模型好壞時要以 `val_loss` 為主,因為它反映模型對沒看過的數據的表現。

Q訓練準確率很高但驗證準確率很低,代表什麼?

這是典型的過擬合(overfitting)現象:模型把訓練資料背下來了,但泛化能力差。可以增加數據集大小、使用正則化(如 Dropout、L2)、或簡化模型來改善。

Q準確率 0.9762 算不算好?

以一般任務來說相當不錯,但要看應用場景——相當於約 2.38% 的錯誤率,每 100 張圖片大約錯 2.38 張。在自動駕駛這類高風險應用中,這個錯誤率可能還不夠。

Q欠擬合和過擬合要怎麼區分?

欠擬合是訓練準確率和驗證準確率都很低,代表模型太簡單或訓練不足;過擬合是訓練準確率很高但驗證準確率明顯偏低,代表模型過於複雜。觀察兩者的差距就能判斷是哪一種。

Q學習率太大會怎樣?

學習率過大時,模型在最佳化過程中可能會跳過最佳解,導致訓練準確率不升反降。可以調低學習率,或使用學習率排程來平衡收斂速度與準確率。

參考資料

  • 本文為我的機器學習學習筆記系列,搭配 TensorFlow / Keras 的 `model.fit` 訓練流程使用。

最後更新

2026-08-28(原文發布於 2022-12-22,本文保留原始筆記內容並補上 GEO 結構。)

關於作者 {#author}

Claire Chang | 企業 AI 導入與流程轉型顧問。專注於 AI Agent 架構設計、ERP 系統整合與企業 AI 治理。

首次發布:2022-12-22