초보자를 위한 머신러닝, ML 101


 첫 번째 글로 우선 머신러닝 기법에 대해서 작성해 보겠습니다. 머신 러닝의 기법은 크게 아래와 같이 세가지 종류로 나누어 볼 수 있을 것 같습니다.


지도 학습

비지도 학습

강화 학습


 지도 학습은 쉽게 생각하면 예제를 주고 컴퓨터를 가르치는 학습 기법 입니다. 1번 데이터는 o, 2번 데이터는 x, 3번 데이터는 o ... 이런 식으로 레이블이 입력된 데이터를 사용합니다. 프로그램에 입력할 학습 데이터를 미리 제공해야 하기 때문에 사람이 직접 개입해야 합니다. 따라서 정확도가 높은 데이터를 사용할 수 있다는 장점이 있지만, 데이터를 입력하는 인건비, 수고 등이 따르고 데이터의 양도 충분치 못할 수도 있습니다.

 

 이에 반해 비지도 학습은 사람의 개입이 없이 컴퓨터 스스로 데이터를 분류하는 기법 입니다. 사실 일반적인 데이터의 대부분이 레이블이 안된 데이터들입니다. 정답이 없는 문제들을 푸는 것이기 때문에 이에 대한 검증도 어렵고 구현도 지도 학습에 비해 어렵지만 지도 학습에 비해 현실에 더 알맞은 기법이라 생각 됩니다.

 

 강화 학습 기법은 앞의 분류로 든 지도 학습 / 비지도 학습과 조금 분류 방법이 다르긴 합니다. 강화 학습은 말 그대로 현재의 상태를 '강화' 하는 방법으로 프로그램이 구현되는 기법 입니다. S 라는 현재 상태에 A 라는 액션을 취했을 때 R 이라는 보상이 주어지고 프로그램은 이 R 을 최대 값으로 맞추는 방식으로 학습이 진행 됩니다. 그런데 여기에 R 에 대한 '지연 보상' 이라는 개념이 들어가게 되면 난이도가 대폭 상승하게 됩니다. 즉, 바둑이나 체스를 예로 들어보겠습니다. 상대 말에게 지금 내 말 하나가 잡히게 될지라도 다음 턴에 상대의 왕을 잡을 수 있는 기회가 생기는 A1 이라는 액션이 있고, 반대로 상대 말을 지금 하나 잡을 수 있으나 다음 턴에 내 왕이 죽을 수 있는 A2 라는 액션이 있다고 하겠습니다. 그렇다면 지연 보상이라는 개념 없이 단순히 A1 이라는 액션을 취할 경우 좋은 결과라고 볼 수 없으며, 더 좋은 선택인 A2 를 하도록 구현하여 할 것 입니다.