본문 바로가기
Developer/Machine Learning

#1. 머신러닝의 정의 Machine Learning

by Doony 2017. 11. 13.

본 포스팅은 인프런에서 제공되는 "모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌"를 참고하여 만들어졌습니다. 

인프런 URL: https://www.inflearn.com/

Machine Learning 첫번째 강의. 먼저 그 정의에 대해서 알아보자



  Machine Learning

현재 다양한 프로그램들은? Explicit Programming. 즉 미리 설정된 룰을 통해 작동하는 프로그램. 예를 들어 가장 간단한 문구 중 하나인 if then 과 같은 가벼운 알고리즘들을 통해 구현한 방법. 그런 알고리즘으로 자율주행 차를 만든다면? 사람이 지나간다, 고양이가, 개가, 고라니가, 혹은 다른 자동차가 지나가는 것을 전부다 규제하여 제어하기는 불가능에 가깝다. 그만큼 변수가 너무 많기 때문. 

그래서 1959년, Arthur Samuel이 스스로 학습해서 배우는 프로그램을 정의하였고, 이를 머신러닝이라 하였다.


머신러닝에는 두가지 종류가 있다.

>> Supervised Learning (지도학습)

슈퍼바이저는 감독관이라는 뜻이다. 즉, 레이블이 정해진 어떤 데이터가 이미 존재한다. 그런 데이터를 training set이라 하는데, 그것을 토대로 학습하는 것이 supervised learning의 기본이다. 예를 들어, 고양이 그림, 개 그림, 모자 그림 등의 기본 데이터를 먼저 보여주고, 이를 학습시켜 컴퓨터로 하여금 각각을 구분하게 하고 새로운 이미지가 나타났을 때 범주에 분류할 수 있는 것이 바로 supervised learning이다.


 >> Unsupervised Learning (자율학습)

그렇다면 Unsupervised learning은 왜 필요할까? 어떤 경우, 미리 샘플링하여 우리가 레이블을 정해주기 어려울 수 있다. 예를 들어 뉴스를 그룹핑한다던가.. 그럴 경우, 데이터를 보고 기계가 스스로 학습하도록 하는 방식이 요구되는데, 이를 unsupervised learning이라 한다. 즉, 어떤 데이터들이 있을 때 이를 군집으로 나누는 경우 자율학습, 또는 비지도 학습을 하게 된다.


가장 흔한 Supervised learning의 예시는 다음과 같다. (레이블링된 데이터가 있다는 점을 기억하자.)

1. 이미지 레이블링. 

2. 이메일 스팸 필터

3. 시험 예상 점수


그렇다면 레이블링된 데이터, 즉 training data set를 가지고 어떤식으로 학습을 하는가? 인풋과 아웃풋이 있다고 하자. X가 있을 때, Y라는 값이 나온다고 하자. 그런 데이터 셋이 여러개 있어서 기계를 학습시킨다.

그리고, a라는 인풋이 들어왔을 때, b라는 아웃풋을 예측하는 것이 핵심이다.

 X

 10

 24

 8

 4

 2

 1

 a

b? 


알파고도 유사한 데이터셋이 있었다. 기존 바둑인들의 기보(training data set)를 가지고 학습하고, 이세돌의 수를 통해 다음 수를 예측하는 것이다.

Supervised Learning은 결과에 따라 다음과 같이 3가지로 분류할 수 있다.

1) Regression (회귀)

시험점수를 예측해보자. 0~100점 사이

2) Binary classification (분류)

패스냐 논패스냐를 가르는 시험의 경우. (2가지 케이스)

3) Multi-label classification

학점이 A~F 인 경우. 레이블이 여러가지임.


다음 강의에는 이중에서도 1번. Regression, 그 중에서도 Linear regression(선형 회귀)으로 학습하는 방법에 대해서 알아본다.


공감은 큰 힘이 됩니다.

두니월드로 놀러오세요.



댓글