개발/머신러닝

[머신러닝] 지도학습(Supervised), 비지도학습(Unsupervised), 강화학습(Reinforcement)

신매력 2018. 4. 2. 18:41

머신러닝을 통해 시스템이 어떻게 스스로 학습을 한다는 것일까?


결론부터 말하자면, 머신러닝은 어떤 데이터를 분류하거나 값을 예측하는 것이다.

분류하거나 값을 예측하는 것은 확률과 통계를 토대로 한다.






이 사진을 보고 어떻게 고양이라고 맞췄는가?


뾰족한 귀, 무늬, 눈코입의 위치, 4개의 다리 등의 특징을 빠르게 스캔하면서 

그 동안 우리가 알게모르게 학습된 고양이의 모습이라고 판단했을 것이다.


이렇게 데이터를 잘 분류하기 위한 특징을 머신러닝에서 feature라고 부른다.

(feature는 머신러닝에서 엄청 중요한 단어니까 기억해야 한다.)


만약 feature를 홍채의 모양 또는 발톱 모양으로만 분류했다면 고양이인지 몰랐을 것이다.

적절한 feature를 잘 정의하는게 머신러닝의 핵심이다.



그렇다면 머신러닝, 기계는 어떻게 학습을 하고 결과를 맞출까?



머신러닝의 학습 방법은 크게 3가지로 분류된다.


지도학습(Supervised Learning), 비지도학습(Unsupervised Learning), 강화학습(Reinforcement Learning)




1. 지도학습(Supervised Learning)


정답을 알려주며 학습시키는 것.


예를들면 고양이 사진을 주고(input data), 이 사진은 고양이(정답지- label data)야.

사자 사진을 주고, 이 사진은 사자야. 라고 알려주는 학습 방식이다.


따라서 기계가 정답을 잘 맞췄는지 아닌지 쉽게 알 수 있다.



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



1-1) 분류(classification)


- 이진 분류

어떤 데이터에 대해 두 가지 중 하나로 분류할 수 있는 것.

ex) 

Q: 이 글은 스팸이야?   

A: 예 또는 아니오


- 다중 분류

어떤 데이터에 대해 여러 값 중 하나로 분류할 수 있는 것

ex) 

Q: 이 동물은 뭐야?  

A: 고양이 또는 사자 또는 강아지 등...



1-2) 회귀(regression)


어떤 데이터들의 특징(feature)을 토대로 값을 예측하는 것.

결과 값은 실수 값을 가질 수 있다. (그 값들은 연속성을 갖는다. 그래프를 생각하면 됨)


ex) 

Q: 어디 동네에 어떤 평수 아파트면 집 값이 어느정도야?

A: 어디 동네에 24평이면 얼마, 어디 동네에 32평이면 얼마, 어디 동네에 45평이면 얼마



2. 비지도학습(Unsupervised Learning)


정답을 따로 알려주지 않고(label이 없다), 비슷한 데이터들을 군집화 하는 것.


예를들어 고양이, 병아리, 기린, 호랑이 사진을 비지도학습 시킨다고 해보자.

각 사진이 무슨 동물인지 정답(label)을 알려주지 않았기 때문에 

이 동물이 '무엇'이라고 기계가 정의는 할 수 없지만 비슷한 단위로 군집화 해준다.


다리가 4개인 고양이와 호랑이를 한 분류로 묶고, 

다리가 4개지만 목이 긴 기린은 다른 분류로,

다리가 얇고 몸통이 둥그런 병아리는 또 다른 분류로 나누어 놓을 것이다.


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

(어떻게 분류하는 것이 좋을까?의 결과물이랄까?)



3. 강화학습(Reinforcement Learning)


상과 벌이라는 보상(reward)을 주며 상을 최대화하고 벌을 최소화 하도록 강화 학습하는 방식.

알파고가 이 방법으로 학습 되었고, 주로 게임에서 최적의 동작을 찾는데 쓰는 학습 방식이다.


우리들도 인생에서 강화학습을 하며 살아왔다.


태어나서 지금까지 우리는 이런 저런 행동들을 했고, 

내가 하는 행동에 대해 주위 사람들로부터 질책을 받거나 칭찬을 받아왔다.

이러저러한 시행착오를 겪으며 경험이 쌓이고, 내가 확실히 경험했던 것에 대해서는

옳고 그른지 판단을 할 수 있다.


하지만 여전히 경험해보지 못한 부분에 대해서는 칭찬(상)을 받기도 하고, 질책(벌)을 받기도 한다.


정확한 정답은 없지만, 이러한 반복적인 행동들을 통해 

칭찬과 벌을 받음으로써 보상의 가중치를 최대화 하는 것이 목표이다.



'개발 > 머신러닝' 카테고리의 다른 글

인공지능(AI), 머신러닝, 딥러닝이란 무엇인가?  (0) 2018.04.02