訓練過程
下面為一個epochs為10的訓練過程的log
機器學習結果判讀
如上圖,當我們下了model.fit
開始跑機器學習後,會可以看到跑出下面這些資訊,這時候要如何解讀這些資訊呢?
loss: 0.0337, accuracy: 0.9910, val_loss: 0.1509, val_accuracy: 0.9762
- loss:指的是模型在訓練數據集上的損失。損失越低,代表模型的表現越好。
- accuracy:指的是模型在訓練數據集上的準確率。準確率越高,代表模型的表現越好。
- val_loss:指的是模型在驗證數據集上的損失。損失越低,代表模型的表現越好。
- val_accuracy:指的是模型在驗證數據集上的準確率。準確率越高,代表模型的表現越好。
0.9762 的準確率可以說是相當不錯的,但是在某些應用中可能還不夠。例如,在自動駕駛應用中,準確率可能需要更高,因為一個錯誤的預測可能會導致嚴重的後果。
在這個結果的數據集中,準確率為 0.9762 ,其大約會有 2.38% 的錯誤率。
如果有 100 張圖片,則大約有 2.38 張圖片會被錯誤地預測。
學習效果不好的原因
如果模型在驗證數據集上的準確率低於實際準確率,那可能是因為以下原因:
- 驗證數據集不具有代表性: 如果驗證數據集中的數據與實際應用中的數據有很大的差異,那麼模型的驗證數據集上的準確率可能會低於實際準確率。
- 模型過度擬合: 如果模型在訓練數據集上的表現很好,但是在驗證數據集上的表現較差,那麼這可能是因為模型過度擬合了訓練數據集。過度擬合的模型往往在訓練數據集上表現較好,但是在沒有看過的數據集上表現較差。因此,可嘗試增加數據集的大小或使用正則化來減少模型的過度擬合。
- 模型訓練不足: 如果模型沒有被訓練足夠長的時間,那麼它的表現可能會不夠好。你可以增加訓練的 epoch 數,或者增加每個 epoch 中的訓練次數來幫助模型學習。
- 還有一種情況就是模型的訓練準確率和驗證準確率之間的差距較大,這可能是因為模型過擬合或者過欠擬合。如果模型過擬合,則訓練準確率會很高,但是驗證準確率會很低;如果模型過欠擬合,則訓練準確率和驗證準確率都會很低。可以通過調整模型的超參數來平衡訓練準確率
歸納學習成效不好的原因如下:
- 欠擬合。如果模型過於簡單,則可能會欠擬合。欠擬合的模型在訓練數據集上的表現可能不夠好,導致訓練準確率越來越差。
- 過擬合。如果模型過於複雜,則可能會過擬合。過擬合的模型在訓練數據集上的表現可能很好,但是在沒有看過的數據集上的表現可能較差。
- 學習率過大。如果模型的學習率過大,則模型可能會跳過最佳解,導致訓練準確率越來越差。
如何解決
- 調整模型的複雜度。你可以增加或減少模型的層數或每層的神經元數量,以平衡模型的複雜度。
- 使用正則化。正則化是一種常見的技巧,可以減少模型的過擬合。
- 調整學習率。你可以使用不同的學習率來平衡收敛速度和準確率。