Tensorflow - validation/evaluation(검증과 평가), validation_data, validation_split, evaluate

Validation (검증)

  • 학습 과정에서 검증에 관여, 즉 에포크가 끝날 때마다 검증
  • 학습되지 않은 데이터에 검증을 통한 오차/손실률을 표현
  • 학습 과정에서 관여되므로 모델을 학습 시킬 때 사용

 

validation_split

  • 학습시 test 데이터셋에서 지정한 수치만큼 검증용 데이터 분리
  • 검증에 사용된 데이터는 학습하지 않음
    • 예시 : train 75%, test 25%, validation_split = 0.2
      test 25%에서 test80%, validation 20%
  • 소스 코드
    • model.fit(validation_split= N ) : N * 100 퍼센트만큼 데이터를 검증에 사용
      • model은 임의의 인공지능 모델을 지칭하는 변수 이름
# validation_split : 0.2 -> 학습 데이터의 20%를 검증
epoch_history = model.fit(X_train, y_train, epochs=1000, validation_split=0.2)

 

validation_data

  • 학습과 관련된 데이터셋 검증 진행, 학습과는 직접적인 관여는 없음
  • 인공신경망 학습시 손실률과 정확도를 확인하기 위해 사용
  • 학습량이 많아지면 정확도는 올라가지만 과적합 상태인지 확인이 되지 않음, 즉 검증의 용도로 사용
# validation_data : 튜플로 구성된 X_test, y_test의 데이터 검증
epoch_history = model.fit(X_train, y_train, epochs = 10, validation_data = (X_test, y_test))

Evaluation (평가)

  • 학습 과정 끝날때 최종 검증, 즉 성능 평가
  • 최종 검증을 통한 오차/손실률을 표현

 

사용 방법

  • 모델이 학습을 완료 한 후 사용 (이미 학습이 되어 있는 상태)
    • 소스 코드
    • model.evaluate(예측값, 실제값)
      • model은 임의의 인공지능 모델을 지칭하는 변수 이름
model.evaluate(X_test, y_test)