☆IT 개발 프로그램☆/Machine Learning

[쉽게 설명하는 머신러닝] 개념 정리

호기심을 품고사는 중 2020. 6. 4. 15:08

 

머신러닝 개념정리

1. 기계학습이란

2. 인간의 경험학습

3. 기계의 경험 학습

4. 학습시 고려할 것

   4.1 데이터

   4.2 알고리즘


1. 기계학습이란?

머신러닝이란, 말 그대로 기계를 학습시켜(Machine Learning), 의사결정을 할 수 있게 하는 것이다(Decision Making).

기계의 학습에 대해 논하기 전에, 먼저 인간의 학습에 대해 생각해보자.

 

2. 인간의 경험학습

지금부터 당신의 '강아지vs고양이 분별 모델'의 성능을 체크해 볼것이다.

 


Q1. 아래에 동물 사진 3장이 있다. 강아지는 몇 마리, 고양이는 몇 마리인가?

 

정답은 강아지 2마리, 고양이 1마리이다. 순서대로 강아지, 고양이, 강아지다. 당신은 아마 100% 정답을 맞췄을 것이다.

 

 

그런데, 당신은 어떻게 1번이 강아지이고, 2번이 고양이고, 3번이 강아지라는걸 알았나? 사실 3마리 모두 다르게 생겼는데 말이다.

 

 


 

Q2. 당신이 우주여행을 갔다가 외딴 행성계에 떨어졌다고 가정해보자. 그리고 거기에서, 에어리언1, 에어리언2, 에어리언3을 만났다고 가정하자. 3마리는 모두 다르게 생겼지만, 그 종족안에서 규정된 어떤 특징에 따라 각각의 종으로 나뉜다. 당신이 이 처음보는 에어리언 3마리를 종으로 분류할 수 있을까?

아마, 당신의 경험적 직관에 의해 맞출수도 있겠지만, 아마 틀릴 가능성이 더 높다.

 


 

에어리언과, 지구의 동물들의 차이는 무엇인가? 바로 당신이 경험을 통해 그들의 특징을 알고 있다는 것이다.

당신은 지금까지 살면서 수만마리의 강아지, 고양이를 보아 왔고, 그 경험으로 3마리의 동물 중 어떤것이 고양이이고 어떤것이 강아지인지 분류할 수 있는 것이다. 하지만 아기인 당신에게, 처음으로 강아지들과 고양이들을 보여주고, 이들을 분류하라고 하면 할 수 있었을까? 아마 못 했을 것이다. 하지만 당신은 자라면서 강아지와 고양이들을 많이 접할 수 있었고, 강아지인지 고양이인지 판별할 수 있게 되었다. 살면서 수천 수만마리의 강아지 고양이를 보아온 당신의 '강아지vs고양이 분별 모델'의 성능은, 처음에는 무척 낮았지만 성인이 된 지금은 100%에 근접할만큼 좋아진 것이다.

 

 

아직 살면서 에어리언을 만난 적이 없기 때문에 당신의 '에어리언 분별 모델'의 성능은 분명 좋지 않을 것이다. 하지만 에어리언 족 20마리를 추가적으로 '경험한' 후에 3마리를 분류하라고 하면? 당신은 그 에어리언들을 전보다는 더 잘 구별할 수 있을것이다. 그리고 에어리언족 1000마리를 더 '경험'한 후에 3마리 분류 문제를 다시 풀면? 당신은 아마 훨씬 훨씬 훨씬 더 잘 에어리언들을 분별할 수 있을것이다.

 

즉, 인간의 학습의 많은 부분은 경험에 의해 이루어지고, 경험이 많으면 많을 수록 당신이 가진 모델의 성능은 훨씬 좋아진다.

 

 

 

3. 기계의 경험 학습

 

이 원리를 우리는 기계에도 적용한다. 아무 경험이 없는 기계한테 고양이와 강아지 사진을 보여준다면, 기계는 그 차이를 모를 것이다.

당신이 그랬듯, 기계도 경험에 의해 배워야한다.

 

머신러닝으로 당신이 경험적으로 학습한 '강아지vs고양이 분별 모델'을 기계에게도 학습시켜 보자.  기계에게 경험이란 즉, 데이터이다.

 

 각각 '고양이' '강아지'로 라벨링 한 동물 사진들을 기계에게 학습시켜준다.

 

데이터 학습으로 기계는 모델을 구축했다. (예시로,) 강아지로 분류된 사진들은 강아지만의 고유한 특징을 가지고 있을 것이고, 고양이로 분류된 사진들은 고양이만의 고유한 특징을 가지고 있다. 기계는 데이터를 통하여 그 패턴을 학습하였다.

이제 기계가 처음 보는 새로운 강아지 사진을 주었다.

 

기계는 사실 이 강아지 사진을 한 번도 본적이 없다. 하지만 지금까지 학습한 데이터로 만든 모델에 이 사진을 대입해 보았을 때, 이 사진은 강아지로 라벨링된 사진들과 비슷한 특징을 가지고 있다. 그래서 경험학습에 의해, 기계는 이 사진을 강아지로 판단할 수 있다.

 

 

 

4. 학습시 고려할 것

4.1 학습내용: 데이터의 중요성 

시바견의 사진을 주면서, 실수로 고양이로 라벨링을 해서 기계에게 주었다고 가정해보자. 그 사진으로 학습한 기계에게 시바견의 사진을 새로 주고 강아지인지 고양이인지 판별하라고 했을 때, 기계는 고양이로 판단할 것이다. 그렇게 배웠기 때문이다!

하지만, 데이터를 더 많이 줄 수록 기계는 잘 판단할 확률이 높아진다. 비록 잘못 라벨링 된 시바견 사진 1장을 학습하였어도, 강아지로 라벨링이 잘 된 시바견의 사진 2장을 추가로 더 학습 한다면, 기계는 어쩌면 시바견을 강아지로 잘 판단할 수도 있다. 강아지로 라벨링된 시바견 사진을 10장 더 학습한다면? 기계는 1장의 오차를 무시하고 시바견을 강아지로 판단할 것이다. 

 

기계는 데이터에서 배운다. 그래서 빅데이터를 확보하여 깨끗히 정제하는 것이 모델의 성능에 무척 중요하다

 

 

4.2 학습도구: 알고리즘의 중요성

기계에게 우리가 줘야 하는 것은 데이터 뿐만이 아니다. 기계에게 올바른 학습 알고리즘도 같이 주어야 한다. 예를 들어 아래처럼 생긴 데이터가 있다고 가정해보자.

이 데이터로 예측 모델을 만들려고 할 때, 2개의 알고리즘 선택지가 있다고 생각해보자. 앞의 것을 알고리즘 A, 뒤의 것을 알고리즘 B 라고 쉽게 부르겠다. 어느 모델을 사용하느냐에 따라서 예측력은 상당히 달라질 수 있다.

 

데이터와 전혀 동떨어진 알고리즘 A로 모델을 만들면 모델이 데이터를 잘 반영하지 못해서, 예측력이 떨어질 것이다. 따라서 데이터의 성격에 따라서, 데이터를 잘 반영하는 알고리즘 B를 선택해야 타당하다.

이처럼,  올바른 알고리즘을 선택하는 것은 데이터 그 자체만큼이나 중요한 요소이다. 따라서 모델의 성능을 높히고 싶다면, 다양한 알고리즘을 습득하고, 데이터의 성격에 따라 언제 어떤 알고리즘이 쓰이는지 이해하여, 최적의 알고리즘을 선택할 수 있어야 한다.