在 Keras 中訓練神經網路的最優輪數


簡介

訓練神經網路包括找到欠擬合和過擬合之間的適當平衡。在本文中,我們將學習“輪數”的概念,並深入探討如何確定輪數,這是一個眾所周知的深度學習庫。通過了解欠擬合和過擬合之間的權衡,利用諸如提前停止和交叉驗證等方法,並考慮學習曲線,我們可以成功地確定最佳輪數。

瞭解輪數

輪數指的是整個訓練資料集透過神經網路的一次完整傳遞。在每個輪數中,網路從訓練資料中學習並更新其內部引數(例如權重和偏差),以提高其效能。訓練神經網路的目的是最小化損失函式,該函式評估網路預測與實際目標之間的一致性。

權衡:欠擬合和過擬合

在深入探討最佳輪數之前,讓我們瞭解一下欠擬合和過擬合之間的權衡。

  • 欠擬合:當模型無法捕捉訓練資料中的基本模式時,就會發生這種情況。它會導致訓練誤差高,並且泛化到未見資料的能力差。當模型過於簡單或訓練輪數不足時,可能會發生欠擬合。

  • 過擬合:另一方面,過擬合發生在模型過於專門化於訓練資料並且無法很好地泛化到新資料時。過擬合的特點是訓練誤差低,但驗證誤差高。當模型過於複雜或訓練輪數過多時,就會發生這種情況。

最優輪數的實現程式碼

演算法

步驟 1:匯入必要的庫,即 TensorFlow 和 Keras。

步驟 2:定義輸入資料和神經網路模型。

步驟 3:使用合適的函式、最佳化器和指標編譯程式碼。

步驟 4:使用回撥函式設定提前停止條件,以監控驗證損失。

步驟 5:使用提前停止回撥訓練模型,以便在驗證損失不再改進時停止訓練。

步驟 6:檢索提前停止訓練時的最佳輪數,代表模型的最佳點。

示例

import numpy as np
import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import EarlyStopping


X_train = np.random.random((1000, 10))
y_train = np.random.randint(2, size=(1000,))
X_val = np.random.random((200, 10))
y_val = np.random.randint(2, size=(200,))
num_classes = 2

model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(10,)))
model.add(Dense(num_classes, activation='softmax'))


model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])


early_stopping = EarlyStopping(monitor='val_loss', patience=5, verbose=1, restore_best_weights=True)


history = model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=100, batch_size=32, callbacks=[early_stopping])


optimal_epochs = early_stopping.stopped_epoch + 1
print("Optimal number of epochs:", optimal_epochs)

輸出

學習曲線

它們是顯示效能的圖表,包括訓練和驗證輸入作為輪數的函式。它們以視覺化的方式展現了模型隨時間推移的學習情況,並且對於確定最佳輪數很有價值。

  • 欠擬合:在欠擬合的情況下,學習曲線逐漸趨於平緩,即使增加輪數,訓練和驗證誤差仍然很高。這表明模型需要更大的容量或更多的訓練資料來捕捉基本模式。

  • 過擬合:當模型開始過擬合時,學習曲線會發生偏差,訓練誤差減少而驗證誤差增加。當模型過度學習訓練資料時,就會發生這種情況,導致泛化能力差。

  • 最佳點:最佳輪數位於學習曲線穩定且驗證誤差最低的點。此時,模型已經學習了資料中的基本模式,而不會出現過擬合。

結論

總之,確定在 Keras 中訓練神經網路的最優輪數是實現良好模型效能的關鍵步驟。透過平衡欠擬合和過擬合之間的權衡,利用諸如提前停止和觀察學習曲線等方法,並考慮交叉驗證,您可以找到適合您問題的最佳輪數。請記住,超引數調整和經驗實驗對於最佳化神經網路的效能至關重要。

更新於: 2023年7月28日

258 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.