[친절한 AI] 이론 요약

친절한 AI - 머신러닝 이론 요약

머신러닝

  • 기존 컴퓨터 사이언스
    • 입력값과 알고리즘을 제공하면, 출력값을 내놓음
  • 머신러닝
    • 입력값과 출력값을 제공하면, 알고리즘을 내놓음
    • 정확한 알고리즘을 내놓을 만큼 많은 입력/출력값이 필요

머신러닝의 종류

  • 지도학습 (Supervised Learning) : 학습 과정에서 지도나 감독이 존재 (정답 필요, 양질의 labeling 중요, 데이터와 정답 비교/업데이트)
    • 분류 : 데이터의 카테고리를 예측
      • 입력 : A 이미지 - 강아지(label), B 이미지 - 고양이, C - 이미지 고양이
      • 출력 : D 이미지 - ??
    • 회귀 : 연속 값을 예측
      • 분류는 정해진 몇 개의 범주 중 어디에 속하는 지를 판단한다면, 회귀는 값, 즉 숫자가 얼마가 나올지 예측
      • 설탕 섭취량에 따른 혈압 수치
      • 평균 학력에 따른 월간 독서량
    • 예측 : 과거 및 현재 데이터를 기반으로 미래 예측 (회기 + 시간)
      • 이번 주말 미세먼지 농도
      • 요일별 강릉행 기차표 판매율
      • 다음달 휘발유 가격
  • 비지도학습 (Unsupervised Learning) : 학습 과정에서 지도나 감독의 역할을 수행하는 것이 없음(정답x, 데이터의 특성이 중요, 패턴/차이점 구별 및 학습)
    • 이상값 감지 : 평소와 다른 특이점을 찾음
      • 주식 사기 거래 감지
      • 신용카드 이상 사용 감지
      • 비정상 세포 감지
    • 그룹화 : 어떤 특징을 기준으로 데이터들을 그룹핑하는 것
      • 카테고리를 명확히 분류해놓고 분석하는 분류와는 달리, 일단 데이터를 던져주고 어떤 기준에 따라 나누는 과정
      • 유사 상품 묶음
      • 비슷한 장르 영화 묶음
      • SNS 친구 분석
      • 백화점 고객 분류
  • 목표지향학습 (Reinforcement Learning) : 목표가 존재하고, 목표를 달성하기 위한 방법을 학습 (Agent가 Environment에 대하여 어떤 행동을 했을 때의 주어지는 보상이 중요)
    • 강화학습 : 어떤 행동을 강화시키는 방향으로 학습
      • 자율주행
      • 알파고
      • 로봇

머신러닝 알고리즘/방법

  • 앞에서 말한 머신러닝의 종류들은 머신러닝으로 풀 수 있는 문제의 종류
  • 머신러닝의 방법은 특정 종류의 머신러닝을 구현하기 위한 알고리즘
  • 머신러닝 종류에 따라 그에 적합한 알고리즘이 존재한다. 따라서 머신러닝 종류, 즉 풀어야 하는 문제의 종류를 먼저 파악한 후, 그에 맞는 알고리즘을 공부하는 편이 좋다.

딥러닝은 무엇인가?

  • 딥러닝은 머신러닝을 구현하는 방법 중 하나로, 뇌의 뉴런 구조를 본따 만든 학습 알고리즘을 말한다.

  • 딥러닝과 전통적인 머신러닝과의 비교

    • 성능

      적은 양의 데이터 처리를 할 때에는 머신러닝의 성능이 딥러닝보다 더 좋을 수 있으나, 데이터의 양이 기하급수적으로 늘어남에 따라 딥러닝의 성능이 머신러닝보다 훨씬 좋아진다.

    • 하드웨어

      딥러닝은 많은 데이터가 있을 때 좋은 성능을 낼 수 있기 때문에 그만큼 고사양의 하드웨어가 필요하다. CPU < GPU < TPU 이렇게 더 좋은 사양일수록 딥러닝에 적합하다.

    • 학습시간

      데이터 양이 많아질수록 학습 시간이 많아지므로, 딥러닝이 머신러닝보다 학습하는데 훨씬 많은 시간이 걸린다. 머신러닝은 몇 초에서 몇 시간 정도가 걸리는 데에 비해, 딥러닝은 몇 일에서 몇 주까지 걸릴 수 있다.

    • 특징

      머신러닝은 출력에 영향을 주는 특징이 되는 변수들을 선별하는 과정을 사람이 한다면, 딥러닝은 이 과정까지 분석 과정에 포함된다. 딥러닝을 통해서 이미지 분석을 할 때 수많은 픽셀 중 결과를 내는데 필요한 픽셀을 직접 골라주지 않고 사진을 그대로 줘도 결과를 낼 수 있는 것도 이 때문이다.

    • 딥러닝 알고리즘 : CNN, RNN, MLP

    • 전통적인 머신러닝 : SVM, Decision Tree, kNN, Linear Regression

데이터 제공 사이트, 전처리 방법

  1. 문제 정의 = 어떤 문제를 해결하고 싶은가?
    • 분류, 회귀, 예측, 이상값 감지, 그룹화, 강화학습
  2. 데이터 수집 = 필요한 데이터 모으기
    • 공개 데이터 활용
      • 해외 : 캐글, 구글, 레딧, UCI
      • 국내 : AI 팩토리, 공공데이터 포털, AI 허브, 데이콘
    • 자체 데이터 수집
    • 데이터 전처리 = 데이터 손질하기
      • 데이터 형식 맞추기
      • 비어있는 값 채우기
    • 연관 데이터 추가
  3. 알고리즘 선택
    • 지도학습
      • SVM
      • Logistic Regression
      • Linear Regression
      • Decision Tree
      • Random Forest
      • kNN
    • 비지도학습
      • K-means
      • PCA
      • Apriori
    • 강화학습
      • Monte-Carlo
      • Q-learning
      • Markov Decision
  4. 모델 학습 : 학습용 데이터 + 알고리즘 = 모델
  5. 모델 평가
    • 언더피팅 / 오버피팅 / 모델 용량 / 평가 지표
    • 이에 따라 알고리즘/데이터를 수정할지 말지 결정 => 2번으로 다시 돌아가기를 반복
  6. 모델 활용
    • local
    • web
    • app

Comments