기계학습(머신러닝, Machine Learning)의 종류

    머신러닝(Machine Learning) 즉, 기계학습이란 컴퓨터가 학습을 통해서, 기계에게 지식을 주입하는 것을 말한다. 우리가 어떠한 사람에게 "우리나라 수도인 서울은 대한민국에서 가장 인구가 많은 도시야"라고 누군가에게 지식을 전달 했을 때, 그 지식을 습득한 당사자는 "한 나라에서 인구가 가장 많은 도시는 수도일 확률이 높겠군"이라고 생각할 수 있다. 즉 이러한 어찌보면 확률을 컴퓨터에게 심어주는 것이 머신러닝이다.


    기계학습의 종류는 크게 지도학습과 비지도학습으로 나뉘는데 최근에는 딥러닝으로 인해서 강화학습이 추가되어 3가지로 나뉘는 경우가 많다. 그럼 각각의 학습에 대한 정의는 무엇이고, 어떠한 알고리즘이 있는지 확인해보도록 하자



    1. 지도학습(Supervised Learning)


    가장 기본이 되고, 가장 구현하기 쉬운 알고리즘이 지도학습으로 일단 컴퓨터에게 문제(Feature)와 정답(Label)이 있는 데이터(Training Set)를 학습 시킨 후, 운영 데이터(Test Set)를 분류하거나 맞추는 것이 지도 학습이다.


    예를 들어서, 어떤 지역의 원룸 매매 가격을 맞추는 지도학습을 만들어보고자 한다. 그래서 현재 거래가 완료된 데이터를 학습을 시켜서, 현재 등장한 매물을 보고 정가에 팔릴 것인지를 예측하는 시스템을 만들고자 한다.


    이때 매매가 이미 완료된 데이터가 학습에 사용되는 학습 데이터(Training Set)이다. 이 학습 데이터는 Feature와 Label이 있어야 하는데 Feature는 지역, 층수, 엘레베이터유무, 평수, 방수, 화장실 개수, 건축년도 등등 상당히 많은 수가 있을 것이고, Label은 매매가격이다.



    이렇게 컴퓨터에게 Feature를 학습하여, 새로운 Feature값을 넣으면 컴퓨터가 계산을 통해서 매매가격을 예측하는 것이다. 이렇게 학습하는 것이 바로 지도학습이다.


    지도 학습에는 상당히 많은 알고리즘이 존재하는데 대표적인 알고리즘으로 의사결정 트리(Desicion Tree), KNN(K-nearest neighbor), 신경망(Neural Network), SVM(Support Vector Machine) 등과 같은 알고리즘이 있다. 데이터의 예측을 어느정도 할 수 있다보니 튜닝하기에도 어느정도 용이하다.


    svm 알고리즘



    2. 비지도 학습(Unsupervised Learning)


    비지도 학습은 비지도 한다는 말처럼 사람의 개입이 없이 컴퓨터가 알아서 어떠한 결과를 도출해 내는 것을 뜻한다. 지도 학습은 우리가 결과를 안다는 가정하에 컴퓨터가 그에 맞춰서 문제를 해결하는 것을 원한다고 한다면 비지도는 우리도 뭔지 모르는 무언가를 컴퓨터가 해결하길 바라는 것이다.


    예를 들어, 어떤 로그 파일에 대한 데이터 분석을 수행했는데 아무런 Insight를 못찾았다고 했는데 컴퓨터의 비지도 학습 알고리즘을 돌려보니 사람들이 인지하지 못했던 어떤 분류를 했다던지, 문제를 풀어버리는 행위이다. 


    비지도 학습에 대표적인 방법이 클러스터링(Clustering) 즉 군집화가 존재한다. 너무도 많은 Feature로 인해서 인간이 어떤식으로 분류를 해야 할지 모르는 상태에서 Clustering 알고리즘을 활용하여 컴퓨터에게 맡기면 새로운 방식으로 인간이 알지 못하는 방식의 분류를 수행할 수 있다.


    clustering에 대표적인 k-means 알고리즘


    물론 클러스터링이 언제나 정답은 아니다. 간혹 왜 이렇게 분류를 했지? 아무리 찾아도 모르는 경우가 있고 그럴 때는 다시 어느정도의 Feature들을 컴퓨터가 이해하기 쉽게 선작업을 해야 하는 경우가 있다.  


    비지도 학습은 인간이 인지하지 못하는 부분에 많이 쓰이기 때문에 금융권에서 FDS 시스템(금융 위험 이상 탐지 시스템)에서도 많이 쓰이고, 해커들이 침입했을 때의 패턴을 스스로 분석하여 해커들의 침입을 인지할 수도 있다. 즉 지도 학습을 사용하기 힘든 부분에 컴퓨터의 머리를 빌려 학습을 해 나가는 것이 비지도 학습이라고 쉽게 생각하면 된다



    3. 강화 학습(Reinforcement Learning)


    사실 강화 학습은 상당히 애매한 영역이다. 2가지로 분류해야 한다면 지도학습의 카테고리에 들어가야 하는 기법인데 최근 들어서 알파고의 학습으로 유명해진 기법이다.


    강화 학습의 핵심은 바로 보상(Reward)이다. 컴퓨터는 이 보상을 받는 행위를 위해서 스스로 문제점을 찾아나가게 되는데 초반에는 인간의 어느정도의 개입이 들어갈 수 있다. 


    지도학습과 비지도학습은 컴퓨터가 스스로 성장하는 모습이 쉽지 않는 모양이지만, 강화학습은 목표가 보상의 최대치가 되는 행동을 하자라는 것이다. 예를 들어, 게임을 한다면 최종스코어(Max Score)를 최대치를 만드는 것이 임무일 수 있고, 이 최대치를 만들기 위해서 끊임없이 노력을 하게 된다. 


    알파고 같은 경우는 초반에 바둑 프로들이 둔 기보를 통해서 성장을 하다가 나중에 알파고 대 알파고의 대결로 새로운 기보를 만들어 내고, 끊임없이 성장해 나가게 되는데 이 이유는 지도 학습이 아닌 강화 학습이기 때문에 가능한 것이다.



    강화학습에서 사용되는 대표적인 기법은 딥러닝(Deep Learning)이다. 참고로 딥러닝이 강화학습에 좋은 기법이지만 딥러닝이라는 말이 어떠한 하나의 알고리즘을 말하는 것이 아닌 신경망이 매우 깊은 것을 말하는 것이기에 지도학습, 비지도학습에서도 딥러닝은 사용된다.




    댓글

    Designed by JB FACTORY