본문 바로가기
Python/머신러닝

머신러닝 이론

by 빵으니 2020. 7. 23.

머신러닝이란?

머신러닝(machine learning) 개요

  • 머신러닝이란 인공지능 연구 과제 중 하나
  • 인간의 뇌가 학습하는 것처럼 학습의 능력을 컴퓨터로 구현하는 방법
  • 샘플 데이터 입력 => 분석 => 특징과 규칙 발견 => 데이터 분류 또는 예측

어떻게 특징과 규칙을 찾을까?

  • 특징량을 기반으로 구분선 그리기
  • 머신러닝 계산을 통해 구분선을 찾아 내는 것
  • 대개 거리가 가까우면 비슷한 데이터라고 판정

특징 추출

  • Raw Data (원본 데이터) => 데이터가 어떤 특징을 가지고 있는 지 확인 => 벡터(vector)화
  • 벡터란 공간에서 크기와 방향을 가지는 것을 의미 (벡터의 거리를 계산)
  • 어떤 특징을 추출할지가 포인트 = featuring

회귀 분석 regression analysis

  • Y가 연속된 값일 때 Y = f(x) 모델로 나타내는 것
  • Y = aX + b 인 경우를 선형 회귀
  • Y : 종복변수(목표변수) /  X : (독립변수,설명변수)
  • X가 1차원 : 단순회귀 / 2차원 이상 : 다중 회귀

머신러닝의 종류

지도학습(교사학습) Supervised learning

  • 데이터와 함께 답도 입력
  • 다른 데이터의 답 예측
  • 답을 특별히 레이블(lable) 이라고 함
  • 글자를 나타내는 이미지와 답을 학습 => 새로운 이미지의 글자 예측

비지도학습(비교사학습) Unsupervised learning

  • 데이터만 입력
  • 데이터에서 규칙성을 찾음
  • 일반적으로 사람도 알 수 없는 본질적인 구조 찾기 등에 사용
  • 클러스트 분석(Cluster analysis), 주성분 분석(Pricipal component analysis) 등

강화학습 Reinforcement learning

  • 부분 적인 답 입력
  • 데이터를 기반으로 최적의 답 찾기
  • 행동의 주체 <==> 환경(상황, 상태)
  • 행동의 주체는 환경을 관찰 => 의사결정(행동) => 보상
  • 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습
  • ex) 알파고

머신러닝의 흐름

  • 데이터 수집 => 가공 => 학습 => 모델 평가 => 정밀도 확인 => 성공
  • 학습 => 학습 방법 선택 => 매개변수 조정 => 모델 학습
  • 정밀도가 낮으면 매개변수 조정 => 모델 학습 = > 모델 평가 => 정밀도 확인 반복

데이터 수집

  • 가장 어려운 부분
  • 충분한 양의 데이터 확보 필요

데이터 가공

  • 프로그램이 다루기 쉬운 형태로 가공
  • 머신러닝의 어떤 특징을 활용 및 그에 따른 데이터 가공 방법 고민

학습

  • 알고리즘 선택 : SVM, 랜덤포레스트, k-means 등
  • 데이터와 알고리즘에 맞게 매개변수 지정

평가

  • 테스트 데이터를 활용해 정밀도 확인

머신러닝 응용 분야

클래스 분류(Classification)

  • 특정 데이터에 레이블을 붙여 분류
  • 스팸 메일 분류, 필기 인식, 증권 사기 등에 사용

클러스터링 - 그룹 나누기(Clustering)

  • 값의 유사성을 기반으로 데이터를 여러 그룹으로 나누기
  • 사용자 취향별 타겟 광고 제공

추천(Recomendation)

  • 특정 데이터를 기반으로 다른 데이터를 추천하는 것
  • 사용자가 인터넷 서점에서 구매한 책을 기반으로 다른 책 추천

회귀(Regression)

  • 과거의 데이터를 기반으로 미래의 데이터를 예측 하는 것
  • 판매 예측, 주가 변동 등 예측

차원 축소(Dimensionality Reduction)

  • 데이터의 특성을 유지하면서 데이터의 양을 줄이는 것
  • 양을 줄인다는 것 보다는 고차원을 저차원 데이터로 변환 하는 것
  • 데이터를 시각화 하거나 구조를 추출해서 용량을 줄여 계산을 빠르게 하거나 메모리 절약에 사용
  • 사람은 얼굴 이미지는 용량이 큰 고차원 데이터 => 이미지에서 눈의 크기, 굴곡, 코의 위치, 입의 위치 등을 분석해 숫자로 추출

초과 학습(초과 적합) Overfitting

  • 훈련 전용 데이터가 학습돼 있지만 학습되지 않은 데이터에 대해 제대로 된 예측을 못하는 상태
  • 데이터가 너무 적은 경우
  • 모델에 비해 문제가 너무 복잡한 경우

머신러닝 프레임워크 scikit-learn

  • 다양한 분류기 지원
  • 머신러닝 결과 검증 기능
  • 분류, 회귀, 클러스터링, 차원 축소 등의 다양한 알고리즘 지원
  • 머신러닝 테스트용 샘플 데이터 제공

https://github.com/amueller/odscon-2015/blob/master/machine-learning-with-scikit-learn-odscon-expanded.pdf

 

 

 

amueller/odscon-2015

Slides and material for open data science. Contribute to amueller/odscon-2015 development by creating an account on GitHub.

github.com

 

댓글