開始使用免費開始

過度擬合偵測

在這個練習中,我們會使用原始手語字母資料集的一個小子集。樣本很小,再配上一個參數非常多的模型,通常會導致過度擬合。這表示你的模型只是在記住每個樣本所屬的類別,而不是找出能泛化到許多樣本的特徵。

你將透過檢查驗證樣本的損失是否明顯高於訓練樣本的損失,以及在持續訓練時是否還會上升,來偵測過度擬合。當樣本很小且學習率很高時,模型會難以收斂到最佳解。你會為最佳化器設定較低的學習率,讓你更容易辨識過度擬合。

請注意,keras 是從 tensorflow 匯入的。

本練習屬於課程

Python 的 TensorFlow 入門

檢視課程

練習說明

  • keras 中定義一個名為 model 的序列式模型。
  • 加入第一個全連接層(dense),節點數為 1024,啟用函式為 relu,輸入形狀為 (784,)。
  • 將學習率設定為 0.001。
  • fit() 設為對完整樣本訓練 50 次,並使用 50% 的樣本作為驗證。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Define sequential model
____

# Define the first layer
____

# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))

# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____), 
              loss='categorical_crossentropy', metrics=['accuracy'])

# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)
編輯並執行程式碼