본문 바로가기
  • 콩's 코딩노트
TensorFlow

TensorFlow - Validation Data란 무엇일까? 사용 방법은?

by Cong_S 2022. 6. 13.

분류문제가 아닌 regression에서는 인공지능의 성능을 평가할 때

model.evaluate(X_test, y_test)

와 같은 함수를 사용하는데.

evaluate는 모든 학습이 끝나고 평가를 한다는 특징이 있다. 
 
 

이 경우, 한 가지 허점이 존재하게 되는데

현재 학습한 인공지능이 학습할 때 사용한 데이터만 잘 맞추는지,

완전 새로운 데이터도 잘 맞출 수 있는지는 알 수 없다는 점이다.

 

이 때 사용하게 되는 것이 

Validation Data 이다.

 

Validation 란 인공지능이 프로파게이션을 진행하고 백 프로파게이션(학습)을 진행할 때 

하나의 epoch가 끝나면 그 때 그 때 실시간으로 학습에 사용된 데이터가 아닌 새로운 데이터로 평가를 진행하는 것이다.

# validation_split= 0.2 의 의미 시험볼 데이터가 있어야하는데 X_train에는 없으므로 
# 미리 split으로 나눈 부분이 아닌 현재 X_train 데이터의 20%를 쪼개 test 데이터로 쓰는 것이다.

model.fit(X_train, y_train, epochs = 1000, validation_split= 0.2)

사용 방법은 다음과 같다.

깡통 인공지능을 fit 함수로 fit 할 때 사용하며 validation 관련 파라미터로 설정하는 것이다.

 

특히 위에서 사용한  validation_split은 실시간으로 평가를 할 때 평가용 데이터를 설정하는 방법 중 하나로

미리 X_train 과 X_test 처럼 split으로 나눈 데이터가 아닌

현재 학습을 진행하는 데이터. 즉, X_train 을 0.2 (20%)로 나누어 test 데이터로 활용하는 파라미터이다.

 

각 오차율를 구하는 부분에 val이 붙은 부분이 바로 새로운 데이터로 실시간 평가를 내리고 있는 Validation Data 이다.

 

 

댓글