[TIL] 머신러닝 살펴보기

머신러닝이란

어떤 프로그램이 경험을 통해 성능이 향상된다면 그 프로그램은 학습을 한 것이다.

즉 머신러닝은 데이터를 통해 프로그램이 학습을 하며 성능이 개선되는 “학습”을 자동으로 하는 것이다.

왜 머신러닝을 사용하는가

  • 규칙 기반으로 데이터를 분류/예측하는 것은 쉽고 간단하지만 규칙이 점점 길고 복잡해지면 유지보-수가 어려워진다. 머신러닝은 자동으로 새 규칙을 추가하고 개선한다.
  • 규칙기반의 경우, 규칙이 드러나면 우회할 수 있다. 머신러닝은 우회하는 데이터가 반복되면 규칙을 자동으로 업데이트할 수 있다.
  • 전통적인 분석으로는 답을 알 수 없는 복잡한 문제도 있다. (음성인식 등) 머신러닝으로만 가능하다.
  • 머신러닝은 급변하는 환경에 능동적인 적응을 하게 돕는다.

머신러닝 시스템의 종류

  • 지도, 비지도, 준지도, 강화학습 (사람의 감독, 레이블의 필요여부)
  • 온라인 학습과 배치학습 (스트리밍 데이터로 조금씩 점진적? 대량의 데이터로 한번에?)
  • 사례 기반 학습과 모델 기반 학습 (이 부분은 추가적인 공부 필요)

지도학습, 비지도학습, 준지도 학습, 강화학습

  • 지도학습: 레이블링된 데이터가 있다. 분류, 예측 등
  • 비지도학습: 레이블이 없다. 군집(k-means, DBSCAN), 이상탐지, 시각화, 연관 규칙 학습
  • 준지도학습: 대부분의 데이터는 레이블이 없으나 약간의 데이터에는 레이블이 있음. 구글포토는 일단 사진의 얼굴을 인식해 비지도학습으로 각 사람별로 사진을 클러스터링함. 이후 고객이 모아진 사진 리스트별로 어떤 사람인지 식별해주면 이제 모든 사진이 레이블을 갖게 됨.
  • 강화학습: 환경을 관찰해 어떤 행동을 했을 때 “보상” 또는 “벌점”을 받게 되고 최고의 보상을 얻기 위한 “정책”이라 불리는 최상의 전략을 스스로 학습.

배치 학습과 온라인 학습

  • 배치학습: 가용한 데이터를 모두 사용해 한번에 모델을 훈련. 머신러닝 시스템 자체가 자동화될 여지가 있으므로 자동화 가능 (예를들어 24시간마다 새 모델 학습 등). 다만 비용이나 리소스 낭비 여지가 있음
  • 온라인학습: 데이터를 미니배치라고 부르는 작은 묶음 단위로 주입해 훈련. 학습 단계가 빠르고 비용이 적게들어 데이터가 도달하는 즉시 학습 가능. 학습 후 샘플 데이터를 폐기해도 되어 경제적. 다만 시스템에 나쁜 데이터가 주입되면 시스템 성능이 점진적으로 감소하게됨. 모니터링 통해 성능 감소가 나타나면 즉시 학습을 중지시켜야 함.

도전과제

나쁜 알고리즘과 나쁜 데이터

데이터

  • 충분하지 않은 양의 훈련 데이터
  • 대표성 없는 훈련 데이터
  • 낮은 품질의 데이터 (에러, outlier, 누락/결측치)
  • 관련 없는 feature (훈련에 사용할 좋은 feature를 찾는게 중요하다)

알고리즘

  • 과대적합(overfitting): 모델이 훈련 데이터에 너무 잘 맞아서 실제 데이터에서는 예측 성능이 떨어짐
  • 과소적합(underfitting): 모델이 너무 단순해서 데이터의 내재된 구조를 제대로 학습하지 못함. 예측을 제대로 하지 못하는 모델이 탄생

테스트와 검증

  • trainning set과 test set을 구분해야 함.
  • 보통 데이터의 80%를 훈련에, 20%를 테스트에 사용함. 이는 데이터셋의 크기에 따라 달라짐. (충분한 향의 테스트셋이 있으면 됨)
  • 홀드아웃 검증: 훈련세트로 여러 모델을 훈련하고, 검증세트로 가장 좋은 모델을 선정한 후 훈련+검증세트로 가장 좋은 모델을 다시 훈련하고 테스트세트로 평가
  • 교차검증: 작은 검증세트를 여러개 사용해 반복적인 검증. 검증세트마다 나머지 데이터로 훈련한 모델을 평가하고 평균냄. 훈련시간이 검증 세트수에 비례해 증가함.

기타

  • 차원 축소(Dimensionality Reduction): 상관관계가 있는 여러 특성을 합성해 하나의 feature로 만듬. 예를들어 자동차의 주행거리와 연식은 자동차의 내구도(노후정도)와 연관되어 있으므로, 둘을 합쳐 “노후정도”라는 feature를 개발
  • Learning rate: 변화하는 데이터에 얼마나 빠르게 적응할 것인지. 각 미니배치가 순차적으로 학습될 때 이전 미니배치에 사용된 데이터에 비해 새 데이터에 얼마나 민감하게 학습할지. Learning rate가 높으면 새 데이터에 빠르게 적응하는 만큼 이전 데이터는 빠르게 잊어버림.
  • 샘플링 잡음: 우연에 의한 대표성 없는 데이터
  • NFL 이론: No Free Lunch 이론. 공짜 점심은 없다. 즉, 훈련해보기 전엔 어떤 모델이 최선인지 알 수 없다.