머신러닝(Machine Learning) 이란?

머신러닝이란?

 

머신러닝(Machine learning)이란 말 그대로 "기계학습"입니다. 인간이 직접 가르치는 기계를 의미하는 것이 아닌, 무언가를 스스로 학습하는 기계를 의미합니다. 기계를 학습한다는 것은 사람이 하는 일들을 학습시켜 특정 작업을 아주 빠른 속도로 수행하기 위함입니다.

 

 

위키피디아에서 정의한 머신러닝은 컴퓨터가 외부에서 만들어진 방대한 빅데이터를 바탕으로 스스로 학습하는 알고리즘이라고 볼 수 있습니다. 위 예처럼 수신한 이메일이 스팸인지 아닌지 구분하도록 훈련하는 알고리즘을 개발하여 지속적으로 데이터를 입력 한 다음 학습하도록 하여 특정 이메일의 스팸 여부를 구분해 낼 수 있습니다.

 

또한 머신러닝은 데이터 안에서 규칙을 발견하고 그 규칙을 새로운 데이터에 적용해서 새로운 결과를 도출할 수 있습니다. 결론적으로 기존 데이터를 이용해 아직 일어나지 않은 미지의 일을 예측하기 위해 만들어진 기법입니다.

 

기계를 학습시켜서 사람의 일을 대체할 수 있도록 한다는 것은, 아주 매력적인 대안이며, 결국 사람이 할 일들을 기계가 대신하게 되서 일자리가 사라질 수 있습니다. 하지만 기술이 발전하면서 점점 사람이 하는 일들이 기계가 대신해 나가고 있고 머신러닝도 이 중 하나의 기술로서 받아들여야 할 것이라 생각합니다.

 

머신러닝의 분야

 

 

 

머신러닝은 크게 3개의 분야로 나눌 수 있습니다. 지도학습(Supervised learning)과 비지도학습(Unsupervised learning) 그리고 강화학습(Reinforcement learning)입니다. 각 분야별로 간단하게 알아보도록 하겠습니다.

 

 

지도학습(Supervised learning)

 

위키피디아에 따르면 지도학습의 정의는 다음과 같습니다.

 

"지도학습은 훈련 데이터(Training Data)로부터 하나의 함수를 유추해내기 위한 기계학습의 한 방법이다." - 위키피디아 - 

 

지도학습은 데이터에 대한 레이블(Label)이 주어진 상태에서 컴퓨터를 학습시키는 방법입니다. 예를 들어 (데이터(data), 레이블(label)) 형태로 학습을 진행하는 방법입니다.

 

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

 

1) 분류(Classification)

 

 

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

   EX) 이 글은 스팸이야? → 예 또는 아니요

 

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

   EX) 이 동물은 뭐야? → 고양이 또는 사자 또는 강아지 등

 

2) 회귀(regression)

 

 

 

어떤 데이터들의 특징(feature)을 토대로 값을 예측하는 것입니다. 결과 값은 실수 값을 가질 수 있습니다.

EX) 어느 동네에 어떤 평수 아파트면 집 값이 어느 정도야?

    → 어디 동네에 24평이면 얼마, 어디 동네에 32평이면 얼마... 등

 

 

비지도학습(UnSupervised learning)

 

비지도 학습(Unsupervised Learning)은 데이터에 대한 레이블(Label)이 주어지지 않은 상태에서 컴퓨터를 학습시키는 방법론입니다. 즉, (데이터(data)) 형태로 학습을 진행하는 방법입니다. 

 

예를 들어서 아래와 같이 데이터가 무작위로 분포되어 있을 때, 이 데이터를 비슷한 특성을 가진 세가지 분류로 묶는 클러스터 알고리즘이 있습니다.

(우리가 흔히 알고 잇는 군집화(Clustering), 주어진 입력과 X와 비슷한 입력들의 군집을 추정해 내는 것)

 

 

비지도학습은 레이블이 없는 데이터를 사용하는데, 목적은 데이터안에서 어떤 관계(Relationship)를 찾아내는데 있습니다. 즉 사람이 개입하지 않고 컴퓨터 스스로 데이터를 훈련하는 것입니다.

 

결론적으로 비지도 학습의 경우에는 훈련 데이터군을 이용하지 않기 때문에 '비지도'라고 합니다.

EX) SNS에서 사진을 분류, 게임에 관심이 있는 사용자 등 취미, 관심사에 대한 분류하는 기능

 

 

강화학습(Reinforcement Learning)

 

강화학습은 앞서 살펴본 지도학습과 비지도학습과는 약간은 다른 종류의 학습 알고리즘입니다. 앞서 살펴본 알고리즘들이 데이터(data)가 주어진 정적인 상태(static environment)에서 학습을 진행하였다면, 강화학습은 에이전트가 주어진 환경에 대해 어떤 행동을 취하고 이로부터 어떤 보상을 얻으면서 학습을 진행합니다.

 

 

 

딥러닝의 등장 이후 강화학습에 신경망을 적용하면서부터 바둑이나 자율주행차와 같은 복잡한 문제에 적용할 수 있게되었습니다. 고전적인 강화학습 알고리즘은 앞으로 나올 상태에 대해 보상을 모두 계산해야 하는데,  최근에는 계산하는 대신 신경망을 통해 근사값을 구함으로써 복잡한 문제를 해결할 수 있게 되었습니다.

 

강화학습의 대표적인 알고리즘은 Q-Learning이 있고, 딥러닝과 결합하여 Deep-Q-Network(DQN) 방법으로도 사용됩니다.

 

 

앞으로 해야할 일

 

처음 머신러닝이란 주제에 대해 공부를 시작할때 막막하였습니다. 말 그대로 기계를 학습시키는 일인데 어렵지 않을까라는 생각도 하였습니다. 학부시절 컴퓨터 공학을 전공했지만 그 당시 인공지능 전공은 수강하지 않고 비켜가기만 했었습니다.

지금부터라도 늦었다고 생각하지않고 머신러닝/딥러닝에 대해 하나씩 공부해가면서 블로그에 정리해 나갈 생각입니다. 

 

다음번에는 지도학습에 대해 공부하고 정리할 계획입니다.

 

머신러닝에 대해 공부하면서 아래 강의를 많이 참고하고 공부하고 있습니다.

 

- 모두를 위한 머신러닝/딥러닝 : https://hunkim.github.io/ml

반응형

이 글을 공유하기

댓글

Designed by JB FACTORY