학습일기

#02 Machine Learning-머신 러닝 종류 본문

Research/Machine Learning

#02 Machine Learning-머신 러닝 종류

P_Jay 2021. 12. 4. 14:56

먼저, Robotics 전공자로서 공부한 것을 정리해보는 글이다.
개인적인 견해를 포함한 글일 수 있으니 양해를 구한다.
지나가는 말은 "(skip)" 문구를 붙일 것이니 굳이 읽지 않아도 된다.

  1. 신 러닝 종류
    머신러닝은 크게 두 가지로 나눌 수 있다.
    • 지도학습(Supervised learning)
      - 사용자가 알고리즘을 이용해 입력과 예상되는 출력을 만드는 방법을 말한다.
      - 즉, 정해진 정보 한에서만 동작한다는 것이다.

      조잡하고 극단적인 예를 들자면 input과 output의 관계가 명확한 다음 3개의 데이터가 있다. A=1, B=2, C=3
      여기서  A는 무엇인지, B는 무엇인지, C는 무엇인지 알 수 있을 것이다. 또한 1,2,3이 어떤 분류(A, B, C)에 속하는지도 알 수 있을 것이다. 하지만 D라는 입력이 들어올 때 출력 값을 찾지 못하며, 4라는 출력 데이터가 있을 때 분류를 결정하지 못해 오류를 발생시킨다.
      ex) 스팸필터, 신용카드 거래내역, 영상 이미지에 기반한 종양 판단 등

      - 분류(Classification):
      - 변수의 예측을 위해 사용되는 지도학습의 한 방법을 분류라고 한다.
      - 레이블 2개 : 이진 분류(binary classification)
      - 범주 두 개 이상 : 다중 클래스 분류(multi-class classification)라고 부른다.

      - 회귀(Regression):
      - Training-data를 이용, 연속적인 값을 예측하는 것을 의미

      - 예측(Forecasting):
      - 과거 및 현재 입출력 data를 기반으로 예측
      - 주로 동향(Trends)을 분석할 때 많이 사용됨.
      ex) A기업의 19년, 21년도 매출을 기반으로 22년 매출을 추산(예측, 추정)하는 것

    • 비지도학습(Unsupervised learning)
      - 지도학습과는 다르게 알고리즘 내에 입력은 주어지지만 출력은 주어지지 않는 형태이다.
      - input과 output의 관계가 결정되어있는 지도학습보다 해석에 있어서 어려움
      ex) 블로그 또는 카페의 주제 판단, 비정상적(음란물, 도박 등) 웹사이트 접근 탐지 및 차단, 취향 판단 및 그룹화

      - 클러스터링(Clustering):
      - 특정 기준에 따라 유사한 데이터 분류하고 같이 분류된 데이터들을 한 세트로 그룹화한다.
      - 여러 데이터 세트를 여러 그룹으로 분류하기 위함

      - 차원 축소(Dimension Reduction):
      - 변수의 개수를 줄이는 작업.
      - 원시 데이터들(raw datas)은 차원이 높아 쉽게 결과를 확인, 도출하기 어렵다. 그 원시 데이터의 일부 특징들은 중복되거나 관련성이 없는 데이터일 수 있다. 그래서 변수 개수를 줄이면 data들의 상관관계를 도출하기 용이해질 수 있다.

    • 강화학습(Reinforcement learning)
      - 피드백을 기반, 이후 패턴을 분석하고 최적화한다.
      - "강화 학습만의 특징"
         시행착오(Trial-and-error)
         지연 보상(delayed reward)
  2. 필수 패키지 및 사용 환경
    • 패키지(package)
      • scikit-learn
      • Numpy
        - Python을 이용하기에 위해 꼭 필요한 패키지
        - 배열이 기본 데이터 구조
        - 다차원 배열을 위한 기능
        - 선형대수 연산
        - 푸리에 변환
        - 수학 함수
        - 유사(pseudo) 난수 생성기 포함
      • SciPy (https://scipy.org/)
        (SciPy강의노트 : https://scipy-lectures.org/)
        - 고성능 선형대수
        - 함수 최적화
        - 신호처리
        - 특수한 수학 함수, 통계 분포
        - 0을 많이 포함한 2차원 배열을 저장할 때 사용하는 희소 행렬 or 희박 행렬 (sparse matrix) 기능
        etc
      • matplot (https://matplotlib.org/)
        - 그래프를 통한 시각화(Visualization)
        - 선 그래프, 히스토그램, 산점도 etc
        - 고품질 그래프 표현
      • pandas (https://pandas.pydata.org/)
        - 데이터 처리와 분석을 위한 Python Library
        - DataFrame이라는 데이터 구조를 기반으로 만들어졌다.
        - DataFrame은 Excel의 Spreadsheet와 비슷한 테이블 형태
        - 테이블 수정, 조작 기능 포함
        - SQL, XLSX, CSV와 같은 데이터 베이스에서 데이터를 읽어올 수 있는 기
      • mglearn
        - 그래프, 데이터 적재와 관련된 코드를 일일이 작성하지 않아도 되도록 유틸리티 함수들을 포함한다.(참고서적의 저자가 만듦)
        -간단한 그림, 데이터를 바로 load 할 수 있음.

      • IPython
        - 대화식 개발을 위해 필요한 라이브러리
      • Jupyter
        - 프로그램 코드를 브라우저에서 실행해주는 대화식 환경 제공
        - 많은 수의 데이터 분석가가 사용
        - 다양한 언어 지원
        - 코드, 설명, 이미지를 섞어 쓸 수 있다.
    • Anaconda (http://www.anaconda.com)
      • 범용 Python 배포판
        - 대용량 데이터 처리
        - 예측 분석
        - 과학 계산용
        - 지원 OS : Windows, Linux, macOS
      • 포함된 패키지(package)
        - Numpy
        - SciPy
        - matplotlib
        - Jupyter
        - pandas
        - IPython
        - scikit-learn
    • ActivePython (https://www.activestate.com)
      • 범용 Python 배포판
        - 무료 (Community Edition), 유료 (기업용 Enterprise)
        - 지원 OS : Windows, Linux, macOS
      • 포함된 패키지
        - Numpy
        - SciPy
        - matplotlib
        - Jupyter
        - pandas
        - scikit-learn
    • Python(x, y) (https://python-xy.github.io/)
      • 범용 Python 배포판
        - Windows에 특화된 과학 계산용 무료 파이썬 배포판
        - 지원 OS : Windows
      • 포함된 패키지
        - Numpy
        - SciPy
        - matplotlib
        - Jupyter
        - pandas
        - IPython
        - scikit-learn

Next Note(#03 Machine Learning-필수 패키지 및 사용 환경)

'Research > Machine Learning' 카테고리의 다른 글

#03 Machine Learning-필수 패키지 및 사용 환경  (0) 2021.12.05
#01 Machine Learning-개요  (0) 2021.11.25
Comments