프로그래밍/머신러닝

[머신러닝 데이터 전처리] 훈련 세트, 테스트 세트, 검증 세트 차이

하루에 한번 방문하기 2021. 3. 13. 15:12

훈련 세트 :

  모델 훈련(가중치 찾기)에 쓰이는 데이터 세트

테스트 세트 :

  모델의 실제 정확도를 판별하기 위해 쓰이는 데이터 세트.

 테스트 세트로 모델을 튜닝하면 모델이 테스트 세트의 정답을 외워버려,

 모델의 일반화 성능이 왜곡되는 문제가 있다. 때문에 모델 튜닝용으로 사용하지 않는다.

 전체 데이터 세트를 보통 8:2의 비율로 떼어 훈련 세트와 테스트 세트를 만든다.

모델 튜닝 :

  손실 함수를 바꾸거나 LearningRate를 조정하는 등의

 모델 성능을 늘리기 위해 하는 작업들

검증 세트(개발 세트, dev set) : 

 훈련 세트에서 보통 8:2의 비율로 떼어 사용하는 모델 튜닝 용도의 세트.

 즉, 전체 데이터 세트가 100이면 64(훈련):20(테스트):16(검증)으로 나눈다.

 하지만 훈련 세트가 적으면 성능에 영향을 주기에 

 데이터가 많을 때 10만 개의 데이터라면 8:1:1, 100만 개의 데이터라면 98:1:1로 분할한다.

교차 검증, 출처 : https://cinema4dr12.tistory.com/1275

교차 검증 : 

 데이터 양이 너무 적은 경우 검증 세트를 나누지 않고 이 방법을 사용한다.

 

데이터 전처리 :

 특성(feature) 스케일 : 

  경사하강법(sgd) 알고리즘은 특성 스케일(값의 범위)의 차이가 클 경우 모델의 성능에 영향을 준다.

  신경망에서 자주 쓰는 스케일 조정 방법 중 하나는 표준화이다.

  특성 값의 평균을 빼고 표준 편차로 나눈다.

 가중치 변화 관찰과 업데이트 양 조절 :

  학습률이 크면 손실 함수 최소 지점의 전역 최솟값을 놓칠 수 있는데,

  전역 최솟값을 찾기 위해 가중치 변화를 기록하는 변수를 추가해 그래프로 시각화한다.

  가중치 변화 폭이 크다면 특성 스케일을 조정한다.

  이때 검증 세트도 훈련 세트와 같은 비율로 특성 스케일을 조정해야 한다.

   훈련 세트의 평균과 표준 편차를 사용해 검증 세트를 조정한다.

 

 

내용 출처 : 

책 <정직하게 코딩하며 배우는 딥러닝 입문(박해선)>


지도학습 말고 비지도학습에도 이런 데이터 전처리 과정이 있으려나?