본문 바로가기

Machine Learning

Machine Learning - 지도학습, 비지도학습

머신 러닝 개요

머신 러닝에 있어서 가장 중요한 점들 중 하나는 적절한 피처 (feature) 를 잘 정의하는 것이다. 예를 들어,

코끼리

우리는 이 사진을 보고 이 사진에 있는 동물이 코끼리라는 것을 바로 알아차릴 수 있다. 긴 코, 큰 귀, 피부의 색깔 등등 여러가지를 통하여 위 동물이 어떤 종인지를 판별하였을 때, 코끼리라고 분류를 내릴 수 있는 것이다.

 

우리의 뇌는 이러한 종합적인 판단을 바로 내릴 수 있지만, 컴퓨터에 있어서는 feature들이 어떻게 정의되어 있고 그것이 어떻게 주어지느냐가 머신러닝의 핵심이 될 것이다. 예를 들어 코의 길이, 귀의 크기, 피부의 색깔 등등을 feature로 줬다면 코끼리인 것을 판단하는 것이 쉽겠지만, 홍채의 모양, 다리의 갯수 등을 feature로 줬다면 코끼리인 것을 판단하기 어려울 것이다.

머신 러닝의 종류

머신 러닝은 크게 세 가지 종류로 나뉜다.

 

지도학습 (Supervised Learning), 비지도학습 (Unsupervised Learning), 그리고 강화학습 (Reinforcement Learning) 이다.

 

셋의 차이점에 대해서 알아보자.

 

지도학습 (Supervised Learning)

지도학습이란 쉽게 말하여 정답 (label) 을 알려주며 학습시키는 것이다.

 

예를 들어, 여러 동물들의 사진들을 주면서, 이 사진은 코끼리, 이 사진은 사자, 등등, 정답을 알려주고 학습을 시키는 학습방식이다. 데이터 세트에 이미 정답지가 있기 때문에, 기계가 정답을 잘 맞췄는지를 쉽게 알 수 있다.

 

지도학습에는 크게 분류 (classification) 과 회귀 (regression) 이 있다.

 

분류 (Classification)

분류란, 학습 데이터로 주어진 데이터의 피처와 레이블값 (결정 값, 클래스 값) 을 머신 러닝 알고리즘으로 학습하여 모델을 생성하고, 이렇게 생성된 모델에 새로운 데이터 값이 주어졌을 때 미지의 레이블 값을 예측하는 것이다. 위에서 예시로 든 동물 종류 예측이 바로 분류이다.

 

분류에도 여러 종류가 있다. 먼저 이진 분류 (binary classification) 는 어떤 데이터를 두 가지 중 하나로 분류하는 것이다. 예를 들어, 스팸 문자인지를 구분하는 모델은 해당 문자가 스팸이 맞다/아니다의 결과를 보여주게 된다. 이 경우 이진 분류가 된다.

 

다중 분류 (multiclass classification) 는 어떤 데이터에 대해 여러 값 중 하나로 분류하는 것이다. 예를 들어, 동물 사진을 주고 코끼리, 고양이, 사자, 강아지 등의 동물 중에 하나로 결정짓도록 하는 모델은 다중 분류 모델이 된다.

 

회귀 (regression)

회귀란, 여러 개의 독립변수에 따라 종속변수가 어떤 관계를 나타내는지를 모델링하고 예측하는 것이다.

 

 

이와 같은 식에서, 예를 들어 Yi (종속변수) 를 어떤 사람의 키라고 정의를 하고, X1i, X2i, X3i (독립변수) 들을 부모의 키, 먹었던 음식의 양, 운동 시간 등으로 정의하면, 여기서 생기는 b1, b2, b3 들은 독립변수와 종속변수 사이의 영향을 수치화한 회귀 계수 (regression coefficients) 가 된다.

 

머신 러닝의 관점에서 보면, 독립변수는 피처 (feature) 에 해당되며, 종속변수는 결정 값이 된다. 여기서 머신 러닝 회귀 예측의 핵심은, 주어진  피처와 결정 값 데이터 기반에서 학습을 통하여 최적의 회귀 계수를 찾아내는 것이 된다.

 

비지도학습 (Unsupervised Learning)

비지도학습은 정답을 따로 알려주지 않는 (label 이 없는) 학습법이다. 이 경우 비슷한 데이터들을 군집화하는 것으로 진행된다.

 

예를 들어, 동물들의 사진을 주었다고 하자. 각 사진이 무슨 동물인지 정답 (label) 을 알려주지 않았기 때문에 이 동물이 무엇인지 기계가 정의할 수는 없지만 비슷한 단위로 군집화를 시도할 수 있다.

 

예를 들어, 아가미가 있는 것들끼리 한 분류로 묶고, 다리가 4개인 것들을 한 분류로 묶고, 날개가 있는 것들을 한 분류로 묶는 등의 군집화를 통해서 레이블이 없는 상태에서 분류를 시도할 수 있다.

 

실무에서는 지도학습을 위한 적절한 feature를 찾아내기 위한 전처리 방법으로 비지도 학습을 쓰기도 한다.

 

강화학습 (Reinforcement Learning)

상과 벌이라는 보상 (reward) 을 주며 상을 최대화하고 벌을 최소화하도록 학습하는 방식을 강화학습이라고 한다. 알파고가 이 방법으로 학습된 것으로 유명하며, 주로 게임들이 AI의 최적의 동작을 찾는 데 쓰는 학습방식이라고 한다.

 

정확한 정답은 없지만, 반복적인 행동들을 하여 각각의 행동의 결과로 칭찬과 벌을 받음으로써 보상의 가중치를 최대화 하는 것이 목표인 학습방법이다.

 

출처

https://marobiana.tistory.com/155

파이썬 머신러닝 완벽 가이드 - 위키북스, 권철민