머신러닝의 주요 도전 과제
-
충분하지 않은 양의 데이터
데이터의 양이 충분해야 알고리즘이 제대로 작동한다. -
대표성 없는 훈련 데이터
샘플링 잡음(우연에 의한 대표성 없는 데이터)이나 샘플링 편향(샘플이 매우 큼에도 불구하고 표본 추출 방법이 잘못됨)이 일어날 수 있다. -
낮은 품질의 데이터
이상치, 결측치 등. -
관련 없는 특성
프로젝트와 관련된 좋은 특성을 찾는 특성 공학을 통해 해결. (특성을 선택하거나, 결합하거나, 새로운 데이터를 수집해서 새 특성을 만들거나.) - 훈련 데이터 과대적합
과대적합을 해결하는 방법 3가지- 파라미터 수가 적은 모델 선택 (규제)
- 훈련 데이터 더 많이 모으기
- 훈련 데이터 잡음 줄이기
- 훈련 데이터 과소적합
과소적합을 해결하는 방법 3가지- 모델 파라미터가 더 많은 모델 선택
- 학습 알고리즘에 더 좋은 특성 제공
- 제약 줄이기
데이터셋의 구분
하나의 데이터셋은 크게 세 가지로 나누어야 한다.
-
train set
훈련을 위한 데이터셋. 가장 크다. -
dev set
여러 모델 후보들을 평가하고 가장 좋은 하이퍼파라미터를 가진 모델을 선택하기 위해 만든 set. -
test set
일반화 오차를 평가하기 위한 set.
모델을 학습하는 과정은 다음과 같다.
- train set로 모델 훈련.
- dev set로 모델 선택.
- train set과 dev set을 합쳐서 최상의 모델 다시 훈련.
- test set으로 평가.
dev set은 train set보다 커서는 안된다.
데이터 불일치
모델을 개발하면서 사용하는 데이터와 실제 제품에 사용될 데이터가 다를 수 있다. 예를 들어, 모델 개발에는 웹 상의 고화질 사진을 이용했지만 실제 제품은 스마트폰으로 찍은 저화질 사진을 사용할 수도 있는 것이다.
데이터 불일치를 해결하기 위해 실제 제품 데이터를 조금 활용해서 dev set과 test set에 반 씩 넣을 수도 있다. 하지만 test set의 일반화 오차가 높게 나온 경우 이게 데이터 불일치 때문인지, 과대적합 때문인지 구별하기가 어렵다.
이 문제를 해결하기 위해서 train-dev set이라는 것이 고안되었다. 이 set에는 웹 상의 고화질 사진, 즉 실제 제품이 아닌 훈련에 사용되는 데이터만을 포함하고 있다. 만약 모델이 train-dev set에서 좋은 성능을 보인다면 과대적합이 아닌 데이터 불일치에서 오는 문제라고 결론지을 수 있다.
별도의 출처 표시가 있는 이미지를 제외한 모든 이미지는 강의자료에서 발췌하였음을 밝힙니다.
댓글남기기