[핸즈온 머신러닝] ML 1,2장

Nahyun Kim·2023년 1월 3일
0

핸즈온 머신러닝

목록 보기
1/5

머신러닝이란?

데이터로부터 학습하도록 컴퓨터를 프로그래밍하는 것,

어떤 작업 T에 대한 컴퓨터 프로그램 성능이 P로 측정되었는데, E라는 경험으로 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이라 할 수 있다. - Tom Mitchell, 1997

  • E - 훈련데이터
  • P - 정확도

머신러닝 기술을 적용해서 대용량의 데이터를 분석하면 겉으로는 보이지 않던 패턴을 발견할 수 있다. (👉Data mining) 이 점을 활용한 애플리케이션 사례들은 다양한 분야에서 발견할 수 있다.

머신러닝 시스템의 종류

  • 사람의 감독 하에 훈련한 것인가? : 지도, 비지도, 준지도, 강화학습
  • 실시간으로 점진적인 학습을 하는가? : 온라인 학습, 배치 학습
  • 사례 기반 학습, 모델 기반 학습

<1> 학습하는 동안의 감독 형태 / 정보량

✅ 지도 학습
: 알고리즘에 주입하는 훈련 데이터에 레이블이 포함된 경우
ex) 분류, k-nearest neighbors, linear regression, logistic regression, support vector machine, 결정 트리, 랜덤 포레스트, 신경망

✅ 비지도 학습
: 훈련 데이터에 레이블이 포함되어 있지 않은 경우 - 시스템 도움 없이 알고리즘 스스로 학습해야 한다.
ex) 군집 (k-means, DBSCAN, 이상치&특이치 탐지, isolation forest)
시각화와 차원축소 (PCA, t-SNE)
연관 규칙 학습 (Apriori, Eclat)

✅ 준지도 학습
: 대부분의 준지도 학습은 지도 학습과 비지도 학습이 결합된 형태

✅ 강화 학습
: 학습하는 시스템(Agent)이 환경을 관찰해서 행동을 실행하고, 그 결과로 reward/penalty 를 받는다. 시간이 지나면서 큰 reward를 얻기 위해 policy라는 최상의 전략을 스스로 학습한다.

<2> 입력 데이터의 stream으로부터 점진적으로 학습할 수 있는가

✅ 배치 학습 (Batch learning)
: 점진적으로 학습 불가, 가용한 데이터를 모두 사용해서 훈련시켜야 한다.

✅ 온라인 학습 (= 점진적 학습)
: 데이터를 순차적으로 한 개씩 / mini-batch 단위로 주입하여 시스템을 훈련
--> 매 학습 단계가 빠르고 비용이 적어, 데이터가 도착하는 대로 즉시 학습 가능
but! 시스템에 나쁜 데이터가 주입됐을 때 시스템 성능이 점진적으로 감소할 수도 있다.

<3> 어떻게 일반화되는가

✅ 사례 기반 학습
: 시스템이 훈련 샘플을 기억함으로써 학습 진행. 유사도 측정을 통해 '새로운 데이터 & 학습한 샘플'을 비교하는 식으로 일반화

✅ 모델 기반 학습
: 샘플들의 모델을 만들어 예측에 사용하는 것
데이터분석 - 모델 선택 - 훈련데이터로 모델 훈련 - 새로운 데이터에 모델 적용해서 예측, 그 다음 이 모델이 성공적으로 일반화되는지 관찰 (테스트와 검증)

머신러닝의 주요 도전 과제

  • 충분하지 않은 양의 훈련 데이터
  • 대표성 없는 훈련 데이터
  • 낮은 품질의 훈련 데이터
  • 관련 없는 특성
  • 훈련 데이터 overfitting
  • 훈련 데이터 underfitting

머신러닝 프로젝트

문제정의 - 데이터 구하기 - 데이터 분석 및 시각화 - 머신러닝 알고리즘에 사용할 데이터 준비 - 모델 선택 및 훈련 - 모델 파인튜닝 - 솔루션 제시 - 시스템 론칭, 모니터링, 유지 보수

✅ Pipeline 이란?
:데이터 처리 component들이 연속되어 있는 것을 데이터 pipeline이라고 한다. 머신러닝 시스템은 데이터를 조작하고 변환할 일이 많아 파이프라인을 사용하는 일이 매우 흔하다.

profile
studying computer vision & NLP

0개의 댓글