머신러닝은 크게 3가지의 학습 방법이 있다.

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

여기 머신러닝의 3가지 학습 방법에 대해 간결하며 직관적으로 설명해 주는 블로그가 있다. 참고하길 바란다.

 

 

머신러닝 종류

 

 

Supervised Learning (지도 학습)

 

지도학습과 비지도학습은 과거와 현재의 데이터를 학습하여 미래를 예측한다. 하지만 이 둘의 차이점은 지도학습은 데이터에 대한 답이 정해져 있다는 것이다. 우리가 앞서 공부했던 타이타닉이 지도학습의 일종이라고 할 수 있다. 탑승자의 사망 여부를 알 수 있다는 것은 데이터에 대한 답이 이미 주어져있다는 것으로, 우리는 이러한 데이터를 활용하여 학습하고 예측할 수 있다. (마치 공대생들이 솔루션이 있는 상태에서 공부하는 것과 같다. 처음 보면 엥 ㅁㅊ 이게 뭐야 싶은 것도 솔루션과 함께라면 두렵지 않아. 아님 영어 지문의 정답을 아는 상태에서 지문을 읽으면 맥락과 답을 더 쉽게 유추 할 수 있는 것과 같다고 할 수 있겠다.) 지도학습에는 크게 Regression과 Classification으로 나뉜다.

 

 

 

-Regression (회귀)

 

Regression이란 연속된 값을 예측하는 문제를 뜻한다. 주로 경향성(패턴, 트렌드, 추세)을 예측할 때 사용된다. 주식같은 것도 학습시킬 수 있는 것 같지만 너무 어려워서 다들 다루지 않는 것 같다. Regression을 주로 사용하는 경우는 공부시간에 따른 성적을 예측하는 것과 나이에 따라 연봉의 추이정도와 같이 선형적인 경우이다.

 

-Classification (분류)

 

Classification은 주어진 데이터를 정해진 카테고리에 따라 분류하는 방법이다. 가장 쉬운 예로 패논패 과목이 있겠다. 일정 수준을 넘기면 Pass인 과목은 통과했는가, 하지 못했는가로 구분된다. 이러한 경우처럼 맞다 / 아니다로 구분되는 문제를 Binary Classification이라고 부른다. 이런 Binary Classification에 대표적인 예로 스팸 메일 예측을 들 수 있겠다. 이러한 경우 우리는 메일은 스팸메일과 정상적인 메일로 구분할 것이다. 맞다 / 아니다로 구분하는 것이 아니고 분류가 여러 개로 되는 경우, 예를 들자면 학점을 예측하는 경우는 A,B,C,D,F 총 5개로 분류하여 예측하기 때문에 이렇게 분류가 여러 개로 되는 경우는 Multi Label Classification이라고 한다.

 

 


 

 

Unsupervised Learning (비지도학습)

 

비지도학습은 지도학습과 달리 답이 없는 데이터로부터 미래를 예측하는 방법이다. (벌써 노답) 데이터에 답이 없기 때문에 노답 데이터를 사용하려는 사람이 직접 데이터 간의 숨겨진 유의미한 패턴 등을 파악해야 하기 때문에 어렵다. 비지도학습도 지도학습과 같이 연속적인지(Continous Data) 분류되어있는지(Categorial Data)를 파악하여 학습할 수 있다. 비지도학습은 크게 Dimensionality Reduction와 Clustering으로 나뉜다.

 

 

 

-Dimensionality Reduction (차원 축소)

 

차원 축소를 설명하자면 길어지니 비지도학습에 대해 자세히 설명할 때 설명하도록 하겠다. 간단히 말하자면 차원이 커지면 그 차원을 설명하기 위해 너무 많은 데이터가 필요하기 때문에 차원을 줄여 데이터 간의 유의미한 특징만을 추출해 내 학습하는 것을 뜻한다.

 

-Clustering (군집화)

 

Cluster(군집)이란 유사한 패턴의 데이터들이 서로 가깝게 모여있어 하나의 무리를 이루고 있는 것을 뜻한다. 이러한 군집들을 유의미한 유사도를 갖는 군집만 남기고 불필요한 군집들을 지워나가는 처리 과정을 Clustering(군집화)라고 한다. 지도학습의 Classification(분류)와 유사하나, Classification(분류)은 답이 있는 데이터들로 학습하는 것이고 군집화(Clustering)는 답이 없는 데이터들을 직접 분류하여 학습하는 방법이라는 것을 기억하자.

 

 

지도/비지도 학습에 대해 이해하기 쉽게 구분해놓은 이미지

 

 


 

 

Reinforce Learning (강화 학습)

 

강화학습이란 컴퓨터가 어떤 행동을 하면 그에 대한 “보상”을 통해 학습하는 것을 뜻한다.

한 예로, 자동차가 벽에 부딪히지 않고 주어진 트랙을 완주하는 것을 학습시킨다고 하자. 이 때, 우리는 벽에 부딪히지 않고 제일 멀리 간 모델에 가장 큰 보상을 준다고 가정하자. 컴퓨터는 학습을 위해 수십대의 자동차 모델을 트랙에 뿌릴 것이다. 그리고 가장 큰 보상을 준 모델과 유사한 모델들로 계속해서 자동차 모델을 만들 것이다. 이 횟수가 반복함에 따라(세대가 증가함에 따라) 더 나은 모델들이 학습될 것이고 마침내 컴퓨터는 벽에 부딪히지 않고 트랙을 완주하는 모델을 만들 것이다.

자동차를 예로 들었지만 결국에 강화 학습은 사람의 학습 방법, 동물의 학습 방법과 같다. 쉬운 예로 강아지에게 '손'을 외쳤을 때 사람의 손에 손을 올려주는 것을 학습시키려고 한다고 하자. 이를 위해 인간은 끊임없이 강아지에게 '손'을 외치며 강아지의 손을 자신의 손에 올릴 것이다. 처음에 강아지는 그런 인간의 행동이 이해가 가지 않을 것이다. 그러다가 우연의 일치로 강아지가 (학습하고자 하는 방향인) 사람의 손에 손을 올리면 '보상'으로 간식을 줄 것이고, 처음엔 우연이었던 손 올리기는 보상에 의해 차츰 학습되어 강아지가 직접 '손'이라는 단어를 인지하며 사람의 손바닥에 손을 올리게 될 것이다.

이처럼 보상을 통해 원하는 결과를 향해 반복적으로 학습해 나가는 방법을 강화학습이라고 한다.

 

강화학습

 

+ Recent posts