그림 4-10에서 볼 수 있듯이 검증 MAE가 (그래프에서 뺐던 열 번의 에포크를 포함하여) 120~ 140번째 에포크 이후에 줄어드는 것이 멈추었습니다. 이 지점 이후로는 과대적합이 시작됩니다.
모델의 여러 매개변수에 대한 튜닝이 끝나면(에포크의 수뿐만 아니라 중간층의 크기도 조절할 수 있습니다) 모든 훈련 데이터를 사용하고 최상의 매개변수로 최종 실전에 투입될 모델을 훈련시킵니다. 그다음 테스트 데이터로 성능을 확인합니다.
코드 4-31 최종 모델 훈련하기
model = build_model() ➊
model.fit(train_data, train_targets, ➋
=130, =16, =0)
test_mse_score, test_mae_score = model.evaluate(test_data, test_targets)
➊ 새롭게 컴파일된 모델을 얻습니다.
➋ 전체 데이터로 훈련시킵니다.
최종 결과는 다음과 같습니다.
>>> test_mae_score 2.4642276763916016
아직 2,500달러 정도 차이가 납니다. 하지만 성능이 향상되었습니다! 이전 두 예제처럼 모델의 층 수나 층의 유닛 개수를 바꾸어 테스트 오차를 더 낮출 수 있는지 확인해 볼 수 있습니다.