[머신러닝 배우기] 2.머신러닝의 분류


머신러닝의 분류

머신러닝은 학습방법과 기법에따라 분류할 수 있다. 학습방법에 따라 지도학습, 비지도학습, 강화학습으로 분류할 수 있고, 기법에 따라 통계적기법과, 딥러닝으로 분류할 수 있다.

지도학습은 주어진 데이터와 답을 이용해서 새로운 문제의 답을 예측할 수 있도록하는 학습 방법이다. 지도학습이라는 단어자체에 집중하면 금방 이해할 수 있다. 쉽게 이야기하면 문제와 답을 알려주고 풀이방법을 찾는 학습 방식이다. 지금까지의 날씨를 보고 내일의 날씨를 예측한다던가, 구매할 상품을 예측하는 데에 사용되곤한다.

비지도학습은 데이터자체에서 패턴을 찾아내는 학습 방법이다. 컴퓨터에게 데이터만 주고 알아서 해보라는 식인데, 답을 찾거나 예측하는데에 쓰이기 보단 데이터간의 패턴을 찾는데에 쓰인다. 뉴스를 보고 경제뉴스끼리, 시사뉴스끼리모으는 등 군집화에 자주 쓰인다.

강화학습은 기계와 환경의 상호작용을 통해 지속발전해 나가는 학습방법을 이야기한다. 달리기 게임에서 과자를 먹으면 점수를 주고 죽으면 점수를 빼앗는 등의 피드백을 줘 스스로 더 높은 점수를 받도록 학습하는 방식이다.

지도학습

주어진 데이터와 답을 이용해서 새로운 문제의 답을 예측할 수 있도록하는 학습 방법

지도학습의 세부적인 방법은 3가지가 있는데, 각각 회귀, 분류, 랭킹이라고 부른다. 결론부터 이야기하면 회귀는 값을 예측하고, 분류는 항목을 예측하고, 랭킹은 순서를 예측한다. 사실 방법을 3가지로 나누었긴 하지만 3가지 모두 회귀를 기반으로 구현되었다고 볼 수 있다.

사실 회귀와 분류는 상당히 비슷한데, 연속된 값을 예측하면 회귀라고 볼 수 있고, 1 또는 2 처럼 분리된 값을 예측하면 분류라고 볼 수 있다. 예를들어 날씨가 좋은지 나쁜지를 이모티콘으로 나타내고 싶을때 온도와 구름등의 요소로 날씨를 회귀분석하여 0.8이상이면 웃는 이모티콘을, 그 이하면 울상 이모티콘을 보여주는 식이다. 이모티콘은 두가지의 분리된 값이므로 분류 문제였지만, 회귀를 이용해 분류를 구현할 수 있게 되는 것이다.

랭킹도 결국 회귀와 비슷하다. 영화데이터를 이용한다고 했을 때 영화 평점을 가지고 사용자가 다른 영화에 몇점을 줄 것 같은지 예측한다면 회귀이다. 하지만 사용자가 좋아할 만한 영화 10편을 뽑아 보여준다면 그건 랭킹방식이 되는 것이다.

비지도학습

데이터자체에서 패턴을 찾아내는 학습 방법

비지도학습은 스스로 데이터를 모델링하는 기법이다. 대표적으로 군집화, 밀도 추정, 차원 축소등의 기법이 있다.

군집화는 비슷한 데이터들을 묶어서 큰 단위로 만드는 기법이다. 예를들면 신문 기사를 분석해서 경제뉴스클러스터, 시사뉴스클러스터 등의 그룹을 만드는 식이다.

밀도추정은 정확히 이야기하면 확률밀도추정인데, 확률을 빼고 사용한다. 일일 서울역 이용객을 알고 싶다고할때 오늘 이용객, 내일 이용객 … 을 관찰했다고 해보자. 어느 한 날의 서울역 이용객이 일일 서울역 이용객을 표현할 수 있을까? 당연히 불가능하다. 이 때 몇달, 몇년의 데이터를 이용해 일일 서울역 이용객이 몇백-몇백 사이는 어느 확률, 다른 몇백-몇백 사이는 어느 확률이라고 추정하는 방법을 밀도추정이라고 한다.

차원축소는 쉽게 이야기해서 단순화이다. 데이터는 현실의 어떤 것을 표현한 것이기 때문에 사실 관여 된 요소가 매우 많을 수 있다. 관여된 요소들을 모두 하나의 차원이라고 봤을 때 너무 높은 차원은 시각화하기가 어렵기 때문에 차원을 축소(단순화)하여 2차원 또는 3차원으로 시각화를 하곤한다. 무작정 차원을 축소하지는 않고 주요한 패턴을 찾아서 낮은 차원에서도 보존할 수 있도록 장치를 마련한다.

강화학습

기계와 환경의 상호작용을 통해 지속발전해 나가는 학습방법

강화학습은 보상을 최대로 만들기위해 기계와 환경이 상호작용을 하는 방식을 이야기한다. 예전에 딥마인드가 벽돌부수기 게임을 강화학습으로 기계에게 플레이시킨적이 있는데, 벽돌을 부술때마다 점수를 주니 어느정도 시간이 지난후 엄청난 실력으로 벽돌을 깨부수었다. (이 동영상으로 딥마인드는 구글에게 인수되었을 정도로 당시엔 파급이 컸다.)

통계학적 방법과 딥러닝

지금까지의 설명은 통계학적 방법을 기반으로 한 이야기였다. 그 외에도 딥러닝으로 문제를 해결할 수 있는데, 딥러닝이란건 쉽게 이야기하면 신경망을 깊게 쌓아서 문제를 해결하는 방법이다.

딥러닝은 사실 데이터의 양에 의존적인 기법이다. 가정이 적은 대신 유연하게 대응할 수 있도록 설정해 놓고, 엄청난 데이터를 학습시키는 것으로 모델의 성능을 향상시킨다. 데이터 양이 많을수록 딥러닝은 유리해 지지만, 너무 경우의 수가 많거나 복잡한 패턴이면 성능을 발휘하지 못하곤한다. 우리는 다양한 학습방법에 통계학적 또는 딥러닝 방식을 통해 문제를 해결할 수 있다.

머신러닝의 주요 개념

머신러닝에 대해 잘 알아야 좋은 데이터를 기계에게 공급할 수 있다. 머신러닝 시스템을 차에, 데이터를 연로에 비유할 수 있다. 경유가 필요한 차에 휘발유를 넣거나, 기름이 많이 필요한 차에 기름을 적게 주거나 하는 일을 줄이기 위해 우리는 이론을 더 잘 알아야 한다.

머신러닝은 크게 4가지의 핵심 개념을 갖는다. 모델, 손실함수, 최적화, 모델 평가.

다음시간에는 머신러닝의 주요 개념에 대해 알아보자.




© 2017. by isme2n

Powered by aiden