머신러닝 개요

천호영·2021년 6월 23일
0

머신러닝의 개념

컴퓨터가 명시적인 프로그램이나 규칙 없이도, 스스로 학습할 수 있도록 하는 연구분야.
즉, 수많은 데이터로부터 기계가 학습할 수 있도록 하는 연구분야

어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때, 경험 E로 인해 성능이 향상됐다면, 이 프로그램은 작업 T와 성능 측정 P에 대한 경험 E로 학습한 것이다.
ex)
T: 필기체를 인식하고 분류하는 것(->해결하고자 하는 문제)
E: 이미지와 라벨을 표시한 데이터셋(->학습에 사용할 충분한 데이터)
P: 필기체를 정확하게 분류한 확률(->문제 해결에 적합한 머신러닝 알고리즘과 성능 평가 방법)

머신러닝 개념 정리

  • 경험을 통해 자동으로 학습 및 개선하는 컴퓨터 알고리즘에 대한 연구로
  • 인공지능의 한 분야로 간주됨
  • 기존의 방식은 코드를 통해서 수행 방법을 구체적으로 명시
  • 코드가 아닌 대량의 훈련 데이터로부터 학습을 하고,
  • 학습된 모델을 통해 판단 또는 예측을 하는 연구 분야

머신러닝의 직관적 이해

대량의 데이터를 기반으로 머신러닝 알고리즘을 통해 학습시키면 예상치 못한 상관관계나 잘 드러나지 않는 새로운 패턴을 발견할 수도 있는데, 이것이 데이터 마이닝입니다.

머신러닝을 사용하는 이유

  • 프로그램이 간단해 유지 보수가 쉽고, 대부분 정확도 더 높음
  • 특정 문제의 패턴이 변경되더라도 별도의 작업을 하지 않아도 됨
  • 전통적인 방식으로 해결하기에 복잡한 문제 해결 가능
  • 데이터 분석을 통해 전에 보이지 않던 패턴 발견 가능(데이터 마이닝)

But, 세상의 모든 문제를 머신러닝 알고리즘으로 해결할 수는 없습니다.

  • 데이터가 충분하지 않다면, 모델의 성능을 장담할 수 없습니다.
  • 데이터를 수집하고 준비하는 과정에 많은 리소스가 필요합니다.

머신러닝은 학습, 모델의 평가 크게 두 가지로 구분됩니다.


머신러닝의 유형

머신러닝은 지도학습, 비지도학습, 강화학습이 있습니다.

<지도학습(Supervised Learning)>

  • 정답 라벨이 주어진 상태에서 학습하는 방식입니다.
  • 라벨이 붙여진 데이터 셋을 학습시켜, 신규 데이터의 라벨을 찾아내는 방법
    ex) 이메일 스팸 필터, 이미지 분류

    분류 분석(Classification): 예측하고자 하는 값이 범주형 데이터
    ex. 문서 분류, 이미지 분류
    회귀 분석(Regression): 예측하고자 하는 값이 연속형 데이터
    ex. 주식가격 예측, 부동산 가격 예측
    (주로 데이터가 연속형인 경우가 더 많습니다)

<비지도학습(Unsupervised Learning)>

  • 정답 라벨이 없는 데이터를 기반으로 학습하는 방식
  • 데이터 사이의 관계나 유사성을 기반으로 군집별 패턴을 찾아내는 방식

    군집분석(Clustering): 데이터의 특징, 구조 등을 통해 유사한 특성을 가진 데이터끼리 그룹화하는 과정
    ex. 유사 단어 군집화, 유사 이미지 군집화, 고객 분류, 추천시스템

<준지도학습(Semi-Supervised Learning)>

  • 라벨이 있는 데이터와 라벨이 없는 데이터를 모두 사용하여 학습하는 방식

<강화학습(Reinforcement Learning)>

  • 모델이 목표를 달성할 수 있도록 보상(reward)을 기반으로 학습하는 방식
  • 특정 목표를 달성하는데 최선의 전략을 선택하도록 학습됨
  • 다양한 산업 분야에서 활용됨
    ex. 체스게임, 알파고, 다양한 게임, 지능형 로봇, 주식거래, 자율주행자동차

머신러닝 주요 프로세스

  1. 문제 정의
  2. 데이터 수집
  3. 데이터 전처리
  4. 특징 추출
  5. 학습
  6. 검증

<문제 정의 단계>

  • 해결하려는 문제를 명확하게 정의하고,
  • 문제 해결을 위한 알고리즘을 선정하는 단계
  • 해결할 문제(데이터의 특성)에 따라 적절한 알고리즘을 선정하는 것이 중요

<데이터 수집 단계>

  • 학습/검증에 사용할 데이터를 수집하는 단계
  • 데이터는 학습된 모델의 품질을 결정하는 가장 중요한 요소
  • 충분히 큰 데이터, 대표성을 가지는 데이터, 고품질의 데이터 필요
  • 데이터를 training, validation, test 용도로 분할해서 사용합니다.

  • 이를 홀드아웃 교차검증(Hold-out Cross Validation)이라 합니다.

    Training: 머신러닝 모델의 학습에 사용되는 데이터 셋
    Validation: 학습된 머신러닝 모델의 성능을 평가하는데 사용되는 데이터 셋으로 모델 개선의 지표가 됨
    Testing: 학습 및 개선된 머신러닝 모델을 최종 평가하는 데이터 셋

  • Kaggle에서는 다양한 데이터셋을 제공합니다.

<데이터 전처리>

  • 데이터 품질을 결정하는 중요한 단계로 데이터를 정제하는 과정입니다.
  • 데이터 전처리를 위한 다양한 기법이 존재합니다.
  • 지도 학습의 경우 데이터 라벨링 작업이 포함됩니다.
  • 이미지, 음성 등과 같은 비정형 데이터의 경우 다양한 전처리 작업이 선행됩니다.
  • 가장 오래 걸리고 어려운 작업
  • 도메인에 대한 전문지식, 데이터에 대한 이해가 매우 중요합니다.

<특징 추출 단계>

Feature란? 모델을 학습시킬 데이터의 특성을 의미하는 용어로, 독립변수들을 지칭함(특성, attribute, 속성 등으로도 불림)
Class란? 모델을 통해 판단 또는 예측하고자 하는 정답 값으로 종속변수를 지칭함(label, target, 정답, 결정 등으로도 불림)

  • Feature가 많다고 해서 좋은 모델이 아닙니다. 문제를 정확하게 표현하는 feature들만 뽑아야 합니다.

  • 데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정으로, Feature Engineering이라고도 불립니다.

    Feature Selection(특징 선택)
    Feature Extraction(특징 추출)
    Feature Learning(특징 학습)

  • 모델의 성능에 미치는 영향이 매우 크고, 전문성, 시간, 비용이 많이 소모됩니다.

<학습과 검증 단계>

  • 전처리/특징 추출 작업이 완료된 학습 데이터 셋을 입력으로
  • 모델이 최적화될 때까지 학습이 반복됨
  • 학습과 동시에 현재 상태의 모델을 평가합니다.
  • 학습에 노출된 적이 없는 검증 데이터 셋을 사용하여 모델을 검증합니다.
  • 문제의 특성에 따라 다야한 검증 지표들이 존재합니다.(분류: 정확도, 정밀도, 재현률, 회귀: MSE, MAE)

0개의 댓글