여기서 소개할 마지막 커스터마이징은 검증 데이터를 사용하는 것입니다. 검증은 조금 설명할 가치가 있는 머신 러닝 개념입니다. 다운로드 시간 예측 문제에서 모델이 본 적 없는 새로운 데이터에서 얼마나 잘 동작하는지 편향되지 않게 추정하기 위해 훈련 데이터와 테스트 데이터를 분리했습니다. 하지만 일반적으로 검증 데이터(validation data)가 또 있습니다. 검증 데이터는 훈련 데이터나 테스트 데이터와 별개입니다. 검증 데이터를 어디에 사용할까요? 머신 러닝 엔지니어가 검증 데이터에서의 성능을 보고, 그 결과를 사용해 모델의 특정 설정24을 바꾸어 검증 데이터에서 정확도를 향상시킵니다. 여기까지는 모두 좋습니다. 하지만 이런 과정이 많이 반복되면 검증 데이터에 튜닝하는 효과가 생깁니다. 동일한 검증 데이터를 사용해 모델의 최종 정확도를 평가하면 최종 평가 결과는 더 이상 일반화되기 힘듭니다. 모델이 데이터를 이미 보았기 때문에 그 평가 결과가 미래에 본 적 없는 데이터에서의 모델 성능을 반영한다고 보장하기 어렵습니다. 이런 이유로 검증 데이터와 별개의 테스트 데이터가 필요합니다. 훈련 데이터에서 모델을 훈련하고 검증 데이터에서의 평가를 바탕으로 하이퍼파라미터를 조정합니다. 모든 작업이 끝나고 결과에 만족할 때 테스트 데이터에서 최종적으로 모델을 딱 한 번 평가하여 일반화할 수 있는 성능의 추정치를 얻습니다.
훈련, 검증, 테스트 세트가 무엇인지, 어떻게 TensorFlow.js에서 사용하는지 요약해 보죠. 모든 프로젝트가 이 세 종류의 데이터를 사용하는 것은 아닙니다. 종종 급한 탐색이나 연구 프로젝트는 훈련 데이터와 검증 데이터만 사용하고 테스트를 위한 순수한 데이터 세트를 준비하지 않습니다. 엄격한 방법은 아니지만 이따금 제한된 자원을 최대로 사용해야 할 때가 있습니다.