머신러닝 개요

ppippi·2023년 7월 3일
0

인공지능

  • 인공지능(AI - Artificial Intelligence)이란
    • 기계가 사람의 지능을 모방하게 하는 기술
    • 규칙기반, 데이터 학습 기반

<Artificial General Intelligence (AGI)>
인간이 할 수 있는 모든 지적인 업무를 해낼 수 있는 가상적인 기계의 지능을 말하며, 인공지능 연구의 주요 목표이다.

  • String AI vs Weak AI
    String AI

    • AGI 성능을 가지는 인공지능
      Weak AI
    • 기존에 인간은 쉽게 해결할 수 있었지만 컴퓨터로 처리하기 어려웠던 일을 컴퓨터가 수행할 수 있도록 하는 것이 목적
      (특정한 업무를 처리하는 데 집중)
  • 인공지능의 발전을 가능하게 만든 세가지 요소

    • 데이터의 급격한 증가
    • 알고리즘의 발전
    • 컴퓨터 하드웨어의 발전
  • 머신러닝(Machine Learning)

    • 데이터 학습 기반의 인공지능 분야
    • 기계에게 어떻게 동작할지 일일이 코드로 명시하지 않고 데이터를 이용해 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 인공지능의 한 분야이다.
  • 딥러닝(Deep Learning)

    • 인공신경망 알고리즘을 기반으로 하는 머신러닝의 한 분야
    • 비정형데이터(영상,음성,텍스트)에서 뛰어난 성능을 나타낸다.
      단, 학습 데이터의 양이 많아야 한다.
      • 비정형 데이터
        정해진 규칙없이 저장되어 값의 의미를 쉽게 파악할 수 없는 데이터
      • 정형 데이터
        미리 정해 놓은 형식과 구조에 따라 저장되도록 구성된 데이터
        대표적으로는 관계형 데이터베이스가 있다.

전통적 프로그래밍 방식은 프로그램 알고리즘을 사람이 직접 규칙에 맞게 작성하지만 머신러닝은 input data와 output data간의 관계를 표현하는 패턴을 컴퓨터가 학습(Train)과정을 통해 직접 찾도록 한다.

  • 머신러닝 모델(알고리즘, 모형)
    • 모델이란 데이터의 패턴을 수식화 한 함수를 말한다.
    • 머신러닝은 입력데이터와 출력데이터를 이용해 그 둘의 함수에 근사한 함수를 찾는다.
  • 모델을 만드는 과정
  1. 모델을 정하여 수식화한다.
  2. 모델을 데이터를 이용해 학습(Train)시킨다.
    => 모델을 데이터의 패턴에 맞춘다.(fit)
  3. 학습된 모델이 얼마나 데이터 패턴을 잘 표현하는지 평가한다.(Test)
  • 데이터 관련 용어
    Feature
    일반적으로 X(대문자)로 표현
    추론하기 위한 근거가 되는 값들을 표현하는 용어
    입력변수(Input),독립변수라고도 한다.

Label
출력 변수(output), 종속변수, Target이라고도 한다.
일반적으로 y로 표현한다.

Class
Lable잉 범주형(Categorical)일 경우 그 고유값을 Class라고 한다.

데이터 포인트
개별 데이터를 표현하는 용어.


머신러닝 알고리즘 분류

  • 지도학습(Supervised Learning)

    • 모델에게 데이터의 특징(Feature)와 정답(Label)을 알려주며 학습시킨다.
    • 대부분의 머신러닝은 지도학습
    • 종류(분류/ 회귀)
      • 분류(Classification)
        두개 이상의 클래스(범주)에서 선택을 묻는 지도 학습방법 (이진분류 / 다중분류)
        의사결정나무(Decision Tree)
        로지스틱 회귀(Logistic Regression)
        K-최근접 이웃(K-Nearest Neighbors, KNN)
        나이브 베이즈(Naive Bayes)
        서포트 벡터 머신(Support Vector Machine, SVM)
        랜덤 포레스트(Random Forest)
        신경망(Neural Network)
      • 회귀(Regression)
        숫자(연속된 값)를 예측하는 지도학습
        의사결정나무(Decision Tree)
        선형 회귀(Linear Regression)
        릿지 회귀(Rige Regression)
        라쏘 회귀(Lasso Regression)
        엘라스틱 넷(Elastic Net)
        K-최근접 이웃(K-Nearest Neighbors, KNN)
        나이브 베이즈(Naive Bayes)
        서포트 벡터 머신(Support Vector Machine, SVM)
        랜덤 포레스트(Random Forest)
        신경망(Neural Network)
  • 비지도학습 (Unsupervised Learning)

    • 정답이 없이 데이터의 특징만 학습하여 데이터간의 관계를 찾는 학습방법
    • 군집(Clustering)
      • 비슷한 유형의 데이터 그룹을 찾는다.
    • 차원축소(Dimensionality Reduction)
      • 예측에 영향을 최대한 주지 않으면서 변수(Feature)를 축소한다.

머신러닝 개발 절차 (Machine Learning Process)


머신러닝 개발 절차

  1. Business Understanding
    머신러닝 개발을 통해 얻고자 하는 것 파악
  2. Data Understanding
    데이터 수집
    탐색을 통해 데이터 파악
  3. Data Preparation
    데이터 전처리
  4. Modeling
    머신러닝 모델 선정
    모델 학습
  5. Evaluation
    모델 평가
    평가 결과에 따라 위 프로세스 반복
  6. Deployment
    평가 결과가 좋으면 실제 업무에 적용

위의 개발절차들을 진행하는데 도움을 주는 패키지들이 있다.

파이썬 머신러닝, 딥러닝 주요 패키지

  • Scikit-learn
    • 딥러닝을 제외한 머신러닝 주요 알고리즘 제공
  • Pytorch
    • 토치(Torch) 및 카페2(Caffe2) 프레임워크를 기반으로한 페이스북에서 만든 딥러닝 프레임워크
  • Tensorflow
    • 구글 브레인 팀이 개발한 텐서플로우는 머신러닝 및 딥러닝 위한 오픈소스 라이브러리
  • Keras
    • 딥러닝 모델을 쉽게 만들 수 있도록 다양한 딥러닝 플랫폼 위에서 실행되는 고수준 딥러닝 패키지.

이러한 주요 패키지 중 우리가 사용하는 것은 Scikit-learn


사이킷런 (Scikit-learn)

  • 파이썬의 가장 대표적인 머신러닝 라이브러리

  • 머신러닝 프로세스를 구현하기 위한 다양한 기능 제공

  • 많은 머신러닝 알고리즘을 제공

  • 데이터 전처리, 하이퍼파라미터 튜닝, 파이프라인 구현등을 위한 다양한 기능 제공

  • 사이킷런의 특징

    • 머신러닝 관련 다양한 알고리즘을 제공하며 모든 알고리즘에 일관성있는 상용법을 제공한다.
  • 설치 방법

conda install -y scikit-learn
or
pip install scikit-learn

0개의 댓글