https://www.boostcourse.org/ai216/joinLectures/132205?isDesc=false
Train/Dev/Test 세트
신경망의 층의 개수, 히든유닛의 개수, 학습률, 활성화 함수 ... 를 모두 고려해 신경망을 만든다.
이후 결과에 기반해 아이디어를 개선한다.
어떤 분야의 애플리케이션의 직관이 다른 분야에 잘 적용되지 않는다. 따라서 다른 분야를 첫 시도했을 때, 첫 시도에 하이퍼파라미터튜닝을 잘 하는 것은 어렵다.
Train/Dev/Test 세트를 잘 만드는 것은 중요하다.
전체 데이터셋을 트레이닝셋, 테스트셋, dev셋으로 나눈다.
보통 60/20/20 퍼센트로 나누었다.(전통)
이제는 test와 dev셋의 크기를 작게 하는 추세이다. test를 1%로 해도 충분하다. 전체 데이터 개수가 많을수록 test셋 크기를 작게 해도 된다.
dev 세트: 다양한 모델 중 어떤 모델이 좋은 성능을 나타내는지 확인한다.
train과 dev세트는 같은 분포(distribution)에서 와야 한다.
(그러나 딥러닝 알고리즘은 많은 데이터가 필요하니 웹 크롤링을 쓸 수도 있다.)
test 세트가 없어도 된다. test세트의 목표는 비편향 추정이다.
test가 없으면 train으로 학습하고 dev로 테스트한다.
편향/분산
variance : 분산
bias : 편
high variance - overfitting
high bias - underfitting
train set에 과적합된 경우 - high variance.
train set에 대해서도 안 맞는 경우 - high bias.
train set, dev set 모두 안 맞는 경우 - high variance, high bias.
둘 다 잘 맞는 경우 - low variance, low bias
- train set error를 통해 최소한 훈련 데이터에서 얼마나 알고리즘이 적합한지 감을 잡을 수 있다.(bias problem)
- train set에서 dev set으로 갈 때 오차가 얼마나 커지는지에 따라서 variance 문제를 알 수 있다.
머신러닝을 위한 기본 레시피
- 알고리즘이 높은 bias를 갖는지를 맨 먼저 질문. -> 더 큰 네트워크, 더 오래 훈련, 네트워크 아키텍처 조정
- 분산 문제가 있는지 질문. 분산이 높으면 -> 더 많은 데이터 구하기,정규화, 네트워크 아키텍처 조정.
'머신러닝' 카테고리의 다른 글
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 3. 최적화 문제 설정 (0) | 2024.05.06 |
---|---|
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 2. 신경망 네트워크의 정규화 (0) | 2024.04.15 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 5. 심층 신경망 네트워크 (0) | 2024.04.08 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 4. 얕은 신경망 네트워크 (2/2) (1) | 2024.04.01 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 4. 얕은 신경망 네트워크 (1/2) (0) | 2024.03.25 |