-/딥러닝

[딥러닝] 03. 머신러닝 기초

염두리안 2022. 10. 7. 03:26
728x90
반응형

01. 머신러닝이란?

  • 머신러닝(machine learning) : 인공지능의 한 분야, 컴퓨터에 학습 기능을 부여하기 위한 연구 분야... 머신러닝이 가능하다면 우리가 명시적으로 프로그램을 작성하지 않아도, 컴퓨터 스스로 데이터에서 학습해 적절한 결정 내릴 수 있음
  • 머신러닝과 전통적인 프로그래밍의 차이점
    • 전통적인 프로그래밍 : 인간이 컴퓨터에게 적절한 문제해결 알고리즘을 만들어 줘야 함.
      • 단점) (강아지와 고양이를 구별하는 문제에서) 인간에겐 쉬운 작업이지만, 알고리즘으로 구성하기에 어려움
    • 머신러닝 : 인식하는 프로그램을 작성하지 않음... 어떤 사진이 강아지인지만 알려주면 되고, 이런 식으로 훈련이 진행되면 스스로 사진에서 강아지 인식 가능(스스로 규칙을 발견하도록 설계)
    • 예시(강아지와 고양이 판별)
  전통적인 프로그래밍 머신러닝
입력 데이터(Data) 생김새, 무늬, 기타 특징 생김새, 무늬, 기타 특징
입력 규칙(Rules) 무늬가 비교적 단조롭고, 귀가 크면 or 무늬가 비교적 화려하고, 귀가 작으면(서있으면) 강아지 or 고양이
(규칙X,,, 해답을 넣음)
출력 해답(Answers) 강아지 or 고양이 무늬가 비교적 단조롭고, 귀가 크면 or 무늬가 비교적 화려하고, 귀가 작으면(서있으면)
  • 머신러닝의 역사
    • 1957년:퍼셉트론(Perceptron) → 1985년:역전파 알고리즘 → 1995년:SVM → 1998년:필기체 인식 → 2012:ImageNet에서 우승
  • 머신러닝의 종류 
    • 지도학습(Supervised Learning) : "교사"에 의해 주어진 예제(샘플)과 정답(레이블)을 제공 받음... 지도학습의 목표는 입력을 출력에 매핑하는 일반적인 규칙(함수, 패턴)을 학습하는 것
      • 예) 강아지와 고양이를 구분하는 문제 - 강아지와 고양이 사진 제공 후 어떤 사진이 강아지고, 고양인지 알려주는 것
    • 비지도학습(Unsuperviesd Learning) : 외부에서 정답(레이블)이 주어지지 않고 학습 알고리즘이 스스로 입력 데이터에서 어떤 패턴을 발견하는 학습
      • 예) 이름이 붙어있지 않은 과일을 분류하는 문제 - 이때 우리는 과일의 모양, 색상, 크기 등 특징을 이용해 유사 과일 분류 가능
    • 강화학습(reinforcement Learning) : 보상 및 처벌의 형태로 학습 데이터가 주어짐... 주로 차량 운전이나 상대방과의 경기 같은 동적인 환경에서 프로그램의 행동에 대한 피드백만 제공되는 경우에 사용
      • 예) 바둑에서 어떤 수를 두어 승리했다면 보상이 주어지는 식 => 보상과 처벌을 통해 학습이 이루어짐.

 

2. 지도학습

  • 지도학습? 정답을 알려주는 교사가 존재하는 학습 방법
    • 회귀(regression) : 주어진 입력-출력 쌍을 학습한 후에 새로운 입력값이 들어왔을 때, 합리적인 출력값을 예측하는 것... 이때 학습시키는 데이터는 이산적이 아니라 연속적임(입/출력이 모두 실수) / 연속적인 값을 예측... ex) 운동을 하루에 5시간 한다면 그 사람의 예측 수명은?
    • 분류(classification) : 입력을 두 개 이상의 레이블(유형)로 분할하는 것으로 학습 시 우리는 레이블을 제공해야 힘 / 학습이 끝나면 학습자가 한번도 보지 못한 입력을 이들 레이블 중의 하나로 분류하는 시스템 / ex) 운동시간을 입력했을 때 '건강함', '질병상태'로 분류 가능

  • 회귀 : 주어진 입력-출력(답) 쌍을 학습한 후 새로운 입력값이 들어왔을 때, 합리적인 출력값을 예측 / 입력과 출력이 모두 실수
y = f(x)
  • 분류 : y = f(x)에서 출력 y가 이산적인 경우에 이것을 분류문제라고 함... / 입력을 2개 이상의 클래스로 나누는 것 / 알고리즘으론 신경망, kNN, SVM, 의사 결정 트리 등이 있음.
  • (+) 비지도학습 : 교사 없이 컴퓨터가 스스로 입력들을 분류하는 것... 입력 x에 일대일로 대응하는 레이블 y가 주어지지 않는 것 / 데이터들의 상관도를 분석해 유사한 데이터들을 모을 수 있음.

 

3. 머신러닝의 과정

  • 학습데이터 모으기 → 학습 데이터 정제하기 → 모델 학습하기(Training) → 평가(Testing) → 예측
  • 주어진 음료가 어떤 음룐지 자동으로 판별하는 시스템을 만들어 달라는 요청을 받았다고 가정하자. 머신러닝에서 이러한 시스템을 모델(model)이라고 하며, 이 모델은 학습(train)을 통해 생성 됨.

 

  1. 데이터 수집
    • 수집되는 데이터의 품질과 양이 예측 모델이 얼마나 좋은지 결정하기에 매우 중요한 단계
  2. 훈련 데이터와 테스트 데이터
    • 머신러닝에는 항상 훈련데이터테스트데이터가 있어야 함.
    • 훈련데이터는 연습문제, 테스트데이터는 시험문제
    • 때때로 우리가 수집한 데이터는 중복수정, 정규화, 오류 수정 등이 필요한 경우가 많은데, 이는 모두 데이터 준비 단계에서 발생함.
  3. 모델 선택
    • 척척박사님께서 수년에 걸쳐 마든 많은 머신러닝 모델이 있음.
    • 데이터 타입에 따라 알맞는 모델 선택하기
  4. 학습
    • 예를 들어, 선형모델을 통해 분류한다면 직선의 식은 y = m * x + b (x : 특징값, m : 직선의 기울기, b : y절편, y : 두 번째 특징값) -> 훈련에 변경할 수 있는 값은 m과 b이고, 머신러닝에서 m을 가중치(weight), b를 바이어스(bias)라고 함.
    • 맨 처음에 w와 b를 임의 값으로 초기화하고 입력값으로 출력을 예측 → 출력값을 정확한 값과 비교해 더 정확한 예측을 갖도록 w와 b 값 조정
  5. 평가(Testing or Inference)
    • 테스트데이터 사용
    • 일반적으로 훈련데이터와 테스트데이터 비율은 80:20 or 70:30
  6. 예측
    • 훈련&평가를 마치면 성능을 알고 있는 함수 f(x)가 구해짐

 

P. 120 ~ 129 (코드부분) 생략

 

6. 머신러닝 알고리즘 평가

  • 정확도(accuarcy) = 올바르게 분류한 샘플의 수 / 전체 샘플 수
    • (TP+TN) / (TP+FP+FN+TN)
  • 혼동행렬
    • T(True)는 예측=실제 / F(false)는 예측≠실제
      • TP) 이라고 예측, 맞춤
      • FN) 거짓이라 예측, 틀림
      • FP) 이라고 예측, 틀림
      • TN) 거짓이라 예측, 맞춤
  True Class
Prediceted
Class
  Positive Negative
Positive TP FP
Negative FN TN
  • 민감도(sensitivity) : 질병이 있는 사람을 환자라고 올바르게 진단하는 비율
    • TP / TP+FN
  • 특이도 : 환자가 아닌 사람을 환자가 아니라고 올바르게 진단하는 비율
    • TN / TN+FP
  • 정밀도(Precision) : 병이 있다고 예측한 사람 중, 실제 병이 있는 사람의 비율
    • TP / TP+FP
  • 재현율(Recall) : 실제로 병이 있는 사람 중, 병이 있다고 예측한 사람의 비율
    • TP / TP+FN
  • => 이상적인 분류기라면 정밀도, 재현율, 정확도 모두 1이 되어야 함.

 

 

 

딥러닝 EXPRESS 03. 머신러닝 기초 (p.104 ~ 136)

728x90
반응형