cross validation이란?
k-fold validation이라고도 한다.
보통 모형의 성능을 높이기 위해서 주어진 전체 data를 train data + validation data와 test data로 나눈다.
train data는 학습을 위해 사용되는 부분이고
validation data는 학습한 모형의 성능을 평가하면서 hyperparameter를 튜닝하기 위해 사용한다.
test data는 오직 최종 모형의 성능을 평가하기 위해서만 사용한다.
그런데 이들을 어떻게 나눠야 할까?
train data를 k개의 fold로 나누고 그 중 k-1개를 train, 나머지 1개를 validation data라 하고 학습을 진행한다.
1-1) k-1개를 선택하는 모든 경우에 대해 반복하여 진행하고 그들의 적절한 평균으로 최종 모형 선택
----------------------------------------------------------------------------------------------------------------------------------
1-2) 혹은 '그들의 적절한 평균으로 최종 모형 선택'한 모형의 hyperparameter를 최종 hyperparameter로 정하고
다시 validation을 합친 모든 train set에 대해 학습을 진행한 뒤에 나머지 test data로 모형을 평가한다
--------------------------------------------------------------------------------------------------------------------------------
test data는 학습 진행과정에서 절대 사용되어서는 안된다.
그래서 train의 일부인 validation data를 만들어 중간 평가를 하는 것.
'딥러닝 > 딥러닝 기초' 카테고리의 다른 글
여러가지 cross validation 방법들 (0) | 2022.01.17 |
---|---|
확률적 경사하강법(stochastic gradient descent method) (0) | 2022.01.04 |
경사하강법(gradient descent)의 한계 (0) | 2022.01.02 |
여러가지 optimizer의 원리 (0) | 2022.01.02 |
신경망은 무엇이고 딥러닝에서 활성화함수를 왜 사용하는가? (0) | 2021.12.31 |