Machine Learning/Basic

지도학습(Supervised learning)에 대해 알아보자

CAI_KJH 2023. 2. 2. 14:44

지도 학습 (Supervised learning) 이란?

지도 학습(Supervised learning)은 주어진 훈련 데이터(혹은 입력 데이터)로부터 하나의 대응되는 출력을 유추해 내기 위한 기계 학습(Machine learning) 방법 중 한 가지이며, 'feature'와 'label'을 가지고 있는 dataset을 이용해 모델을 학습시키는 방식을 사용한다. ( feature-lable pair를 example이라고 부른다. )

 

머신 러닝의 종류에는 지도 학습, 비지도 학습, 강화 학습이 있는데, 현재 산업에서 머신 러닝을 사용한 성공적인 응용프로그램의 대부분은 지도 학습을 이용한 머신 러닝이 차지한다. 충분한 양의 데이터를 가지고 모델을 학습시킬 수 있다면, 임의의 입력 값을 넣었을 때, 확률 추정을 통해 만족할만한 결과를 추출해 낼 수 있기 때문이다.

 

지도 학습을 사용한 예제를 소개해보면 아래와 같은 문제에 활용될 수 있다.

  • computer tomography image를 이용해서 환자가 암인지 아닌지를 판별하기
  • 영어로 된 문장을 프랑스어로 정확하게 번역하기 위해 예측하기
  • 이번 달의 재무 보고 데이터를 기반으로 다음 달의 주식 가격 예측하기

 

지도 학습은 'feature가 있는 label 된 input data를 이용해 학습시킨다.'라고 간단히 말할 수 있지만 입력과 출력의 유형, 크기 및 양에 따라 다양한 형태로 모델링 될 수 있다.

 

Supervised learning

 

학습과정

우선 feature가 알려진 많은 데이터들을 수집하고, 수집한 데이터들 중 임의의 집합을 선택해서 각각에 대한 label을 획득한다. 예를 들어, 새의 이미지를 보고 새의 종류를 맞히는 모델을 개발한다고 하자. 우선 새는 부리, 깃털, 날개 등의 feature를 다수 가지고 있어 분류하기에 충분한 feature를 가지고 있다.

 

우선 모델을 학습시킬 데이터를 준비해야 한다. 여러 종의 새 이미지 10.000장을 준비하고, 그중 임의로 8.000장의 이미지에는 해당하는 새의 이름을 labeling 하고(학습 데이터로 활용) , 2.000장은 labeling을 하지 않은 이미지(테스트 데이터로 할용)를 준비한다.  (비율은 때에 따라 달라져도 괜찮다.)

 

labeled / unlabeled birds image data

 

자신의 만들려는 모델에 필요한 데이터가 인터넷을 통해 구할 수 있는 데이터일 수도 있지만, 그렇지 않은 경우에는 직접 데이터를 만들어주어야 한다는 점이 지도 학습의 단점이기도 하다.

 

이제 label 된 이미지들을 traing set으로 설정해 주고 학습을 진행한다. training set을 통해 지도 학습 모델을 학습시키면 새의 이미지를 보고 새의 종류를 맞히는 모델이 얼추 완성된다. 이후 label이 되지 않은 2000장의 데이터를 통해 모델을 테스트해 성능을 확인해 볼 수 있다.

 

model에 train data 학습

 

test data를 통해 모델 성능 test

 

응용 분야

위에서 지도학습은 주어진 훈련 데이터(혹은 입력 데이터)로부터 하나의 대응되는 출력을 유추해 내기 위한 기계학습의 방법 중 한 가지라고 했는데, 이렇게 유추된 출력 중 연속적인 값을 출력하는 것을 회귀(Regression)라고 하고, 주어진 입력 데이터가 어떤 부류의 값인지 예측하는 것을 분류(Classification)라 한다. 위에서 든 예시는 분류라고 볼 수 있다.

 

Regression

우리가 급하게 집을 구해야 하는 상황에 처했고, 이 상황을 해결하기 위해 회귀(Regression)를 적용해보자. 그렇다면 우선 우리는 여러 주택 판매 사이트나 어플 등에서 데이터를 수집해야 한다.  각 행이 서로 다른 집에 해당하고, 집의 평수, 방 개수, 욕실 수, 역세권, 주변 공원의 유무 등에 해당하는 데이터를 수집했고 테이블을 만들었다.

 

  label 평 수 방 개수 욕실 개수 역세권 주변 공원 유무
집 1 400.000.000 32 3 2 1 0
집 2 250.000.000 24 2 1 0 1
집 3 700.000.000 48 4 2 1 1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
집 N 220.000.000 18 2 1 1 1

 

이 데이터셋에서 example은 각각의 집이 될 것이고, 해당 feature vector는 테이블의 한 행이 될 것이다. 집 1의 feature vector는  [32, 3, 2, 1, 0]으로, 집 3의 feature 벡터는 [48, 4, 2, 0, 1]로 표현할 수 있다. 이러한 fixed-lenghth feature vector는 대부분의 기계 학습 알고리즘에 필수적이다. 데이터는 위와 같은 테이블로 구성할 수 있고, label은 각 집의 판매 가격으로 보면 된다. label이 임의의 숫자 값을 가질 때, 우리는 이것을 회귀 문제라고 부른다. 목표는 예측이 실제 label 값과 근접하게 일치하는 모델을 생성하는 것이다. 

 

많은 실질적인 문제들이 쉽게 회귀 문제로 묘사된다.

  • 환자의 입원 기간을 예측하는 것
  • 해당 수술이 얼마나 걸릴지 예측하는 것
  • 해당 지역에 앞으로 6시간 동안 비가 어마나 올지 예측하는 것

 

Classification

분류(Classification)는 모델이 feature들을 살핀 다음, 여러 카테고리들 중 어디에 속하는지 예측하는 것이다. 위에서 말한 새의 종류를 예측하는 것도 분류이고, 손으로 쓴 0에서 9까지의 숫자가 어떤 숫자인지 예측하는 것도 분류로 볼 수 있다. 아래 사진은 'MNIST 데이터베이스'로 손으로 쓴 숫자들로 이루어진 대형 데이터베이스이며 분류를 처음 공부할 때 많이 접하게 되는 유명한 데이터베이스이다.

 

MNIST dataset

MNIST를 이용한 분류에서 dataset은 숫자로 구성된 사진들로 구성될 수 있고, 각 숫자 이미지의 label을 class라고 한다. 분류의 가장 간단한 형태는 이진 분류(binary classification)라고 불리는 2개의 클래스만 있는 경우이다. 클래스가 여러 가지인 경우에는 multiclass classification이라고 부른다.

 

 


Reference

 

1. Introduction — Dive into Deep Learning 1.0.0-alpha1.post0 documentation

 

preview.d2l.ai