728x90
반응형

머신러닝 사용 시 주의해야 할 사항들

 머신러닝은 데이터를 기반으로 머신러닝 알고리즘을 학습시키기 때문에 데이터나 알고리즘에 다음과 같은 문제가 있다면, 머신러닝을 사용했을 때, 제대로 된 결과를 기대하기 어렵다.

 

 

 

 

1. 충분하지 않은 양의 훈련 데이터

  • 머신러닝은 말 그대로, 데이터를 이용해서 그 안에 숨어 있는 패턴을 찾아내는 것이다.
  • 예를 들어, 고양이 사진을 이용해서, 고양이를 찾을 수 있는 모델을 만든다고 가정해보자.
  • 고양이 사진이 매우 적다면, 시스템은 단순하게 꼬리, 다리 4개를 가진 모든 대상을 고양이라고 판단할 수도 있다.
  • 고양이의 종류는 매우 다양하고, 다른 동물과 달리 고양이만 가진 특징을 컴퓨터가 찾아내기 위해서는 매우 많은 양의 데이터가 필요하다.

 

 

 

 

 

2. 대표성이 없는 훈련 데이터

  • 머신러닝은 훈련 데이터를 이용해서 시스템을 학습시키고, 그 학습된 시스템에 새로운 데이터가 들어왔을 때, 학습된 내용을 바탕으로 새로운 데이터를 분류하게 된다.
  • 만약, 훈련에 사용한 데이터가 대표성이 없다면, 새로운 데이터를 처음 보는 종류의 데이터로 보고, 잘못된 분류를 할 가능성이 높다.
  • 예를 들어, 우리가 길거리에서 흔히 볼 수 있는 길고양이 즉, 코리안 숏헤어만 고양이로 학습시킨다면, 고양이는 털이 짧고, 얼굴이 동그랗고, 귀가 뾰족하며, 주황색, 흰색, 회색, 검은색 털을 갖는다라고 패턴을 익혀버릴 수 있다. 이러한 경우, 털이 길거나, 귀가 둥글거나, 접혀있는 다른 종류의 고양이들을 다른 동물로 인식할 수 있다.

2.1. 데이터의 양과 대표성

  • 샘플링 잡음(Sampling noise): 데이터의 양이 매우 적다면, 대표성이 매우 적은 데이터만 뽑힐 확률이 높아진다. 고양이 사진 10,000장보다 고양이 사진 100장에 털이 짧은 고양이 사진만 뽑힐 확률이 매우 높기 때문이다.
  • 샘플링 편향(Sampling bias): 데이터의 양이 많다고해서, 반드시 대표성이 높은 것은 아니다. 10,000장의 고양이 사진에 털이 짧은 고양이 사진이 9,500장, 500장에만 털이 긴 고양이 사진이 들어갈 가능성도 있기 때문이다.
  • 물론, 추출한 데이터의 양이 매우 많고, 데이터를 생성하는 방법에도 이상이 없는 경우, 위와 같은 문제가 발생할 가능성은 크게 낮아진다.
  • 예를 들어, 어떤 TV 프로를 즐겨보는지 설문 조사를 할 때, 유치원생들만을 대상으로 한다면, 한국인들은 뽀로로와 핑크퐁을 굉장히 좋아하는 특이한 사람들이라고 판단할 위험이 있으며, 면접을 보는 사람들을 대상으로 학업 성적에 대해 설문 조사를 하면, 자신에게 불이익이 갈까 봐 응답을 하지 않거나, 거짓 대답을 할 가능성이 있다.

 

 

 

 

 

3. 품질이 낮은 훈련 데이터

  • 훈련 데이터에 결측값(Missing value)이나 이상 값(Outlier) 등이 굉장히 많이 존재한다면, 머신러닝을 통해 제대로 된 패턴을 찾아내지 못할 수 있다.
  • 예를 들어, 수질 검사기의 센서에 수중 식물이나 오염 물질이 붙어 있어, 실제 수치와 전혀 다른 결과가 생성될 수 있다.
  • 혹은, 키를 적는 문항에 몸무게를 적거나, 손으로 쓴 설문 문항을 전산화하는 과정에서 180을 1800이라고 잘못 입력할 수도 있다.
  • 때문에 데이터 분석가는 분석을 하기 전에, 결측값이나 이상 값들이 발생한 이유를 파악하고, 측정 도구의 신뢰도 검사를 통해, 제대로 된 데이터가 수집되고 있는지 파악하고, 그 성격에 맞는 조치를 취해야 한다.
  • 예를 들어, 결측값이 발생한 이유가 어떤 의도에 의해 발생하여, 결측 값에 숨겨진 패턴이 존재할 가능성이 높다면, 설문조사를 재실시해 누락된 부분을 채워 넣거나, 그 양이 매우 적으며 단순 실수에 의해 발생한 결측 값이라면, 일괄 제거 혹은 다중 대체법(Multiple Imputation) 등으로, 누락된 결측 값을 추론하여 계산할 수도 있다.

 

 

 

 

 

4. 관련 없는 특성이 들어가 있는 경우


Garbarge in, garbage out - "쓰레기가 들어가면 쓰레기가 나온다."


  • 정보통신분야에서 유명한 위 문구는 머신러닝 분야에서도 그대로 통용된다.
  • 고양이 사진을 이용해서 고양이를 학습시키려고 하는데, 쓸 데 없이 모든 고양이 사진에 화분이 들어가 있다면, 화분을 중요한 패턴으로 인식할 수 있다.
  • 때문에 훈련 데이터에는 관련 없는 특성을 최소화시키고, 관련 있는 특성을 최대화할 필요가 있다.

4.1. 특성 공학(Feature engineering)

  • 머신러닝을 포함한 모든 데이터 분석에서 가장 중요한 부분은 전처리로, 훈련에 사용할 좋은 특성을 찾는 과정을 특성 공학이라고 한다.
  • 특성 선택(Feature selection): 전체 특성 중 훈련에 가장 유용한 특성을 선택한다.
  • 특성 추출(Feature extraction): 특성을 결합하여 더 유용한 특성을 만들어낸다. 특성 간 성격을 이용하여, 특성의 정보를 축소시킬 수도 있고, 차원축소(PCA) 알고리즘을 사용하여 특성을 추출할 수도 있다.

 

 

 

 

 

5. 훈련 데이터 과대적합(Overfitting)

  • 과대적합(Overfitting)은 훈련 데이터에 대해 지나치게 최적화되어, 훈련 데이터는 잘 분류하지만, 새로운 데이터는 제대로 분류하지 못하는 현상을 말한다.
  • 과대적합은 데이터의 양이 적거나, 편향되어 있는 경우, 필요 이상으로 학습을 시키는 경우(Epochs가 필요치 보다 큰 경우), 주로 발생한다.
  • 예를 들어, 훈련 데이터의 모든 고양이 사진의 고양이 목에 리본이 달려 있다면, 목에 리본이 없는 고양이들을 고양이가 아니라고 분류할 가능성이 올라간다.

5.1. 과대적합을 피하는 방법

  • 과대적합은 훈련 데이터에 있는 잡음의 양에 비해 모델이 너무 복잡할 때 발생한다. 이를 해결하는 방법은 다음과 같다.
  • 규제(Regularization)를 사용하여 모델을 단순화시키거나, 모델 파라미터의 수가 적은 보다 단순한 모델을 사용한다.
  • 훈련 데이터에 있는 특성의 수를 차원축소(PCA)와 같은 방법으로 줄인다.
  • 훈련 데이터의 잡음을 줄인다(오류 데이터 수정 및 이상치 제거).
  • 훈련 데이터를 더 많이 모은다.

 

 

 

 

 

6. 훈련 데이터 과소적합(Underfitting)

  • 과소적합은 과대적합의 반대로 모델이 너무 단순해서 학습 데이터에 숨겨진 패턴을 제대로 찾아내진 못한 경우이다.

6.1. 과소적합을 피하는 방법

  • 모델 파라미터의 수가 더 많은 강력한 모델을 사용한다.
  • 보다 더 좋은 특성을 제공한다.
  • 규제의 양을 줄인다.

 

 

[참고 서적]

 

 

 

 지금까지 머신러닝 시 주의 사항에 대해 알아보았다. 머신러닝은 기본적으로 데이터를 이용해서, 데이터 속에 숨어 있는 패턴을 찾아내는 것이므로, 데이터의 품질이 떨어지거나, 데이터의 양이 지나치게 적은 경우, 그 역할을 제대로 해낼 수 없다. 

 데이터 분석에서 제일 중요한 것은 데이터의 품질 관리이므로, 데이터에 대한 파악과 사용하고자 하는 머신러닝 알고리즘에 대한 지식이 선행되어야만, 머신러닝을 사용한 데이터 분석을 제대로 수행할 수 있다.

728x90
반응형

+ Recent posts