머신러닝의 주요 도전 과제

  1. 충분하지 않은 양의 데이터
    데이터의 양이 충분해야 알고리즘이 제대로 작동한다.

  2. 대표성 없는 훈련 데이터
    샘플링 잡음(우연에 의한 대표성 없는 데이터)이나 샘플링 편향(샘플이 매우 큼에도 불구하고 표본 추출 방법이 잘못됨)이 일어날 수 있다.

  3. 낮은 품질의 데이터
    이상치, 결측치 등.

  4. 관련 없는 특성
    프로젝트와 관련된 좋은 특성을 찾는 특성 공학을 통해 해결. (특성을 선택하거나, 결합하거나, 새로운 데이터를 수집해서 새 특성을 만들거나.)

  5. 훈련 데이터 과대적합
    과대적합을 해결하는 방법 3가지
    • 파라미터 수가 적은 모델 선택 (규제)
    • 훈련 데이터 더 많이 모으기
    • 훈련 데이터 잡음 줄이기
  6. 훈련 데이터 과소적합
    과소적합을 해결하는 방법 3가지
    • 모델 파라미터가 더 많은 모델 선택
    • 학습 알고리즘에 더 좋은 특성 제공
    • 제약 줄이기


데이터셋의 구분

하나의 데이터셋은 크게 세 가지로 나누어야 한다.

  1. train set
    훈련을 위한 데이터셋. 가장 크다.

  2. dev set
    여러 모델 후보들을 평가하고 가장 좋은 하이퍼파라미터를 가진 모델을 선택하기 위해 만든 set.

  3. test set
    일반화 오차를 평가하기 위한 set.

모델을 학습하는 과정은 다음과 같다.

  1. train set로 모델 훈련.
  2. dev set로 모델 선택.
  3. train set과 dev set을 합쳐서 최상의 모델 다시 훈련.
  4. test set으로 평가.

dev set은 train set보다 커서는 안된다.


데이터 불일치

모델을 개발하면서 사용하는 데이터와 실제 제품에 사용될 데이터가 다를 수 있다. 예를 들어, 모델 개발에는 웹 상의 고화질 사진을 이용했지만 실제 제품은 스마트폰으로 찍은 저화질 사진을 사용할 수도 있는 것이다.

데이터 불일치를 해결하기 위해 실제 제품 데이터를 조금 활용해서 dev set과 test set에 반 씩 넣을 수도 있다. 하지만 test set의 일반화 오차가 높게 나온 경우 이게 데이터 불일치 때문인지, 과대적합 때문인지 구별하기가 어렵다.

이 문제를 해결하기 위해서 train-dev set이라는 것이 고안되었다. 이 set에는 웹 상의 고화질 사진, 즉 실제 제품이 아닌 훈련에 사용되는 데이터만을 포함하고 있다. 만약 모델이 train-dev set에서 좋은 성능을 보인다면 과대적합이 아닌 데이터 불일치에서 오는 문제라고 결론지을 수 있다.



별도의 출처 표시가 있는 이미지를 제외한 모든 이미지는 강의자료에서 발췌하였음을 밝힙니다.

댓글남기기