여기에서 볼 수 있듯이 훈련 손실이 에포크마다 감소하고 훈련 정확도는 에포크마다 증가합니다. 경사 하강법 최적화를 사용했을 때 반복마다 최소화되는 것이 손실이므로 기대했던 대로입니다. 검증 손실과 정확도는 이와 같지 않습니다. 네 번째 에포크에서 그래프가 역전되는 것 같습니다. 이것이 훈련 세트에서 잘 작동하는 모델이 처음 보는 데이터에서는 잘 작동하지 않을 수 있다고 앞서 언급한 경고의 한 사례입니다. 정확한 용어로 말하면 과대적합(overfitting)되었다고 합니다. 네 번째 에포크 이후부터 훈련 데이터에 과도하게 최적화되어 훈련 데이터에 특화된 표현을 학습하므로 훈련 세트 이외의 데이터에는 일반화되지 못합니다.
이런 경우에 과대적합을 방지하기 위해 네 번째 에포크 이후에 훈련을 중지할 수 있습니다. 일반적으로 과대적합을 완화할 수 있는 여러 종류의 기술이 있습니다. 이에 대해서는 5장에서 다루겠습니다.
처음부터 다시 새로운 신경망을 네 번의 에포크 동안만 훈련하고 테스트 데이터에서 평가해 보겠습니다.13
코드 4-10 모델을 처음부터 다시 훈련하기
16, ="relu"),
layers.Dense(16, ="relu"),
layers.Dense(1, ="sigmoid")
])
.compile( ="rmsprop",
="binary_crossentropy",
=["accuracy"])
.fit(x_train, y_train, =4, =512)
= .evaluate(x_test, y_test)
= keras.Sequential([
layers.Dense(