validation set의 필요성 이해하기 재활
1. validation set은 왜 필요할까
1-1) 필요성
학습 후 test set에 적용하여 모델의 성능을 평가해야하는데
학습 과정에는 평가하기 위한 데이터가 없으니 제대로 학습을 하고는 있는 것인지 정확한 검증이 어려움
학습에 이용되지 않은 데이터로 모델이 학습을 잘 하고 있는지 중간 검증을 하고 있는 것은 분명히 필요함
일반화를 잘 하고 있는지 아닌지 판단이 가능함
test set을 학습 중에 사용할 수는 없으니 train set의 일부로 validation set을 만들어
남은 train set으로 학습을 진행하고 validation set으로 중간 검증을 수행
data가 오히려 줄어드는 것이 아닌가?
train set으로부터 validation set을 만들면 데이터가 줄어들어서 오히려 bias가 되는 것은 아닐까?
그러면 validation set으로 학습에 이용한 train set을 사용한다면?
train set에 이미 fitting된 모델은 train set으로 평가한다고 해도 정답을 맞추기가 쉽다
일반화 되었다고 검증하기가 어렵다 이 말이다
1-2) 결론
학습에 이용하지 않은 분포가 필요하고 이것으로 기학습된 model이 얼마나 일반화 능력을 가질지 중간중간 평가하는 것은 중요하다.
데이터가 줄어들면 아쉬울 수는 있어도 train set의 일부를 train set과 validation set으로 나눠
train set으로만 학습을 진행하고 validation set으로 중간 평가를 한다.
일반화의 성능을 직접 높여준다는 생각보다는 일반화 능력이 있는지 아닌지 검증할 수 있는 절차라고 생각
test set은 학습 중에 웬만하면 전혀 건드리지 않는 것이 맞다
2. cross validation
training set중에서 학습에 사용하지 않은 validation set으로 train model을 평가함
그러나 안그래도 작은 train set인데 validation set을 굳이 나눠서 data 분포를 줄여서 data가 너무 아깝다
이런 validation set도 학습에 사용하는 방법이 없을까?
validation set을 다른 위치에서 가져온 model과 앙상블하는 방법
2-1) k-fold cross validation
만약 k=5이면 전체 training set중에서 20%를 validation set으로 해서 총 5개의 fold를 만든다
그러면 총 5개의 model을 만들 수 있는데
5개 model이 서로 다른 training set을 학습하면서 서로 다른 특색 있는 weight를 가지는 model이 된다
그러나 k에 대한 명확한 정답이 없어
보통은 5개임
그리고 validation을 random으로 뽑으므로 class가 imbalance한 경우 특정 class가 아예 없는 validation set도 생길 수 있음
2-2) stratified k-fold cross validation
class imbalance한 경우 각 fold들의 training set과 validation set들의 class별 data분포가 최대한 동일하게 가져가도록 set을 구성하는 방법
'딥러닝 > 딥러닝 기초' 카테고리의 다른 글
Nearest neighbor search vs. t-sne를 이용한 차원 축소 기법 (0) | 2023.06.18 |
---|---|
자연어 처리 기술의 또 다른 혁명 - ChatGPT 시대 우리는 무엇을 해야하는가 - (0) | 2023.06.02 |
앙상블(ensemble) 기본 개념 제대로 이해하기 (0) | 2023.05.05 |
pretrained model & transfer learning에 대해 제대로 이해하기 (0) | 2023.05.04 |
data preprocessing 기본 개념 제대로 이해하기 (0) | 2023.04.28 |