본문 바로가기
Artificial Intelligence

Dataset 분리

by HanByol Jang 2022. 6. 20.
728x90

Train / Validation / Test

인공지능 모델을 학습시키기 위해서는 학습하고 싶은 목적에 맞는 데이터셋을 준비해야합니다. 

일반적으로 데이터셋 구성이 완료되면, 데이터셋을 크게 3가지 (Train / Validation / Test)로 분리합니다.

각 set이 어떤 역할을 하기에 이렇게 분리하는지 알아보겠습니다.

 

1. Train Set

Train set (학습 데이터)은 인공지능 모델을 구현하는데 실질적으로 사용되는 데이터셋입니다. 설계한 인공지능 모델이 최적의 모델이 되기까지 이 Train set을 여러번 반복해가며 모델을 업데이트하게 됩니다. 이렇게 아무것도 모르는 상태에서 여러번 반복해서 똑같은 것을 가르쳐 이해시키는 것과 유사하기에 learning(학습) 이라고 불리게 되었습니다.

이처럼, Train set은 직접적으로 모델 학습에 관여하기 때문에 최대한 노이즈가 없는 정제된 데이터로만 구성되어야만합니다. Train set의 labeling이 잘못되었다던가, 이상한 데이터가 섞여있게되면 모델은 잘못된 정보를 토대로 이상하게 학습하게 됩니다. 그러므로 학습시작전 Train set에 대한 검수가 반드시 필요합니다.

 

2. Validation Set

인공지능 모델은 Train set을 한번 학습할 때마다 결과 모델이 생성됩니다. 예를들어 설정한 epoch이 100이면 Train set을 100번 반복해서 학습하게 되고 100개의 모델이 생성됩니다.

문제는 항상 가장 마지막 모델의 성능이 뛰어난 것이 아니라는 것입니다. 그러므로 가장 성능이 좋은 모델을 찾아서 선택해야만 합니다. Validataion set (검증 데이터)은 성능이 가장 좋은 모델을 선택하는데 사용되는 데이터셋입니다.

Train set은 직접적으로 학습에 사용되었기 때문에 이를 가지고 성능평가를 진행하면 일종의 치팅, 체리피킹을 한것과 같습니다. 그러므로 반드시 학습에 사용하지 않은 별도의 데이터셋(=Validation set)을 통해 성능평가를 진행하고, 최고의 모델을 선택해야만 합니다.

 

3. Test set

Test set (테스트 데이터)은 선택된 모델의 성능을 최종적으로 평가하는데 사용됩니다.

Validation set이 모델의 학습에는 사용되지 않았지만, 선택하는데는 관여했기 때문에 정말 최종적으로 성능을 평가할때는 또다른 새로운 데이터를 통해 평가를 하게 되고 이 데이터셋이 Test set입니다.

정리하면, Train set은 모델 학습, Validation set은 모델 선택, Test set은 모델 평가에 사용됩니다.

 

만약 전체 데이터셋 수가 적은 경우 최대한 많은 양의 데이터를 학습하는데 사용해야하기 때문에, validation set을 따로 두지 않고 Train, Test만으로 진행하기도 합니다. 이런 경우는 Test set으로 모델 선택 및 평가까지 진행합니다.

보통 Train:Test 비율은 전체 데이터셋의 8:2를 사용하고, Train 가운데 일부를 Validation으로 사용하여 6:2:2의 비율을 많이 사용합니다. 

728x90

'Artificial Intelligence' 카테고리의 다른 글

Loss Function (손실 함수)  (0) 2022.07.08
Activation Function (활성화 함수)  (0) 2022.06.28
Classification Labeling (One Hot Encoding)  (0) 2021.12.09
인공지능이란  (0) 2021.07.01

댓글