RECORD AI
1. Train/Dev/Test Sets 본문
반응형
Train/Dev/Test Sets
1. Applied ML is a highly iterative process
훈련, 개발, 테스트 데이터 셋을 어떻게 설정할지에 관한 좋은 선택을 내리는 것은
좋은 성능을 내는 네트워크를 빠르게 찾는데 큰 영향을 준다.
신경망을 훈련시킬 때 결정해야하는 것들은 매우 많다.
- 층의 수(number of layers)
- 뉴런의 수(number of hidden units)
- 학습률(learning rate)
- 활성화 함수(Activation Function)
하지만 이 모든 것들에 대한 적절한 값을 처음부터 추측하는 것은 거의 불가능하다.
다른 하이퍼 파라미터(hyper parameters)도 마찬가지이다.
따라서 실질적으로 머신러닝을 적용하는 것은 매우 반복적인 과정을 거쳐야한다.
1) 처음에는 아이디어로 시작한다.
2) 그리고 특정 개수의 층과 유닛을 가지고 특정 데이터 셋에 맞는 신경망을 만든다.
3) 이를 코드로 작성하고 실행하고 성능을 검사한다.
4) 그 결과에 기반하여 아이디어를 개선하고 몇 가지 선택을 수정하게 된다.
5) 더 나은 신경망을 찾기 위해 이 과정을 반복한다.
$\Rightarrow$ 반복적인 과정 속에서 빠른 진전을 이루는데 영향을 미치는 것들은 이 사이클을 얼마나 효율적으로 돌 수 있는지와 데이터 셋을 잘 설정하는 것이다.
2. Train/Dev/Test Sets
전통적인 방법
$\Rightarrow$ 데이터 샘플의 수가 100개, 1000개, 혹은 10000개였을 경우
- 머신러닝 이전 시대의 관행적으로는 훈련 데이터 셋을 70%, 테스트 데이터 셋을 30%으로 한다.
- 또는 훈련, 개발, 테스트 셋을 각각 60%, 20%, 20%로 나눈다.
빅데이터 시대
$\Rightarrow$ 100만 개 이상의 데이터 샘플이 존재할 경우
- 98%의 훈련 셋, 1% 개발 셋, 1% 테스트 셋가 된다
- 개발 셋과 테스트 셋은 확인의 용도이므로 성능을 평가하는 정도로만 쓰면 되기에 비율을 줄였다.
- 데이터가 더 많다면 개발과 테스트 셋을 이보다 더 적게 설정해도 된다.
3. 결론
데이터 셋을 나눌 때 데이터의 수가 적다면 전통적인 70/30이나 60/20/20 으로 비율을 설정해도 괜찮지만
훨씬 데이터의 수가 많다면 개발과 테스트 데이터 셋의 비율을 더 적게 설정하는 것도 좋은 방법이다.
참조 1
반응형
'Deep Learning > improving DNN' 카테고리의 다른 글
6. Dropout Regularization (드롭아웃 정규화) (0) | 2022.12.26 |
---|---|
5. Why Regularization Reduces Overfitting (0) | 2022.12.26 |
4. Regularization (정규화) (0) | 2022.12.26 |
3. Basic Recipe for Machine Learning (0) | 2022.12.26 |
2. Bias/Variance (0) | 2022.12.26 |
Comments